CN101674251B - 递归路由更新处理方法与装置、路由器 - Google Patents

递归路由更新处理方法与装置、路由器 Download PDF

Info

Publication number
CN101674251B
CN101674251B CN2009102356645A CN200910235664A CN101674251B CN 101674251 B CN101674251 B CN 101674251B CN 2009102356645 A CN2009102356645 A CN 2009102356645A CN 200910235664 A CN200910235664 A CN 200910235664A CN 101674251 B CN101674251 B CN 101674251B
Authority
CN
China
Prior art keywords
recurrence
route
phenomenon
routing update
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.)
Active
Application number
CN2009102356645A
Other languages
English (en)
Other versions
CN101674251A (zh
Inventor
胡闽
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.)
Ruijie Networks Co Ltd
Original Assignee
Fujian Star Net Communication Co Ltd
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 Fujian Star Net Communication Co Ltd filed Critical Fujian Star Net Communication Co Ltd
Priority to CN2009102356645A priority Critical patent/CN101674251B/zh
Publication of CN101674251A publication Critical patent/CN101674251A/zh
Application granted granted Critical
Publication of CN101674251B publication Critical patent/CN101674251B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种递归路由更新处理方法与装置、路由器,其中,递归路由更新处理方法包括:需要更新递归路由时,检测所述递归路由更新后是否会出现循环递归现象;在所述递归路由更新后不会出现循环递归现象时,对所述递归路由进行更新处理;否则,在所述递归路由更新后会出现循环递归现象时,不对所述递归路由进行更新处理。本发明实施例可以避免递归路由更新时出现路由循环递归现象,以及由此引起的路由震荡与路由转发表无法收敛。

Description

