首页> 中国专利> 收集边界网关协议路由选择协议消息的方法

收集边界网关协议路由选择协议消息的方法

摘要

本发明公开了一种收集边界网关协议路由选择协议消息的方法。BGP路由记录仪(BRR)捕捉并转储从BGP对等方接收到的边界网关协议(BGP)消息。在BRR和BGP对等方之间建立被动链接。所有进入消息和外出消息都被记录并加时间戳。当遇到错误时不是拆除BGP对等会话,而是将错误条件记录下来,并且BRR可被配置来保持链接越过所选定的BGP错误。

著录项

  • 公开/公告号CN1767533A

    专利类型发明专利

  • 公开/公告日2006-05-03

    原文格式PDF

  • 申请/专利权人 安捷伦科技有限公司;

    申请/专利号CN200510082759.X

  • 发明设计人 劳斯·塔特曼;

    申请日2005-07-07

  • 分类号H04L29/06(20060101);

  • 代理机构11258 北京东方亿思知识产权代理有限责任公司;

  • 代理人王怡

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 17:12:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-05-18

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L29/06 变更前: 变更后: 申请日:20050707

    专利权人的姓名或者名称、地址的变更

  • 2013-08-07

    专利权的转移 IPC(主分类):H04L29/06 变更前: 变更后: 登记生效日:20130718 申请日:20050707

    专利申请权、专利权的转移

  • 2010-11-03

    授权

    授权

  • 2007-12-26

    实质审查的生效

    实质审查的生效

  • 2006-05-03

    公开

    公开

说明书

技术领域

根据本发明的实施方式一般地涉及交换式分组网络,更具体地说,本发明涉及收集并记录在交换式因特网协议(IP)网络中的边界网关协议(BGP)路由选择协议消息。

背景技术

分组交换数字网络是因特网的骨干。在分组交换因特网协议(IP)网络中,从源流向目的地的数字信息被分割为一序列分组。通过大量路由器和交换机,这些分组被路由通过网络。但是并不能保证所有的分组都途经相同的路由。路由选择(routing)(也叫路由管理)控制着分组所途经的路由,以及这些路由如何改变、适应诸如加载和故障之类的网络条件并对其作出响应。

分组流量在路由器之间交换。路由器是一种将硬件和软件组合在一起的计算机连网设备,用于将数据分组转发到它们的目的地。路由器在使用边界网关协议(BGP)连接到其他路由器时,这些路由器称作对等方。这种初始对等关系一般是通过手工配置来建立的。每个路由器都保存一份网络或前缀表,所述前缀指定了网络的可到达性。对等的路由器通过交换根据在RFC 1771中规定的边界网关协议(BGP)的消息来管理这些表。

路由管理是因特网业界中一个活跃的研究领域,也是网络服务提供者(NSP)感兴趣的领域。通过监控并管理路由选择,可以跟踪传统网络元件和服务监控未发现的问题,同时收集在评价对等关系时有用的信息。为了进行符合边界网关协议(BGP)的有意义的路由选择管理,有必要从对等路由器收集各自的路由选择更新。

记录路由选择信息的软件工具至少可以从两个来源处获得。第一个是Zebra或Quagga,其是一种全功能路由选择协议套件,它刚好具有记录路由选择更新的能力。Mrtd作为来自密歇根大学的MRT包的一部分,也能够记录路由选择更新。在用作网络设施时这两种工具都有自己的问题。首先,它们被构造来远非仅仅用于记录路由,而是完成更多的功能。这两种工具都能够执行完整的BGP路由选择功能,并且主要是由于这种添加的处理而导致不能很好地扩展。其次,这些工具的行为干扰它们正试图记录的测量结果。当从遵循BGP规范的对等方接收到任何错误时,上面提到的两种工具都将拆除BGP对等会话。

发明内容

根据本发明,边界网关协议(BGP)路由记录仪(BRR)记录所有的进入BGP消息和外出BGP消息,并且对这些消息加时间戳。对等会话可以被保持越过错误,并且BRR仅被允许被动地监听对等会话初始化。

附图说明

通过在结合附图阅读时参考下面的本发明实施方式的详细描述,将最好地理解本发明,其中:

图1图示了在本发明实施方式中使用的有限状态机。

具体实施方式

