Igp中的bgp下一跳路由的自动路由标记的制作方法

文档序号:7949042阅读:445来源:国知局
专利名称:Igp中的bgp下一跳路由的自动路由标记的制作方法
技术领域
本发明一般地涉及计算机网络,更具体而言,涉及用于增强计算机网络中的收敛(convergence)的技术。
背景技术
计算机网络中的数据通信涉及两个或更多个通过通信链路和子网互联的实体之间的数据交换。这些实体通常是在硬件计算机平台(例如最终节点和中间网络节点)上执行的软件程序。中间网络节点互连通信链路和子网,以使得数据能够在最终节点(例如个人计算机或工作站)之间传输。局域网(LAN)是提供互连节点之间的相对较短距离通信的子网的一个示例,而广域网(WAN)使得能够通过由公共或私有电信设施所提供的链路进行长距离通信。因特网是连接全世界的不同计算机网络以提供各种网络上的节点之间的全球通信的WAN的一个示例。
在节点上执行的通信软件把与其他节点的数据通信关联起来并对其进行管理。节点通常通过根据预先定义的协议交换离散的消息或数据分组来进行通信,所述协议例如是传输控制协议/因特网协议(TCP/IP)。在此上下文中,协议由定义节点如何彼此交互的一组规则构成。另外,在中间节点上执行的网络路由选择(routing)软件允许将通信扩展到其他节点。总之,这些硬件和软件成分构成计算机网络的集合。
由于可以证明计算机网络的管理是繁重的,因此一个或多个计算机网络的较小群组可以作为分开的路由选择域或自治系统(AS)来维护。在此上下文中,路由选择域被广泛构造为同一地址空间(例如一个级别、区域或AS)内的互连节点的集合,而AS是由单个管理实体管理的路由选择域,所述管理实体例如是一个公司、学术机构或政府分支。为了互连分散的网络和/或提供因特网连通性,很多组织依赖于因特网服务提供商(ISP)的基础结构和设施。ISP是AS的一个示例,其通常拥有一个或多个“骨干”网,这些骨干网被配置用于提供到因特网的高速连接。为了互连地理上不同的私有路由选择域,一个组织(客户)可以预订一个或多个ISP并将其私有域网耦合到该ISP的设备。这里,诸如交换机或路由器之类的中间网络节点可被用于互连多个私有网络到IP骨干网。
ISP骨干网一般需要快速收敛,以便向其客户提供可靠服务。在此上下文中,收敛指路由器或网络对故障(failure),更一般而言,对网络事件作出反应并从这些故障中恢复以具有最小中断时间的能力。这种故障的示例包括链路或节点故障。快速收敛因此涉及ISP骨干网非常快速地对这样的链路和节点故障作出反应,从而通过替换路径重路由流量以最小化服务中断的能力。
路由器中快速收敛的主要组件在于路由选择信息库(RIB)。RIB是一个这样的进程,其管理保存了由不同协议计算出的很多(例如数千个)路由的路由选择表,所述协议包括内部网关协议(IGP)和外部网关协议(EGP)。IGP协议(例如传统的链路状态协议)是域内路由选择协议,其定义在路由选择域(例如ISP骨干网)中交换和处理路由选择信息和网络拓扑信息的方式。传统的链路状态协议的示例包括(但不局限于)开放最短路径优先(OSPF)协议和中间系统到中间系统(ISIS)协议。OSPF协议在1998年4月的题为OSPF Version 2的请求注释(RFC)2328中被详细描述,该RFC 2328通过引用被整体上结合于此。ISIS协议在1990年12月的题为Use of OSI IS-IS for Routing in TCP/IP and Dual Environments的RFC 1195中被详细描述,该RFC 1195通过引用被整体上结合于此。
每个运行链路状态协议(即IGP)的路由器维护同样的描述路由选择域的拓扑的链路状态数据库(LSDB)。每条LSDB是特定路由器的本地状态,例如路由器的可用接口和可达邻居或邻接性。这里使用的相邻路由器(或“邻居”)是具有到同一网络的接口的两个路由器,其中接口是路由器和其附接的网络之一之间的连接。此外,邻接性是出于交换路由选择信息和提炼网络拓扑的目的而在所选邻居之间形成的关系。一个或多个路由器邻接性可以被建立在一个接口上。每个路由器根据初始LSDB同步进程和传统的泛播(flooding)算法在整个域上分发其本地状态。
为了保证链路状态协议的收敛,在邻居之间的初始LSDB同步完成之后发起的链路状态协议数据单元(PDU)被递送到泛播范围限制内的所有路由器。PDU被用于在互连的路由器之间交换路由选择信息。取决于链路状态PDU的类型和协议,泛播范围限制可以包含一个区域、级别或完整的AS。一个区域或级别是邻近的网络和节点(主机)的集合或群组以及具有到任何包括的网络的接口的路由器。每个区域/级别运行链路状态路由选择算法的一个单独的拷贝,因此具有其自身的LSDB。在OSPF的情况下,PDU是包含描述路由器或网络的本地状态的数据单元的链路状态通告(LSA),而在ISIS的情况下,PDU是链路状态分组(LSP)。这里使用的LSA一般描述IGP进程用来在节点之间传输路由选择信息,以使得收集的所有路由器和网络的LSA形成特定链路状态协议的LSDB的任何消息。
广泛地讲,在发送方路由器中执行的IGP进程通常生成和散布这样的LSA,其路由选择信息包括节点邻居的列表以及一个或多个与每个邻居相关联的“成本”值。与邻居相关联的成本值是用来确定与该路由器通信的相对难/易程度的任意度量。例如,成本值可以按照到达邻居所需跳数、分组到达邻居的平均时间和/或耦合到邻居的通信链路上的可用带宽或网络流量的量来测量。
LSA通常在路由器之间传输(“通告”),直到每个路由器可以通过聚集接收的邻居列表和成本值而构造出同样的网络拓扑“视图”为止。IGP进程经由LSA通告路由选择域内的路由(“内部路由”),所述LSA通常包括路由器的回送地址和接口/链路地址。回送地址是路由器的一类“虚拟”接口标识符,它是稳定的并且总是可用(不会故障),因此它取代物理接口地址被通告,以确保路由器总是可以到达它的邻居。每个路由器可以将该接收到的路由选择信息输入到“最短路径优先”(SPF)计算,该计算确定将路由器与每个其他网络节点相耦合的最低成本网络路径。公知的Dijkstra算法是用于执行这种SPF计算的传统技术,如1999年9月公布的作者为Radia Perlman的课本Interconnections Second Edition的第12.2.4节所详细描述的。
路由器通常具有包含邻居通告的所有目的地的拓扑表。该拓扑表中的每个条目包括目的地地址和已通告该目的地的邻居的列表。对于每个邻居,条目记录了邻居在其路由选择表中存储的所通告的度量。路由器用来到达目的地的度量也与目的地相关联。路由器在路由选择表中使用并将通告给其他路由器的度量是来自所有邻居的最佳通告度量和到最佳邻居的链路成本之和。拓扑表的一个示例是LSDB,其具有所有路由器、其链路和这些链路在路由选择域中的状态的图。LSDB还具有所有网络和到路由选择域中的每个网络的所有路径的图。
具体而言,LSA被接收方路由器的IGP进程处理并被提供到RIB,以使其能够处理通告(以及其他路由选择信息),以出于填充转发信息库(FIB)的转发表的目的而确定最佳路径。在链路状态协议(例如ISIS和OSPF)中,受故障直接影响(即离故障最近)的路由器经由LSA将该故障通告给网络的其余部分。作为响应,网络中的每个路由器计算新的网络拓扑,从而计算绕过该故障的新路径。为了实现快速收敛,每个路由器的IGP进程重新计算其拓扑表并更新路由选择表来反映该拓扑改变。更具体而言,SPF计算被应用到LSDB的内容以计算到每个目的地网络的最短路径。为此,算法删减替换路径的数据库并创建拓扑路由选择域的无环(loop-free)最短路径树(SPT)。随后,路由选择表被更新以使目的地节点与与SPF计算所确定的到这些节点的最低成本路径相关联的网络接口相关。
多个互连的AS可以被配置为根据EGP(例如边界网关协议版本4(BGP))交换消息。为了实现BGP协议,每个路由选择域(例如AS)包括至少一个“边界”路由器,通过该边界路由器它与其他互连的AS通信。但是,在发送这样的消息之前,路由器合作建立逻辑“对等”连接(会话)。BGP是一种域间路由选择协议,其一般基于可靠传输协议(例如TCP)工作,以建立TCP连接/会话;任何两个出于交换路由选择信息的目的而向彼此开放TCP连接(会话)的边界路由器被称为对等体或邻居。BGP通过在系统的邻居之间交换路由选择(可达性)信息来执行AS之间的路由选择。
由BGP邻居交换的路由选择信息通常包括目的地地址前缀和相关联的路径属性,所述目的地地址前缀即目的地地址中被路由选择协议用来提供路由选择(“下一跳”)判决的部分。这种目的地地址的示例包括因特网协议(IP)版本4(IPv4)和版本6(IPv6)地址,而路径属性的示例是下一跳地址。注意,一组路径属性和一个前缀的组合被称为“路由”;术语“路由”和“路径”这里可互换使用。BGP路由选择协议是公知的,并且在Y.Rekhter和T.Li的请求注释(RFC)1771(1995)、Y.Rekhter和T.Li的题为A Border Gateway Protocol 4(BGP-4)的因特网草案<draft-ietf-idr-bgp4-20.txt>(2003年4月)以及Addison Wesley Publishing Company公布的R.Perlman的Inter-connections,Bridges and Routers的323-329页(1992)中被详细描述,所有这些公开文本通过引用被结合于此。
未处于同一AS中的两个使能BGP的路由器(即BGP讲话者)使用外部BGP(eBGP)交换路由。内部BGP(iBGP)是在AS内的iBGP邻居之间交换路由的BGP的一种形式。AS内的BGP讲话者通常经由全网格iBGP会话布置被连接,以确保所有BGP讲话者从AS中的其他BGP讲话者接收路由更新。当BGP讲话者从多个AS接收描述到同一目的地的不同路径的更新时,该讲话者选择一条最佳路径用于到达该目的地(前缀)。一旦选出,该讲话者就使用BGP将该最佳路径传播到其邻居。判决是基于BGP更新消息中包含的属性值(例如下一跳)以及其他BGP可配置因素的。在此上下文中,BGP下一跳属性是用于到达目的地前缀的下一跳(邻居)的网络(IP)地址。
更具体而言,BGP通告的每个路由必须具有通过IGP可达的下一跳地址,以便使该路由被认为是有效的。就是说,有效的BGP路由必须包含一个属性(例如BGP下一跳地址),该属性进而必须存在于通过IGP的路由器的路由选择表中。在路由器上执行的BGP和IGP(OSPF、ISIS)进程都提供路由(每个前缀的最佳路径)到RIB;但是,在IGP提供的RIB安装到路由选择表中的前缀之中包含被用作BGP下一跳地址的那些前缀。这些BGP下一跳地址例如是BGP下一跳路由器的回送地址。
如上所述,ISP骨干网需要快速收敛,以便向其客户提供可靠的服务。收敛发生在所有路由器具有一致的网络拓扑全景(“视图”)时。拓扑改变之后,例如一个或多个链路和/或节点发生故障之后,路由器重新计算它们的最佳路径;这通常会中断ISP提供的服务。ISP骨干网因此必须能够快速地对这样的故障作出反应,以便通过替换路径重路由流量,并因此最小化服务中断。但是,不是所有路由都需要快速收敛。通常,被用作BGP更新消息内的BGP下一跳属性的路由(地址)被认为是最重要的地址,因为它们实现了路由选择域内和外的连通性。例如,这些下一跳地址通常是用来连接服务器/网关的子网的地址;这样,它们被认为是最重要的,因为BGP依赖于它们执行外部行为,即路由选择域外的行为。但是,用来连接服务器和网关的子网的地址也可以是内部路由选择域的一部分。这里,路由器可以连接语音IP(VoIP)服务器,从而使该路由选择域的所有IP电话依赖于这些服务器。因此,需要区分这些下一跳地址的优先级以实现快速收敛。
用来确定路由选择协议通告的地址对于快速收敛是否重要的已知方法涉及管理员(用户)对一组路由的显式配置。这里,这组路由(地址)是用户在每个路由器上配置为重要的地址块的一部分。另一种用来确定路由选择协议(例如IGP)通告的地址对于快速收敛是否重要的更精确的方法基于路由标注(route labeling)或“路由标记(route tagging)”。路由标记的一个示例是传统的ISIS路由标签(tag),其中用户利用管理标签来“标记”快速收敛所需的每个重要路由。
但是,从所有路由器必须被“手工”配置为处理(以预定重要程度)具有例如预定标签值的路由这种意义上来说,传统的路由标记需要在网络内进行协调。例如,ISP用户/管理员可能利用指定以预定值标记的路由是重要路由的命令来配置在其ISP网络中的每个路由器上运行的IGP(ISIS)路由选择协议。因此,对传统ISIS路由标签的使用的限制在于路由选择域内的路由器之间的协调以及为了实现这种协调而代表管理员执行的大量手工配置。本发明大大减少了标记重要路由所需的手工配置。