递归路由更新处理方法与装置、路由器
技术领域
本发明涉及通信技术,尤其是一种递归路由更新处理方法与装置、路由器。
背景技术
针对路由器上的一条路由转发表项,在其下一跳不能直连可达时,就必须通过再次选路才能得到最终的直连转发下一跳,该路由称为递归查找路由,简称为递归路由。例如:本路由器上设置有互联网协议(InternetProtocol,以下简称:IP)地址192.168.1.1/24,并配置如下静态路由:IP路由20.0.0.0255.255.255.010.0.0.2和10.0.0.0255.255.255.0192.168.1.2,对于路由20.0.0.0/8来说,由于20.0.0.0/8的下一跳10.0.0.2不是直连可达的,必须再次选路得到下一跳192.168.1.2才可达,因此20.0.0.0/8是递归路由。递归路由通常由边界网关协议(Border Gateway Protocol,以下简称:BGP)或静态配置产生。由于递归路由的下一跳与本路由器可能相隔多个物理链路,因此,中间物理链路发生切换或者短暂的变动,都不会对递归路由产生影响,也不用频繁计算产生递归路由的协议,保证了路由器中路由转发表的稳定,减少了路由器中中央处理器(Central Processing Unit,以下简称:CPU)和带宽的占用。
由于递归路由的下一跳不是直连路由,因此在数据转发过程中,需要对其下一跳在路由转发表中选路,以确定该路由的活动性,即确定该路由是否为活动的或可达的。同时,为了提高数据的转发效率,在进行递归路由活动性计算时,路由转发表中也保存了该路由递归计算后的真实下一跳。当路由存在多级递归时,该计算过程可能运行多次。图1为递归路由选路的一个示意图。如图1所示,在路由器中添加一条递归路由A/8→b,查询该路由器中的路由转发表时,发现路由b不在直连网段内,因此,以b在路由转发表中查找,发现其最长匹配网络B的路由为B/8→c,通过匹配路由,发现C/8→d,d为直连网段地址,因此路由B/8→c也是递归路由,其真实下一跳为d。于是,判断路由A/8→b活动,且其真实下一跳为d。由于递归路由需要依赖于中间路由的活动性。因此,在某一个路由发生变化时,需要对相关受影响的路由进行更新,以便重新计算递归路由的活动性和真实下一跳。如图2所示,为递归路由选路的另一个示意图,在图1所示的路由器中添加了一条路由C/24→e,e为接口y所属的直连网段上的地址,由于C/24的掩码长于C/8,根据最长匹配原则,路由B/8应该递归到这条新的路由。因此,此路由的添加触发了活动性更新,需要对路由B/8和A/8都进行更新,将它们的真实下一跳由原来的d更新为e。
现有技术中进行递归路由处理的流程如下:当外部添加/删除路由时,首先判断添加/删除路由的活动性是否发生变化。若该路由的活动性发生了变化,即:该路由为活动路由,则进行路由的优选。具体地,新添加一个路由时,比较该新添加路由与其它协议添加的相同前缀的其它路由的优先级,若新添加路由的优先级高于其它路由,则更新路由转发表,若不存在相同前缀的其它路由,则认为该新添加的路由的优先级最高。因为其活动性表明了其优先级最高,删除该路由时,也更新路由转发表。若该添加/删除的路由被包括在其它递归路由的递归引用关系中,则本次路由变化会影响其它递归路由的路由转发表项,则针对其它递归路由,依次从判断其活动性是否发生变化开始,执行上述流程,直到达到收敛状态。
如果一条递归路由引用的路由经过多级计算,递归到了该递归路由自身,例如:路由A的下一跳依赖于路由B,路由B的下一跳依赖于路由C,而路由C的下一跳又依赖于路由A,该情况称为循环递归。产生循环的递归查找路由称为循环递归路由。
一条路由间断性地出现并消失称为路由震荡。网络链路故障、网络维护以及网络误配置等原因均会导致某些路由发生路由震荡。在只存在静态路由的情况下,路由震荡会增大CPU的计算量,并导致网络通信的不稳定。而在运行有动态路由协议的路由器上。由于路由协议的自学习特点,当有新的路由出现时,路由器会向邻居发送更新消息,有路由消失时,路由器会向邻居发送撤销消息。因此,路由震荡会导致路由器在网络内周期性地传播大量的更新消息或撤销消息,从而占用链路带宽并增加路由器中CPU的工作负荷。
根据现有技术的递归路由处理流程,在对路由进行活动性更新时,有可能会出现路由循环递归现象,从而引起路由震荡,导致路由转发表无法收敛。
以下以一个具体实例进行说明。如图3所示,为递归路由选路的又一个示意图。在图1所示的路由器中添加一条路由C/24→a时,a属于网段A/8,首先进行活动性判断,获知路由C/24递归到路由A/8,而路由A/8递归到路由B/8,路由B/8递归到C/8,因此,最终递归到直连网段D,真实下一跳为d。于是判断该路由活动,在路由转发表中写入该路由转发表项,如图3所示。因为路由转发表发生变化,触发活动性更新,所有相关递归路由被重新计算。当计算到路由B/8→c时,由于C/24的掩码比C/8长,下一跳c匹配了更长掩码的路由C/24→a,于是修改并重新建立引用关系,将路由B/8递归到路由C/24,如图4所示,为递归路由选路的再一个示意图。重新建立完引用关系后,就会发现路由递归依赖关系链出现了循环。当路由有变动时,会将受影响的路由添加到一个更新链表,同时启动一个定时器,定时器到时会对更新链表里所有路由的活动性进行判断。对受影响的路由A/8与B/8进行活动性更新时,都会检测到该循环,于是路由A/8与B/8均被认为是不活动路由,需要从路由转发表中删除。由于删除路由引发的路由变动,也会引起活动性更新过程。假设先删除路由A/8,其活动性由活动变为不活动,继续路由优选、更新路由转发表,受影响的路由C/24与B/8被放入更新链表,其活动性被更新为不活动,从而需要从路由转发表中删除。假设再删除路由B/8,依照同样的流程将路由B/8与C/24都删除。但当定时器到时,路由更新再次计算到路由B/8时,发现其可以递归到路由C/8,于是再次判断其活动,于是其活动性被更新为活动,然后,路由A/8与C/24也相继被更新为活动。因此,将被删除的路由B/8、A/8与C/24被重新添加到路由转发表中。之后,又回到路由C/24刚添加时的状态,从而出现了周而复始的循环过程,导致路由A/8、B/8与C/24被不停地从路由转发表中删除再添加进路由转发表中,造成路由震荡,使得路由转发表无法完全收敛。
发明内容
本发明实施例的目的是:提供一种递归路由更新处理方法与装置、路由器,避免递归路由更新时出现路由循环递归现象,以及由此引起的路由震荡与路由转发表无法收敛。
本发明实施例提供的一种递归路由更新处理方法,包括:
需要更新递归路由时,检测所述递归路由更新后是否会出现循环递归现象;
在所述递归路由更新后不会出现循环递归现象时,对所述递归路由进行更新处理;
否则,在所述递归路由更新后会出现循环递归现象时,不对所述递归路由进行更新处理。
本发明实施例提供的一种递归路由更新处理装置,包括:
检测模块,用于在需要更新递归路由时,检测所述递归路由更新后是否会出现循环递归现象;
更新处理模块,用于根据所述检测模块的检测结果,在所述递归路由更新后不会出现循环递归现象时,对所述递归路由进行更新处理;否则,在所述递归路由更新后会出现循环递归现象时,不对所述递归路由进行更新处理。
本发明实施例提供的一种路由器,包括用于存储路由转发表的存储模块,还包括本发明上述实施例提供的递归路由更新处理装置。
基于本发明上述实施例提供的递归路由更新处理方法与装置、路由器,可以在需要更新递归路由时,检测该递归路由更新后是否会出现循环递归现象,只有在该递归路由更新后不会出现循环递归现象时,才对该递归路由进行更新处理,否则,不对该递归路由进行更新处理,从而避免对递归路由进行更新导致的路由循环递归现象,以及由此引起的路由震荡与路由转发表无法收敛问题,保证了路由的稳定与收敛,避免了路由震荡会导致路由器在网络内周期性地传播大量的更新消息或撤销消息,从而节省了链路带宽并减轻了路由器中CPU的工作负荷。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为递归路由选路的一个示意图;
图2为递归路由选路的另一个示意图;
图3为递归路由选路的又一个示意图;
图4为递归路由选路的再一个示意图;
图5为本发明递归路由更新处理方法一个实施例的流程图;
图6为本发明递归路由更新处理方法另一个实施例的流程图;
图7为本发明检测递归路由更新后是否会出现循环递归现象一个实施例的流程图;
图8为本发明递归路由更新处理装置一个实施例的结构示意图;
图9为本发明递归路由更新处理装置另一个实施例的结构示意图;
图10为本发明递归路由更新处理装置又一个实施例的结构示意图;
图11为本发明递归路由更新处理装置再一个实施例的结构示意图;
图12为本发明递归路由更新处理装置还一个实施例的结构示意图;
图13为本发明递归路由更新处理装置进一步实施例的结构示意图;
图14为本发明路由器一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图5为本发明递归路由更新处理方法一个实施例的流程图。如图5所示,该实施例的递归路由更新处理方法包括:
步骤101,需要更新递归路由时,检测递归路由更新后是否会出现循环递归现象。在递归路由更新后不会出现循环递归现象时,执行步骤102;否则,在递归路由更新后会出现循环递归现象时,执行步骤103。
具体地,作为本发明的一个实施例,更新递归路由包括删除或添加递归路由。
步骤102,对递归路由进行更新处理。
步骤103,不对递归路由进行更新处理。
根据本发明上述实施例提供的递归路由更新处理方法,可以在需要更新递归路由时,检测该递归路由更新后是否会出现循环递归现象,只有在该递归路由更新后不会出现循环递归现象时,才对该递归路由进行更新处理,否则,不对该递归路由进行更新处理,从而避免对递归路由进行更新导致的路由循环递归现象,以及由此引起的路由震荡与路由转发表无法收敛问题,保证了路由的稳定与收敛,避免了路由震荡会导致路由器在网络内周期性地传播大量的更新消息或撤销消息,从而节省了链路带宽并减轻了路由器中CPU的工作负荷。
根据本发明的一个实施例,在图5所示实施例中,步骤102具体可以是:对活动性发生变化且不会出现循环递归现象的递归路由进行更新处理。相应的,在步骤101之前,需要更新递归路由时,还可以包括:判断递归路由的活动性是否发生变化;在递归路由的活动性发生变化时,执行步骤101的操作
根据本发明的另一个实施例,步骤102具体可以包括:判断递归路由的活动性是否发生变化;在递归路由的活动性发生变化时,执行步骤102的操作。判断活动性是否发生变化,具体是在当前的路由转发表中,对待更新的路由进行出口查询,若通过递归查询,最后能递归到一个出口的直连路由上,从而最终确定该路由出口,那么认为该路由可达。
图6为本发明递归路由更新处理方法另一个实施例的流程图。如图6示,该实施例的递归路由更新处理方法包括:
步骤201,需要更新递归路由时,判断递归路由的活动性是否发生变化。若递归路由的活动性发生变化,执行步骤202;否则,不执行本实施例的后续流程,即:执行步骤206。
步骤202,检测递归路由更新后是否会出现循环递归现象。在递归路由更新后不会出现循环递归现象时,执行步骤203;否则,在递归路由更新后会出现循环递归现象时,不执行本实施例的后续流程,即:执行步骤206。
步骤203,识别递归路由更新后是否需要更新路由转发表。若需要更新路由转发表,执行步骤204;否则,不执行本实施例的后续流程。
步骤204,更新递归路由并据此对路由转发表进行更新。
步骤205,识别对路由转发表的更新是否影响其它递归路由的路由转发表项。若影响其它递归路由的路由转发表项,以其它递归路由作为递归路由,执行步骤202的操作,直到路由转发表达到收敛状态;否则,不执行本实施例的后续流程。
步骤206,不对递归路由进行更新处理。
作为本发明的一个具体实例,对于活动性发生变化且不会出现循环递归现象的路由,可以进行路由的优选。具体地,新添加一个路由时,可以根据预先设置默认在添加该路由前可以认为该路由的初始活动性为不活动,比较该新添加路由与其它协议添加的相同前缀的其它路由的优先级,若新添加路由的优先级高于其它路由,则认为需要更新路由转发表,若不存在相同前缀的其它路由,则认为该新添加的路由的优先级最高。因为其活动性表明了其优先级最高,删除该路由时,也需要更新路由转发表。若该添加/删除的路由被包括在其它递归路由的递归引用关系中,则本次路由变化会影响其它递归路由的路由转发表项,则针对其它递归路由,依次执行步骤201至步骤205所示的流程,直到路由转发表达到收敛状态。
作为本发明的又一个实施例,在本发明上述实施例的递归路由更新处理方法中,递归路由更新后会出现循环递归现象具体可以是:利用递归路由的下一跳从路由转发表中选路获得的依赖路由的前缀网段包含递归路由的前缀网段,并且依赖于依赖路由的下一跳落在递归路由的前缀网段中。
图7为本发明检测递归路由更新后是否会出现循环递归现象一个实施例的流程图。如图7所示,其包括以下步骤:
步骤301,利用递归路由的下一跳从路由转发表中选路,获得递归路由的第一依赖路由。
步骤302,识别第一依赖路由的前缀网段是否包含递归路由的前缀网段。若第一依赖路由的前缀网段包含递归路由的前缀网段,执行步骤303;否则,若第一依赖路由的前缀网段不包含递归路由的前缀网段,执行步骤306。
步骤303,识别依赖于第一依赖路由的下一跳是否落在递归路由的前缀网段中。若依赖于第一依赖路由的下一跳落在递归路由的前缀网段中,执行步骤304;否则,若依赖于第一依赖路由的下一跳未落在递归路由的前缀网段中,执行步骤305。
步骤304,认为递归路由更新后会出现循环递归现象。之后,不再执行本实施例的后续流程。
步骤305,认为递归路由更新后不会出现循环递归现象。之后,不再执行本实施例的后续流程。
步骤306,识别第一依赖路由的真实下一跳是否为直连网段地址。若第一依赖路由的真实下一跳是直连网段地址,执行步骤305;否则,若第一依赖路由的真实下一跳不是直连网段地址,执行步骤307。
步骤307,获取第一依赖路由的真实下一跳的第二依赖路由,并以第二依赖路由作为第一依赖路由,执行步骤302的操作。
以下以一个具体实例对图7所示的实施例进行说明。假设路由转发表中已经存在如下路由30.0.0.0255.0.0.020.0.0.2、20.0.0.0255.0.0.010.0.0.2与10.0.0.0255.0.0.0192.168.1.2,现在继续配置路由10.0.0.0255.255.0.030.0.0.2,其中,10.0.0.0为前缀,255.255.0.0为掩码,10.0.0.0255.255.0.0具体限定一个前缀网段,30.0.0.2表示该路由的下一跳。根据图7所示的实施例,首先用路由10.0.0.0255.255.0.030.0.0.2的下一跳30.0.0.2从路由转发表中选路,找到路由10.0.0.0255.255.0.030.0.0.2的依赖路由30.0.0.0/8。由于依赖路由30.0.0.0/8的前缀网段不包含网段10.0.0.0/16,继续进行路由递归,找到路由30.0.0.0/8的下一跳20.0.0.2的依赖路由20.0.0.0/8,该路由20.0.0.0/8的前缀网段仍不包含前缀网段10.0.0.0/16,再次继续进行路由递归,找到路由20.0.0.0/8的下一跳10.0.0.2的依赖路由10.0.0.0/8,发现该依赖路由10.0.0.0/8的前缀网段包含路由10.0.0.0255.255.0.030.0.0.2的前缀网段10.0.0.0/16,而且依赖于10.0.0.0/8的下一跳10.0.0.2同时也落在路由10.0.0.0255.255.0.030.0.0.2的前缀网段10.0.0.0/16内,可以确定,路由10.0.0.0255.255.0.030.0.0.2若加入路由转发表,必然会导致循环递归现象。
进一步地,在本发明上述各实施例的递归路由更新处理方法中,在递归路由更新后会出现循环递归现象时,还可以生成并输出出现循环递归现象的错误提示信息。
图8为本发明递归路由更新处理装置一个实施例的结构示意图。该实施例的递归路由更新处理装置可用于实现本发明上述实施例的各递归路由更新处理方法。如图8所示,该实施例的递归路由更新处理装置包括检测模块401与更新处理模块402。其中,检测模块401用于在需要更新递归路由时,检测递归路由更新后是否会出现循环递归现象。更新处理模块402用于根据检测模块401的检测结果,在递归路由更新后不会出现循环递归现象时,对递归路由进行更新处理;否则,在递归路由更新后会出现循环递归现象时,不对递归路由进行更新处理。
在图8所示实施例的递归路由更新处理装置中,更新递归路由具体可以包括删除或添加递归路由。更新处理模块402具体可以在递归路由更新后不会出现循环递归现象时,对活动性发生变化且不会出现循环递归现象的递归路由进行更新处理。
图9为本发明递归路由更新处理装置另一个实施例的结构示意图。与图8所示的实施例相比,该实施例的递归路由更新处理装置还包括第一判断模块403,用于在需要更新递归路由时,判断递归路由的活动性是否发生变化,并在递归路由的活动性发生变化时,指示检测模块401执行检测递归路由更新后是否会出现循环递归现象的操作。
图10为本发明递归路由更新处理装置又一个实施例的结构示意图。与图8所示的实施例相比,该实施例的递归路由更新处理装置还包括第二判断模块404,用于根据检测模块401的检测结果,在递归路由更新后不会出现循环递归现象时,判断递归路由的活动性是否发生变化,以及在递归路由的活动性发生变化时,指示更新处理模块402执行对递归路由进行更新处理的操作。
图11为本发明递归路由更新处理装置再一个实施例的结构示意图。与图8所示的实施例相比,该实施例的递归路由更新处理装置中,更新处理模块402具体包括第一识别单元501、更新单元502、第二识别单元503与指示单元504。其中,第一识别单元501用于根据检测模块401的检测结果,在递归路由更新后不会出现循环递归现象时,识别递归路由更新后是否需要更新路由转发表。更新单元502用于根据第一识别单元501的识别结果,在需要更新路由转发表时,更新递归路由并据此对路由转发表进行更新。第二识别单元503用于识别更新单元502对路由转发表的更新是否影响其它递归路由的路由转发表项。指示单元504用于根据第二识别单元503的识别结果,在影响其它递归路由的路由转发表项时,指示检测模块401以其它递归路由作为递归路由,执行检测其它递归路由更新后是否会出现循环递归现象的操作,直到路由转发表达到收敛状态。
在本发明上述各实施例的递归路由更新处理装置中,递归路由更新后会出现循环递归现象具体可以是:利用递归路由的下一跳从路由转发表中选路获得的依赖路由的前缀网段包含递归路由的前缀网段,并且依赖于依赖路由的下一跳落在递归路由的前缀网段中。相应的,图12为本发明递归路由更新处理装置还一个实施例的结构示意图。与本发明上述各实施例的递归路由更新处理装置相比,该实施例的递归路由更新处理装置中,检测模块401具体包括第一获取单元601、第三识别单元602、第四识别单元603、第五识别单元604与第二获取单元605。其中,第一获取单元601用于利用递归路由的下一跳从路由转发表中选路,获得递归路由的第一依赖路由。第三识别单元602用于识别第一获取单元601获得的第一依赖路由的前缀网段是否包含递归路由的前缀网段。第四识别单元603用于根据第三识别单元602的识别结果,在第一依赖路由的前缀网段包含递归路由的前缀网段时,识别依赖于第一依赖路由的下一跳是否落在递归路由的前缀网段中;若依赖于第一依赖路由的下一跳落在递归路由的前缀网段中,则认为递归路由更新后会出现循环递归现象;否则,若依赖于第一依赖路由的下一跳未落在递归路由的前缀网段中,则认为递归路由更新后不会出现循环递归现象。第五识别单元604用于根据第三识别单元602的识别结果,在第一依赖路由的前缀网段不包含递归路由的前缀网段时,识别第一依赖路由的真实下一跳是否为直连网段地址;若第一依赖路由的真实下一跳是直连网段地址,则认为递归路由更新后不会出现循环递归现象。第二获取单元605用于根据第五识别单元604的识别结果,若第一依赖路由的真实下一跳不是直连网段地址,获取第一依赖路由的真实下一跳的第二依赖路由,并指示第三识别单元602以第二依赖路由作为第一依赖路由,执行识别第二依赖路由的前缀网段是否包含递归路由的前缀网段的操作。
图13为本发明递归路由更新处理装置进一步实施例的结构示意图。与本发明上述各实施例的递归路由更新处理装置相比,该实施例的递归路由更新处理装置中还可以进一步包括错误指示模块405,用于根据检测模块401的检测结果,在递归路由更新后会出现循环递归现象时,生成并输出出现循环递归现象的错误提示信息。
图14为本发明路由器一个实施例的结构示意图。如图14所示,该实施例的路由器包括用于存储路由转发表的存储模块1与递归路由更新处理装置2。其中,递归路由更新处理装置2具体可以采用本发明图8至图13任一实施例提供的递归路由更新处理装置实现,具体从存储模块1中获取路由转发表,并对存储模块1中的路由转发表进行相应的更新等处理。图14所示实施例的路由器中,递归路由更新处理装置2具体采用了图13所示的实施例。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例可以在需要更新递归路由时,检测该递归路由更新后是否会出现循环递归现象,只有在该递归路由更新后不会出现循环递归现象时,才对该递归路由进行更新处理,否则,不对该递归路由进行更新处理,从而避免对递归路由进行更新导致的路由循环递归现象,以及由此引起的路由震荡与路由转发表无法收敛问题,保证了路由的稳定与收敛,避免了路由震荡会导致路由器在网络内周期性地传播大量的更新消息或撤销消息,从而节省了链路带宽并减轻了路由器中CPU的工作负荷。
最后所应说明的是:以上实施例仅用以说明本发明的技术方案,而非对本发明作限制性理解。尽管参照上述较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这种修改或者等同替换并不脱离本发明技术方案的精神和范围。

Claims (16)

1.一种递归路由更新处理方法,其特征在于,包括:
需要更新递归路由时,检测所述递归路由更新后是否会出现循环递归现象;
在所述递归路由更新后不会出现循环递归现象时,对所述递归路由进行更新处理;
否则,在所述递归路由更新后会出现循环递归现象时,不对所述递归路由进行更新处理。
2.根据权利要求1所述的方法,其特征在于,所述更新递归路由包括删除或添加所述递归路由。
3.根据权利要求2所述的方法,其特征在于,在所述递归路由更新后不会出现循环递归现象时,对所述递归路由进行更新处理具体为:对活动性发生变化且不会出现循环递归现象的递归路由进行更新处理。
4.根据权利要求3所述的方法,其特征在于,检测所述递归路由更新后是否会出现循环递归现象之前,还包括:
判断所述递归路由的活动性是否发生变化;
在所述递归路由的活动性发生变化时,执行检测所述递归路由更新后是否会出现循环递归现象的操作。
5.根据权利要求3所述的方法,其特征在于,对所述递归路由进行更新处理包括:
判断所述递归路由的活动性是否发生变化;
在所述递归路由的活动性发生变化时,执行对所述递归路由进行更新处理的操作。
6.根据权利要求3所述的方法,其特征在于,对活动性发生变化且不会出现循环递归现象的递归路由进行更新处理包括:
识别所述递归路由更新后是否需要更新路由转发表;
在需要更新路由转发表时,更新所述递归路由并据此对所述路由转发表进行更新,并识别对所述路由转发表的更新是否影响其它递归路由的路由转发表项;
在影响其它递归路由的路由转发表项时,以所述其它递归路由作为所述递归路由,执行检测所述其它递归路由更新后是否会出现循环递归现象的操作,直到所述路由转发表达到收敛状态。
7.根据权利要求1至6任意一项所述的方法,其特征在于,检测所述递归路由更新后是否会出现循环递归现象包括:
利用所述递归路由的下一跳从路由转发表中选路,获得所述递归路由的第一依赖路由;
识别所述第一依赖路由的前缀网段是否包含所述递归路由的前缀网段;
在所述第一依赖路由的前缀网段包含所述递归路由的前缀网段时,识别依赖于所述第一依赖路由的下一跳是否落在所述递归路由的前缀网段中;若依赖于所述第一依赖路由的下一跳落在所述递归路由的前缀网段中,则认为所述递归路由更新后会出现循环递归现象;否则,若依赖于所述第一依赖路由的下一跳未落在所述递归路由的前缀网段中,则认为所述递归路由更新后不会出现循环递归现象;
在所述第一依赖路由的前缀网段不包含所述递归路由的前缀网段时,识别所述第一依赖路由的真实下一跳是否为直连网段地址;若所述第一依赖路由的真实下一跳是直连网段地址,则认为所述递归路由更新后不会出现循环递归现象;否则,若所述第一依赖路由的真实下一跳不是直连网段地址,获取所述第一依赖路由的真实下一跳的第二依赖路由,并以所述第二依赖路由作为所述第一依赖路由,执行识别所述第二依赖路由的前缀网段是否包含所述递归路由的前缀网段的操作。
8.根据权利要求1至6任意一项所述的方法,其特征在于,在所述递归路由更新后会出现循环递归现象时,还包括:生成并输出出现循环递归现象的错误提示信息。
9.一种递归路由更新处理装置,其特征在于,包括:
检测模块,用于在需要更新递归路由时,检测所述递归路由更新后是否会出现循环递归现象;
更新处理模块,用于根据所述检测模块的检测结果,在所述递归路由更新后不会出现循环递归现象时,对所述递归路由进行更新处理;否则,在所述递归路由更新后会出现循环递归现象时,不对所述递归路由进行更新处理。
10.根据权利要求9所述的装置,其特征在于,所述更新递归路由包括删除或添加所述递归路由;或者
所述更新处理模块具体在所述递归路由更新后不会出现循环递归现象时,对活动性发生变化且不会出现循环递归现象的递归路由进行更新处理。
11.根据权利要求10所述的装置,其特征在于,还包括:
第一判断模块,用于判断所述递归路由的活动性是否发生变化,并在所述递归路由的活动性发生变化时,指示所述检测模块执行检测所述递归路由更新后是否会出现循环递归现象的操作。
12.根据权利要求10所述的装置,其特征在于,还包括:
第二判断模块,用于根据所述检测模块的检测结果,在所述递归路由更新后不会出现循环递归现象时,判断所述递归路由的活动性是否发生变化,以及在所述递归路由的活动性发生变化时,指示所述更新处理模块执行对所述递归路由进行更新处理的操作。
13.根据权利要求10所述的装置,其特征在于,所述更新处理模块包括:
第一识别单元,用于根据所述检测模块的检测结果,在所述递归路由更新后不会出现循环递归现象时,识别所述递归路由更新后是否需要更新路由转发表;
更新单元,用于根据所述第一识别单元的识别结果,在需要更新路由转发表时,更新所述递归路由并据此对所述路由转发表进行更新;
第二识别单元,用于识别所述更新单元对所述路由转发表的更新是否影响其它递归路由的路由转发表项;
指示单元,用于根据所述第二识别单元的识别结果,在影响其它递归路由的路由转发表项时,指示所述检测模块以所述其它递归路由作为所述递归路由,执行检测所述其它递归路由更新后是否会出现循环递归现象的操作,直到所述路由转发表达到收敛状态。
14.根据权利要求9至13任意一项所述的装置,其特征在于,所述检测模块包括:
第一获取单元,用于利用所述递归路由的下一跳从路由转发表中选路,获得所述递归路由的第一依赖路由;
第三识别单元,用于识别所述第一依赖路由的前缀网段是否包含所述递归路由的前缀网段;
第四识别单元,用于根据所述第三识别单元的识别结果,在所述第一依赖路由的前缀网段包含所述递归路由的前缀网段时,识别依赖于所述第一依赖路由的下一跳是否落在所述递归路由的前缀网段中;若依赖于所述第一依赖路由的下一跳落在所述递归路由的前缀网段中,则认为所述递归路由更新后会出现循环递归现象;否则,若依赖于所述第一依赖路由的下一跳未落在所述递归路由的前缀网段中,则认为所述递归路由更新后不会出现循环递归现象;
第五识别单元,用于根据所述第三识别单元的识别结果,在所述第一依赖路由的前缀网段不包含所述递归路由的前缀网段时,识别所述第一依赖路由的真实下一跳是否为直连网段地址;若所述第一依赖路由的真实下一跳是直连网段地址,则认为所述递归路由更新后不会出现循环递归现象;
第二获取单元,用于根据所述第五识别单元的识别结果,若所述第一依赖路由的真实下一跳不是直连网段地址,获取所述第一依赖路由的真实下一跳的第二依赖路由,并指示所述第三识别单元以所述第二依赖路由作为所述第一依赖路由,执行识别所述第二依赖路由的前缀网段是否包含所述递归路由的前缀网段的操作。
15.根据权利要求9至13任意一项所述的装置,其特征在于,还包括:
错误指示模块,用于根据所述检测模块的检测结果,在所述递归路由更新后会出现循环递归现象时,生成并输出出现循环递归现象的错误提示信息。
16.一种路由器,包括用于存储路由转发表的存储模块,其特征在于,还包括权利要求9至15任意一项所述的递归路由更新处理装置。
CN2009102356645A 2009-10-10 2009-10-10 递归路由更新处理方法与装置、路由器 Active CN101674251B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102356645A CN101674251B (zh) 2009-10-10 2009-10-10 递归路由更新处理方法与装置、路由器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102356645A CN101674251B (zh) 2009-10-10 2009-10-10 递归路由更新处理方法与装置、路由器