本发明涉及在分组交换IP网络中边界网关协议(BGP)消息的记录。给出下面的描述以使本领域的技术人员能够实现并使用本发明,并且这些描述是在专利申请及其需求的环境中给出的。对所公开的实施方式进行的各种修改对本领域的技术人员是显而易见的,并且其中的一般原则可以应用到其他实施方式。因此,本发明不是要受限于所示的实施方式,而是要被赋予与所附权利要求一致的最广范围,并且符合这里所描述的原则和特征。

BGP路由器的操作在RFC 1771中定义。RFC 1771的当前版本是于1995年3月公布的BGP-4,将其结合于此用作参考,并且称作RFC1771。

根据RFC 1771,两个对等方形成彼此之间的连接。它们交换BGP消息以打开并确认它们之间的连接参数。取决于单个路由器的配置,最初的数据流是整个BGP路由选择表。当路由选择表改变时,发送递增的周期性更新。BGP不要求周期性地刷新整个BGP路由选择表。因此,在连接期间,BGP系统必须保留由每个对等方发送的所有BGP路由选择表的总体概况,并且跟踪来自每个对等方的表版本号。KeepAlive消息被周期性地发送以确保连接的活性。如果连接遇到错误条件,则发送通知消息并关闭该连接。

应当注意,根据RFC 1771,如果连接遇到错误条件就关闭对等方之间的连接。当首次打开连接或者从错误中恢复过来而重新打开连接时,根据RFC 1771,发送预定前往对等方的整个BGP路由选择表。这样的错误包括:没有及时响应KeepAlive消息、消息头部错误(类型1)、更新错误(类型3)、保持定时器期满错误(类型4)和有限状态机错误(类型5)。

诸如Zebra和Mrtd之类的现有路由选择套件具有记录某些BGP流量的能力,但是不能记录所有BGP流量。因为这种记录能力已被添加到具有完整BGP路由选择功能的现有程序中,所以它们在所记录的BGP流量中引入了噪声和错误。

本发明的实施方式提供了一种BGP路由记录仪(BRR),其记录来自对等方的所有BGP消息。根据本发明的BRR不产生BGP更新,而是记录来自对等系统的BGP消息,以及其自身的KeepAlive、Notification和Close消息。特别有意义的是BRR将记录它要发送的Notification消息,但是没有实际发送上述Notification消息。Notification消息包含错误发生的原因。因此,接收到Update错误时的BRR行为例如会是将原始的Update消息象它被接收时一样记录下来,并且根据所述错误来记录正确类型的Notification消息,在这种情形中是类型3错误,但是BRR绝不会发送该Notification,也不会拆除会话。这种行为是可配置的,因为连续重复出现错误条件而没有逃离(escape)也是一种危险情况,所以在一种实施方式中,在实际发送Notification消息并且拆除会话之前可被接收的错误次数可以由用户来配置。

在本发明的一种实施方式中,优选地在网络通信栈的套接字层对BGP消息尽早加时间戳。在诸如Zebra和Mrtd之类的系统中,加时间戳发生在消息将被写入磁盘的时刻,这可以是在它们被接收到之后许多分钟时。

诸如Zebra和Mrtd之类的系统的主要功能是作为路由器;GBP记录则是附加的功能。当路由选择操作和路由流量占用了系统容量的相当大部分时,可以不记录BGP消息。实际上,诸如Zebra和Mrtd等系统的已知问题在于:在负载较重的情况下,它们可能不能生成与对等方之间的BGPKeepAlive消息,这导致与对等方之间的会话被复位并被拆除。然后,自动重建会话,并且重传用于对等方的完整表。这不仅在试图测量BGP协议活动时引入了噪声,而且也可能在设备由于复位会话并接收用于每个对等方的完整路由选择更新而增加负载,从而加重记录设备上的负担时导致一连串故障的发生。由于当前的方法使用实现了完整路由选择套件的程序,所以这些程序必须在每个路由被接收到时保留该路由并对其做出路由选择决定。本发明的实现方案提供了一种专门构造的测量仪器,这种测量仪器只加时间戳和记录路由选择消息,并且不需要使用路由选择算法或者保留路由选择表;这提供了极大的性能改善,并且极大地节省了硬件需求。另外,当诸如Zebra或Mrtd之类的路由器接收错误的消息时,或者向其对等方报告错误时,这些BGP消息不被记录,或者用空字段来记录。不记录消息,尤其是不记录那些指示错误或者导致错误的消息对于仪器使用和测量来说都是不好的事情。而根据本发明的BRR捕捉所有的BGP消息,包括那些表示或导致错误的BGP消息。