发明内容
本发明通过提供一种用于配置中间网络节点以自动确定由路由选择协议通告的路由对于计算机网络中的快速收敛而言是否重要的技术来克服现有技术的缺点。这里所使用的快速收敛所需的重要路由是路由选择协议(例如在节点上执行的外部网关路由选择协议(EGP)进程)通告为下一跳地址的路由,这是因为外部连通性依赖于这样的路由。值得注意的是,EGP进程与在该节点上执行的内部网关路由选择协议(IGP)进程交互,以识别作为重要路由的路由。对重要路由的识别进而允许IGP以高优先级的方式处理该路由,从而辅助快速收敛。
在这里描述的示例性实施例中,中间网络节点是路由器并且IGP进程是中间系统到中间系统(ISIS)协议进程。另外,EGP是边界网关协议(BGP),为此重要路由是代表BGP下一跳属性的路由。本发明的技术例如针对利用例如ISIS路由标记来自动(动态)确定这样的重要路由。更确切地说,本发明的技术允许路由器检测一个IGP路由是否也被用作BGP下一跳属性,如果是,则利用ISIS路由标记将该路由通告到路由选择域中的IGP邻居,从而邻居(和路由器)可以在收敛期间以高优先级处理该路由。
在操作上,在路由器上执行的用于将内部BGP(iBGP)路由注入路由选择域的BGP进程还与在路由器上执行的IGP进程交互,以识别被用作注入到该域中的那些iBGP路由的BGP下一跳属性的本地前缀。利用ISIS路由标记,路由器将本地前缀标记为对收敛而言重要的路由并在域内通告标记的路由。作为响应,在路由选择域内的所有IGP路由器(包括路由器)可以检测标记的路由的重要性并在收敛处理期间对该路由应用高优先级。
有利的是,本发明提供了这样一种技术,利用该技术,由路由的发起者(例如在路由器上执行的BGP进程)而不是路由的接收者(例如该路由器和相邻路由器的IGP进程)确定路由的重要性。由于路由的发起者设置该路由的重要性,因此本发明的技术提供了高效的、“后向可兼容的”方法来确定由路由选择协议(例如BGP)通告的路由对计算机网络中的快速收敛而言是否是重要的。


通过结合附图参考以下描述,可以更好地理解本发明的上述和其他优点,附图中类似的标号指示相同或功能上类似的元件图1是包括通过中间网络节点(例如路由器)互连的多个路由选择域的计算机网络的示意性框图;图2是可被有利地结合本发明使用的路由器的实施例的示意性框图;图3是图2的路由器内的传统网络协议栈(例如因特网通信协议栈)的示意性框图;图4是示出边界网关协议(BGP)的体系结构的示意性框图;图5是可有利地根据本发明使用的中间系统到中间系统(ISIS)链路状态通告(LSA)的示意性框图;图6是根据本发明可被有利地用于存储一个或多个管理标签的示例性子TLV(类型、长度、值)元组的示意性框图;以及图7是示出用于配置路由器以自动确定由路由选择协议(例如BGP)通告的路由对计算机网络中的快速收敛而言是否重要的过程的流程图。
具体实施例方式
图1是计算机网络100的示意性框图,该计算机网络100包含多个通过中间网络节点互连的路由选择域。中间网络节点可以包括交换机,但在该示例性实施例中是路由器200。路由选择域或自治系统(AS1-4)图示为经由点对点通信链路202通过边界路由器200a-c互连,所述点对点通信链路202例如是帧中继链路、异步传输模式链路或其他串行链路。AS 110(AS1)的边界路由器200a-c图示为经由子网(例如局域网204)耦合到路由器200d-e。路由器200之间的通信通常通过根据预先定义的协议(例如传输控制协议/因特网协议(TCP/IP))交换离散的数据分组或消息来实现。本领域技术人员将会理解,诸如因特网分组交换(IPX)协议之类的其他协议可以有利地结合本发明使用。
每个AS内的路由选择判决可能依赖于预定的“内部”网关路由选择协议(IGP)。IGP的一个示例是传统的链路状态协议,例如开放最短路径优先(OSPF)或中间系统到中间系统(ISIS)协议。另外,路由选择信息可以利用“外部”网关协议(EGP)在AS 110-140之间交换,所述EGP例如是边界网关协议版本4(BGP)。为此,使能BGP的路由器(BGP讲话者)200a-c利用外部形式的BGP(eBGP)与不在同一AS中的其他BGP讲话者交换路由选择信息,而AS内的BGP讲话者200a-c利用内部形式的BGP(iBGP)交换路由选择信息。
图2是根据本发明可被有利地用作边界路由器的路由器200的示意性框图。路由器200包含经由总线205耦合到存储器204和多个网络接口适配器210A-C的路由处理器202。存储器204可以包括处理器和接口适配器可寻址的存储位置,用于存储可被有利地结合这里描述的本发明技术使用的软件程序和数据结构,例如路由选择表235和拓扑表245。路由处理器202可以包括用于执行软件程序并操纵数据结构的处理元件或逻辑。本领域技术人员将意识到,其他处理器和存储器装置(包括各种计算机可读介质)可被用来存储和执行与这里描述的本发明技术相关的程序指令。
路由器操作系统220通过调用支持在路由器上执行的软件进程的网络操作来从功能上组织路由器,其中所述路由器操作系统220的某些部分通常驻留在存储器204中并被路由处理器202执行。在本发明的一个实施例中,操作系统220可被实现为具有大存储器地址空间的单个进程,其中该进程内的多条代码提供操作系统服务,例如一个或多个路由选择协议。但是,在示例性实施例中,操作系统服务可被实现为不同的受保护地址空间中的分开调度的进程。这些软件进程每个具有其自己的进程地址空间,并且在路由器上执行以管理路由器内部的资源,并且在路由选择协议的情况下,与用户交互。如这里所述,这些软件进程包括路由选择信息库(RIB230)和路由选择协议模块,例如IGP 240和BGP 400。进程之间的通信通常是通过交换消息来实现的;一种由路由器操作系统220提供的用来在进程(和进程地址空间)之间传输信息的已知消息传递机制是进程间通信(IPC)机制。
路由器200的关键功能是确定分组发送到的下一节点;为了实现这种“路由选择”,路由器合作确定通过计算机网络100的最优路径。路由选择功能优选地由每个路由器内的传统协议栈的网络层执行。图3是传统的网络协议栈的示意性框图,例如因特网通信协议栈300。因特网协议栈的体系结构由4层表示,按从下往上接口顺序,这4层被称为网络接口层308、互联网层306、传输层304和应用层302。
较低的网络接口层308一般被标准化,并被实现在硬件和固件中,但是较高层通常是以软件形式实现的。因特网体系结构的主要网络层协议是IP协议。IP主要是一种无连接协议,其提供被交换的分组(在因特网环境中,一般被称为“数据报”)的互联网路由选择、分段和重组,并依赖于传输协议以获得端对端可靠性。这种传输协议的一个示例是TCP协议,其由传输层304实现并向因特网体系结构的更上层协议提供面向连接的服务。术语TCP/IP常用于指因特网体系结构。
具体而言,互联网层306关注路由器利用的协议和算法,以使得它们能够合作计算通过计算机网络100的路径。IGP 240(例如OSPF或ISIS)是一种域内路由选择协议,其可被用于在计算机网络100的每个路由选择域内执行路由选择(用于互联网层306)。如上所述,IGP 240维护着拓扑表245,该拓扑表245被配置用于存储网络中的节点和链路的完整集合的数据库。该数据库作为输入被提供到最短路径优先(SPF)计算(例如Dijkstra算法),其输出被用于构造最短路径树(SPT)。SPT是例如从计算该算法的路由器到网络中的任何其他路由器的最短路径的集合。SPT因此是链路和节点的完整数据库的通过本质上删减数据库而获得的子集。SPT计算的输出随后被提供到RIB 230。就是说,IGP协议240向RIB 230提供已由网络中作为SPT的一部分的其他节点通告的所有地址前缀。RIB随后将这些前缀计算(安装)到其路由选择表235中。
边界网关协议版本4(BGP)是一种域间路由选择协议,其被用于在计算机网络的路由选择域(例如AS)之间执行路由选择(用于互联网层306)。AS内的BGP讲话者(下文称为“邻居”)通过可靠的传输层连接(例如TCP)在AS之间交换路由选择和可达性信息。邻接性是出于交换路由选择消息并提炼网络拓扑的目的而在所选邻居之间形成的关系。BGP协议使用TCP传输层304来确保路由选择消息在邻居之间的可靠传输。
为了根据BGP协议执行路由选择操作,每个BGP讲话者200a-c维护路由选择表,该表列出到特定网络的所有可行路径。路由器还在其路由选择表改变时,利用BGP路由选择更新消息交换路由选择信息。路由选择更新消息由更新路由器生成,用于向其遍及计算机网络的邻居中的每一个通告路由。这些路由选择更新允许AS的BGP路由器构造一致并且最新的网络拓扑视图。
图4是示出BGP协议400的体系结构的示意性框图。BGP邻居经由TCP连接402宣布路由选择更新。BGP协议“监听”路由选择更新消息并在BGP数据库中存储针对每个连接的所有获悉的路由。BGP数据库被图示为组织成邻接性RIB In(Adj-RIB-In 410)、邻接性RIB Out(Adj-RIB-Out 440)和本地RIB(loc-RIB 420)。每个邻居/TCP连接402与Adj-RIB-In 410和Adj-RIB-Out 440相关联。注意,该关联是概念上的数据构造;对于每个邻居,通常不存在一个单独的Adj-RIB-In/-Out数据库。
BGP协议400对针对每个连接402“获悉”的所有路由运行进入策略,并且那些匹配的路由被存储在该连接特有的Adj-RIB-In 410中。附加进入策略450(过滤)随后被应用到那些存储的路由,其中可能被修改的路由被安装在Loc-RIB 420中。Loc-RIB 420一般负责执行BGP最佳路径计算,该计算从所有经策略修改的Adj-RIB-In路由的并集中选择每个前缀的最佳路由,从而产生被称为“最佳路径”的路由。最佳路径的集合随后被安装在RIB 230的路由选择表235中,其中它们可以与来自其他协议(例如IGP 240)的路由竞争以成为最终选择用于转发的“最优”路径。此后,在最佳路径的集合上运行外出策略460,其结果被放在适当的Adj-RIB-Out 440中并经由从其获悉到路由选择更新消息的同一TCP连接402被宣布给各自的邻居。
除了提供每个前缀的最佳路径之外,Loc-RIB 420还向RIB 230提供与该最佳路径相关联的下一跳属性。就是说,BGP提供到RIB的路由(每前缀的最佳路径)包括到该前缀的下一跳地址的指示。值得注意的是,发送到RIB 230的下一跳属性(地址)必须通过另一协议(例如IGP240)驻留在路由选择表235中。BGP进程400通过对路由执行某些确认或检查来在将最佳路径发送到RIB之前确保下一跳属性在IGP内是可达的,所述确认或检查之一是证实该下一跳属性被RIB已知为有效路由。为此,BGP 400执行对RIB 230的查找操作(例如经由IPC机制),以证实最佳路径的下一跳在路由选择表235中已经已知(驻留于路由选择表235中)。
如上所述,使能BGP的路由器200a-c利用eBGP与不在同一AS中的其他使能BGP的路由器交换路由选择信息(即外部路由)。作为响应,每个路由器200a-c将这些外部“获悉”的BGP路由作为BGP发起的路由传播(通告)到它在AS内的内部BGP邻居。就是说,每个使能BGP的路由器利用传统的BGP更新消息将在外部获悉的路由作为iBGP路由通告(注入)到它的路由选择域中。但是,由于它是路由器,因此使能BGP的路由器还执行IGP协议,从而使其能够参与BGP和IGP路由选择两者。在此上下文中,使能BGP/IGP的路由器(下文中一般地称为“BGP发起者200”)执行(i)BGP路由选择,以在AS内传播外部路由,以及(ii)IGP路由选择,以进一步传播这些路由,作为被用作BGP下一跳属性的iBGP路由。BGP发起者200通过将其自身标识为针对外部路由的下一跳地址来向其iBGP邻居通告这些路由。换言之,发起者200向其邻居通告的路由的下一跳地址实际上是发起者的IP回送地址。IGP(ISIS)进程240使得BGP发起者200能够在被发送到其IGP邻居的LSA内通告其回送地址。
本发明针对用于配置诸如路由器之类的中间网络节点以自动确定通过路由选择协议通告的路由对计算机网络中的快速收敛而言是否重要的技术。这里使用的快速收敛所需的重要路由是路由选择协议(例如BGP400)通告的作为下一跳地址的路由,因为外部连通性依赖于这样的路由。显而易见,BGP进程400与IGP进程240交互,以识别作为重要路由的路由。重要路由的识别进而允许IGP以高优先级的方式处理该路由,从而辅助快速收敛。
在所示实施例中,IGP进程是ISIS协议进程,而重要路由是代表BGP下一跳属性的路由。本发明的技术因此示例性地针对利用例如ISIS路由标记来自动(动态)确定这样的重要路由。更确切地说,本发明的技术允许路由器检测是否IGP路由也被用作BGP下一跳属性,如果是,则利用ISIS路由标记将该路由通告给路由选择域中的IGP邻居,从而邻居(和路由器)可以在收敛期间以高优先级处理该路由。路由器示例性地经由具体化为LSA的IGP通告(例如ISIS LSP)来通告路由。
ISIS LSP可被用来利用一个或多个类型、长度和值(TLV)元组在ISIS路由选择域(例如一个区域、级别或AS)中分发IP前缀可达性信息。例如,“扩展的IP可达性”TLV(类型135)通常被包括在LSP中,以通告IP前缀到IGP邻居等等。扩展的IP可达性TLV在2004年6月公布的H.Smit和T.Li的题为Intermediate System to Intermediate System(IS-IS)Entensions for Traffic Engineering(TE)的RFC 3784中被详细描述,该RFC 3784通过引用被整体上结合于此。
图5是可根据本发明有利地使用的ISIS LSA(LSP)500的示意性框图。LSP 500包括传统的LSP头部510和一个或多个TLV元组520。LSP头部510存储了LSP的ISIS版本号、序列号和相对“年龄”以及认证数据和其他分组相关信息等等。每个TLV元组520包括类型字段522、长度字段524和值字段526。类型字段522指示存储在值字段526中的信息的类型。长度字段524(通常以字节为单位)标识TLV 520的长度。值字段526存储了TLV传输的特定值。
包含在LSP 500中的TLV元组的一个示例是扩展的IP可达性TLV530,其被扩展以承载从特定IGP路由器可达的地址前缀。为此,“扩展的可达性TLV”530被组织为包括包含以上引用的RFC 3784所定义的预定类型值(例如“类型135”或“扩展的IP可达性”TLV)的类型字段532。长度字段534是一个可变长度值。值字段536例如包含可达地址前缀540以及一个或多个子TLV 550等等,其中每个子TLV具有类型字段552、长度字段554和值字段556。子TLV 550的字段可以以多种方式被使用,例如包括用于ISIS路由标记。
图6是根据本发明可被有利地用于存储一个或多个管理标签的示例性子TLV元组600的示意性框图。该管理标签子TLV在2004年7月C.Martin等人的题为A Policy Control Mechanism in IS-IS Using AdministrativeTags的因特网草案www.ietf.org/internet-drafts/draft-ietf-isis-admin-tags-02.txt中有所描述,该因特网草案通过引用被结合于此,就好像它在这里被完整阐述一样。管理标签子TLV 600包含类型字段602、长度字段604和值字段606。类型字段602存储了将该子TLV 600标识为管理标签子TLV的值。长度字段604以字节为单位存储了该子TLV 600的长度。值字段606被配置用于存储管理标签信息610的一个或多个实例。根据本发明,管理标签信息610可被用来指定存储在LSP 500的扩展的IP可达性TLV 530中的可达地址前缀(“本地前缀”)540对于收敛是重要路由。
在操作上,在路由器200上执行的用于将iBGP路由注入路由选择域的BGP进程400还与在路由器上执行的IGP进程240交互,以识别被用作注入到该域中的那些iBGP路由的BGP下一跳属性的本地前缀。具体而言,BGP 400发布IPC消息(或函数调用),其通知IGP 240(i)BGP已通告了一个或多个使用该本地(地址)前缀作为BGP下一跳的iBGP路由,并且(ii)如果该地址在IGP中被通告,则标记那些路由为重要的。在此上下文中,标记指路由标记,并且从而适用于例如IGP的ISIS路由选择协议实现方式。
利用ISIS路由标记,路由器将本地前缀标记为对收敛而言的重要路由并在域内通告该标记的路由。例如,IGP 240创建具有扩展的IP可达性TLV 530的LSP 500,所述扩展的IP可达性TLV 530包含可达地址前缀540和管理标签子TLV 600等等。IGP进程随后将预定的管理标签信息610插入值字段606,该值字段606本质上将可达地址前缀(本地前缀)540标记为对收敛而言重要的。换言之,路由器200使用管理标签信息610将经由IGP通告的本地前缀540标记为重要的,因为该前缀/路由是所有外部获悉的BGP路由的下一跳地址。作为响应,路由选择域内的所有IGP路由器(包括路由器200)可以检测被标记的路由的重要性,并在收敛处理期间对该路由应用高优先级。
在示例性实施例中,在路由器200(和IGP邻居)上执行的IGP进程240维护对快速收敛而言被认为是重要的路由(前缀)的列表。该列表(未示出)例如被具体化为包含一个或多个条目的数据结构,其中每个条目被配置用于存储指示重要路由的前缀和下一跳地址属性。在需要重新计算其拓扑表并更新RIB的路由选择表235的每次随后的路由选择改变时,IGP 240在其他路由之前处理这些重要路由。
具体而言,在快速收敛期间,IGP进程240操作其拓扑表245的内容以计算SPT和更新RIB 230,以便反映拓扑的变化。对RIB 230的更新一般意味着在路由选择表235中(i)去除前缀,(ii)添加前缀,和/或(iii)修改前缀。因此,在路由选择表中,包含计算出的SPT的前缀被(i)去除(删除),(ii)添加(安装)或(iii)修改(更新)。由于已被通知某些路由/前缀的重要性,因此IGP 240首先处理这些重要前缀(例如更新具有这些重要前缀的RIB),以辅助快速收敛。
对重要前缀的优先处理有助于快速收敛,这是因为RIB进程是快速收敛的一个大(并且耗时)的成分。对SPT的计算只花费几毫秒,但计算或更新RIB维护的路由选择表可能花费几百毫秒。在此上下文中,对重要路由(前缀)的优先处理有助于收敛。而且,IGP通常向RIB顺序发送更新信息,并且当其接收并处理这些更新时,RIB可以不断地(顺序地)填充FIB。这样一来,转发引擎操作FIB以利用这些处理过的重要路由的结果来提供转发判决。
图7是示出用于配置路由器以自动确定由路由选择协议(例如BGP)通告的路由对于计算机网络中的快速收敛而言是否重要的过程的流程图。该过程开始于步骤700并前进到步骤702,其中路由器(例如BGP发起者)从eBGP邻居接收一个或多个外部BGP路由。在步骤704中,该BGP发起者利用一个或多个传统的BGP更新消息将这些BGP路由通告给其在路由选择域(AS)内的iBGP邻居,其中所述BGP更新消息包括BGP发起者的本地地址(即回送地址)作为下一跳属性。在步骤706中,在iBGP邻居(和BGP发起者)中执行的BGP进程400向IGP进程240发信号(例如经由IPC消息或函数调用)以将该下一跳地址自动标记为重要的,其中该下一跳地址也已知将在IGP中被通告。注意,该回送地址之前已经通过IGP(ISIS)被通告,如BGP 400在执行对其RIB 230的查询(查找操作)时所确定的(如上所述)。
在步骤708中,在BGP发起者中执行的IGP进程240将本地前缀/路由标记为对收敛而言重要的路由(例如根据ISIS路由标记)。根据本发明,被用作BGP下一跳属性的任何地址对收敛而言都是重要的。因此,无需管理员将每个路由器配置为由于一个特定本地路由是重要路由而将其标记以预定值,本发明使得BGP能够与IGP合作来动态地标记路由。在步骤710中,IGP将标记的路由通告到域中的IGP邻居(路由器)。作为响应,路由选择域内的所有IGP路由器(包括BGP发起者)都可以检测被标记的路由的重要性,从而在步骤712中,IGP进程240可以在收敛处理期间将高优先级应用到被标记的路由。过程随后在步骤714结束。
有利的是,本发明提供了这样一种技术,利用该技术,由路由的发起者(例如在路由器上执行的BGP进程)而不是路由的接收者(例如该路由器和相邻路由器的IGP进程)确定路由的重要性。由于路由的发起者设置该路由的重要性,因此本发明的技术提供了高效的、“后向可兼容的”方法来确定由路由选择协议(例如BGP)通告的路由对计算机网络中的快速收敛而言是否是重要的。
虽然已经示出并描述了将中间网络节点配置为自动确定由路由选择协议通告的路由对计算机网络中的快速收敛而言是否重要的示例性实施例,但是将会理解,在本发明的精神和范围内可以执行各种其他变更和修改。例如,在本发明的替换实施例中,其他IGP协议(例如OSPF)可被配置用于实现本发明的原理。虽然对重要路由的标记当前在OSPF内无法完全部署,但是存在绕过对OSPF协议进行扩展的能够实现路由标记的行为。但是在其被扩展以全面支持在所有路由上的路由标签之前,OSPF协议的实现方式可能必须应对某些拓扑局限/限制。
前述描述针对本发明的特定实施例。。但是,将会意识到,可以对所述实施例进行其他变化和修改,同时仍获得其某些或全部优点。例如,可以明确设想,本发明的教导可以被实现为软件(包括具有在计算机上执行的程序指令的计算机可读介质)、硬件、固件或其组合。另外,将会理解,这里描述的数据结构可以包括附加信息而仍然落在本发明的范围内。因此,该描述应该仅被视为示例性的并且不应限制本发明的范围。因此,所附权利要求的目的在于覆盖落在本发明的真实精神和范围内的所有这样的变化和修改。
权利要求
1.一种用于配置一个或多个中间网络节点以自动确定路由对于计算机网络中的快速收敛而言是否重要的方法,该方法包括在中间网络节点上执行域间路由选择协议,以将在外部获悉的路由注入路由选择域中;在所述域间路由选择协议处与在所述节点上执行的域内路由选择协议交互,以识别被用作所述注入到所述域中的在外部获悉的路由的域间下一跳属性的本地前缀;将所述本地前缀标记为对收敛而言重要的路由;以及在所述域内通告所标记的重要路由。
2.如权利要求1所述的方法,还包括在所述路由选择域中的其他中间网络节点处检测所标记的路由的重要性;以及在所述中间网络节点处,在收敛处理期间对所述路由应用高优先级。
3.如权利要求2所述的方法,其中所述交互步骤包括从所述域间路由选择协议向所述域内路由选择协议发布进程间通信消息和函数调用中的一种。
4.如权利要求3所述的方法,其中所述域间路由选择协议是外部网关协议(EGP)。
5.如权利要求3所述的方法,其中所述EGP是边界网关协议(BGP)。
6.如权利要求3所述的方法,其中所述域内路由选择协议是内部网关协议(IGP)。
7.如权利要求6所述的方法,其中所述IGP是中间系统到中间系统(ISIS)协议。
8.如权利要求1所述的方法,其中所述中间网络节点是路由器。
9.一种适合于配置一个或多个中间网络节点以自动确定路由对于计算机网络中的快速收敛而言是否重要的系统,该系统包括在中间网络节点上执行的域间路由选择协议,该域间路由选择协议被配置为将在外部获悉的路由注入路由选择域中;以及在所述节点上执行的域内路由选择协议,所述域内路由选择协议与所述域间路由选择协议交互,以识别被用作所述注入到所述域中的在外部获悉的路由的域间下一跳属性的本地前缀,所述域内路由选择协议还被配置为将所述本地前缀标记为对收敛而言重要的路由和在所述域内通告所标记的重要路由。
10.如权利要求9所述的系统,还包括在所述路由选择域中执行所述域内路由选择协议的其他中间网络节点,所述其他中间网络节点被配置为检测所标记的路由的重要性,并且在收敛处理期间对所述路由应用高优先级。
11.如权利要求9所述的系统,其中所述域间路由选择协议是外部网关协议(EGP)。
12.如权利要求11所述的系统,其中所述EGP是边界网关协议(BGP)。
13.如权利要求12所述的系统,其中所述在外部获悉的路由是由所述中间网络节点发起的内部BGP(iBGP)路由。
14.如权利要求13所述的系统,其中所述本地前缀是所述中间网络节点的回送地址。
15.如权利要求10所述的系统,其中所述域内路由选择协议是内部网关协议(IGP)。
16.如权利要求15所述的系统,其中所述IGP是中间系统到中间系统(ISIS)协议。
17.一种适合于配置一个或多个中间网络节点以自动确定路由对于计算机网络中的快速收敛而言是否重要的装置,该装置包括用于在中间网络节点上执行域间路由选择协议,以将在外部获悉的路由注入路由选择域中的装置;用于在所述域间路由选择协议处与在所述节点上执行的域内路由选择协议交互,以识别被用作所述注入到所述域中的在外部获悉的路由的域间下一跳属性的本地前缀的装置;用于将所述本地前缀标记为对收敛而言重要的路由的装置;以及用于在所述域内通告所标记的重要路由的装置。
18.如权利要求17所述的装置,还包括用于在所述路由选择域中的其他中间网络节点处检测所标记的路由的重要性的装置;以及用于在所述中间网络节点处,在收敛处理期间对所述路由应用高优先级的装置。
19.一种包含可执行的程序指令的计算机可读介质,所述程序指令用于配置一个或多个中间网络节点以自动确定路由对于计算机网络中的快速收敛而言是否重要,所述可执行的程序指令包括用于以下操作的程序指令在中间网络节点上执行域间路由选择协议,以将在外部获悉的路由注入路由选择域中;在所述域间路由选择协议处与在所述节点上执行的域内路由选择协议交互,以识别被用作所述注入到所述域中的在外部获悉的路由的域间下一跳属性的本地前缀;将所述本地前缀标记为对收敛而言重要的路由;以及在所述域内通告所标记的重要路由。
20.如权利要求19所述的计算机可读介质,还包括用于以下操作的程序指令在所述路由选择域中的其他中间网络节点处检测所标记的路由的重要性;以及在所述中间网络节点处,在收敛处理期间对所述路由应用高优先级。
全文摘要
一种技术配置中间网络节点以自动确定由路由选择协议通告的路由对于计算机网络中的快速收敛而言是否重要。这里所使用的快速收敛所需的重要路由是路由选择协议(例如在节点上执行的外部网关路由选择协议(EGP)进程)通告为下一跳地址的路由,这是因为外部连通性依赖于这样的路由。值得注意的是,EGP进程与在该节点上执行的内部网关路由选择协议(IGP)进程交互,以识别作为重要路由的路由。对重要路由的识别进而允许IGP以高优先级的方式处理该路由,从而辅助快速收敛。
文档编号H04L12/28GK101040487SQ200580034452
公开日2007年9月19日 申请日期2005年12月27日 优先权日2004年12月29日
发明者克拉伦斯·菲尔斯非斯, 斯特凡诺·B·普雷维蒂, 让-菲利普·瓦瑟尔 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1