Publications (2)

Publication Number Publication Date
CN101674251A CN101674251A (zh) 2010-03-17
CN101674251B true CN101674251B (zh) 2012-07-25

Family

ID=42021245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102356645A Active CN101674251B (zh) 2009-10-10 2009-10-10 递归路由更新处理方法与装置、路由器

Country Status (1)

Country Link
CN (1) CN101674251B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102420761B (zh) * 2011-12-05 2014-08-13 瑞斯康达科技发展股份有限公司 一种路由迭代方法
CN102594657B (zh) * 2011-12-20 2016-07-06 杭州华三通信技术有限公司 一种路由迭代方法及路由交换设备
CN102752205B (zh) * 2012-07-04 2016-06-01 杭州华三通信技术有限公司 一种路由迭代的方法和装置
CN109039908B (zh) * 2018-06-14 2021-04-20 北京星网锐捷网络技术有限公司 一种递归路由的切换方法、路由器、交换机及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1768512A (zh) * 2003-04-01 2006-05-03 思科技术公司 Mpls网络中的递归bgp路由更新方法
CN101076029A (zh) * 2007-07-12 2007-11-21 中兴通讯股份有限公司 一种边界网关协议递归路由更新的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1768512A (zh) * 2003-04-01 2006-05-03 思科技术公司 Mpls网络中的递归bgp路由更新方法
CN101076029A (zh) * 2007-07-12 2007-11-21 中兴通讯股份有限公司 一种边界网关协议递归路由更新的方法