根据RFC 1771,当站点启动时,该站点试图打开与所有已配置对等方之间的BGP连接。当每个会话被打开时,与对等方之间交换BGP路由选择表。如果有大量的对等方,这可能意味着相当大的流量。根据本发明的BRR表现出不同于RFC 1771中所规定的行为。根据本发明的BRR以被动模式启动,监听并记录流量,但是等待对等方打开BGP会话。

图1图示了适于在本发明的实施方式中使用的有限状态机。在运行中,对于每个对等的连接存在有限状态机的一个实例(instance)。

代表一个对等连接的有限状态机的每个实例都已将其关联到一个当前状态。所有状态机都开始于空闲状态1。图1所示的有限状态机具有6个状态:

1      空闲

2      连接(未使用的)

3      活动的

4      OpenSent

5      OpenConfirm

6      已建立

在记录会话的结束处的退出处理在图1中被示作7。与每个状态相关联的是一组事件和转移表。适于图1中所示的有限状态机的一组状态、事件和转移表作为附录1给出。注意,虽然这些状态和事件与在RFC 1771中描述的相同,但是本发明使用的转移表不同于RFC中的那些。

与图1的有限状态机相关联的事件集合为:

1      BGP开始

2      BGP停止

3      BGP传输连接打开

4      BGP传输连接关闭

5      BGP传输连接打开故障

6      BGP传输致命错误

7      ConnectRetry定时器期满

8      保持定时器期满

9      KeepAlive定时器期满

10     接收Open消息

11     接收KeepAlive消息

12     接收Update消息

13     接收Notification消息

在每种状态中,附录1中的关联转移表指定哪些事件转移到哪些状态,并且详细描述在处理事件时发生的其他处理。所有BGP消息(进入消息和外出消息)都被记录,通知也是如此。并非在每个状态中都允许所有事件,这在有限状态机的实现中是常见的。在符合RFC 1771的路由器中,错误和/或禁止的转移导致BGP对等会话被终止。在根据本发明的BGP路由记录仪(BRR)中,这种错误被记入日志。根据本发明的BRR可被配置来在发生错误时保持与BGP对等方之间的链接。

所有对等的连接,因而用于每个对等连接的状态机都开始于空闲状态1。BGP开始事件使状态机转移至活动状态3。对于任何其他事件,状态机仍停留在空闲状态1中。

根据本发明的BRR不使用连接状态2,但是遵循RFC 1771的BGP路由器使用。

在活动状态3中,接收到BGP开始事件使状态机仍停留在活动状态3中。接收到BGP停止事件使状态机转移至空闲状态1。接收到BGP传输连接打开事件使得打开过程开始,并且使状态机转移至OpenSent状态4。接收到BGP传输连接打开故障事件使状态机仍停留在活动状态3中。所有其他事件都使状态机转移至空闲状态1。

OpenSent状态4是建立完整的BGP对等会话过程的下一部分。接收到BGP开始事件使状态机停留在OpenSent状态4中。接收到BGP停止事件使状态机在通知和清除之后转移至空闲状态1。接收到BGP传输连接关闭、连接打开故障或者致命错误事件使状态机转移至活动状态3。接收到保持定时器期满事件或KeepAlive定时器期满事件使状态机仍停留在OpenSent状态4。接收到打开事件使状态机转移至OpenConfirm状态5(发送Open消息和KeepAlive消息,并且启动KeepAlive定时器和保持定时器),或者使状态机在错误通知之后转移至空闲状态1。接收到其他事件则产生通知并转移到空闲状态1。

OpenConfirm状态5继续处理BGP对等会话。接收到BGP开始、保持定时器期满、KeepAlive定时器期满、或者Update事件使状态机仍停留在OpenConfirm状态5,并且伴随着附录1中所示的其他动作。接收到BGP停止事件导致所示的通知和清除动作,并且转移至空闲状态1。接收到保持定时器期满事件使得通知并重启保持定时器,并且状态机仍停留在OpenConfirm状态5中。接收到KeepAlive定时器期满事件使得重启KeepAlive定时器,向BGP对等方发送KeepAlive消息,并且使状态机仍停留在OpenConfirm状态5中。当接收到KeepAlive事件时,重启保持定时器,并且使状态机转移至已建立状态6。

已建立状态6代表已建立的BGP对等会话。接收到BGP停止或者通知事件引发通知、清除,并且转移至空闲状态1。接收到其他事件使状态机仍停留在已建立状态6中,并且伴随着如附录所示的处理。

