CN1849783A - 用于实现边界网关协议(bgp)的分布式软件体系结构 - Google Patents

用于实现边界网关协议(bgp)的分布式软件体系结构 Download PDF

Info

Publication number
CN1849783A
CN1849783A CNA2004800257316A CN200480025731A CN1849783A CN 1849783 A CN1849783 A CN 1849783A CN A2004800257316 A CNA2004800257316 A CN A2004800257316A CN 200480025731 A CN200480025731 A CN 200480025731A CN 1849783 A CN1849783 A CN 1849783A
Authority
CN
China
Prior art keywords
route
information base
routing information
router
routing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004800257316A
Other languages
English (en)
Other versions
CN1849783B (zh
Inventor
戴维·亚历山大·鲍尔
埃里克·R·班尼特
马丁·黑斯克斯
约翰·伽莱恩·斯卡德
戴维·D·沃德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN1849783A publication Critical patent/CN1849783A/zh
Application granted granted Critical
Publication of CN1849783B publication Critical patent/CN1849783B/zh
Anticipated expiration legal-status Critical
Active legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

分布式软件体系结构将路由协议实现为在路由器的一组处理器上运行的一组进程。这些分布式进程以如下方式协作:在内部利用分布式的处理器组,而对外表现出与其在网络中的对等方通信的单个路由协议进程的外观/行为。该体系结构的分布式特性是在未改变基本的路由协议的情况下,但是通过在多处理器路由器中的多个进程之间分配协议的某些功能/任务而实现的。

Description

用于实现边界网关协议(BGP)的分布式软件体系结构
技术领域
本发明一般地涉及在计算机网络中使用的路由协议,更具体地说,本发明涉及路由协议的高效可扩展实现方式。
背景技术
计算机网络是用于在节点(例如,计算机)之间传输数据的互连通信链路的地理上分布的集合。许多类型的计算机网络可用,这些计算机网络的类型包括从局域网(LAN)到广域网(WAN)。节点一般通过根据预定义的协议交换离散的数据消息或分组进行通信。在此上下文中,协议由定义节点如何彼此交互的一组规则构成。
计算机网络还可通过诸如路由器之类的中间节点互连来扩展每个网络的有效“尺寸”。由于对大的互连计算机网络系统的管理可能是繁重的,所以较小的计算机网络组可以作为路由域或自治系统而被维护。自治系统内的网络一般通过传统的“域内”路由器耦合到一起。但是仍期望增加能够交换数据的节点的数量;在这种情形中,执行域间路由协议的域间路由器被用来互连各种自治系统的节点。
域间路由协议的一个示例是边界网关协议第4版(BGP),该协议通过在系统的相邻域间路由器之间交换路由和可达性信息来在自治系统之间执行路由操作。邻接关系是出于交换路由信息消息和抽象网络拓扑的目的而在所选相邻(对等)路由器之间形成的关系。但是,在发送这种消息前,对等体协作以在这些路由器之间建立逻辑“对等”连接(会话)。BGP一般在可靠的传输协议(例如,传输控制协议,TCP)上工作来建立TCP连接/会话。
由BGP对等路由器交换的路由信息一般包括目的地地址前缀,即,由路由协议用来进行路由(“下一跳”)判决的目的地地址的一部分。这种目的地地址的示例包括因特网协议(IP)第4版(IPv4)和第6版(IPv6)地址。BGP路由协议是公知的,并且在Y.Rekhter和T.Li(1995)的请求注释(RFC)1171、Y.Rekhter和T.Li(2003年4月)的题为A Border Gateway Protocol 4(BGP-4)的因特网草案<draft-IETF-idr-bgp4-20.txt>以及由Addison Wesley Publishing Company出版的R.Perlman的Interconnections,Bridges and Routers(1992)中的第323~329页作了详细描述,它们的全部公开通过引用结合于此。
配置为执行对BGP协议的实现的域间路由器(这里称作BGP路由器)执行各种路由功能,包括发送和接收路由消息,并基于路由度量进行路由判决。每个BGP路由器维护一个路由表,该路由表列出到特定网络的全部可行路径。一般不执行对路由表的周期性刷新;然而,驻留在自治系统中的BGP对等路由器在某些情形中交换路由信息。例如,当BGP路由器最初连接到网络时,对等路由器交换它们的路由表的全部内容。此后,当有内容发生改变时,路由器仅交换它们的路由表中的那些发生改变的部分,以便更新它们的对等路由器的表。因此,这些更新消息是响应于路由表的内容改变而被发送的递增更新消息,并且仅通告到特定网络的最佳路径。
概括地说,BGP路由器通过“遍历”路由表并且应用适当的路由策略,来为邻接或对等路由器生成路由更新消息。路由策略是这样的信息,该信息使BGP路由器能够根据过滤和偏好(即,“最佳路线”)对路线分级。由更新消息提供的路由更新允许自治系统的BGP路由器构造网络拓扑的一致视图。更新消息一般使用可靠的传输(例如TCP)发送,以确保可靠传递。TCP是由IP体系结构的传输层实现的传输协议;术语TCP/IP通常用来表示这种体系结构。TCP/IP体系结构是公知的,并且在Prentice-Hall出版(1996)的Andrew S.Tanenbaum的Computer Networks,3rdEdition中作了描述。
BGP协议的常见实现方式被实现为在BGP路由器的单个处理器(例如,中央处理单元(CPU))上执行的单个进程,另一种已知的实现方式提供在单个CPU上运行的BGP进程的多个实例。在该后一种实现中,每个BGP实例具有其自身的路由表,并且对于给定的前缀挑选其自身的最佳路径。从协议的视角来看,每个BGP实例是独立的路由器;然而,每个路由器实例共享相同的资源,例如,单个CPU。两种BGP实现方式都存储并处理从它们的对等路由器接收到的更新消息,并且创建并处理更新消息以发送(通告)到那些对等方。然而,在单个CPU上可用的处理时间(即,带宽)的量是有限的,从而导致对BGP实现方式可以处理的路线数量的限制,以及对BGP实现方式可以支持的对等方/邻接关系的数量的限制。
限制BGP实现方式可以支持的邻接关系和路线的数量的因素的示例包括BGP路由器中的存储器的物理量。路由器一般采用32位的CPU,使得能够最多支持4G字节(GB)的存储器。BGP路由器可以支持的存储器的量是重要的,这是由于在给定访问存储盘所涉及的实质读/写等待时间的情况下,诸如存储盘之类的辅助存储设备不能有效地用来存储更新消息。此外,由路由器维护的每个邻接关系具有与其关联的某个最小CPU开销。这种开销的示例包括以预定间隔发送“KeepAlive”消息,处理接收到的更新消息,并且在改变了路由表时判断是否发送更新消息到对等方。
一般来说,期望增加BGP实现方式可以支持的对等方的数量。然而随着对等方的数量增加,处理数量和处理量相应增加。另外,随着路由对等方的数量增加,收敛时间也增加。这里所使用的收敛时间是BGP路由器执行下述操作所需要的时间:接收并处理来自其全部路由对等方的更新消息,为在那些消息中包括的每个前缀选择最佳路径,将那些最佳路径安装到路由表中,并且利用更新消息将那些最佳路径通知回其路由对等方。结构,CPU、存储器和甚至通信扩展变成了BGP实现方式所涉及的问题。
对扩展问题的一种解决方案是提供跨越多个路由器的BGP实现方式,其中每个路由器包括维持所支持的对等方的子集的处理器。这种多处理器实现方式从对等方的视点看来具有基本的限制:每个处理器类似于独立的路由器。这导致这样的认知和操作模型,其中多个路由器分别交互而不是充当到网络的单个路由器。多路由器模型在工作上比单个路由器复杂;即,从工作成本来看,操作单个路由器比配置多个路由器协作更容易,性价比也较高。
因此,需要向BGP实现方式提供额外的CPU带宽,以实现支持更大量对等方和路线的扩展,而不会招致收敛时间类似增加。本发明集中于这样的体系结构,该体系结构使得BGP实现方式能够扩展来允许支持这种额外的对等方和路线。
发明内容
本发明通过提供下述分布式软件体系结构克服了现有技术的缺点,该分布式软件体系结构将路由协议实现为在路由器的一组处理器上运行的一组进程。这些分布式进程以如下方式协作:在内部利用分布式的处理器组,而对外表现出与其在网络中的对等方通信的单个路由协议进程的外观/行为。该体系结构的分布式特性是在未改变基本的路由协议的情况下,通过在多处理器路由器中的多个进程之间分配协议的某些功能/任务而实现的。
在示例性实施例中,路由协议是边界网关协议第4版(BGP)。分布式软件体系结构的BGP实现方式包括多个进程,这些进程包括BGP代言人和BGP路由信息库(“bRIB”),其中每个BGP代言人负责管理一组路由对等方。BGP代言人对BGP实现方式中的大多数处理成本负责。多个BGP代言人的使用通过使得能够对任务(例如分组接收、分组发送和分组格式化)实现成本效率高的处理来提供本发明的实质扩展特征。
每个BGP代言人优选地在不同的处理器上执行,并且一般负责处理(终止)一个或多个BGP对等连接、接收并存储来自每个对等方的路线、将入站策略应用到从每个对等方接收到的路线等等。每个BGP代言人还负责将从其对等方接收到的所有路线(除了被策略“过滤掉”的那些)下载到bRIB,该bRIB优选地在与执行代言人的处理器不同的处理器上执行。bRIB执行第一阶段路线选择,来从自该路由器的所有BGP发言人下载来的路线中计算出一组最佳路线,此后,将选择为最佳路线的每个路线下载到另一个进程,即,全局RIB,该全局RIB执行第二(和最终)阶段路线选择。bRIB还将计算出的最佳路线发送到每个BGP代言人,BGP代言人在将那些路线发送到对等方之前将出站策略(每个对等方)应用到它们。
有利的是,本发明的体系结构允许分布式软件实现方式的工作量被分配在多个进程中,从而实现更加可扩展的BGP实现方式,该实现方式能够赋予用户下述能力:将资源专用于特定的对等方组,同时维持单个BGP协议实例的外观。如上所述,BGP实现方式可以进一步被分配在多处理器路由器中的若干个处理器中,以使所要求的全部处理分布在多个处理器中,而不是集中于单个处理器上。随着路由对等方的数量增加,额外的处理器也可被添加到路由器以处理所要求的额外的处理,从而避免单个处理器过载并且因此对协议的收敛时间造成不利影响。
本发明的第二个优点是容错性(fault-tolerance)的提高。如果路由器中运行BGP代言人的特定处理器发生故障,则仅仅指派给该代言人的的路由对等方受影响。如果发生故障的处理器正在运行bRIB进程,则没有对等方受到影响,并且该路由器仅通过在重启时使每个代言人将其所有路径重新发送到bRIB就可以恢复。如果没有本发明的分布式体系结构,则运行集中的BGP实现方式的处理器发生故障会影响该实现方式的所有对等方。
本发明的第三个优点在于对等方的组可以被协同定位在给定的处理器上,并且与其他处理器上的对等方相分离,以实现特征分离或资源隔离。此外,本发明的体系结构维护对等方的自治,以使每个对等方可被随意地配置(“放置”)在代言人中,并且实际放置策略由用户确定。例如,用户可以将交换IPv4路线的所有对等方放置到一个处理器上,而将交换IPv6路线的对等方放置到不同的处理器上。网络拓扑中的变动将只稍稍影响另一个网络,从而将每个服务的传递与受变动的网络中的扰动有效地隔离开。
附图说明
通过结合附图参考下面的描述,可以更好地理解本发明的上述和其他优点,其中相同标号指示相同或功能上类似的元素:
图1是包括由中间节点(例如边界网关协议(BGP)域间路由器)互连的多个自治系统的计算机网络的示意框图;
图2是利于与本发明一起使用的域间路由器的实施例的示意框图;
图3是图2的域间路由器内的传统协议栈(例如,因特网通信协议栈)的示意性框图;
图4是利于与本发明一起使用的更新消息(例如边界网关协议(BGP)更新消息)的示意框图;
图5是利于与本发明一起使用的BGP更新消息的路径属性字段的示意性框图;
图6是示出了BGP协议的体系结构的示意性框图;
图7是示出了根据本发明的分布式软件体系结构的BGP实现方式的示意性框图;
图8是具有多个路由表条目的路由表的示意性框图;以及
图9是示出了与通过根据本发明的分布式软件体系结构的BGP实现方式的数据流有关的步骤序列的流程图。
具体实施方式
图1是计算机网络100的示意性框图,计算机网络100包括由中间节点互连的多个路由域或自治系统,所述中间节点例如是传统的域内路由器120和域间路由器200。自治系统可以包括由域间路由器互连的各个路由域(AS1-4)。域间路由器200通过共享的介质网络(例如,局域网(LAN)104)和点到点链路102(例如,帧中继链路、异步传输模式链路或其他串行链路)进一步互连。路由器之间的通信一般通过根据预定义的协议交换离散的数据分组或消息来实现,所述协议例如是传输控制协议/因特网协议(TCP/IP)。本领域技术人员应当理解,诸如因特网分组交换(IPX)协议之类的其他协议也利于与本发明一起使用。
图2是利于与本发明一起使用的域间路由器200的示意框图。域间路由器200包括多个松散耦合的处理器210,这些处理器210经由高速交换结构250(例如,交叉开关互连或高速总线)连接到多个入口和出口线路卡(线路卡260)。本领域技术人员将认识到也可以根据本发明使用其他路由器平台,例如,作为多节点集群被互连的多个独立节点。在此上下文中,术语“节点”表示适于安装包括处理器和线路卡在内的多个模块的机箱。
处理器210图示为路由处理器(RP),每个都具有专用存储器230。存储器230可以包括可由处理器寻址的存储位置,用于存储与本发明的分布式路由协议体系结构相关联的数据结构和软件程序。处理器210可以包括用于执行软件程序和操纵数据结构的处理元件或逻辑。路由器操作系统232的一部分一般驻留在存储器230中并由处理器执行,其通过调用支持在处理器上执行的软件进程(这里所述)的网络操作以及其他方式来在功能上组织路由器。本领域技术人员将清楚,其他处理器和包括各种计算机可读介质在内的存储器装置可用于存储并执行与这里所述的本发明的体系结构相关的程序指令。
在所示实施例中,每个RP 210包括两个中央处理单元(CPU 220),例如,Power-PC 7460芯片,这两个中央处理单元被配置为对称多处理(SMP)对。CPU SMP对适于运行路由器操作系统232的单个拷贝,并访问其存储器空间230。如上所述,每个RP具有与路由器200中的其他RP分离开的存储器空间。处理器使用进程间通信(IPC)机制通信。另外,每个线路卡260都包括接口270,接口270具有耦合到接收转发处理器(FP Rx 280)和发送转发处理器(FP Tx 290)的多个端口。FP Rx 280在入口线路卡的接口270上对在路由器处接收到的每个分组提供转发判决,以便确定将该分组转发到哪个RP 210。为此,FP Rx使用FIB 275的内部转发信息库IFIB来执行转发判决。类似地,FP Tx 290经由出口线路卡的接口270对从路由器发送来的分组执行查找操作(使用FIB 275)。
域间路由器200的一个关键功能是确定分组被发送到的下一节点;为了实现这种“路由”,域间路由器协作来确定通过计算机网络100的最佳路径。路由功能优选地由每个路由器内的传统协议栈的网络层执行。图3是传统的网络协议栈的示意框图,例如,因特网通信协议栈300。因特网协议栈的体系结构由4层表示,这4层按向上接口连接的顺序分别称作网络接口层308、网络层306、传输层304和应用层302。
较低的网络接口层308一般被标准化,并且以硬件和固件实现,而较高的层一般以软件形式实现。因特网体系结构的主要网络层协议是IP协议。IP根本上是无连接协议,其提供被交换的分组(在因特网环境中一般称作“数据报”)的网络路由、分段和重组,并且其依靠传输协议来实现端到端的可靠性。这种传输协议的一个示例是TCP协议,该协议由传输层304实现,并且向因特网体系结构的上层协议提供面向连接的服务。术语TCP/IP通常用来表示因特网体系结构。
具体而言,网络层306涉及这样的协议和算法,域间路由器利用这些协议和算法来使它们能够协作计算通过计算机网络100的路径。诸如边界网关协议第4版(BGP)之类的域间路由协议被用来执行通过计算机网络的(网络层的)域间路由。域间路由器200(下文称作“对等路由器”)通过可靠的传输层连接(例如,TCP)在自治系统之间交换路由和可达性信息。邻接关系是出于交换路由消息和对网络拓扑进行抽象的目的在所选对等路由器之间形成的关系。BGP协议使用TCP传输层304来确保对等路由器之间路由消息的可靠传输。
为了根据BGP协议执行路由操作,每个域间路由器200维护一个路由表800,该路由表800列出到特定网络的所有可用路径。路由器还在它们的路由表改变时使用路由更新消息400交换路由信息。路由更新消息由更新路由器生成以向整个计算机网络中它的每个相邻对等路由器通告最佳路径。这些路由更新允许自治系统的BGP路由器构造网络拓扑的一致并且最新的视图。
图4是传统BGP更新消息400的示意框图,该消息包括附加到头部410的多个字段。不可用路线长度字段402指示撤销路由字段404的总长度,撤销路由字段404说明性地包含一列从服务撤消的路线的IP地址前缀。总路径属性长度字段406指示路径属性字段500的总长,并且网络层可达性信息字段408说明性地包含一列IP(IPv4或IPv6)地址前缀。注意,一组路径属性和一个前缀的组合被称作“路线”;术语“路线”和“路径”在这里可以互换使用。更新消息400的格式和功能在RFC 1711和Interconnections,Bridges and Routers中有所描述。
具体而言,路径属性字段500包括一系列字段,其中每个字段以三元组(即,属性类型、属性长度、属性值)的形式描述了一个路径属性。图5是包括多个子字段的路径属性字段500的示意框图,这些子字段包括标志子字段502、属性类型子字段504、属性长度子字段506和属性值子字段508。具体地说,属性类型子字段504指定多个属性类型码,其示例包括自治系统(AS)路径、多出口鉴别器(MED)码和通信属性,其是一组可应用到路线的非透明32位标志。MED是具有下述值的可选非透明属性,该值可由更新BGP路由器的判决算法用来辨别到相邻自治系统的多个出口点,这将在这里作进一步描述。注意,路径属性是从配置和协议(即,从BGP协议传播的)信息的组合中导出的。
BGP体系结构
图6是图示了BGP协议的体系结构的示意框图。对等方经由TCP连接602宣告路由更新。BGP协议“监听”路由更新消息400,并且将针对每个连接监听到的所有路线存储到BGP数据库中。BGP数据库说明性地组织为邻接关系RIB In(Adj-RIB-In 610)、邻接关系RIB Out(Adj-RIB-Out 640)和本地RIB(loc-RIB 620)。每个对等/TCP连接602与Adj-RIB-In 610和loc-RIB 620相关联。注意,这种关联是概念数据构造;一般不存在用于每个对等方的分离的Adj-RIB-In/-Out数据库。
BGP协议运行关于针对每个连接602“监听”到的所有路线的入站策略,并且那些匹配的路线被存储到对该连接来说唯一的Adj-RIB-In 610中。额外的入站策略650(过滤)然后被施加到那些存储的路线,同时可能修改过的路线被安装到loc-RIB 620中。loc-RIB 620一般负责从所有策略修改过的Adj-RIB-In路线的联合中选择每个前缀的最佳路线,从而产生称作“最佳路径”的路线。该组最佳路径然后被安装到全局RIB 630中,其中它们可能与来自其他协议的路线竞争,以成为最终选出用于转发的“最优”路径。此后,该组最佳路径在其上运行出站策略660,其结果被放置到适当的Adj-RIB-Out 640中,并且经由从其监听到路由更新消息400的同一TCP连接602向各个对等方宣告。
在BGP协议内执行的许多功能或任务都是对彼此独立的不同路由数据子集执行的。这些任务包括(1)根据在draft-ietf-idr-bgp4-20.txt(第8部分)中描述的BGP有限状态机(FSM)追踪每个对等方的状态,并且对FSM事件作出响应,(2)对从每个对等方接收到的更新消息400进行解析,并且将它们放置到该对等方的Adj-RIB-In 610中(第3部分),以及(3)应用对等方的入站策略650来过滤或修改Adj-RIB-In中的接收到的更新。BGP实现方式还(4)计算Adj-RIB-In的集合中的每个前缀的最佳路径,并且将那些最佳路径放置到loc-RIB 620中(第9部分)。随着对等方的数量增加,每个前缀的路径的数量也增加,并且因此这种计算变得非常复杂。由BGP实现方式执行的其他任务包括(5)对loc-RIB中的全部所选路径应用每个对等方的出站策略660,以过滤或修改那些路径,并且将过滤后并且修改过的路径放置到该对等方的Adj-RIB-Out 640中,以及(6)基于该对等方的Adj-RIB-Out中的路线来格式化并且发送更新消息400到每个对等方。
任务(1)、(2)和(3)针对每个对等方定义,并且对仅从该对等方获知的路由数据执行操作。针对给定的对等方执行任意这些任务的过程都与针对任何其他对等方执行相同的任务的过程独立完成。任务(4)检查来自所有对等方的所有路径,以便将它们插入到loc-RIB中,并且确定每个前缀的最佳路径。任务(5)和(6)与任务(1)、(2)和(3)类似,是针对每个对等方定义的。尽管任务(5)和(6)都必须访问在任务(4)中确定的最佳路径组,但是它们独立于其他所有对等方生成每个对等方的路由数据。因此,每个数据子集和对它们执行的任务的自治性导致只要每个任务已访问所需数据,它们自身就分布在n路SMP路由器中的多个进程或线程之间,或者分布在集群中的多个节点之间。所需数据包括(i)用于任务(1)、(2)和(3)的来自对等方的入站路线;(ii)用于任务(4)的所有Adj-RIB-In中的所有路径;和(iii)用于任务(5)和(6)的一组最佳路径。
根据本发明,提供了分布式软件体系结构,用于实现作为在路由器的一组处理器上运行的一组进程的路由协议,例如,BGP。这些分布式进程以如下方式协作:在内部利用该分布式处理器组,而对外表现出在网络中与其对等方通信的单个路由协议进程的外观/行为。该体系结构的分布式特性是在无需改变基本的BGP路由协议的情况下,但是通过在多处理器路由器中的各种进程之间分配协议的某些功能/任务而实现的。
分布式软件体系结构的BGP实现方式
图7是根据本发明的分布式软件体系结构的BGP实现方式700的示意框图。该分布式BGP实现方式包括多个进程,这些进程包括一个或多个BGP代言人进程710和BGP路由信息库(“bRIB”)进程720,BGP代言人进程710负责管理一组路由对等方。BGP代言人710对BGP实现方式中的主要处理成本负责。使用多个BGP代言人通过对任务(例如,分组接收、分组发送和分组格式化)实现成本效率高的处理,来提供本发明的实质扩展特征。每个BGP代言人一般还负责处理(终止)一个或多个BGP对等连接、接收并存储来自每个对等方的路线,并且将入站策略应用到从每个对等方接收到的路线等等。
具体而言,每个BGP代言人(i)建立并维护到每个路由对等方的可靠TCP连接,并且处理该对等方的FSM事件,(ii)接收并处理接收自对等方的更新消息400,并且将路径放置到Adj-RIB-In 610中,并应用入站策略650,(iii)将Adj-RIB-In 610中的所有路径发送到bRIB 720,并且(iv)从bRIB 720接收每个前缀的最佳路径,并且在应用每个路由对等方的出站策略660后向该对等方通告该路径。在分布式软件体系结构中,策略计算优选地由BGP代言人“绑定”到的独立软件组件(例如库)处理,但是这些计算也可以“在线”方式作为BGP代码的一部分来实现。每个BGP代言人710例如是多线程的进程;因此,策略优选地作为由BGP代言人线程之一发起的库函数调用而被处理。这样,策略计算发生在BGP进程空间内。
策略可用来限制从BGP代言人接收路由信息或向BGP代言人分发路由信息(即,一种形式的访问控制或过滤),并且操纵路由信息中的数据。路由策略的示例包括“如果前缀为10/8则匹配”,或者“如果前缀以192.168开始并且AS路径以690开始则匹配”。这两种策略中的一个或两个可以被应用来以入站方式对对等会话进行过滤,以使BGP代言人仅接受匹配该策略的那些路线。策略也可以应用来以出站方式进行过滤,以使仅匹配这些策略之一的路线被发送到对等方。此外,策略可用于执行关于是否传递路线并操纵该路线的“go或no-go”判决。例如,假定策略为“如果路线包含AS号1800,则将社区42添加到该路线”。这根据该策略控制操纵包括路线的数据。
若干个处理器210可用来运行代言人710,其中每个处理器完全独立于其他处理器运行。将功能(例如策略)分发到BGP代言人710而不是在bRIB 720中处理它的原因在于在整个BGP协议中,执行策略代码是最昂贵的操作之一。如上所述,在分布式软件体系结构中仅有一个bRIB 720,但是可能有多个代言人710。通过将策略代码功能/任务分布到代言人,该任务可以被分配到多个更小的子任务中,并且多个处理器的共同力量可以用来执行该代码。另外,每个BGP代言人例如被分配许多路由对等方(例如,1000个)来管理,并且在路由器上配置的每个路由对等方被分配给一个代言人。因此,随着BGP路由对等方的数量增加,额外的处理器可被添加到路由器来处理所需要的额外处理。
每个BGP代言人710负责将从其对等方接收到的所有路线(除了那些被策略“过滤掉”的路线)下载到bRIB 720,这将在这里进一步描述。bRIB例如是在BGP路由器200的处理器(RP 210)上执行的进程,该处理器可以独立于充当代言人的那些处理器;或者,bRIB可以与代言人之一共享处理器。本领域技术人员将理解,本发明还设想了其他实现方式,包括其中分布式BGP体系结构的多于两个(或者全部)进程在同一处理器上运行的实现方式。
bRIB进程720(i)接收并存储从每个代言人进程接收到的路线,(ii)执行第一阶段路线选择以计算已从所有BGP代言人下载来的路线(前缀)中的一组最佳路线,(iii)将最佳路线/路径安装到“本地”路由表(即,loc-RIB 620)中,并且(iv)将计算出的最佳路径发送回所有代言人710,以使它们可以被通告给它们的路由对等方。应当注意,代言人绝不能将它们从bRIB监听到的路线宣告回该bRIB。此外,由于在所有Adj-RIB-In 610中的全部路径都被发送到bRIB 720,所以bRIB根据BGP协议标准选择出每个网络的正确的最佳路径。
全局RIB 730例如维护路由器的“系统”路由表。该系统路由表(“路由表800”)是包含路由信息的数据库,该路由信息用来在对分组执行转发判决时构造将由路由器200的FP使用的FIB 275的转发表。路由表800一般表示包含所有可用路线的数据库,可用路线包括已选出用于转发的路线(最优路径),以及当前未被选出用于转发的备用路线,同时转发表还表示已实际被选出用于转发的那些最优的最佳路径。
loc-RIB 620表示存储与转发表中的路线类似的路线的表。bRIB 720维护loc-RIB 620,包括处理被选作最佳路径的loc-RIB中的每个路线/路径并将其下载到全局RIB 730中。全局RIB 730维护那些下载来的最佳路径的拷贝,以及从其他路由协议下载来的其他路径/路线,以便计算一组最优的最佳路径/路线以安装到路由表800中。全局RIB 730优选地与另一个软件组件交互,以将那些最优路线下载到路由器200的所有线路卡260,每个线路卡260维护其自己的拷贝作为转发表。
图8是路由表800的示意框图,该路由表800包括多个路线条目810,每个路线条目810都包括多个字段。具体而言,路线条目810包括网络字段812,掩码/长度字段814和条目版本号字段816,网络字段812包含标识网络的IP地址的网络部分,掩码/长度字段814包含用于区分IP地址的网络部分和主机部分的掩码,条目版本号字段816包含该条目的版本号。路径字段820包含一个或多个路径,其中每个路径描述对等方的“下一跳”地址或接口270,或者计算机网络中的路线的其他路径属性500,而最优路径字段818包含基于预先规定的路线选择标准从在字段820中描述的路径中选出的最优的最佳路径。
路由表800还包括表版本号830,其用来指示该路由表的版本(级别)。表版本号830在每次改变了路由表800时被递增。条目版本号816用于递增的更新操作。因此,每次改变了条目810,例如当条目被添加或删除时,或者当最佳路径改变时,表版本号830被递增,并且条目版本号816被设置为该递增后的值。
在说明性实施例中,分布式BGP软件体系结构被组织为使每个BGP代言人进程710在不同的RP上执行。另外,bRIB进程720在与执行BGP代言人710的RP相分离的RP 210上执行,从而避免bRIB和代言人对类似资源的争用。说明性地,BRIB 720在与全局RIB 730相同的RP 210上执行,但是这不是必需的,而是那些进程可以在不同的RP上执行。但是,在将bRIB 720配置为在与全局RIB 730相同的RP上执行时,路由器的性能增加了,这是由于进程是经由在同样RP 210上发生更快的消息交换而不是通过交换结构250来执行通信(例如相对于路线选择)的。本领域技术人员应当理解,也可以设想替换配置,包括允许所有进程在同一个RP 210上运行,以及允许bRIB和全局RIB是同一个进程。
如上所述,分布式软件体系结构的BGP进程以下述方式协作:对外表现为单个路由协议进程的外观/行为,但是却使那些进程在路由器的多个RP 210上运行。为了使分布式RP看起来为单处理器BGP,本地分组传输服务被用来将TCP会话分布到RP,即使TCP会话具有相同的目的地IP地址也是如此。因此,从“外部”来看,所有RP共享相同的一个或多个IP地址。这与处理处理器/路由器组的一般方式不同,在该一般方式中每个处理器/路由器都有其自身的唯一IP地址。可利于与本发明一起使用的本地分组传输服务的示例在2002年11月12日提交的题为System and Methodfor Local Packet Transport Services within Distributed Routers的美国专利申请No.10/293,180中作了描述,如同在此完整阐述了一样,该申请通过引用结合于此。
路线选择
这里所述的路线选择利于距离向量(Bellman-Ford)算法,更具体地说,BGP最佳路径选择(路径向量)算法。根据BGP标准,每个BGP路由器向其所有对等方宣告它用于自身转发的路线。作为这种宣告的结果,特定的路由器可以从其对等方收集到某些网络的两个或更多个路线。例如,该路由器可能监听到抵达网络10.1.1.0/24的两个或更多个不同途径;最佳路径选择计算是一种这样的方法,该方法用于挑选那些路由中的一个作为“最佳的”,并且用于对路由器执行转发判决的路线。注意,在多路径BGP的情形中,多于一个路径可以被该算法挑选为最佳的。然而,还应当注意到,这些挑选出的多个路径仅被下载到全局RIB,并且对于每个前缀总是只有一个被发送回代言人的最佳路径。
概括地说,说明性的BGP最佳路径选择算法包括下述步骤:
1.优选具有最大WEIGHT的路径;注意WEIGHT是一个本地指定的参数,即,对于其在上面被配置的路由器来说是本地的;
2.优选具有最大LOCAL_PREF的路径;
3.优选经由网络或聚合BGP子命令,或者通过根据内部网关协议(IGP)重新分配而在本地发源的路径;
4.优选具有最短AS_PATH的路径;
5.优选具有最低原始类型的路径,例如,IGP低于外部网关协议(EGP),而EGP低于INCOMPLETE;
6.优选在具有相同AS的路线中具有最低MED的路径;
7.优选外部(eBGP)路径优先于内部(iBGP)路径;
8.优选具有到BGP下一跳的最低IGP度量的路径;
9.优选来自具有最低路由器ID(BGP标识符)的BGP路由器的路由;
10.如果对于多个路径发源者或路由器ID相同,则优选具有最小集群ID长度的路径;以及
11.优选来自最低邻居(对等方)地址的路径。
应当注意,完整最佳路径计算优选地在路由器快速访问给定前缀的所有路径时被执行;因此,在说明性实施例中,完整BGP最佳路径选择算法在bRIB 720中执行。loc-RIB 620在概念上包括BGP选择算法的输出,即,bRIB 720和loc-RIB 620不完全相等。bRIB 720包含被考虑用于到loc-RIB 620的选择的由代言人下载的所有路线;bRIB然后执行第一阶段的路线选择。
一旦bRIB计算出loc-RIB 620,路由选择过程中的下一个功能是生成线路卡260的转发表FIB 275。bRIB提炼出loc-RIB的最佳路径/路线,并且将它们下载到全局RIB 730。由于除了BGP外还有多种协议在路由器200上运行,所以全局RIB还收集从其他路由协议提炼出的路线(例如,OSPF和IS-IS路线)以及在本地配置的路线和静态路线,然后执行路线选择的第二(最后)阶段,来计算针对在路由器上执行的所有路由协议的一组最优的最佳路径。例如,全局RIB 730检查BGP最佳路径/路线,并且确定其是否是到特定目的地的唯一路线;如果是,则全局RIB选择该路线作为最优的最佳路径。但是,如果从BGP和例如OSPF二者都提供了到目的地的最终最佳路径(“冲突”),则全局RIB必须选择一个。
具体而言,全局RIB 730从多种协议中选择最优的最佳路径,其中在这些不同的协议的输出之间可能存在冲突。通过检查来自不同协议的路线选择输出,全局RIB 730是哪些路由被选择为到目的地的最优路径的最终仲裁者。具有不同目的地的路线从不冲突,所以当存在两个或更多个具有相同目的地的路线时该问题才发生。例如,假设存在来自OSPF的去往10/8的路线和来自BGP的去往10/8的路线;则全局RIB必须选择一个来安装到路由表800中。全局RIB 730可应用来确定要安装哪个路线的标准可以例如是:总是优先于BGP使用OSPF。一旦全局RIB已提供其冲突解决方案,它实质上就选择了被安装到FIB中的路线。路由器中的其他软件组件然后将这些路线从全局RIB下载到线路卡260的FIB 275中。
在生成更新消息400以发送到其对等方时,每个BGP代言人710可以应用被配置用于将来自其他协议的路线重新分布到BGP中的策略;路线的重新分布是通过全局RIB 730将那些最优的最佳路径上传(传输)到bRIB720而实现的。例如,重新分布可以发生在从OSPF到BGP的过程中,这意味着所有活动的OSPF最优的最佳路径(已保存到全局RIB中的那些)都被拷贝到BGP路由表(即,loc-RIB 620)中。这些重新分布的路线不替代loc-RIB中的那些路线,而是将它们补充到BGP最佳路径选择算法中的实质因素。注意,loc-RIB中的已下载到全局RIB的最佳路径此后不再被上传回bRIB。此外,如果重新分布的路径被bRIB选择为最佳路径,并且被安装到loc-RIB 620中,则该路径不再被下载到全局RIB(由于该处是其最初来自的地方)。
bRIB 720将loc-RIB 620的拷贝发送到每个BGP代言人710,其对那些loc-RIB最佳路径/路线执行出站策略操作。作为这些策略操作的结果,该代言人针对对等路由器计算用于Adj-RIB-Out 640的路线的子集。然后BGP代言人基于Adj-RIB-Out 640中的路线的内部数据表示,创建一个或多个BGP更新消息400,并且将那些更新消息发送到对等方。如上所述,BGP协议是一种递增协议,因为更新消息是递增的。尽管Adj-RIB-Out640具有许多(例如,百万)路线,但是仅已发生改变的路线(包括被撤消的)被包括在更新消息中。BGP代言人710也可以在在路由更新消息400中发送数据之前对该数据执行某些类型的操纵/改变。一旦被创建,BGP更新消息就被传递到TCP层和网络协议栈的其他更低层,在这些层中这些消息被格式化,并且通过通信链路作为分组被发送到对等路由器。
图9是说明与在根据本发明的分布式软件体系结构的整个BGP实现方式中的数据流相关的步骤序列的流程图。BGP实现方式700中的数据流响应于在路由器200处接收到更新消息400和从路由器200发送更新消息400而发生。这些更新消息进而被用于与路由器中的路线选择相连。该序列开始于步骤900,然后前进到步骤902,在该步骤中每个BGP代言人接收来自其对等方的更新消息400,然后在步骤904中通过将入站策略应用到在那些接收到的消息中宣告的路线来处理那些消息。该代言人然后在步骤906中将自其对等方接收到的所有路线(除了被策略“过滤”掉的那些)下载到bRIB 720中。
bRIB然后对其从各个BGP代言人接收到的所有路线进行检查,并且在步骤908中执行第一阶段路线选择来计算一组最佳路径/路线。在步骤910中,bRIB 720将那些最佳路线下载到路由器的全局RIB 730中,在步骤912中,该路由器执行第二(最终)阶段的路线选择来计算最优的最佳路径/路线。在步骤914中,bRIB将针对每个前缀的最佳路线上传到每个BGP代言人。在步骤916中,BGP代言人710通过对那些最佳路线应用出站策略来执行进一步处理,然后在步骤918中,确定所应用的策略是否阻挡了先前已发送的一个或多个路线的发送。如果是,则使用更新消息400的撤消路由字段424来从服务中撤消那些路线(步骤920)。否则,代言人在步骤922中将这些最佳路线作为更新消息发送(通告)到其对等方,然后该序列在步骤924中结束。
这里所描述的分布式软件体系结构克服了传统的CPU和存储器约束以提供可扩展的路由协议机制。该体系结构还通过将路由协议功能分布到路由器的多个处理资源中,来充分利用更新消息处理的频率。由于计算机网络100不是完全稳定的,所以每个改变网络拓扑(例如,通信链路或网段离线)的事件都被转换到BGP路由器200接收的BGP更新消息400中,并且可能需要发送。存在协议必须处理的更新消息的平均频率,并且被转化为CPU负载。平均而言,在其扩展范围内工作的BGP分布式实现方式能够与其接收更新消息一样快地处理更新消息,从而保持数据流移动通过路由器。
至于可扩展性和收敛,由于IPC机制,转换到分布式体系结构的过程会导致一定量的额外等待时间。该等待时间“换取”了路由器支持的总量。对于收敛来说,目标是最小平均等待时间(相对于最小等待时间)。由于所有代言人710将全部(过滤过的)路线提供给bRIB 720,所以该分布式体系结构是异步的,并且取决于定时问题最终收敛到相同的正确状态。
有利的是,本发明的体系结构允许分布式软件实现方式的工作量被分配在多个进程中,从而实现更加可扩展的BGP实现方式,该实现方式能够赋予用户下述能力:将资源专用于特定的对等方组,同时维持单个BGP协议实例的外观。如上所述,BGP实现方式可被进一步分配在多处理器路由器中的若干处理器(或者多节点集群中的节点)中,以使所要求的全部处理分布在多个处理器中,而不是集中于单个处理器上。随着路由对等方的数量增加,额外的处理器也可被添加到路由器来处理所要求的额外处理,从而避免单个处理器过载并且因此对协议的收敛时间造成不利影响。
本发明的第二个优点是容错性的提高。如果在路由器中运行BGP代言人的特定处理器发生故障,则仅指派给该代言人的路由对等方受影响。如果故障处理器正运行bRIB进程,则没有对等方受到影响,并且该路由器仅在重启时使每个代言人将其所有路径重新发送到bRIB就可以恢复。如果没有本发明的分布式体系结构,则运行集中的BGP实现方式的处理器发生故障会影响该实现方式的所有对等方。
本发明的第三个优点在于对等方的组可以被协同定位在给定的处理器上,并且与其他处理器上的对等方相分离,以实现特征分离或资源隔离。此外,本发明的体系结构维护对等方的自治,以使每个对等方可被随意配置(“放置”)在代言人中,并且实际放置策略由用户确定。例如,用户可以将交换IPv4路线的所有对等方放置到一个处理器上,而将交换IPv6路线的对等方放置到不同的处理器上。网络拓扑中的变动将只稍稍影响另一个网络,从而将每个服务的传递从受变动的网络中的扰动有效地隔离开。
总而言之,本发明的体系结构增加了BGP路由协议的可扩展性(并且从而提高了负载的性能),同时使协议更容错。由于本发明针对具有大量对等方的BGP实现方式的性能,所以其最适用于大的服务提供商;但是,本发明本质上并不限于该空间。
前面的描述针对本发明的特定实施例。但是,应当清楚,可以对所述实施例作出其他变动和修改,同时保持它们的一些或全部优点。例如,可以明确设想本发明的教导(包括这里所述的各个进程)可被实现为软件(包括具有在计算机上执行的程序指令的计算机可读介质)、硬件、固件或它们的组合。另外,应当理解这里所述的数据结构可以包括其他信息同时仍在本发明的范围内。此外,本发明的分布式软件体系结构一般可以应用到距离向量路由协议,例如,IGRP、EIGRP或RIP,以及标签分布协议(LDP)。因此,该描述仅作为示例采用,而不是要以其他方式限制本发明的范围。因此,所附权利要求书的目的是要覆盖所有这种变动和修改,只要它们在本发明的真实精神和范围内即可。

Claims (21)

1.一种被配置为在计算机网络的路由器中实现路由协议的分布式软件体系结构系统,所述系统包括:
多个处理器;
互连所述处理器的交换结构;以及
在所述处理器上运行的多个进程,所述进程包括两个或更多个代言人和协议路由信息库,每个代言人被配置为(i)处理到所述路由器的对等路由器的一个或多个连接,(ii)接收并存储来自那些对等路由器的路线,(iii)将入站策略应用到接收自所述对等路由器的路线,并且(iv)将接收自所述对等路由器的除了用所述入站策略过滤掉的那些路线之外的所有路线下载到所述协议路由信息库,所述协议路由信息库被配置为执行第一阶段路线选择,以从自所述路由器的所有代言人下载来的路线中计算出一组最佳路线。
2.如权利要求1所述的系统,还包括由所述协议路由信息库维护的本地路由信息库,其被配置为存储由所述协议路由信息库计算出的所述最佳路线组。
3.如权利要求2所述的系统,其中,所述进程还包括被配置为维护所述路由器的路由表的全局路由信息库。
4.如权利要求3所述的系统,其中,所述协议路由信息库被配置为将所述最佳路线组从所述本地路由信息库下载到所述全局路由信息库,所述全局路由信息库还被配置为将从所述本地路由信息库下载来的最佳路线组和从其他路由协议下载来的其他最佳路线组一起使用,以执行计算用于安装在所述路由表中的最优路线的第二阶段路线选择。
5.如权利要求4所述的系统,还包括连接到所述交换结构的一个或多个线路卡,每个线路卡被配置为使用从安装在所述路由表中的最优路线构造的转发信息库对在所述路由器处接收到的分组执行转发判决。
6.如权利要求2所述的系统,其中,所述协议路由信息库还被配置为将所述最佳路线组上传到所述代言人,以允许所述代言人向所述对等路由器通告所述最佳路线。
7.如权利要求6所述的系统,其中,每个代言人还被配置为在向所述对等路由器通告所述最佳路线之前将出站策略应用到所述最佳路线。
8.如权利要求7所述的系统,其中,每个代言人还被配置为使用更新消息通告所述最佳路线。
9.如权利要求8所述的系统,其中,所述路由协议是边界网关协议,并且其中所述协议路由信息库是边界网关协议的协议路由信息库。
10.如权利要求1所述的系统,其中,所述路由协议是距离向量路由协议。
11.一种用于将计算机网络的路由器中的路由协议实现为分布式软件体系结构系统的方法,所述方法包括以下步骤:
提供所述路由器的多个处理器;
互连所述处理器;
在所述多个处理器的至少两个第一处理器上运行至少两个代言人,每个代言人:
处理到所述路由器的对等方的一个或多个连接;
接收并存储来自那些对等方的路线;
将入站策略应用到接收自所述对等方的路线,以及
在所述多个处理器的第二处理器上运行协议路由信息库,每个代言人将接收自所述对等方的除了用所述入站策略过滤掉的那些路线之外的所有路线下载到所述协议路由信息库,所述协议路由信息库执行第一阶段路线选择,以从自所述路由器的所有代言人下载来的路线中计算出最佳路线。
12.如权利要求11所述的方法,还包括以下步骤:
在所述协议路由信息库处维护本地路由信息库;以及
将由所述协议路由信息库计算出的所述最佳路线存储到所述本地路由信息库中。
13.如权利要求12所述的方法,还包括在所述多个处理器的第三处理器上运行全局路由信息库的步骤,所述全局路由信息库维护所述路由器的路由表。
14.如权利要求13所述的方法,其中,所述第二和第三处理器是同一个处理器。
15.如权利要求13所述的方法,还包括以下步骤:
将所述最佳路线从所述本地路由信息库下载到所述全局路由信息库;
将从所述本地路由信息库下载来的最佳路线和从其他路由协议下载来的其他最佳路线组一起使用来执行第二阶段路线选择,所述第二阶段路线选择计算用于安装到所述路由表中的最优路线。
16.如权利要求15所述的方法,还包括以下步骤:
将一个或多个线路卡互连到所述多个处理器;
在每个线路卡处构造转发信息库,所述转发信息库是根据安装在所述路由表中的所述最优路线来构造的;以及
使用所述转发信息库对在每个线路卡处接收到的分组执行转发判决。
17.如权利要求12所述的方法,还包括以下步骤:
将所述最佳路线从所述边界网关协议的协议路由信息库上传到每个代言人;
将出站策略应用到所上传的最佳路线;以及
向所述对等方通告所产生的最佳路线。
18.一种适于将计算机网络的路由器中的边界网关协议路由协议实现为分布式软件体系结构系统的装置,所述装置包括:
用于在多个互连的处理器中的第一处理器上运行边界网关协议代言人的装置,所述边界网关协议代言人包括:
用于处理到所述路由器的对等方的一个或多个连接的装置;
用于接收并存储来自那些对等方的路线的装置;
用于将入站策略应用到接收自所述对等方的路线的装置,以及
用于在所述多个互连的处理器中的第二处理器上运行边界网关协议的路由信息库的装置,所述边界网关协议代言人还包括用于将接收自所述对等方的除了用所述入站策略过滤掉的那些路线之外的所有路线下载到所述边界网关协议的路由信息库的装置,所述边界网关协议的路由信息库包括用于执行第一阶段路线选择以从自所述边界网关协议代言人下载来的路线中计算出最佳路线的装置。
19.如权利要求18所述的装置,还包括:
用于在所述边界网关协议的路由信息库处维护本地路由信息库的装置;以及
用于将由所述边界网关协议的路由信息库计算出的所述最佳路线存储到所述本地路由信息库中的装置。
20.一种包含可执行程序指令的计算机可读介质,所述可执行程序指令用于将计算机网络的路由器中的路由协议实现为分布式软件体系结构系统,并且所述可执行程序指令包括用于以下操作的程序指令:
在多个互连的处理器中的至少两个第一处理器上运行至少两个代言人,每个代言人:
处理到所述路由器的对等方的一个或多个连接;
接收并存储来自那些对等方的路线;
将入站策略应用到接收自所述对等方的路线,以及
在所述多个互连的处理器中的第二处理器上运行协议路由信息库,每个代言人将接收自所述对等方的除了用所述入站策略过滤掉的那些路线之外的所有路线下载到所述协议路由信息库,所述协议路由信息库执行第一阶段路线选择,以从自所述路由器的所有代言人下载来的路线中计算出最佳路线。
21.如权利要求20所述的计算机可读介质,还包括用于以下操作的程序指令:
在所述协议路由信息库处维护本地路由信息库;以及
将由所述协议路由信息库计算出的所述最佳路线存储到所述本地路由信息库中。
CN2004800257316A 2003-10-02 2004-09-30 用于实现边界网关协议(bgp)的分布式软件体系结构 Active CN1849783B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/677,797 2003-10-02
US10/677,797 US20050074003A1 (en) 2003-10-02 2003-10-02 Distributed software architecture for implementing BGP
PCT/US2004/032144 WO2005036838A1 (en) 2003-10-02 2004-09-30 Distributed software architecture for implementing the border gateway protocol (bgp)

Publications (2)

Publication Number Publication Date
CN1849783A true CN1849783A (zh) 2006-10-18
CN1849783B CN1849783B (zh) 2012-06-20

Family

ID=34393806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800257316A Active CN1849783B (zh) 2003-10-02 2004-09-30 用于实现边界网关协议(bgp)的分布式软件体系结构

Country Status (7)

Country Link
US (1) US20050074003A1 (zh)
EP (1) EP1668848B1 (zh)
CN (1) CN1849783B (zh)
AT (1) ATE517482T1 (zh)
AU (1) AU2004306715A1 (zh)
CA (1) CA2536497C (zh)
WO (1) WO2005036838A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101534246B (zh) * 2009-03-04 2011-12-21 华为技术有限公司 Vrf的迁移方法、迁移装置及其系统
CN101286944B (zh) * 2008-05-19 2012-05-30 中国科学院计算技术研究所 一种路由协作网络系统及其工作方法
CN101771632B (zh) * 2008-12-29 2012-09-05 厦门雅迅网络股份有限公司 一种跨局域网系统间通信的方法
CN105453496A (zh) * 2013-08-07 2016-03-30 瑞典爱立信有限公司 分组网络中具有谨慎恢复的冗余路径的自动建立
CN108028813A (zh) * 2016-01-28 2018-05-11 甲骨文国际公司 用于在高性能计算环境中使用用于线性转发表(lft)查找的全局路由报头(grh)中的子网前缀值的系统和方法
CN108541364A (zh) * 2016-01-21 2018-09-14 思科技术公司 模块化平台中的路由表缩放
CN108710529A (zh) * 2018-04-28 2018-10-26 四川斐讯信息技术有限公司 一种远程任务处理方法、系统及无线路由器
US11082543B2 (en) 2016-01-28 2021-08-03 Oracle International Corporation System and method for supporting shared multicast local identifiers (MLID) ranges in a high performance computing environment
US11140065B2 (en) 2016-01-28 2021-10-05 Oracle International Corporation System and method for supporting VM migration between subnets in a high performance computing environment
US11233698B2 (en) 2016-01-28 2022-01-25 Oracle International Corporation System and method for supporting subnet number aliasing in a high performance computing environment
US11496402B2 (en) 2016-01-28 2022-11-08 Oracle International Corporation System and method for supporting aggressive credit waiting in a high performance computing environment
CN115442303A (zh) * 2015-01-30 2022-12-06 Nicira股份有限公司 具有多个路由部件的逻辑路由器

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814198B2 (en) 2007-10-26 2010-10-12 Microsoft Corporation Model-driven, repository-based application monitoring system
US8085765B2 (en) * 2003-11-03 2011-12-27 Intel Corporation Distributed exterior gateway protocol
DE60327223D1 (de) * 2003-12-10 2009-05-28 Sony Deutschland Gmbh Protokoll für Multi-Hop Ad-Hoc-Netzwerke
US7860115B1 (en) * 2003-12-18 2010-12-28 Cisco Technology, Inc. Withdrawing multiple advertised routes based on a single tag which may be of particular use in border gateway protocol
US7023808B2 (en) * 2003-12-23 2006-04-04 Cisco Technology, Inc. System and method for distributing route selection in an implementation of a routing protocol
US7969907B2 (en) * 2005-02-16 2011-06-28 Cisco Technology, Inc. System for scheduling scans of interior nodes of a network domain for reachability events
US7599312B2 (en) * 2005-03-11 2009-10-06 Cisco Technology, Inc. Withdrawing multiple advertised routes based on a query defined in a withdraw message which may be of particular use in border gateway protocol
CN100454830C (zh) * 2005-05-20 2009-01-21 华为技术有限公司 网络域中实现路径计算的方法
US7710899B1 (en) * 2005-08-16 2010-05-04 Cisco Technology, Inc. System and method for speeding border gateway protocol graceful restart
US20070097974A1 (en) * 2005-10-28 2007-05-03 Ward David D Distributed border gateway protocol (BGP) route reflector system
US7835378B2 (en) * 2006-02-02 2010-11-16 Cisco Technology, Inc. Root node redundancy for multipoint-to-multipoint transport trees
US7583672B2 (en) 2006-04-05 2009-09-01 Cisco Technology, Inc. Techniques to support asymmetrical static/dynamic adjacency in routers
US7929524B2 (en) 2006-09-29 2011-04-19 Cisco Technology, Inc. Apparatus and method to hide transit only multi-access networks in OSPF
US8024396B2 (en) * 2007-04-26 2011-09-20 Microsoft Corporation Distributed behavior controlled execution of modeled applications
CN101056270B (zh) * 2007-05-18 2010-10-06 华为技术有限公司 一种路由收敛的方法及路由设备
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US7970892B2 (en) * 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US8230386B2 (en) 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US8225308B2 (en) * 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US7974939B2 (en) 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US7926070B2 (en) 2007-10-26 2011-04-12 Microsoft Corporation Performing requested commands for model-based applications
US8181151B2 (en) * 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US8625592B2 (en) * 2008-02-26 2014-01-07 Cisco Technology, Inc. Blade switch with scalable interfaces
CN101534239B (zh) * 2008-03-13 2012-01-25 华为技术有限公司 路由安装方法和设备
US8285900B2 (en) 2009-02-17 2012-10-09 The Board Of Regents Of The University Of Texas System Method and apparatus for congestion-aware routing in a computer interconnection network
US8149713B2 (en) * 2009-09-29 2012-04-03 Cisco Technology, Inc. Forwarding of packets based on a filtered forwarding information base
US9077607B2 (en) * 2010-07-23 2015-07-07 Force10 Networks, Inc. Border gateway protocol inbound policy optimization
US8625407B2 (en) * 2010-09-14 2014-01-07 Force10 Networks, Inc. Highly available virtual packet network device
US8640236B2 (en) * 2011-06-27 2014-01-28 Cisco Technology, Inc. Performing a defensive procedure in response to certain path advertisements
CN104969519B (zh) * 2013-04-27 2018-03-09 华为技术有限公司 报文分发方法及装置、无线网关
US9590901B2 (en) 2014-03-14 2017-03-07 Nicira, Inc. Route advertisement by managed gateways
US9935831B1 (en) * 2014-06-03 2018-04-03 Big Switch Networks, Inc. Systems and methods for controlling network switches using a switch modeling interface at a controller
US10038628B2 (en) * 2015-04-04 2018-07-31 Nicira, Inc. Route server mode for dynamic routing between logical and physical networks
US10333849B2 (en) 2016-04-28 2019-06-25 Nicira, Inc. Automatic configuration of logical routers on edge nodes
CN107733794B (zh) * 2016-08-10 2020-10-16 中国电信股份有限公司 多出口路由的优化选路方法、系统和服务器
GB201706475D0 (en) * 2017-04-24 2017-06-07 Microsoft Technology Licensing Llc Communications network node
US10476779B1 (en) * 2018-03-19 2019-11-12 Juniper Networks, Inc. Configuring a topology of devices to support scaling of an exchange point
US11212139B2 (en) * 2019-08-29 2021-12-28 Charter Communications Operating, Llc Border gateway protocol (BGP) hijacks prefix signing using public/private keys
US11444828B2 (en) * 2020-02-12 2022-09-13 Ciena Corporation Identifying border gateway protocol (BGP) anomalies at scale
US11356369B1 (en) * 2020-03-31 2022-06-07 Juniper Networks, Inc. Border gateway protocol update packing for a distributed routing information base
US11561823B1 (en) 2020-05-12 2023-01-24 Juniper Networks, Inc. Lockless management of immutable objects by multi-threaded processes using multiple counters
US11762710B2 (en) 2020-06-23 2023-09-19 Juniper Networks, Inc. Multithreaded route processing for routing information display
US11252084B1 (en) * 2020-09-29 2022-02-15 Palo Alto Networks, Inc. Enhanced SD-WAN path quality measurement and selection

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5917820A (en) * 1996-06-10 1999-06-29 Cisco Technology, Inc. Efficient packet forwarding arrangement for routing packets in an internetwork
US6339595B1 (en) * 1997-12-23 2002-01-15 Cisco Technology, Inc. Peer-model support for virtual private networks with potentially overlapping addresses
US6269099B1 (en) * 1998-07-01 2001-07-31 3Com Corporation Protocol and method for peer network device discovery
CA2254813A1 (en) * 1998-11-18 2000-05-18 Northern Telecom Limited Distribution of reachability information in data virtual private networks
US6553423B1 (en) * 1999-05-27 2003-04-22 Cisco Technology, Inc. Method and apparatus for dynamic exchange of capabilities between adjacent/neighboring networks nodes
US20020021675A1 (en) * 1999-10-19 2002-02-21 At&T Corp. System and method for packet network configuration debugging and database
US6999454B1 (en) * 2001-02-09 2006-02-14 Nortel Networks Limited Information routing system and apparatus
US7054311B2 (en) * 2001-07-27 2006-05-30 4198638 Canada Inc. Methods and apparatus for storage and processing of routing information
US7180864B2 (en) * 2002-02-27 2007-02-20 Lucent Technologies Inc. Method and apparatus for exchanging routing information within an autonomous system in a packet-based data network
US7209449B2 (en) * 2002-03-27 2007-04-24 Intel Corporation Systems and methods for updating routing and forwarding information
US7260645B2 (en) * 2002-04-26 2007-08-21 Proficient Networks, Inc. Methods, apparatuses and systems facilitating determination of network path metrics
US20040006640A1 (en) * 2002-07-03 2004-01-08 Inderieden Daniel W. Notification to routing protocols of changes to routing information base
US7317722B2 (en) * 2003-08-20 2008-01-08 3Com Corporation System and method for distributed multicast routing

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286944B (zh) * 2008-05-19 2012-05-30 中国科学院计算技术研究所 一种路由协作网络系统及其工作方法
CN101771632B (zh) * 2008-12-29 2012-09-05 厦门雅迅网络股份有限公司 一种跨局域网系统间通信的方法
CN101534246B (zh) * 2009-03-04 2011-12-21 华为技术有限公司 Vrf的迁移方法、迁移装置及其系统
CN105453496B (zh) * 2013-08-07 2018-12-07 瑞典爱立信有限公司 用于分组网络中具有谨慎恢复的冗余路径的自动建立的方法和设备
CN105453496A (zh) * 2013-08-07 2016-03-30 瑞典爱立信有限公司 分组网络中具有谨慎恢复的冗余路径的自动建立
CN115442303A (zh) * 2015-01-30 2022-12-06 Nicira股份有限公司 具有多个路由部件的逻辑路由器
CN108541364A (zh) * 2016-01-21 2018-09-14 思科技术公司 模块化平台中的路由表缩放
US10868746B2 (en) 2016-01-28 2020-12-15 Oracle International Corporation System and method for using subnet prefix values in global route header (GRH) for linear forwarding table (LFT) lookup in a high performance computing environment
CN108028813B (zh) * 2016-01-28 2021-05-07 甲骨文国际公司 在高性能计算环境中使用用于线性转发表查找的全局路由报头中的子网前缀值的系统和方法
US11082543B2 (en) 2016-01-28 2021-08-03 Oracle International Corporation System and method for supporting shared multicast local identifiers (MLID) ranges in a high performance computing environment
US11140065B2 (en) 2016-01-28 2021-10-05 Oracle International Corporation System and method for supporting VM migration between subnets in a high performance computing environment
US11140057B2 (en) 2016-01-28 2021-10-05 Oracle International Corporation System and method for monitoring logical network traffic flows using a ternary content addressable memory in a high performance computing environment
US11190429B2 (en) 2016-01-28 2021-11-30 Oracle International Corporation System and method for allowing multiple global identifier (GID) subnet prefix values concurrently for incoming packet processing in a high performance computing environment
US11233698B2 (en) 2016-01-28 2022-01-25 Oracle International Corporation System and method for supporting subnet number aliasing in a high performance computing environment
US11496402B2 (en) 2016-01-28 2022-11-08 Oracle International Corporation System and method for supporting aggressive credit waiting in a high performance computing environment
CN108028813A (zh) * 2016-01-28 2018-05-11 甲骨文国际公司 用于在高性能计算环境中使用用于线性转发表(lft)查找的全局路由报头(grh)中的子网前缀值的系统和方法
US11824749B2 (en) 2016-01-28 2023-11-21 Oracle International Corporation System and method for allowing multiple global identifier (GID) subnet prefix values concurrently for incoming packet processing in a high performance computing environment
CN108710529A (zh) * 2018-04-28 2018-10-26 四川斐讯信息技术有限公司 一种远程任务处理方法、系统及无线路由器

Also Published As

Publication number Publication date
ATE517482T1 (de) 2011-08-15
EP1668848A1 (en) 2006-06-14
US20050074003A1 (en) 2005-04-07
CN1849783B (zh) 2012-06-20
EP1668848B1 (en) 2011-07-20
AU2004306715A1 (en) 2005-04-21
WO2005036838A1 (en) 2005-04-21
CA2536497C (en) 2009-04-14
CA2536497A1 (en) 2005-04-21

Similar Documents

Publication Publication Date Title
CN1849783B (zh) 用于实现边界网关协议(bgp)的分布式软件体系结构
EP1698089B1 (en) System and method for distributing route selection in an implementation of a routing protocol
US7437476B2 (en) Optimizing flooding of information in link-state routing protocol
US7065059B1 (en) Technique for restoring adjacencies in OSPF in a non-stop forwarding intermediate node of a computer network
CN101455030B (zh) 动态共享风险节点组(srng)成员发现
CN103516782B (zh) 网络设备任务的分布式处理
US7899934B2 (en) Handling un-partitioning of a computer network
US7292585B1 (en) System and method for storing and utilizing routing information in a computer network
US8572225B2 (en) Technique for graceful shutdown of a routing protocol in a network
US7404006B1 (en) Publishing a network address in a computer network
CN101040487A (zh) Igp中的bgp下一跳路由的自动路由标记
US7388862B2 (en) Technique for notifying EIGRP neighbors when destroying adjacencies in a computer network
EP1695483A1 (en) Implicit routing in content based networks
US7406535B2 (en) Role-based message addressing for a computer network
US20130151445A1 (en) Method and System for Survival of Data Plane Through a Total Control Plane Failure
CN101099341B (zh) 用于调度网络域的内部节点针对可达性事件的扫描的系统和方法
EP1440529A1 (en) System and method for information object routing in computer networks
Cisco Enhanced Interior Gateway Routing Protocol (EIGRP)
US7653059B1 (en) Communication sessions for a computer network
Khayou et al. A hybrid distance vector link state algorithm: distributed sequence number
US8275864B1 (en) Peer-to-peer network with recovery capability
US7467194B1 (en) Re-mapping a location-independent address in a computer network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant