有效地动态维护一束链路上的双向转发检测的技术的制作方法

文档序号:7675521阅读:205来源:国知局
专利名称:有效地动态维护一束链路上的双向转发检测的技术的制作方法
技术领域
本发明涉及计算机网络技术,以及具体涉及在计算机网络中维护一束
链路(a bundle of links)上的双向转发检测(Bidirectional Forwarding Detection, BFD)。
背景技术
计算机网络是互连子网在地理上的分布式集合,所述子网例如是在网 络节点之间传送数据的局域网(LAN)。在此使用的网络节点是适于在计 算机网络中发送和/或接收数据的任何装置。因此,在本文中,可以交换使 用"节点"和"装置"。由网络节点的排列定义网络拓扑,所述网络节点 通常经由一个或者多个例如路由器和交换机之类的中间节点彼此进行通 信。除了网内通信以外,还可在相邻的(即,邻近的)网络之间交换数 据。为此,位于计算机网络的逻辑外围(logic outer-bound)的"边界装 置"(edge device)可适于发送和接收网间通信。网内通信和网间通信两 者通常都通过根据预定协议交换分散的数据分组而实现。在此语境中,协 议由定义网络节点彼此如何交互的一组规则构成。
每个数据分组通常包括"有效载荷"数据,所述"有效载荷"数据前 置("封装")了至少一个根据网络通信协议格式化的网络报头。网络报 头包括使网络节点能够有效地将分组路由经过计算机网络的信息。如传输 控制协议/网际协议(TCP/IP)参考模型所定义的,分组的网络报头常常包 括数据链路层(层2)报头、网络层(层3)报头、传输层(层4)报头。 TCP/IP参考模型在参考书《计算机网络》(Computer Networks,第四版, Andrew Tanenbaum著,2003年出版)中的1.4.2节进行了更详细的一般描 述,通过引用将该参考书结合进来,如同在本文中做了完全阐述那样。数 据分组可在源节点产生,并且随后沿着逻辑数据路径从一个节点"跳"向
另一个节点,直到其到达其寻址目的节点。定义数据流的逻辑数据路径的 网络地址常常作为网际协议(IP)地址存储在分组的网络报头中。
计算机网络可能包含多个由一个或者多个子网组成的较小的群,所述
群可以作为分离的路由选择域(routing domain)进行管理。在此使用的路 由选择域广泛解释为公共管理下的互连网络节点的集合。通常,例如是公 司、学术机构或政府部门之类的单个管理实体管理路由选择域。有时也将 这样的集中管理路由选择域称为"自治系统"。 一般而言,路由选择域可 以作为企业网、服务提供商或者任何其它类型的网络或者子网进行操作。 此外,路由选择域可能包含一个或多个边界装置,所述边界装置具有到邻 近路由域中的边界装置的"对等"连接。
路由选择域内的网络节点通常设置为使用来自"内部网关"路由协议 的预定路径来转发数据,所述"内部网关"路由协议例如是传统的链路状 态协议和距离矢量协议。这些内部网关协议(IGP)定义在路由选择域中 交换和处理路由信息和网络拓扑信息的方式。(例如,通过IGP消息)交 换的路由信息通常包括目的地址前缀,即被路由选择协议用来提交 (render)路由("下一跳")决定的目的地址部分。这种目的地址的示 例包括IP Version 4 (IPv4)和IP Version 6 (Ipv6)地址。如此,每个中间 节点接收一致的域拓扑的"视图"。在参考书《互连》(Interconnections, 第二版,Radia Perlman著,2000年1月出版)的12.1到12.3 节中描述了现有技术中己知的链路状态和距离矢量协议的示例,例如优先 开放最短路径(OSPF)协议和路由信息协议(RIP),通过引用将该参考 书结合进来,如同在本文中做了完全阐述那样。
通常采用边界网关协议(BGP)作为"外部网关"路由协议,以在自 治系统之间路由数据。BGP是众所周知的,并且在请求注解(Request for Comments, RFC) 1771的《边界网关协议4》(A Border Gateway Protocol 4(BGP-4), Y. Rekhter等著,1995年3月出版)中进行了一般描述,此文 可通过互联网工程任务组(Internet Engineering Task Force, IETF)公开获 得,并且在此通过引用全部结合进来。通常,BGP在例如TCP之类的可 靠传输协议上进行操作,以建立TCP连接/BGP会话。还可扩展BGP以兼
容除标准互联网连接以外的服务。例如,多协议BGP (MP-BGP)支持允 许BGP消息传送多协议信息的各种地址家族标识符(AFI)域。
路由选择域内的网络节点可检测域拓扑中的变化。例如,由于节点之 间的链路失效或者相邻节点失效,例如变成"离线"等等,节点可能变得 不能与其相邻节点中的一个通信。如果已检测到的节点失效或链路失效发 生在路由选择域内,则检测节点可能使用IGP消息将域内拓扑变化公告给 域内其它节点。类似地,如果边界装置检测到阻止与相邻路由选择域进行 通信的节点失效或链路失效,则边界装置可能将域间拓扑变化传播给在其 路由选择域内的其它边界装置(例如,使用BGP消息)。在任一种情况 中,网络拓扑变化的传播都发生在路由选择域中,并且因此,域中节点收 敛到新的网络拓扑的一致视图上,即没有失效节点或链路。
本技术领域的技术人员可以理解,期望迅速检测到节点或链路的失效 以丢失最少的流量。传统上,因为通常在两个域间装置之间采用BGP会 话,所以,可采用BGP KEEPALIVE消息来确定是否可达到对等方(例 如,对于链路失效或节点失效)。例如,BGP可能定义Hold Time (保持 时间)间隔,该间隔的到期指示己经在BGP会话中发生错误(例如,至少 3秒)。在装置处接收到的每一个BGP消息重置Hold Time。可在BGP会 话装置之间交换BGP KEEPALIVE消息以重置Hold Time。如此,交换的 KEEPALIVE消息之间的间隔必须足够频繁,使得不会造成Hold Time到 期。传统上,KEEPALIVE消息之间合理的最大时间应该是Hold Time间 隔的三分之一。然而,根据在RFC 1771中阐述的BGP标准,例如,不能 以比一秒一次更频繁地发送KEEPALIVE消息,以使BGP装置之间的流量 最小。注意,倘若Hold Time已经终止,则装置可能"中断"(即,拆除 或关闭)BGP会话。类似地,本领域技术人员可以理解,网络内的IGP节 点可交换IGP HELLO消息来确定是否可达到内部对等方(域内节点)。
因为对更快的网络响应时间和收敛的需求增加,管理者常常要求各个 网络装置快速检测失效的能力。双向转发检测(BFD)在装置之间提供快 速的失效检测时间,同时维持较小的开销。例如,BFD失效检测可能快至 50毫秒(ms),而上述BGP (和IGP)方法是秒级的(例如,3秒)。
BFD根据两个装置之间BFD控制分组的快速传输(例如,本领域技术人 员可以理解,几乎没有直到完全没有BFD保持时间)验证两个装置之间 的连接。注意,BFD还在任何协议层和任何介质上提供单个的、标准化的 链路/装置/协议失效检测方法。除了快速的失效检测以外,BFD另一益处 在于,其向网络管理者提供了检测失效的一致方法。因此,可使用一种可 用性方法,而不考虑网络的协议(例如,BGP、 IGP等)或拓扑。在《双 向链路转发》 (Bidirectional Forwarding Detection<dmft-ietf-bfd-base-04.txt>, Katz等著,互联网草案,2005年10月)中进一步描述了 BFD, 通过引用将该文献的内容结合进来,如同在此做了完全阐述那样。 一般而 言,在网络节点(例如,路由器)之间建立BFD会话,以在节点之间的特 定链路上监控节点的连接。
出于本领域技术人员可以理解的各种原因,用户经常将链路组织为群 或"束"。例如,链路群可以用于冗余、负载均衡,和/或增加网络中两点 间的可用带宽,这例如是通过将多个较小的/较慢的链路组合成单个链路群 来实现的,所述单个链路群产生比各个较小的/较慢的链路更大的带宽。链 路束的各种形式包括链路捆绑/聚合、以太信道(EtherChannd)和多链路 点对点协议(PPP),在RFC 1990的《PPP多链路协议》(The PPP Multilink Protocol (MP), 19%年8月出版)中描述了多链路点对点协议。 本领域技术人员可以理解链路束的其它示例,在此描述的那些只是示例。 例如,VLAN (虚拟LAN,或在不同物理LAN网段上如同在相同物理 LAN段上一样进行操作的网络装置/元件群)的链路也可以成束。
就如同BFD可用来非常快速地确定两个节点之间的连接一样,也可能 期望快速地确定两节点(或更多,本技术领域的技术人员可以理解)之间 的链路束所维护的操作(即,连接)。在链路束是活动的(active),即仍 然能够发送流量的同时,该束上的BFD会话应该保持活动。换而言之,只 要该束的一个或多个(可配置)链路("束链路")可操作,该束就应当 还是活动的,并且因此该BFD会话应该仍是活动的。因此,如果该束的其 它链路仍然可操作,则以下任何事件都不应造成该束上的BFD会话失效 束链路的失效;容宿(host) —个或多个束链路的线卡(line card, LC)
的在线插入和移除(OIR);链路添加到该束;束链路的移除;束链路的 关断;节点的集中路由处理器(RP)或控制卡失效(RP失效备援
(failover))等等。
将BFD提供给链路束的一种技术方案是集中BFD会话,例如基于RP 的BFD会话。在集中BFD会话中,RP (或控制卡)监控BFD会话和每 一个束链路的状态。可能在每一个束链路上发送BFD消息,使得在至少一 个束链路可操作时,该束也可操作,并且因此集中BFD会话也可操作。然 而,在许多情况中,在节点之间发送的大量BFD消息会违反各种BFD参 数,所述各种BFD参数例如是在BFD会话初始化(协商)期间取得一致 的分组之间的最大分组传输量或时间。此外,位于链路束任一端的两个例 如路由器(层3)之类的节点还可能通过一个或多个中间交换机(层2) 分开。所述一个或多个交换机可从一个路由器接收多个BFD消息,但是, 根据交换机处的路由/转发决定(例如,层2哈希算法),交换机可能只继 续单个束链路上的BFD消息的传输,而另一个束链路不被监控。此外,还 可通过不同数量的链路将两个路由器连接到交换机(例如,来自每个路由 器的链路束在交换机处终结),使得BFD消息不可能一对一映射到各个链 路。
或者,集中BFD会话可能改为在单个链路上发送和接收BFD消息, 以应对在所有束链路上发送BFD消息的一些限制。当经由单个链路接收到 BFD消息时,所述链路束仍然是可操作的。当在所述链路上不再接收BFD 消息时,集中BFD会话必须选择所述束的不同的链路来发送和接收BFD 消息。
操作用于链路束的集中BFD会话的主要缺点是如果RP (控制卡) 失效,则集中BFD会话也会失效,在至少还有一个容宿链路束的LC仍然 是可操作的地方,导致链路束失效的错误指示。显而易见,对于很多应 用,集中BFD会话是不可靠的。其它的缺点包括对于多链路束不足的可 扩展性,和降低的性能。例如,本领域技术人员可以理解,RP常常担负 节点的许多不同操作的任务,例如更新路由表、产生广播消息等。如此, 专用于BFD会话的时间会比维持BFD协议的高要求反应时间(即,亚秒
失效检测)所需的时间更少。为了补偿集中BFD会话潜在的较慢的反应时 间(例如,用于在单个链路BFD会话期间选择新链路),可能有必要使用 更长的超时值(保持定时器),以使RP根据网络中的变化调整。因此, 仍需要在一束链路上有效地维护BFD以应对上述问题的技术。

