一种快速路由收敛方法及相关装置的制作方法

文档序号:7651879阅读:235来源:国知局
专利名称:一种快速路由收敛方法及相关装置的制作方法
技术领域
本发明涉及通信网络中的路由收敛技术,尤其涉及一种在链路切换时加快路由收敛的方法和装置。
背景技术
对于三层网络设备来说,路由协议负责生成路由,并将路由下发形成转发表用来指导三层报文转发。三层报文转发可以由诸如NP(NetworkProcessor,网络处理器)芯片、ASIC(Application Specific IntegratedCircuit,专用集成电路)芯片之类的硬件实现,也可以由软件实现。不管是采用硬件形式还是软件形式实现三层报文转发,其转发表的结构都是类似的。
图1示出了所述转发表的结构示意。如图1所示,具有相同下一跳(next hop)指针111的前缀(prefix)表项110指向同一个下一跳表项120。三层报文转发时首先查找前缀表,找到最长匹配的前缀表项110后,根据前缀表项110中的下一跳指针111找到下一跳120表项,从而获取二层封装信息,进行二层封装后交由物理层发送。
当网络拓扑发生变化时,路由协议重新计算后生成新的路由并据此刷新转发表,以使报文能够按照新的路由进行正确转发。从网络拓扑发生变化到报文按照新的路由进行正确转发的这段时间称为路由收敛时间。下面以图2所示三角组网为例,对由网络拓扑变化引发的转发表更新及路由收敛时间进行详细解释。
如图2所示,设备210和设备220通过环回(loopback)接口建立BGP(Border Gateway Protocol,边界网关协议)邻居关系,设备220通过BGP从设备210学到的路由下一跳为设备210的环回接口地址,且这些BGP路由需要依赖设备210上的环回接口地址对应的IGP(InteriorGateway Protocol,内部网关协议)路由获得转发用的实际下一跳后下发给转发表。比如假设设备210上环回接口地址对应的IGP路由的下一跳为设备210上连接设备220的物理接口地址1.1.1.1,那么BGP路由转发用的实际下一跳地址就是1.1.1.1,也即BGP路由在转发表中的下一跳地址为1.1.1.1。
当设备210和设备220之间的链路发生故障中断时(如图2中“×”标记所示),设备210与设备220之间的BGP邻居关系不断,但相应BGP路由转发用的实际下一跳地址会切换到设备230连接设备220的物理接口地址2.2.2.2上。这样,设备220上所有从设备210学到的BGP路由需要逐条刷新转发表,以修改其下一跳地址。
对于上述现有技术方案,BGP路由需要逐条刷新转发表来修改其下一跳地址,有多少条BGP路由就需要刷新多少次转发表,必须等全部相关BGP路由修改完才能进行报文正确转发,也即完成路由收敛。这就使得,路由收敛时间与BGP路由数量成正比关系,当BGP路由达到几十万数量级时相应的路由收敛时间将会很长。

