CN101459577B - Bgp路由在分布式路由子系统中实现硬件查找的方法 - Google Patents
Bgp路由在分布式路由子系统中实现硬件查找的方法 Download PDFInfo
- Publication number
- CN101459577B CN101459577B CN2007101723008A CN200710172300A CN101459577B CN 101459577 B CN101459577 B CN 101459577B CN 2007101723008 A CN2007101723008 A CN 2007101723008A CN 200710172300 A CN200710172300 A CN 200710172300A CN 101459577 B CN101459577 B CN 101459577B
- Authority
- CN
- China
- Prior art keywords
- route
- bgp
- master control
- fib
- ply
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种BGP路由在分布式路由子系统中实现硬件查找的方法。该技术方案在BDCOM现有的路由子系统基础上进行扩展,考虑到BGP路由需要进行二次查找,才能找到真实的下一跳出口。这个对于通过CPU软件转发而言,是不会造成困惑的。但是,为了提高报文转发效率,往往需要把BGP路由写入线卡的硬件转发表,但是,就目前的交换芯片而言,是不支持二次路由查找的。不过采用本发明所述的技术方案能把真实下一跳也写入硬件转发表。最终实现在主控板的中央处理器模块中进行BGP路由协议的同时在各线卡的处理器中并行进行实际路由的查找。
Description
技术领域:
本发明涉及数据通信中的IP单播路由以及BGP((Border GatewayProtocol)路由协议,特别涉及一种BGP路由在分布式路由子系统中实现硬件查找的方法。
背景技术:
作为互联网中重要的通信部件,路由器对于网络中计算机能高效、准确、顺利连接起着至关重要的作用。然而,现有的低端路由器只有一个CPU,因此路由子系统运行于同一个CPU上,负责路由的学习以及查找。路由查找速度比较慢,带来的后果就是在有大量IP报文流的情况下,影响了报文的转发速度。
对于高端路由器,业务报文往往通过线卡直接进行转发。在可能的情况下,为了进一步提高转发效率,可以尽可能的采用硬件转发,将主控板同步过来的路由,预先写入线卡的硬件转发表,并按照LPM(Longest Prefix Matched,最长前缀匹配)的原则进行报文转发。
对于BDCOM(博达公司)现有的路由子系统而言,实现上述技术方案可以采用由该路由子系统所提出的主控板RIB和FIB同步以及主控与线卡的FIB同步的相关技术原理:参见专利公开号:CN101064668A的《一种分布式路由子系统在IPV6协议栈的实现方法》专利。该专利所公开的技术方案中描述了一种针对路由子系统,通过减少主控与线卡的信息传输量,降低主控上CPU的突发占有率来提高其工作效率的改进型工作方法。该专利中所提出的线卡加电向主控板注册机制、常规触发更新机制、Ack超时重传机制、Audit同步机制四个同步机制,其技术原理就是为了在路由子系统上实现主控板RIB和FIB同步以及主控与线卡的FIB同步。
然而,上述方案和原理在解决本发明所提出的提高报文转发效率的实际操作中存在技术上局限,其主要原因是如果要通过采用硬件转发来提高报文转发效率的话,必须将BGP路由写入线卡的硬件转发表,线卡通过该转发表中BGP路由所提供的下一跳出口来确定路径。但是BGP路由需要通过二次查找才能找到下一跳出口,而现有的路由子系统的线卡交换芯片不支持BGP路由的二次查找功能。
名词解释:
RIB-Route information base,路由信息库;
FIB-Forward information base,转发信息库;
LPM-Longest Prefix Matched,最长前缀匹配;
nh-next hop,路由的下一跳信息,往往指网关地址;
Main Control-分布式路由器的主控板,路由协议处理子模块运行的硬件环境;
Line Card-分布式路由器的线卡,实际的路由查找、报文转发运行的硬件环境。
发明内容:
鉴于上述技术局限和发明构思,本发明的目的是提供一种BGP路由在分布式路由子系统中实现硬件查找的方法。该技术方案在BDCOM现有的路由子系统基础上进行扩展,考虑到BGP路由需要进行二次查找,才能找到真实的下一跳出口。这个对于通过CPU软件转发而言,是不会造成困惑的。但是,为了提高报文转发效率,往往需要把BGP路由写入线卡的硬件转发表,但是,就目前的交换芯片而言,是不支持二次路由查找的。不过采用本发明所述的技术方案能把真实下一跳也写入硬件转发表。最终实现在主控板的中央处理器模块中进行BGP路由协议的同时在各线卡的处理器中并行进行实际路由的查找。
本发明涉及的技术解决方案主要涉及下面的三个处理:
(一)主控中RIB的扩充:
主控的路由子模块负责路由的维护,相应路由信息存放在RIB中。并负责将其中的活动(active)路由同步到主控的FIB表。这需要根据BGP路由的下一跳情况进行两种划分:
①依赖的内层路由是非直连路由:
比如rip学习到的路由,将内层路由的下一跳作为BGP路由的nh(next hop,路由的下一跳信息)填充内容
②依赖的内层路由是直连路由:
比如是直连路由,或者指向端口的静态路由,为了能正确的填充报文的转发下一跳网关地址,以便arp解析,我们应该填BGP路由的原始下一跳。
路由表扩充的具体处理方式如下:
(1)扩充RIB:
在原先的一级二叉树节点上,如果某条路由被BGP路由引用,则以该路由所在节点为根节点,再扩充下一级二叉树,用于保存它当前所支持的所有BGP路由(按照BGP路由下一跳的最长匹配原则进行匹配)。扩充的二叉树上,仍然采用BGP路由的前缀和掩码长度作为二叉树的索引。
(2)BGP路由与被依赖路由之间的关联以及调整:
BGP所引用的内层路由需要记录下来,而被引用的内层路由往往可能被多条BGP路由或者其它路由所引用,这也需要被引用的路由节点上保存自己被哪些BGP路由引用了。所有这些信息都是为了再路由发生变动的时候(增删改),用于重新确立BGP路由和新的内层路由之间的关联或者去关联。
每条active路由都有一个和线卡对应的状态位以表明该路由是否需要针对特定线卡进行更新。若RIB中当前active(活动)路由发生变化,需要通知给主控上的FIB,并做RIB与FIB的同步。
(二)主控中RIB和FIB的同步:
扩充完成RIB表以后,将对应的路由变更以回调或者消息机制通知FIB表,然后由FIB表填充对应的转发条目。信息包括目标地址前缀,掩码长度,下一跳地址。这里因为是转发表,填入的已经是最优路由,所以,不再关心管理距离以及度量值。对于发生变动了的条目,需要有更新标志,以便于为下一步主控和线卡的同步做处理。
(三)主控FIB和线卡的同步:
主控和线卡FIB的路由同步采用LAPD的方式进行。分主控FIB中变化路由向线卡的定期以及主控FIB和FIB中路由的定期同步检查。
使用本方案可以做到主控FIB和线卡FIB的独立同步,并且在主控的FIB中已经对BGP路由进行了处理,对应BGP路由的下一跳网关地址要么是直接可达的地址,或者是可以使用代理ARP解析出的地址。这样,采用交换芯片进行转发时,可以直接匹配到路由的真实出端口,从而满足直接将相应的BGP路由条目写入线卡的硬件转发表,提高了线卡的转发效率。
附图说明:
以下结合附图和具体实施方式来进一步说明本发明。
图1为包含本发明的分布式路由子系统的同步机制的示意图
图2为本发明中内层路由是非直接路由的设置示意图。如图所示:跨设备的BGP路由,内层路由为指向下一跳。
图3为本发明中内层路由是直接路由的设置示意图。如图所示:直接相连BGP路由,内层路由为指向端口。
图4为本发明所涉及的二级二叉树的构成示意图。
图5为本发明所述路由添加流程示意图。
具体实施方式:
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
参见图1,首先,本发明基于一种分布式路由子系统的同步机制,该机制在实际应用中须通过高端路由器的硬件设备(主要是指主控板Main Control和线卡Line Card)来实现。包含线卡加电向主控板注册机制、常规触发更新机制、Ack超时重传机制、Audit同步机制四个同步机制:
线卡加电向主控板注册机制:硬件启动,线卡插入插槽以后,加电初始化。之后向主控发送request进行注册。在此过程中,线卡必须明确的收到主控的Ack报文,否则超时重传。
常规触发更新机制:主控收到线卡的request报文以后,需要检查该报文是request具体的路由还是request all;若为前者,则需要遍历主控的FIB表,查找线卡所需要的具体的路由进行更新;若是request all,则需要针对主控FIB表中所有entry的该线卡更新标志位进行设置。这两种情况,都需要等待主控的更新定时器超时。
Ack超时重传机制:当Audit定时器超时以后,若针对该线卡的发送缓冲不为空,则需要重发该发送缓冲中的报文;反之,则考虑是否从主控FIB中继续遍历,封装变化了的entry,然后进行发送。这个过程涉及到稀疏更新路由的处理。
Audit同步机制:当Audit定时器超时后,主控需要遍历它的整个FIB,但是只关心路由的IPV6前缀以及时间戳,并将其封装到update报文中,单播发给线卡以便和线卡FIB中的路由进行一致性比较。线卡根据比较的结果是否一致,决定是否需要向主控FIB请求路由更新。对于audit向线卡进行一致性检查时,若没有收到线卡的响应,我们的处理方式是重发次数超过一个阀值后就停止该线卡的此轮audit同步检查。
根据Ack超时重传机制中所提到的稀疏更新路由技术,其含义就是在前一次路由更新后,若在常规Audit定时器超时以前变化的路由数目比较少,则直接将路由添加进FIB中而不设更新标志位。同时,该路由也封装到报文中并加入发送缓冲队列。在该定时器超时后,就不用遍历FIB而直接处理发送缓冲。
主控上audit和常规更新采用互相排斥的方式进行,即一个过程在处理的过程中,抑制另外一个过程的触发。
本发明在上述同步机制的基础上,对报文转发时所涉及的BGP路由进行设置,该过程所涉及下面的三个处理:
(一)主控中RIB的扩充:
主控的路由子模块负责路由的维护,相应路由信息存放在RIB中。并负责将其中的活动(active)路由同步到主控的FIB表。这需要根据BGP路由的下一跳情况进行两种划分:
①依赖的内层路由是非直连路由:
参见图2,比如rip学习到的路由,将内层路由的下一跳作为BGP路由的nh(next hop,路由的下一跳信息)填充内容
②依赖的内层路由是直连路由:
参见图3,比如是直连路由,或者指向端口的静态路由,为了能正确的填充报文的转发下一跳网关地址,以便arp解析,我们应该填BGP路由的原始下一跳。
路由表扩充的具体处理方式如下:
(1)扩充RIB(参见图4):
在原先的一级二叉树节点上,如果某条路由被BGP路由引用,则以该路由所在节点为根节点,再扩充下一级二叉树,用于保存它当前所支持的所有BGP路由(按照BGP路由下一跳的最长匹配原则进行匹配)。扩充的二叉树上,仍然采用BGP路由的前缀和掩码长度作为二叉树的索引。
(2)BGP路由与被依赖路由之间的关联以及调整(参见图5):
BGP所引用的内层路由需要记录下来,而被引用的内层路由往往可能被多条BGP路由或者其它路由所引用,这也需要被引用的路由节点上保存自己被哪些BGP路由引用了。所有这些信息都是为了再路由发生变动的时候(增删改),用于重新确立BGP路由和新的内层路由之间的关联或者去关联。
每条active路由都有一个和线卡对应的状态位以表明该路由是否需要针对特定线卡进行更新。若RIB中当前active(活动)路由发生变化,需要通知给主控上的FIB,并做RIB与FIB的同步。
(二)主控中RIB和FIB的同步:
扩充完成RIB表以后,将对应的路由变更以回调或者消息机制通知FIB表,然后由FIB表填充对应的转发条目。信息包括目标地址前缀,掩码长度,下一跳地址。这里因为是转发表,填入的已经是最优路由,所以,不再关心管理距离以及度量值。对于发生变动了的条目,需要有更新标志,以便于为下一步主控和线卡的同步做处理。
(三)主控FIB和线卡的同步:
主控和线卡FIB的路由同步采用LAPD的方式进行。分主控FIB中变化路由向线卡的定期以及主控FIB和FIB中路由的定期同步检查。
结合上述技术原理,整个BGP路由的处理方案的流程如下:
1.主控学习到路由,添加进入RIB,这里需要区分是BGP路由还是非BGP路由。
2.RIB通过内部消息以及回调机制,将新学习到的处理active状态的路由同步到主控快速转发表FIB。在同步的时候,需要考虑是否要修改BGP对内层路由的依赖关系。
3.如果是非BGP路由发生了变动,需要向上回溯直到根节点,清除所有的BGP路由依赖关系。涉及到的BGP路由需要重新查找新的依赖关系,以确保出口的最长匹配。
4.填充BGP的nh的时候,需要根据图一以及图二的两种情况分别考虑。
5.如果因为有路由变动导致FIB表中BGP路由的nh发生了变化,则需要重置定时器,并且重新设置该bgp的更新标致。
6.通过同步机制,将FIB中的路由同步到线卡。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (1)
1.BGP路由在分布式路由子系统中实现硬件查找的方法,其特征在于,包括以下步骤:
(1)主控中路由信息库RIB的扩充;
(2)主控中路由信息库RIB和转发信息库FIB的同步;
(3)主控FIB和线卡FIB的同步;
其中主控的路由子模块负责路由的维护,相应路由信息存放在RIB中,并负责将其中的活动(active)路由同步到主控的FIB表,这需要根据BGP路由的下一跳情况进行两种划分:
①依赖的内层路由是非直连路由时,将内层路由的下一跳作为BGP路由的nh填充内容;所述nh表示路由的下一跳信息,指网关地址;
②依赖的内层路由是直连路由时,则填BGP路由的原始下一跳;
主控中路由信息库RIB的扩充具体处理方式如下:(a)扩充RIB,在原先的一级二叉树节点上,如果某条路由被BGP路由引用,则以该路由所在节点为根节点,再扩充下一级二叉树,用于保存它当前所支持的所有BGP路由,扩充的二叉树上,仍然采用BGP路由的前缀和掩码长度作为二叉树的索引;
(b)BGP路由与被依赖路由之间进行关联以及调整;BGP所引用的内层路由需要记录下来,由于被引用的内层路由可能被多条BGP路由或者其它路由所引用,因此这也需要被引用的路由节点上保存自己被哪些BGP路由引用了,所有这些信息都是为了在路由发生变动的时候,用于重新确立BGP路由和新的内层路由之间的关联或者去关联;
所述主控中RIB和FIB的同步步骤为:在扩充完成RIB表以后,将对应的路由变更以回调或者消息机制通知FIB表,然后由FIB表填充对应的转发条目;对于发生变动了的条目,需要有更新标志,以便于为下一步主控和线卡的同步做处理;
所述主控FIB和线卡FIB的同步步骤中,主控和线卡FIB的路由同步采用LAPD的方式进行;
主控的FIB中已经对BGP路由进行了处理,对应BGP路由的下一跳网关地址是直接可达的地址或是可以使用代理ARP解析出的地址,这样,线卡的交换芯片进行转发时,可以直接匹配到路由的真实端口,直接将相应的BGP路由条目写入线卡的硬件转发表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101723008A CN101459577B (zh) | 2007-12-14 | 2007-12-14 | Bgp路由在分布式路由子系统中实现硬件查找的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101723008A CN101459577B (zh) | 2007-12-14 | 2007-12-14 | Bgp路由在分布式路由子系统中实现硬件查找的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101459577A CN101459577A (zh) | 2009-06-17 |
CN101459577B true CN101459577B (zh) | 2012-04-04 |
Family
ID=40770216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101723008A Expired - Fee Related CN101459577B (zh) | 2007-12-14 | 2007-12-14 | Bgp路由在分布式路由子系统中实现硬件查找的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101459577B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917351A (zh) * | 2010-03-31 | 2010-12-15 | 迈普通信技术股份有限公司 | 路由器上组播转发方法及转发路由器 |
CN108616455A (zh) * | 2018-04-23 | 2018-10-02 | 上海泰砚通信技术有限公司 | 一种单机堆叠系统的路由同步方法 |
CN114615216B (zh) * | 2022-03-11 | 2023-07-21 | 深圳市风云实业有限公司 | 一种基于交换芯片的路由表动态调整方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050131912A1 (en) * | 2003-12-10 | 2005-06-16 | Cisco Technology, Inc. | Maintaining and distributing relevant routing information base updates to subscribing clients in a device |
CN1883146A (zh) * | 2003-12-23 | 2006-12-20 | 思科技术公司 | 在路由选取协议的实现中分布路由选择的系统和方法 |
CN101064668A (zh) * | 2006-04-29 | 2007-10-31 | 上海博达数据通信有限公司 | 一种分布式路由子系统在ipv6协议栈的实现方法 |
-
2007
- 2007-12-14 CN CN2007101723008A patent/CN101459577B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050131912A1 (en) * | 2003-12-10 | 2005-06-16 | Cisco Technology, Inc. | Maintaining and distributing relevant routing information base updates to subscribing clients in a device |
CN1883146A (zh) * | 2003-12-23 | 2006-12-20 | 思科技术公司 | 在路由选取协议的实现中分布路由选择的系统和方法 |
CN101064668A (zh) * | 2006-04-29 | 2007-10-31 | 上海博达数据通信有限公司 | 一种分布式路由子系统在ipv6协议栈的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101459577A (zh) | 2009-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102377666B (zh) | 具有平均速率和突发速率控制的基于泛洪的路由协议 | |
US20080159150A1 (en) | Method and Apparatus for Preventing IP Datagram Fragmentation and Reassembly | |
CN100579072C (zh) | 一种在ip设备之间进行通信的方法和系统 | |
US8923305B2 (en) | Flooding-based routing protocol having database pruning and rate-controlled state refresh | |
Rakheja et al. | Performance analysis of RIP, OSPF, IGRP and EIGRP routing protocols in a network | |
CN100505673C (zh) | 检测路径最大传输单元的方法和系统 | |
EP3697033B1 (en) | Method and device for forwarding information | |
CN1625176A (zh) | 边缘到边缘伪线仿真协议的实现方法 | |
CN1934560A (zh) | 通过网络系统的树型和环型拓扑发送信息的方法 | |
US7391730B1 (en) | System and method for synchronizing link state databases in a network environment | |
JP2005244983A (ja) | パケットのルーティング方法及びシステム | |
WO2014034097A1 (en) | Path control system, control apparatus, edge node, path control method, and program | |
CN101394354A (zh) | 一种避免中间系统邻居关系震荡的方法和一种中间系统 | |
CN101459577B (zh) | Bgp路由在分布式路由子系统中实现硬件查找的方法 | |
TWI543567B (zh) | 在電腦網路中進行封包的多路徑路由選擇的裝置及其方法 | |
KR101337054B1 (ko) | 패킷 시퀀스 번호를 동기화하기 위한 리던던트 회선 카드 및 네트워크 노드 및 방법 | |
US7245640B2 (en) | Packet origination | |
CN102255805B (zh) | 发送报文的方法、转发报文的方法及装置 | |
CN101515938B (zh) | 通过传输网络传输ip报文的方法及装置 | |
WO2003028279A3 (de) | Weiterleitung von datentelegrammen mit koppelknot datenersatz | |
Cisco | Configuring IP Enhanced IGRP | |
Cisco | Configuring IP Enhanced IGRP | |
Cisco | Configuring DECnet | |
Cisco | Configuring DECnet | |
Cisco | Configuring DECnet |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120404 Termination date: 20211214 |