发明内容
本发明涉及一种技术,该技术用于在计算机网络中有效地和动态地维 护一束链路上的双向转发检测(BFD)。根据本新颖技术,可能在一个或 多个对应的线卡(LC)上建立一个或多个"待命"(standby) BFD会 话,所述LC具有所述束的一个或多个链路(束链路)。 一旦建立,根据 对应的LC的束链路中的一个链路的活动性,将待命BFD会话中的一个选 作"活动"BFD会话。例如,可响应于在对应的LC的束链路上接收BFD 消息,选择活动BFD会话。并且,可从活动BFD会话的束链路中的一 个,例如接收BFD消息的链路,发送BFD消息。响应于发送链路的不活 动(例如,失效、移除等),活动BFD会话可切换到另一个可用活动束链 路,并且,如果对于活动BFD会话,没有其它活动束链路可用,则将待命 BFD会话中的一个选作新的活动BFD会话。倘若不存在其它待命BFD会 话,则确定该链路束已经失效。
本新颖技术有利地在计算机网络中有效地和动态地维护一束链路上的 BFD会话。通过在对应的LC上的一个或多个待命BFD会话交替作为用于 一束链路的活动BFD会话,本新颖技术提供了比集中BFD会话更好的性 能、可扩展性和可靠性。例如,LC上的BFD会话可继续操作,而与管理 LC的集中处理(例如,路由处理器,RP)的失效无关。并且,通过维护 待命BFD会话,可能更快地处理链路和/或LC的失效,因此,可能使用 更主动的BFD超时。此外,本新颖技术(例如,选择活动BFD会话)的 动态特性减轻了麻烦的手动配置的需要。