发明内容
有鉴于此,本发明目的在于提供一种快速路由收敛方法,以解决三角组网中发生链路切换时路由收敛慢的问题。
同时,本发明另一目的在于提供一种快速路由收敛装置,以支持上述方法的实施。
为了达到上述目的,本发明提供了一种快速路由收敛方法,其包括有在三层网络设备上IGP路由的下一跳从地址1切换为地址2之后,判断所述三层网络设备中到达所述地址1是否只存在需要依赖所述IGP路由的路由;如果所述判断结果为是,则将所述三层网络设备上转发表中所述地址1对应的下一跳表项内容切换为所述地址2对应的下一跳表项内容。
对于上述快速路由收敛方法,其优选地还包括有在所述下一跳表项内容切换完毕之后,开始逐条修改所述网络设备上的路由以将其中下一跳为所述地址1的路由修改成下一跳为所述地址2。
对于上述快速路由收敛方法,其进一步优选地还包括有在所述路由下一跳修改完毕之后,所述转发表将其中所述地址1对应的下一跳表项内容还原。
对于上述快速路由收敛方法,其中,判断所述三层网络设备中到达所述地址1是否只存在需要依赖所述IGP路由的路由,优选地具体包括有根据是否需要依赖所述IGP路由,将所述三层网络设备上的路由分为两类,并按照所述路由的下一跳分别进行计数;当不需要依赖所述IGP路由而下一跳为所述地址1的路由计数为0、且需要依赖所述IGP路由而下一跳为所述地址1的路由计数不为0时,则判定所述三层网络设备中到达所述地址1只存在需要依赖所述IGP路由的路由。
为了达到上述另一目的,本发明提供了一种快速路由收敛装置,其安置在包括有路由协议单元和转发表的三层网络设备中。该装置包括有收敛触发单元,与所述路由协议单元相连,用于在感知所述路由协议单元中IGP路由的下一跳从地址1切换为地址2后,判断所述三层网络设备中到达所述地址1是否只存在需要依赖所述IGP路由的路由,如果判定为是则决定开始路由收敛;收敛处理单元,与所述转发表和所述收敛触发单元相连,用于在接收到所述收敛触发单元开始路由收敛的决定后,通知所述转发表将其中所述地址1对应的下一跳表项内容切换为所述地址2对应的下一跳表项内容。
对于上述快速路由收敛装置,优选地,所述收敛处理单元还与所述路由协议单元相连,用于在所述转发表完成所述下一跳表项内容切换之后,通知所述路由协议单元开始逐条修改所述三层网络设备上的路由,以将其中下一跳为所述地址1的路由修改成下一跳为所述地址2,并通过相应刷新所述转发表使得其中指向所述地址1的前缀表项修改为指向所述地址2;和/或,在所述路由下一跳修改完毕后,通知所述转发表将其中所述地址1对应的下一跳表项内容还原。
对于上述快速路由收敛装置,进一步优选地,其还包括有与所述转发表的缓存单元,用于在所述转发表进行下一跳表项内容切换之前缓存所述转发表中所述地址1对应的下一跳表项内容。这样,在所述路由下一跳修改完毕后,所述转发表可通过读取所述缓存单元内数据来进行所述下一跳表项内容还原。
对于上述快速路由收敛装置,更进一步优选地,其还包括有与所述路由协议单元和所述收敛触发单元相连的分类计数单元,用于根据是否需要依赖所述IGP路由将所述三层网络设备上的路由分为两类,并按照所述路由的下一跳分别进行计数。这样,在感知到所述路由协议单元中IGP路由的下一跳从地址1切换为地址2后,所述收敛触发单元可以根据所述分类计数单元中的统计结果来判断是否开始路由收敛。并且,所述判断原则具体为如果所述分类计数单元统计显示不需要依赖所述IGP路由而下一跳为所述地址1的路由计数为0、且需要依赖所述IGP路由而下一跳为所述地址1的路由计数不为0时,则所述收敛触发单元判定所述三层网络设备中到达所述地址1只存在需要依赖所述IGP路由的路由,并据此决定开始路由收敛。
通过直接修改转发表中的下一跳表项内容,本发明实现了三层网络设备上所有路由的一次性切换,从而使得路由收敛时间与路由数量无关。也就是说,应用本发明技术方案能够有效解决现有技术中发生链路切换时路由收敛慢的问题。


图1为现有技术中三层报文转发的转发表结构示意图;图2为现有技术中三角组网的示意图;图3为本发明快速路由收敛方法实施例之一的流程图;图4为本发明快速路由收敛装置实施例之一的方框图。
具体实施例方式
图3给出了本发明所提供快速路由收敛方法的优选实施方式的流程图。下面同样以图2所示三角组网中设备220上的路由收敛为例,同时以BGP(Border Gateway Protocol,边界网关协议)路由作为需要依赖于IGP路由(Interior Gateway Protocol,内部网关协议)的路由示例,结合图3详细介绍本发明所提供快速路由收敛方法,以帮助读者更透彻地理解本发明上述及其它特征和优点。
如图2所示,设备210和设备220建立有BGP邻居关系,设备220从设备210学到的BGP路由在转发表中的下一跳为设备210连接设备220的物理接口地址1.1.1.1。当设备210和设备220之间的链路发生故障中断时,BGP路由在转发表中的下一跳需要切换到设备230连接设备220的物理接口地址2.2.2.2。在现有技术方案中主要通过逐条修改路由来刷新转发表,因此路由收敛速度非常慢,尤其在存在大数量路由的情况下。然而,本发明的主要构思在于利用转发表中前缀表项110通过其中下一跳指针111指向下一跳表项120的结构(如图1所示),通过直接修改转发表中的下一跳表项内容来实现所述三层网络设备上所有路由的一次性切换。
如图3所示,当设备210和设备220之间的链路发生故障中断时,设备220将首先执行步骤S_B,也即设备220上下一跳为地址1.1.1.1的IGP路由切换其下一跳地址为2.2.2.2。随即,通过判断设备220上到达地址1.1.1.1的路由是否只存在需要依赖IGP路由的路由,也即执行图3所示步骤S1。
对于步骤S1,其中判断可优选为根据设备220上路由的分类统计结果来进行。具体而言根据是否需要依赖IGP路由将设备220上的路由分为两类,同时按照路由中转发用的实际下一跳分别进行计数。这样,在执行图3所示步骤S1时,如果不需要依赖IGP路由而下一跳为地址1.1.1.1的路由计数为0、且需要依赖IGP路由、而下一跳为地址1.1.1.1的路由计数不为0,则判定设备220中到达1.1.1.1的路由只存在需要依赖IGP路由的路由,并据此决定触发设备220上的路由收敛,也即执行步骤S2。
对于步骤S2,参照图2中组网示例详细解释为确定设备220上到地址1.1.1.1的路由只存在需要依赖IGP路由的路由、且这些路由需要切换到新的下一跳地址2.2.2.2上(也即相应IGP路由的下一跳已从地址1.1.1.1切换了地址2.2.2.2)之后,则将设备220上转发表中地址1.1.1.1对应的下一跳表项内容切换为地址2.2.2.2对应的下一跳表项内容。这时,对于设备220上的三层报文转发,首先查找设备220上转发表中前缀表以确定最长匹配的前缀表项,如果该前缀表项中的下一跳指针为地址1.1.1.1,则将由于上述下一跳表项内容而找到地址2.2.2.2对应的下一跳表项,再进行相应的后续报文转发操作(比如,获得二层封装信息、进行二层封装后交物理层发送等)。也就是说,在完成上述下一跳表项内容之后,无论报文的下一跳地址是否为地址1.1.1.1,设备220均已可以对其进行正确转发。
至此,从转发报文的角度而言,设备220上由链路切换(从地址1.1.1.1切换到2.2.2.2)引发的路由收敛已结束,且相应路由收敛时间与设备220上的路由数量无关,从而有效提高了路由收敛速度。但是,从路由维护的角度而言,通过执行步骤S2只是使得设备220进入了一个暂态的转发报文正常。
因此,为了进一步优化设备220上的路由,本发明快速路由收敛方法中还优选地提供了原下一跳表项恢复机制。如图3所示,所述原下一跳表项恢复机制包括有步骤S3执行完步骤S2之后,设备220开始现有通用的正常路由收敛,也即在设备220开始进行路由逐条修改,以将其中下一跳为地址1.1.1.1的路由修改成下一跳为地址2.2.2.2,并通过相应刷新转发表使得其中指向1.1.1.1的前缀表项修改为指向地址2.2.2.2;步骤S4随后,待设备220上所有路由均已完成下一跳修改后,设备220上转发表再将其中地址1.1.1.1对应的下一跳表项内容修改还原。
同时,本发明还提供了一种快速路由收敛装置,其安置在包括有路由协议单元和转发表的三层网络设备中,用于加快所述三层网络设备上由链路切换引发的路由收敛。图4给出了所述快速路由收敛装置的优选实施例的结构框图。下面仍以图2所示三角组网中设备220上从下一跳地址1.1.1.1切换到地址2.2.2.2的路由收敛为例,参照图4详细介绍所述快速路由收敛装置。
如图4所示,本发明所提供快速路由收敛装置400主要包括有收敛触发单元410,与设备220上的路由协议单元500相连,用于在感知设备220(图4具体例示为路由协议单元500)中IGP路由的下一跳从地址1.1.1.1切换为地址2.2.2.2后,判断设备220中到达地址1.1.1.1的路由是否只存在需要依赖IGP路由的路由,如果判定为是则决定开始路由收敛;收敛处理单元420,与设备220上的转发表600和所述收敛触发单元410相连,用于在接收到所述收敛触发单元410开始路由收敛的决定后,通知转发表600将其中地址1.1.1.1对应的下一跳表项内容切换为地址2.2.2.2对应的下一跳表项内容;和/或,在转发表600完成所述下一跳表项内容切换后,通知路由协议单元500开始现有通用的正常路由收敛,也即通知设备220上路由协议单元500开始逐条修改路由,以将其中下一跳为地址1.1.1.1的路由修改成下一跳为地址2.2.2.2,并通过相应刷新转发表600使得其中指向地址1.1.1.1的前缀表项修改为指向地址2.2.2.2;和/或,在设备220上所有路由均完成下一跳修改后,通知转发表600将其中地址1.1.1.1对应的下一跳表项内容还原。
然而,如图4所示,为了方便转发表600进行原下一跳表项内容恢复,本发明所提供快速路由收敛装置还优选地包括有缓存单元430。缓存单元430与转发表600相连,用于在转发表600进行所述下一跳表项内容切换之前缓存转发表600中地址1.1.1.1对应的下一跳表项内容。这样,在设备220上所有路由均完成下一跳修改后,转发表600可以通过读取缓存单元430内数据、并将其中地址1.1.1.1对应的下一跳表项替换为所述数据,从而实现地址1.1.1.1对应的下一跳表项内容还原。
此外,如图4所示,为了确保收敛触发单元410的触发判定正确无误,本发明所提供快速路由收敛装置还优选地包括有分类计数单元440。分类计数单元440同时与路由协议单元500和收敛触发单元410相连,用于根据是否需要依赖所述IGP路由将设备220上的路由分为两类,并按照路由转发用的实际下一跳分别进行计数。这样,在收敛触发单元410感知到路由协议单元500中IGP路由的下一跳从地址1.1.1.1切换为地址2.2.2.2之后,其可根据此刻分类计数单元440中路由统计结果来判断设备220上到达地址1.1.1.1是否只存在需要依赖IGP路由的路由,进而决定是否要开始路由收敛。
具体而言,如果分类计数单元440中的统计结果显示不需要依赖IGP路由而下一跳为地址1.1.1.1的路由计数为0、且需要依赖IGP路由而下一跳为地址1.1.1.1的路由计数不为0时,则收敛触发单元410可判定设备220中到达地址1.1.1.1只存在需要依赖IGP路由的路由,并据此决定开始路由收敛。
需要声明的是,上述发明内容及具体实施方式
意在证明本发明所提供技术方案的实际应用,不应解释为对本发明保护范围的限定。本领域技术人员在本发明的精神和原理内,当可作各种修改、等同替换、或改进。本发明的保护范围以所附权利要求书为准。
权利要求
1.一种快速路由收敛方法,其特征在于,该方法包括有在三层网络设备上IGP路由的下一跳从地址1切换为地址2之后,判断所述三层网络设备中到达所述地址1是否只存在需要依赖所述IGP路由的路由;如果所述判断结果为是,则将所述三层网络设备上转发表中所述地址1对应的下一跳表项内容切换为所述地址2对应的下一跳表项内容。
2.如权利要求1所述的快速路由收敛方法,其特征在于,该方法还包括有在所述下一跳表项内容切换完毕之后,开始逐条修改所述网络设备上的路由以将其中下一跳为所述地址1的路由修改成下一跳为所述地址2。
3.如权利要求2所述的快速路由收敛方法,其特征在于,该方法还包括有在所述路由下一跳修改完毕之后,所述转发表将其中所述地址1对应的下一跳表项内容还原。
4.如权利要求1至3任一所述的快速路由收敛方法,其特征在于,判断所述三层网络设备中到达所述地址1是否只存在需要依赖所述IGP路由的路由,具体包括有根据是否需要依赖所述IGP路由,将所述三层网络设备上的路由分为两类,并按照所述路由的下一跳分别进行计数;当不需要依赖所述IGP路由而下一跳为所述地址1的路由计数为0、且需要依赖所述IGP路由而下一跳为所述地址1的路由计数不为0时,则判定所述三层网络设备中到达所述地址1只存在需要依赖所述IGP路由的路由。
5.一种快速路由收敛装置,其安置在包括有路由协议单元和转发表的三层网络设备中;其特征在于,该装置包括有收敛触发单元,与所述路由协议单元相连,用于在感知所述路由协议单元中IGP路由的下一跳从地址1切换为地址2后,判断所述三层网络设备中到达所述地址1是否只存在需要依赖所述IGP路由的路由,如果判定为是则决定开始路由收敛;收敛处理单元,与所述转发表和所述收敛触发单元相连,用于在接收到所述收敛触发单元开始路由收敛的决定后,通知所述转发表将其中所述地址1对应的下一跳表项内容切换为所述地址2对应的下一跳表项内容。
6.如权利要求5所述的快速路由收敛装置,其特征在于,所述收敛处理单元还与所述路由协议单元相连,用于在所述转发表完成所述下一跳表项内容切换后,通知所述路由协议单元开始逐条修改所述三层网络设备上的路由,以将其中下一跳为所述地址1的路由修改成下一跳为所述地址2,并通过相应刷新所述转发表使得其中指向所述地址1的前缀表项修改为指向所述地址2;和/或,在所述路由下一跳修改完毕后,通知所述转发表将其中所述地址1对应的下一跳表项内容还原。
7.如权利要求6所述的快速路由收敛装置,其特征在于,该装置还包括有与所述转发表的缓存单元,用于在所述转发表进行下一跳表项内容切换之前缓存所述转发表中所述地址1对应的下一跳表项内容。
8.如权利要求5至7任一所述的快速路由收敛装置,其特征在于,该装置还包括有与所述路由协议单元和所述收敛触发单元相连的分类计数单元,用于根据是否需要依赖所述IGP路由将所述三层网络设备上的路由分为两类,并按照所述路由的下一跳分别进行计数,使得所述收敛触发单元能够根据其中统计结果判断所述三层网络设备中到达所述地址1是否只存在需要依赖所述IGP路由的路由。
9.如权利要求8所述的快速路由收敛装置,其特征在于,如果所述分类计数单元统计显示不需要依赖所述IGP路由而下一跳为所述地址1的路由计数为0、且需要依赖所述IGP路由而下一跳为所述地址1的路由计数不为0时,则所述收敛触发单元判定所述三层网络设备中到达所述地址1只存在需要依赖所述IGP路由的路由。
全文摘要
本发明公开了一种快速路由收敛方法和装置,应用在三层网络设备上以加快由链路切换引发的路由收敛。所述方法包括当所述三层网络设备上IGP路由的下一跳从地址1切换为地址2后,判断到达所述地址1是否只存在需要依赖所述IGP路由的路由;如果所述判断结果为是,所述三层网络设备上的转发表则将其中所述地址1对应的下一跳表项内容切换为所述地址2对应的下一跳表项内容。通过直接修改转发表中的下一跳表项内容,本发明实现了三层网络设备上所有路由的一次性切换,从而使得路由收敛时间与路由数量无关。
文档编号H04L29/06GK101035084SQ20071009743
公开日2007年9月12日 申请日期2007年5月10日 优先权日2007年5月10日
发明者章海峰, 潘凝 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1