首页> 中国专利> BGP路由在分布式路由子系统中实现硬件查找的方法

BGP路由在分布式路由子系统中实现硬件查找的方法

摘要

本发明公开了一种BGP路由在分布式路由子系统中实现硬件查找的方法。该技术方案在BDCOM现有的路由子系统基础上进行扩展,考虑到BGP路由需要进行二次查找,才能找到真实的下一跳出口。这个对于通过CPU软件转发而言,是不会造成困惑的。但是,为了提高报文转发效率,往往需要把BGP路由写入线卡的硬件转发表,但是,就目前的交换芯片而言,是不支持二次路由查找的。不过采用本发明所述的技术方案能把真实下一跳也写入硬件转发表。最终实现在主控板的中央处理器模块中进行BGP路由协议的同时在各线卡的处理器中并行进行实际路由的查找。

著录项

  • 公开/公告号CN101459577A

    专利类型发明专利

  • 公开/公告日2009-06-17

    原文格式PDF

  • 申请/专利权人 上海博达数据通信有限公司;

    申请/专利号CN200710172300.8

  • 发明设计人 汪革;冯松柏;

    申请日2007-12-14

  • 分类号H04L12/56;H04L29/06;

  • 代理机构上海天翔知识产权代理有限公司;

  • 代理人孙景宜

  • 地址 201203 上海市浦东新区张江高科技园区居里路123号

  • 入库时间 2023-12-17 22:06:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-12-02

    未缴年费专利权终止 IPC(主分类):H04L12/56 专利号:ZL2007101723008 申请日:20071214 授权公告日:20120404

    专利权的终止

  • 2012-04-04

    授权

    授权

  • 2010-12-29

    实质审查的生效 IPC(主分类):H04L12/56 申请日:20071214

    实质审查的生效

  • 2009-06-17

    公开

    公开

说明书

技术领域:

本发明涉及数据通信中的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中的路由同步到线卡。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号