联系附图,参考以下描述可以更好地理解本发明的上述和其它优点,
在附图中,相似的参考标号指示相同的或功能类似的元件,其中
图1是可有利地与本发明一起使用的示例性计算机网络的示意性框
图2是可有利地与本发明一起使用的示例性节点的示意性框图3是可根据本发明使用的示例性BFD消息的示意性框图; 图4是举例说明根据本发明建立用于一束链路的BFD会话的过程的流 程图5是举例说明根据本发明用于传(pimt)接收到的BFD消息的过程 的流程图6是举例说明根据本发明基于接收到的BFD消息切换活动BFD会 话的过程的流程图;
图7举例说明根据本发明响应已确定的可能的束链路失效的过程的流 程图;和
图8是可有利地与本发明一起使用的具有三个节点之间的链路束的示 例性计算机网络的示意性框图。
具体实施例方式
图1是示例性计算机网络100的示意性框图,计算机网络100包括如 图所示互连的多个节点A-C,节点A-C例如是路由器、交换机或者其它网 络装置。例如,节点A可经由设置为第一束接口 (链路束)的多个链路连 接到节点C,并且节点B可经由设置为第二链路束的多个链路连接到节点 C。举例说明,节点A和节点B可实现为路由器(层3),同时节点C可 实现为交换机(层2)。如此,本技术领域的技术人员可以理解对路由 器A和B中的每一个,看起来链路束都是从A到B的单个链路束(层 3)。节点可能是一个或者多个自治系统、路由选择域、或者其它网络或 子网的一部分。这些示例仅仅是代表性的。本技术领域的技术人员可以理 解任何数量的路由器、交换机、节点、链路等都可用在计算机网络100 中,并且可以以各种方式连接,并且在此所示的视图是为简单起见。例 如,本技术领域的技术人员可以理解,节点可包括实现为虚拟局域网
(VLAN)的连接。
数据分组可以通过节点A-C使用预定的网络通信协议进行传送,所述 网络通信协议例如是传输控制协议/网际协议(TCP/IP)、用户数据报协议
(UDP)、异步传输模式(ATM)协议、帧中继协议、互联网分组交换
(IPX)协议等。具体网络内的路由决定可能依赖于预定的"内部"网关 协议(IGP),例如传统的链路状态或距离矢量协议。此外,使用例如边 界网关协议(BGP)之类的"外部"网关协议,还可在网络间交换包含网 络拓扑信息的数据分组。本技术领域的技术人员可以理解还可在网络内 或者网络间使用其它通信协议,并且上面提及的那些只是代表性的。
图2是示例性节点200的示意性框图,节点200可有利地与本发明一 起使用,节点200例如是路由器。该节点包括经由系统总线250互连的多 个网络接口 210 (例如,线卡,LC)、处理器220和存储器240。网络接 口 210包括机械的、电的、信号的电路,用于在耦合到网络IOO的一个或 多个物理链路上传输数据。网络接口还可配置为使用各种不同的通信协议 发送和/或接收数据,所述通信协议主要包括TCP/IP、 UDP、 ATM、同步 光网络(SONET)、无线协议、帧中继、以太网、光纤分布式数据接口
(FDDI)等。注意,本领域技术人员可以了解,物理网络接口 210还可用 于实现一个或多个例如用于VPN访问的虚拟网络接口 。
存储器240包括可由处理器220 (例如,路由处理器,RP)和网络接 口 210寻址的多个存储位置,用于存储与本发明有关的软件程序和数据结 构。处理器220包括适于执行所述软件程序并操控所述数据结构(例如路 由表或者虚拟路由表(未示出))必需的元件或者逻辑。路由器操作系统 242 (例如,思科系统公司的Internetworking Operating System或IOSTM) 主要通过调用支持在路由器上执行的软件处理和/或服务的网络操作而在功 能上组织路由器,路由器操作系统242的部分通常位于存储器240中并且 由处理器执行。这些软件处理和/或服务可能包括路由服务247、双向转发 检测(BFD)服务244 (例如,集中BFD服务),和接口间关系(IIR) 模块249。对本领域技术人员而言显而易见包括各种计算机可读介质的 其它处理器和存储装置都可用于存储和执行与在此描述的本发明有关的程
序指令。
路由服务247包含计算机可执行的指令,所述指令由处理器220执 行,以实现由一个或多个诸如OSPF、 IS-IS、 BGP等的路由协议提供的功 能。这些功能可能配置为管理转发信息数据库(未示出),所述数据库例 如包含用于作出转发决定的数据。本技术领域的技术人员可以理解,路由 服务247还可执行与虚拟路由协议相关的功能,例如维护虚拟路由/转发
(VRF)实例(未示出)等。
IIR模块249 (或"束成员服务")包含计算机可执行指令,处理器 220执行所述指令来交换和解释关于束的信息,对于所述的束,节点200 容宿一个或多个束链路。例如,路由器A和B可能交换IIR通知以分别告 知彼此与束有关的事件,例如束内的链路创建、链路删除以及链路状态变 化(例如,活动、不活动)(即,链路完整性控制消息)。本技术领域的 技术人员可以理解,容宿一个或多个束链路的节点可以通过交换通知(与 IGP和/或BGP通知类似)来同步其信息,所述通知例如可能包括接口句 柄(interface handle)、接口状态、接口类型、成员带宽、成员标识符
(ID)等。本领域技术人员还可以理解,在此,IIR模块的使用只是代表 性的,并且根据本发明,还可使用本领域技术人员已知的用于获取链路束 信息的其它装置。
BFD服务(或处理)244包含计算机可执行的指令,根据两个系统/装 置之间的BFD控制分组("BFD消息")的传输,处理器220执行所述 指令以验证两个系统/装置之间的连接。例如,假设路由器A希望使用 BFD验证其到路由器B (即经由交换机C)的连接。路由器A可发送BFD 消息给路由器B,并且路由器A根据例如在特定时间段内来自路由器B的 响应/无响应验证连接。如果路由器A在该时间段内没有接收到来自路由 器B的响应,则因此路由器A确定BFD会话已经失效或者"超时"(或 者"down")。(注意,以下提供对根据本发明用于链路束的这个处理更 详细的描述。)
图3举例说明可由BFD节点/路由器200发送的示例性BFD消息 300 。举例说明,BFD消息300是普通的BFD消息,并且因此,本技术领
域的技术人员可以理解,其它BFD消息可能相应地包括其它域。消息300 包括封装协议报头310、可选BFD报头域315、鉴别符值(例如,"我的 鉴别符"和域"你的鉴别符")域320和用于其它BFD信息的域325。本 技术领域的技术人员可以理解,BFD消息300在适合环境(例如, TCP/IP、 MPLS等)的封装中发送。因此,封装协议报头310包含对于特 定封装类型而言标准的信息。报头内的源地址312和目的地址313可以是 分别用于发送装置和接收装置的网络地址。
BFD报头域315可包括标准BFD报头信息,例如BFD版本号、消息 长度、某些标记等或者由发送装置配置的其它信息(更多或者更少)。例 如,状态域316可包括在报头315中,状态域316指示发送节点处的BFD 会话的状态(例如由BFD服务244的BFD状态机维护的UP、 DOWN、 INIT或者ADMINDOWN),然后,接收节点可使用状态域316相应地更 新其BFD会话状态。因为发送装置一次可能建立多于一个BFD会话(例 如,与同样的接收装置,或者其它接收装置),因此,鉴别符域320包含 足够的信息以在接收装置接收到了 BFD消息之后将BFD消息300解复用 到正确的BFD会话。示例鉴别符可能是标识每个BFD会话的不透明值, 并且在每个装置处的所有BFD会话中是唯一的。例如,"我的鉴别符"值 在发送装置处必须是唯一的,而"你的鉴别符"值在接收装置处必须是唯 一的。此外,可根据BFD协议使用其它BFD信息域325,例如时间间隔 值、认证等。注意,本技术领域的技术人员可以理解,BFD可跨越任何数 量的链路并且在例如物理的、数据链路的、网络的、虚拟的等的任何层进 行操作。如上所述,在以上结合的题为《双向转发检测》(Bidirectional Forwarding Detection <draft-ietf-bfd-base-04.txt>)的互联网草案中进一步描 述了 BFD协议。
本发明涉及一种技术,所述技术用于在计算机网络中有效地和动态地 维护一束链路上的BFD。根据本新颖技术,在一个或多个对应的LC上建 立一个或多个"待命"BFD会话,所述LC具有一个或多个所述束的链路 (束链路)。 一旦建立"待命"BFD会话,则根据对应的LC的束链路中 的一个链路的活动性将待命BFD会话中的一个选作"活动"BFD会话。
例如,可响应于在对应的LC的束链路上接收BFD消息,选择活动BFD 会话。此外,BFD消息还可从活动BFD会话的束链路中的一个发送,例 如接收BFD消息的链路。响应于传输链路的不活动(例如,失效、移除 等),活动BFD会话会切换到另一个可用的活动束链路,并且如果对活动 BFD会话,没有可用的其它活动束链路,则将待命BFD会话中的一个选 作新的活动BFD会话。倘若不存在其它待命BFD会话,则确定链路束己 经失效。
根据本发明,BFD服务244,例如在节点200的RP 220上执行的 "主"BFD处理,通过创建一个或者多个"代理"BFD会话来发起链路束 BFD会话,所述"代理"BFD会话在每个容宿束的链路的LC 210a-n的 BFD服务212a-n上执行。例如,图1中的路由器A可能希望监控到路由 器B的连接(例如,通过链路束或者通过束VLAN)。如此,路由器A的 容宿连接到路由器B (本技术领域的技术人员可以理解,例如,经由交换 机C)的束的链路的每个LC 210建立代理BFD会话。 一旦建立了代理 BFD会话,就可将BFD责任给予那些会话,使得代理BFD会话从主BFD 会话完全(100%)自治。因此,倘若RP (或控制卡)失效、变更、重启 等(即,主BFD服务244变为"离线"),则链路束BFD会话仍然可在 LC 210的BFD服务212上操作。
此外,根据本发明,将新状态"STANDBY"添加到BFD协议的状态 (即,UP、 DOWN、 INIT和ADMINDOWN)。新的STANDBY状态是 BFD会话212a-n的BFD状态机的内部状态,即,该状态不会发送到BFD 会话的接收节点(例如,在BFD消息300的状态域316中)。在代理 BFD会话的建立期间,每个代理BFD会话置于STANDBY状态,g卩,建 立为待命BFD会话。
一旦建立,每一个待命BFD会话确定是否应该根据所有待命BFD会 话所使用的算法将其指定为活动BFD会话。通过使用相同的算法,可基本 确保只有一个待命BFD会话会确定其是活动BFD会话。例如,简单的算 法可包括选择具有最低标识符值(例如,"1")的LC上的BFD会话。 本技术领域的技术人员可以理解,根据本发明可使用其它算法来初始选择
活动BFD会话。而且,初始选择算法可能是比通常在BFD的高速要求中 必需的算法更慢的算法,这是因为BFD会话(和BFD消息的发送)尚待 激活(即,有待变成"UP")。确定其应该是活动BFD会话之后,指定 的活动BFD会话就可将其活动状态通知给其余的待命BFD会话,从而防 止任何不一致(注意,本技术领域的技术人员可以理解,例如最坏的情况 "竞争情况")。可由活动和待命BFD会话的"通知"处理213a-n执行 活动和待命BFD会话之间的通信,例如以上活动状态通知。(主BFD会 话244还可具有通知处理245来与代理(活动的和/或待命的)BFD会话通 信。)注意,倘若将新的链路添加到新LC上的链路束上,则新LC相应 地建立待命BFD会话。
选择活动BFD会话(例如,在路由器A的LC 210上)之后,活动 BFD会话可根据BFD协议将BFD消息300发送给接收节点(例如,路由 器B)。倘若活动BFD会话容宿多于一个束链路,则选择单个链路作为发 送链路。本技术领域的技术人员可以理解,BFD会话可使用活动(分发) 束链路,除非没有活动链路,在没有活动链路的情况下,BFD会话可配置 为使用不活动(收集)链路(本技术领域的技术人员还可以理解,例如使 用短的一段时间直到活动链路变得可用)。如上所述,BFD消息300的状 态域316只包含UP、 DOWN、 INIT和ADMINDOWN状态中的一个。注 意,活动BFD会话的状态可与待命BFD会话共享(例如,通过通知处理 213)。
本技术领域的技术人员可以理解,由于链路束的特性(例如,尤其是 如图1那样,两个节点之间的层2交换机的任一侧的两个链路束),在 BFD消息的发送期间会产生不对称路径。换而言之,节点的活动BFD会 话可能已经选择发送链路来发送BFD消息,但是,节点可能在另一个链路 上接收返回的BFD消息,所述另一个链路可能在另一个LC上。响应于 此,本发明可以将接收到的BFD消息从接收LC "传"(转发)到活动 (发送)LC,或者将接收LC的活动BFD会话切换到待命BFD会话。 为了传接收到的BFD消息,接收BFD会话可以快速将接收到的BFD 消息转发给活动BFD会话以用于处理。更优化的方法可能是在链路束
BFD会话初始建立期间传接收到的BFD消息,但是,然后只在BFD事件 发生时,从接收待命BFD会话发送通知。例如, 一旦待命BFD会话开始 接收BFD消息,该待命BFD会话就可通知活动BFD会话(例如,经由通 知处理213)其正在接收BFD消息。随后,如果接收到的BFD消息停止 到达(即,BFD会话超时),则接收待命BFD消息可能只将另外的通知 发送给活动BFD会话。或者,接收返回的BFD消息的待命BFD会话可选择其自身作为活动 BFD会话,然后,活动BFD会话可在接收返回消息的相同链路上开始发 送BFD消息。通过此,原来不对称的路径可能变成对称路径(至少由节点 看起来),在相同束链路上发送和接收BFD消息。并且,通过维护单个活 动BFD会话(用于发送和接收两者),不需要多个LC与其它LC共享信 息和资源。新的活动BFD会话可能通知其它BFD会话(即,待命BFD会 话和之前的活动BFD会话)其已经承担活动BFD会话的角色。并且, 当待命BFD会话承担活动BFD会话的角色时,之前的BFD活动会话可配 置为在之前的束链路上继续发送BFD消息,直到确认新的活动BFD会话 的新链路在发送消息(例如,通过来自通知处理213的通知了解到)。这 有助于防止因涉及切换到新的活动BFD会话的任何延迟而引起的链路束的 错误失效通告。此外,接收到已经选择新的活动BFD会话的通知,之前的 活动BFD会话就进入STANDBY状态,从而变成待命BFD会话。
注意,当根据接收的BFD消息切换活动BFD会话时,例如由于接收 BFD节点一般未知的问题或者其它原因,对等BFD节点(即,发送接收 到的BFD消息的节点)可能频繁改变链路。如果这发生,则接收BFD节 点可能会定期地将BFD会话重新容宿到新的活动BFD会话,这是不期望 的。此外,假设两个BFD节点都以这种方式振荡,则BFD会话可能永远 不会同步,并且永远不会起作用(即,UP)。为防止这样,可引入可选的 定时器,因此在响应于接收BFD消息而切换活动会话之前必须经过一最小 量的时间。
在活动BFD会话已被选择且发送BFD消息300的情况下,可以在没 接收到返回的BFD消息时,或者通过一些其它内部检测机制(即,当链路
在内部失效时),检测到可能的链路失效。注意,在另一个链路上接收到
的返回BFD消息也可指示可能的链路失效,并且可以以上述方式对其响 应。如果可能的链路失效发生,则活动BFD会话快速选择另一个可用的束 链路,在其上开始发送BFD消息。如果活动BFD会话不容宿其它束链 路,则另一个待命BFD会话快速承担起活动BFD会话的角色,这例如是 由之前活动BFD会话通知的,或者响应于待命会话自身的选择算法(例 如,从活动BFD会话获知可能的链路失效之后)进行的。在这种情况下, 如上所述,新的活动BFD会话可将其状态变化通知其它BFD会话(例 如,以确保活动BFD会话之间没有不一致)。此外,因为具有之前活动 BFD会话212的LC210不再容宿该束的任何链路,所以,该LC可能随后 移除之前的活动BFD会话。本技术领域的技术人员可以理解,活动链路变 成不活动可以以与链路失效相同的方式对待,只不过不活动链路仍然与束 有关(即,未删除)。
容宿用于一个或多个束链路的活动BFD会话的LC的移除可以以与可 能的链路失效相同的方式对待。例如, 一般可将LC已经被移除(例如, 在线插入和移除,OIR移除)的通知发送到容宿束链路的其它LC,以将 那些移除的链路标记为已删除(即,不再是束的一部分)。如果被移除的 LC原本容宿活动BFD会话,则剩下的待命BFD会话必须就其中哪一个要 变成新的活动BFD会话进行选择。通常,LC的移除可能是"适度的" (graceful)事件,其中,或者是被移除的LC自己或者是RP (控制卡) 会在移除之前或者快速地在移除之后发送通知给剩下的LC。另一方面, LC失效要求RP快速将其失效告知其它LC,否则可能造成对等BFD节点 的错误失效检测。例如,当LC"脑死亡"(无响应)时,这可能会更频 繁地发生,这是因为RP和/或其它LC可能经过比高速BFD超时时段还长 的一段时间才意识到其失效。
一旦活动BFD会话切换到新的LC (例如,响应于链路失效,LC移 除/失效等),活动BFD会话就在其可用束链路中的一个链路上开始发送 BFD消息。响应于此,接收到的BFD消息不再利用之前的LC。如果在新 的活动BFD会话的LC上接收已接收到的消息,则实现了对称路径。另
外,在待命BFD会话处接收到BFD消息,则产生非对称路径,这可以如 上所述进行调节(例如,传消息或者切换活动会话)。
重要的是,对等BFD节点也快速适应链路/LC失效或移除。例如,如 果对等BFD节点继续发送BFD消息给失效的LC,则当活动BFD会话没 有接收到返回的BFD消息(或者关于在待命BFD会话处接收到的BFD消 息的通知)时,可能产生错误失效检测。并且,例如,如果LC失效,则 多个束链路会对应地变得不可用。因为定时对BFD如此重要,以致非常期 望在每个BFD会话处存在链路束的最新拓扑。否则,当从一个链路/LC切 换到另一个链路/LC时,在找到一个存在的并且可以适当地使用的链路/LC 之前可能尝试不存在的链路/LC。可使用1IR模块249 (如上所述)在对等 BFD节点之间尽可能快地传递更新的束信息。此外,因为BFD的高速要 求,在响应接收到的IIR消息而根据上述本发明调整任何东西(例如,切 换链路或者活动BFD会话)之前,接收IIR消息的BFD节点处理所述消 息的所有信息,即,以保证在计算期间考虑多个事件(例如,多个链路失 效)。
根据本发明,倘若没有剩下可承担活动BFD会话角色的链路束的 BFD会话(例如,没有LC容宿束链路),或没有BFD会话(活动的或待 命的)在可配置的超时时段中已接收到返回的BFD消息,则活动BFD会 话(例如,最后剩下的活动BFD会话)可确定该链路束已经失效(即, 是"down")。本技术领域的技术人员可以理解,响应于快速的链路束 BFD失效检测,然后可应用各种束/节点保护技术,更新路由器,产生错 误消息等。
图4是举例说明根据本发明建立用于一束链路的BFD会话的过程的流 程图。过程400在步骤405开始,并且继续到步骤410,其中在例如路由 器A和B的对等BFD节点上配置链路束。在步骤415,在至少容宿束中 一个链路的LC上建立一个或多个待命BFD会话(例如,通过路由器A的 RP或控制卡)。随后,如上所述,例如根据算法,将待命BFD会话中的 一个选作活动BFD会话。注意,活动BFD会话可能将其是活动BFD会话 通知待命BFD会话。在步骤425,活动BFD会话开始从束的特定链路发送BFD消息,例如,与对等BFD路由器(例如,路由器B)交换BFD初 始化消息和BFD消息。然后,建立BFD会话的过程400在步骤430结 束。如上所述,根据BFD节点(路由器A)的配置,或者传接收到的 BFD消息(图5)或者使用接收到的BFD消息来切换活动BFD会话(图 6)。
图5是举例说明根据本发明用于传接收到的BFD消息的过程的流程 图。过程500在步骤505开始,继续到步骤510,其中,活动BFD会话 (例如,路由器A的)从束的特定链路发送BFD消息。如果在步骤515, 从对等BFD节点(例如,路由器B)返回BFD消息,并且在步骤520 中,在活动BFD会话处(例如,在发送链路上或其它链路上)接收到所述 BFD消息,则该过程继续在步骤510中从活动BFD会话发送BFD消息。 然而,在步骤520,倘若没有在活动BFD会话处接收到返回的BFD消 息,B卩,在另一个(待命)BFD会话处接收到返回的BFD消息,则接收 待命BFD会话可将该BFD消息传到活动BFD会话(未示出)。如上所 述,传的优化在步骤525开始,其中,如果在待命BFD会话处接收到的 BFD消息是在待命BFD会话处接收的第一BFD消息(例如,总的第一个 或者超时后的第一个),或者,如果该BFD消息是BFD初始化消息交换 的部分,则在步骤530,待命BFD会话将接收到的BFD消息通知给活动 BFD会话(或者将该消息传给活动BFD会话,例如用于初始化消息)。 如果在步骤525,待命BFD会话处的接收到的BFD消息不是在待命BFD 会话处接收到的第一 BFD消息,则过程500继续到步骤510,从活动BFD 会话(即,还未超时的会话)发送BFD消息。
对传BFD消息进一步优化,如果在步骤515,未接收到返回的BFD 消息,并且在步骤535,该BFD会话(例如,待命BFD会话)之前一直 在接收BFD消息,则在步骤540,该BFD会话将该BFD超时通知活动 BFD会话。注意,在步骤540,如果活动BFD会话之前一直在接收BFD 消息,则活动BFD会话也可以确定该BFD会话已经超时。此外,如果在 步骤535, BFD会话之前并没有一直在接收BFD消息,则该BFD会话不 采取任何动作,并且过程500继续在步骤510从活动BFD会话发送BFD
消息。在步骤540的超时通知后,如果在步骤545,另一个BFD会话已经 及时接收到返回的BFD消息,则过程500继续在步骤510从活动BFD会 话发送BFD消息。否则,在步骤545,没有BFD会话(活动或者待命) 已经接收到返回的BFD消息,贝U,在步骤550,活动BFD会话可以确定 (至少)发送链路可能的失效。过程500在步骤555结束,例如,以如下 文的图7所示对可能的失效的链路作出响应。
图6是举例说明根据本发明基于接收到的BFD消息切换活动BFD会 话的过程的流程图。过程600在步骤605开始,并且继续到步骤610,其 中,活动BFD会话(例如,路由器A的)从束的特定链路发送BFD消 息。如果在步骤615, BFD消息从对等BFD节点(例如,路由器B)返 回,并且在步骤620,在发送链路上(即,活动BFD会话处)接收到该 BFD消息,那么,过程继续在步骤610从活动BFD会话发送BFD消息。 如果在步骤620,在该发送链路上未接收到该BFD消息,但是在步骤 625,在活动BFD会话的LC上接收到该BFD消息,那么,在步骤630, 活动BFD会话将其本身配置为在接收链路上发送将来的BFD消息,并且 继续在步骤610中发送BFD消息。然而,如果在步骤625,在待命BFD 会话的LC上接收到BFD消息,则在步骤635中活动BFD会话变成待命 BFD会话,并且在步骤640,接收待命BFD会话变成活动BFD会话。新 的活动BFD会话在步骤630将其本身配置为在接收链路上发送将来的 BFD消息,并且继续在步骤610发送BFD消息。如果在步骤615没有 BFD会话(活动的或者待命的)及时接收到了返回的BFD消息,则在步 骤645,活动BFD会话可以确定(至少)发送链路的可能的失效。过程 600在步骤650结束,例如,以如图7所示对可能的失效的链路作出响 应。
图7是举例说明根据本发明响应已确定的可能的束链路失效的过程的 流程图。过程700在步骤705开始,并且继续到步骤710,其中,例如, 已如以上图5或图6 (或通过其它内部链路失效检测机制)确定可能的链 路失效。如果在步骤715,在活动BFD会话处有其它可用的链路,则在步 骤630,活动BFD会话将其本身配置为在另一个可用链路上发送将来的
BFD消息,并且过程700在步骤750结束(例如,回到图5或图6来发送/ 处理BFD消息)。如果在步骤715,在活动BFD会话处没有其它可用的 链路,则在步骤725,对应的LC移除活动BFD会话(即,因为LC不再 容宿该束的可操作的链路)。如果在步骤730,还有可用的待命BFD会 话,则在步骤735,将待命会话中的一个选作新的活动BFD会话。然后, 在步骤740中,新的活动BFD会话发送BFD消息,并且过程700在步骤 750结束(例如,返回到图5或图6来发送/处理BFD消息)。另一方面, 如果在步骤730,没有剩下的待命BFD会话,则在步骤745中,或者最后 的活动BFD会话(在移除之前)或者主BFD会话(例如,在RP上)确 定链路束己经失效,并且,过程700在步骤750结束,例如,用于BFD节 点执行节点保护技术等。
注意,本技术领域的技术人员可以理解虽然以上描述使用传统的 BFD消息,但是,在此描述的技术还可以应用到BFD Echo消息(未经对 等节点处理/使用而返回到发送BFD节点)。然而,如上所述,Echo消息 可能不会返回到发送该消息的相同LC (或BFD会话),并且,需要相应 地进行处理。
此外,在本发明的一个可替换实施例中,在RP (控制卡)上执行的 主BFD会话可作为活动BFD会话,与至少一个在容宿束链路的LC上执 行的其它待命BFD会话进行操作。以这种方式,RP失效备援可以就视作 如上所述的活动BFD会话失效/移除。然而,该可替换实施例仍然利用宝 贵的RP资源,并且在性能和/或可扩展性方面可能不是最优的。然而,本 技术领域的技术人员可以理解,在各种情况和配置中,这可以提供有益的 方法。
有利地,该新颖技术在计算机网络中有效地和动态地维护在一束链路 上的BFD。通过在一个或多个在对应的LC上的待命BFD会话之间交替作 为一束链路的活动BFD会话,该新颖技术提供了比集中BFD会话更好的 性能、可扩展性和可靠性。例如,LC上的BFD会话可继续操作,而与管 理该LC的集中处理(例如,路由处理器,RP)的失效无关。此外,通过 维护待命BFD会话,链路和/或LC失效的处理可能更快,因此,可能使
用更主动的BFD超时。此外,该新颖技术(例如,选择活动BFD会话) 的动态特性减轻了麻烦的手动配置的需要。
虽然已经示出和描述在计算机网络中有效地和动态地维护在一束链路 上的BFD的说明性实施例,但可以理解,在本发明的精神和范围以内可以 做出各种其它适应和修改。例如,在此己经示出和描述的发明用于维护两 个节点之间的一束链路上的BFD。然而,在更广泛的意义上,本发明并不 局限于此,并且,事实上,还可以应用到多个节点之间的链路束。图8示 出在三个节点之间具有链路束的示例性计算机网络800,其中,如图所 示,节点X具有到节点Y和Z两者的链路束。根据本发明,例如经由两 个节点中的通知处理245之间的通信协议,在节点Y和Z两者上的线卡必 须如上所述地快速传输待命和活动BFD会话的状态。本技术领域的技术人 员可以理解,图8只是三个或更多节点之间的链路束的示例,并且本发明 可使用其它配置。
此外,虽然,参考图1的以上描述提到BFD对等方之间的交换机(交 换机C),但对于本发明,交换机不是必须的,并且只是一个示例。本技 术领域的技术人员可以理解本发明可用于共享同等数量束链路的背对背 节点(路由器)(即, 一对一链路映射)。本技术领域的技术人员还可以 理解,虽然上面给出的示例一般地提到接口和链路,但是如上所述,根据 本发明,可使用物理的和虚拟的接口和/或链路两者,例如包括,用于对 VLAN成束的链路。此外,虽然上述示例将路由器作为对等BFD节点提 到,但是,根据本发明,可以使用能够执行BFD服务的任何网络节点。
前面的描述涉及了本发明的特定实施例。然而,显而易见,可以对所 述实施例做出其它变化和修改,而保留其一些或全部优点。例如,可以清 楚地设想本发明的教导可以实现为软件,所述软件包括具有可在计算 机、硬件、固件,或其结合上执行的程序指令的计算机可读介质。此外, 还可以产生电磁信号来携带计算机可执行指令,所述指令例如在无线数据 链路或诸如互联网之类的数据网络上实现本发明的技术方案。因此,此描 述仅仅作为示例的方式并且不限制本发明的范围。因此,所附权利要求的 目标是覆盖所有在本发明真正精神和范围以内的所有这样的变化和修改。
权利要求
1. 一种方法,用于在计算机网络中有效地动态维护一束链路上的双向转发检测(BFD),所述方法包括在一个或多个对应的线卡(LC)上建立一个或多个待命BFD会话,所述一个或多个LC具有所述束中的一个或多个链路(束链路);以及根据所述对应LC上的所述一个或多个束链路中的一个链路的活动性,将所述一个或多个待命BFD会话中的一个选作活动BFD会话。
2. 根据权利要求1的方法,还包括从具有活动束链路的任何待命BFD会话中初始选择活动BFD会话。
3. 根据权利要求1的方法,还包括响应于在所述对应LC的束链路上接收BFD消息,选择所述活动BFD 会话。
4. 根据权利要求1的方法,还包括从所述活动BFD会话中的一个或多个束链路发送BFD消息。
5. 根据权利要求4的方法,还包括响应于在所述对应LC的束链路上接收BFD消息,选择所述活动BFD 会话;以及从接收BFD消息的束链路发送BFD消息。
6. 根据权利要求4的方法,还包括响应于所述发送束链路的不活动,其中,所述活动BFD会话具有一个 或多个其它活动束链路,从所述一个或多个其它活动束链路中的一个链路 发送BFD消息。
7. 根据权利要求4的方法,还包括响应于所述发送束链路的不活动,其中,所述活动BFD会话没有其它 活动束链路,将所述一个或多个待命BFD会话中的一个选作活动BFD会 话。
8. 根据权利要求1的方法,还包括 在待命BFD会话的束链路上接收BFD消息;以及将所述BFD消息从所述待命BFD会话传给所述活动BFD会话。
9. 根据权利要求1的方法,还包括响应于选择新的活动BFD会话,将所述活动BFD会话配置为待命 BFD会话。
10. 根据权利要求1的方法,还包括响应于LC没有用于所述束的活动链路,从该LC移除BFD会话。
11. 根据权利要求10的方法,还包括倘若不存在活动BFD会话和待命BFD会话,则确定所述链路束己经 失效。
12. 根据权利要求1的方法,还包括倘若没有活动BFD会话和待命BFD会话在束链路上接收BFD消息, 则确定所述链路束已经失效。
13. 根据权利要求1的方法,还包括 将新的LC的新链路关联到所述束;以及 在所述新的LC上建立新的待命BFD会话。
14. 根据权利要求1的方法,还包括通过将BFD会话置于STANDBY状态,将所述BFD会话配置为待命 BFD会话。
15. 根据权利要求1的方法,还包括响应于从以下一组事件中选出的事件,将束链路认为是不活动的,所 述一组事件包括以下事件束链路失效、束链路移除、对应的LC的失效和对应的LC的移除。
16. 根据权利要求1的方法,其中,所述链路束是网际协议(IP)束或 者是虚拟专用网(VPN)束。
17. —种用于在计算机网络中有效地动态维护一束链路上的双向转发 检测(BFD)的设备,所述设备包括用于在一个或多个对应的线卡(LC)上建立一个或多个待命BFD会 话的装置,所述一个或多个LC具有所述束的一个或多个链路(束链 路);以及用于根据所述对应LC上的所述一个或多个束链路中的一个链路的活 动性,将所述一个或多个待命BFD会话中的一个选作活动BFD会话的装 置。
18. —种计算机可读介质,包括用于在计算机网络中有效地动态维护 一束链路上的双向转发检测(BFD)的可执行程序指令,所述可执行程序 指令包括以下程序指令用于在一个或多个对应的线卡(LC)上建立一个或多个待命BFD会 话的程序指令,所述一个或多个LC具有所述束的一个或多个链路(束链 路);以及用于根据对应LC上的所述一个或多个束链路中的一个链路的活动 性,将所述一个或多个待命BFD会话中的一个选作活动BFD会话的程序 指令。
19. 一种节点,用于在计算机网络中有效地动态维护一束链路上的双 向转发检测(BFD),所述节点包括一个或多个线卡(LC),所述线卡具有所述束的一个或多个链路(束 链路);以及一个或多个处理器,每个处理器耦合到所述一个或多个LC中的一个 并且适于执行软件处理;以及适于存储可由每个所述处理器执行的BFD处理的存储器,所述处理器 的所述BFD处理共同配置为i)在一个或多个对应的LC上建立一个或 多个待命BFD会话;以及ii)根据所述对应LC上的所述一个或多个束链 路中的一个链路的活动性,将所述一个或多个待命BFD会话中的一个选作 活动BFD会话。
全文摘要
一种在计算机网络中有效地动态维护一束链路上的双向转发检测(BFD)的技术。根据本新颖技术,可在一个或多个对应的线卡(LC)上建立一个或多个“待命”BFD会话,所述LC具有所述束的一个或多个链路(束链路)。一旦建立,就可根据对应的LC的束链路的活动性,将所述待命BFD会话中的一个选作活动BFD会话。并且,可从活动BFD会话的束链路(例如,接收BFD消息的链路)中的一个发送BFD消息。响应于发送链路的不活动(例如,失效、移除等),活动BFD会话可切换到另一个可用的活动束链路,并且,如果对所述活动BFD会话,没有其它可用的活动束链路,则将待命BFD会话中的一个选作新的活动BFD会话,如果不存在其它待命BFD会话,则确定所述链路束已经失效。
文档编号H04L12/28GK101395853SQ200780007538
公开日2009年3月25日 申请日期2007年2月6日 优先权日2006年3月2日
发明者大卫·P·托斯卡诺, 尼尔·R·凯特利, 戴维·D·沃德, 拉沙德·A·拉赫曼, 斯尔万恩·玛斯 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1