前面提供的本发明的详细描述是为了说明目的,而不是穷尽性的,也不是要将本发明限制于所公开的具体实施方式。因此,本发明的范围由所附权利要求定义。

附录1:BGP路由记录仪FSM状态转移和动作

本附录讨论响应于BGP事件而在BGP FSM中的状态之间的转移。下面是当协商后的保持时间值为非零值时这些状态和事件的列表。

BGP状态:

              1    -空闲

              2    -连接(未使用的)

              3    -活动的

              4    -OpenSent

              5    -OpenConfirm

              6    -已建立

BGP事件:

              1    -BGP开始

              2    -BGP停止

              3    -BGP传输连接打开

              4    -BGP传输连接关闭

              5    -BGP传输连接打开故障

              6    -BGP传输致命错误

              7    -ConnectRetry定时器期满(未使用的)

              8    -保持定时器期满

              9    -KeepAlive定时器期满

              10   -接收OPEN消息

              11   -接收KEEPALIVE消息

              12   -接收UPDATE消息

              13   -接收NOTIFICATION消息

下面的表格描述BGP FSM的状态转移,以及由这些转移触发的动作。

空闲(1)

  事件  动作  发送的消息  下一状态   1        如果[IsShutdown]则  拒绝任何TCP连接请求  否则  无   无      1      3  其他  无  无  1

连接(2)

从不使用这种状态。

活动的(3)

  事件 动作  发送的消息  下一状态  1 无  无  3   2  释放资源  标记BGP END  无    1    3 从accept函数获得TCP套接字文件描述符  无  4  5 关闭TCP连接  无  3  其他 释放资源  无  1

OpenSent(4)

 事件 动作  发送的消息  下一状态 1 无  NOTIFICATION  4 2    发送具有错误码停止(6)的NOTIFICATION 关闭TCP连接 释放资源 标记BGP END  无     1    4,5,6  关闭TCP连接 释放资源  无   3  8  将具有保持定时器期满(4)的NOTIFICATION 记入日志  无   4 
  关闭TCP连接  释放资源  9  无  无  4  10         如果(OPEN过程OK)则  发送OPEN,KEEPALIVE  启动keep-alive & holdtime定时器  否则  发送具有错误码OPEN错误的  NOTIFICATION  关闭TCP连接  释放资源  OPEN  KEEPALIVE   NOTIFICATION      5    1      其他   将具有FSM错误(5)的NOTIFICATION记入  日志  NOTIFICATION   1 

OpenConfirm(5)

  事件 动作  发送的消息  下一状态  1 无  无  5  2    发送具有错误码终止(6)的NOTIFICATION 关闭TCP连接 释放资源 标记BGP END  NOTIFICATION     1     4,5,6  关闭TCP连接 释放资源  无   1   8   将具有保持定时器期满(4)的NOTIFICATION 记入日志 重启保持定时器  无    5    9  发送KeepAlive 重启KeepAlive定时器  KEEPALIVE   5   10        如果(检查OPEN为OK)则 将具有FSM错误(5)的NOTIFICATION 记入日志 否则 发送具有错误码OPEN错误的 NOTIFICATION 关闭TCP连接 释放资源  无     NOTIFICATION     5     1     11 重启保持定时器  无  6  12  将具有FSM错误(5)的NOTIFICIATION记入 日志  无   5   13  关闭TCP连接 释放资源  无   1 

已建立(6)

 事件 动作  发送的消息  下一状态 1 无  无  6 2    发送具有错误码终止(6)的NOTIFICATION 关闭TCP连接 释放资源 标记BGP END  NOTIFICATION     1    3  将具有FSM错误(5)的NOTIFICATION记入 日志  无   6  4,5,6  关闭TCP连接 释放资源  无   1  8   将具有保持定时器期满(4)的NOTIFICATION 记入日志 重启保持定时器  无    6   9  发送KeepAlive 重启KeepAlive定时器  KEEPALIVE   6  10        如果(检查OPEN为OK)则 将具有FSM错误(5)的NOTIFICATION 记入日志 否则 将具有错误码OPEN错误的 NOTIFICATION记入日志 关闭TCP连接 释放资源  无     无     6     6    11 重启保持定时器  无  6 12    重启保持定时器 如果(UPDATE过程发生故障)则 将具有UPDATE错误(3)的NOTIFICATION 记入日志  无     6    13  关闭TCP连接 释放资源  无   1 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号