Also Published As

Publication number Publication date
CN101674251A (zh) 2010-03-17

Similar Documents

Publication Publication Date Title
CN106034138B (zh) 一种远程服务调用方法及装置
US20150026507A1 (en) Transport control server, network system and transport control method
CN104216724B (zh) 一种网络应用程序接口升级的方法及系统
CN104601682A (zh) 一种切换物联网网关的方法及相关装置和系统
CN107547283B (zh) 分布式聚合组的管理方法及装置
CN101674251B (zh) 递归路由更新处理方法与装置、路由器
EP3616369B1 (en) Communications network node, communications network and communication method
CN113438172B (zh) 基于多级节点网络的数据传输方法和装置
CN112217655B (zh) Sd-wan系统中网络设备配置方法、装置和计算机设备
CN101621548A (zh) 基于对等连接系统的终端资源共享的实现方法及系统
CN106325879A (zh) 一种驱动程序的安装方法及装置、电子设备
CN111131079A (zh) 一种策略查询方法及装置
CN108540509A (zh) 一种终端浏览器的处理方法、装置及服务器、智能终端
JP2021144635A (ja) プログラム更新システム、並びに情報処理装置及び情報処理プログラム
CN113434293A (zh) 处理重复请求的方法和装置、存储介质及电子装置
US20230093310A1 (en) Methods for updating route, access device, and convergence device
CN110581805A (zh) 路由表更新方法、装置、交换机及存储介质
CN101562574A (zh) 一种路由表的更新方法及装置
CN101783742B (zh) 一种网络拓扑的发现方法和设备
CN108228812A (zh) 自适应的主节点切换方法及装置
CN105049463B (zh) 分散数据库、数据共享方法、用于分散数据库的装置
CN113687940B (zh) 负载均衡方法、装置及物理机
CN106664637B (zh) 路由信息配置方法及装置
CN108259340B (zh) 一种拓扑信息传输方法和装置
CN111131024A (zh) 聚合链路的处理方法及装置

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
CP01 Change in the name or title of a patent holder

Address after: 350002 19 Building, Citrus Industrial Park, 618 Jinshan Road, Cangshan District, Fuzhou, Fujian.

Patentee after: RUIJIE NETWORKS Co.,Ltd.

Address before: 350002 19 Building, Citrus Industrial Park, 618 Jinshan Road, Cangshan District, Fuzhou, Fujian.

Patentee before: Fujian Star Network Ruijie Networks Co.,Ltd.

CP01 Change in the name or title of a patent holder