一种抑制双向转发检测链路振荡的方法及装置的制作方法

文档序号:7944771阅读:525来源:国知局
专利名称:一种抑制双向转发检测链路振荡的方法及装置的制作方法
技术领域
本发明涉及IP网络通信技术领域,尤其涉及一种抑制双向转发检测链路振荡的方法及装置。
背景技术
在网络通讯中,为了能够更快更好的选择出最快最好的转发路径,针对相邻系统间快速侦测通讯失效的需求日益增多,而且也显得越来越为重要。
在没有硬件信号发送的情况下,在以前的路由协议中,通常采用发送
HELLO ( —种侦测链路的报文)报文的侦测机制,但是在HELLO报文的侦测机制下,由于侦测时间间隔一^:都大于1秒,对于一些特殊的应用来说侦测时间间隔过长,无法侦测和发现在较短时间内发生的链路状态,并且当路由协议不在运行状态的时候,也无法使用HELLO报文机制,于是产生了一种在双向路由引擎(包括接口,数据链路和一些可能的扩展引擎)之间建立一条路径的才企测方法-双向專争发牙企测(Bidirectional Forwarding Detection, BFD )。
BFD方法针对多种类型的系统进行实时的失效;险观'J,其中包括直连的物理系统(direct physical links )、虚电路(VC)、隧道(tunnels )、多协议标记交换
(Multiprotocol Label Switching, MPLS )、标记交换路径(Label Switched Path,LSP)、多路径通道以及一些单向的链路(存在可以返回的路径),当两个系统之间存在多条路径的时候,在这两个相邻的系统上可以存在多个BFD Session
(BFD会话)。
BFD方法在检测前,需要在通道两端建立对等BFD会话,以基于开放最短路径优先协议(Open Shortest Path First, OSPF )的BFD会话建立的过程为例,如图l所示,包括以下几个步骤步骤S101、路由器A和路由器B建立OSPF邻居;
步骤S102、路由器A和路由器B的OSPF在发送HELLO报文时触发本
端的BFD处理模块初始化BFD会话;
步骤S103、通过OSPF邻居间的BFD会话三次握手建立起BFD会话。会话建立起来后,以协商的速率各自向对端发送BFD控制才艮文来实现故
障4企测。
BFD协议提供了两个操作模式供选择,其中一种模式是异步模式,在异步模式下,本端系统周期地发送BFD报文给对端系统,如果一系列BDF报文都没有被对端系统收到的话,那么这个BFD会话就会失效(DOWN)。
异步模式的BFD会话连接建立过程中,状态机状态切换过程如图2所示,其中
首先,A、 B两台设备启动BFD,两台设备的初始状态为失效(DOWN)状态,并同时向对方发送状态为DOWN的探测报文(发送间隔为秒级)。
当A、 B任一台设备收到对方发来的状态为DOWN的探测报文后,立即将自身的BFD会话状态切换到初始建链(INIT)状态,同时停止向对端发送状态为DOWN的探测报文,改为向对端发送状态为INIT的建链报文。
随后,当A、 B任意一台设备在INIT状态下收到对方发来的状态为INIT的BFD建链报文,则立即将自身的BFD状态机从INIT切换到检测生效(UP)状态,并通知BFD会话所绑定的应用。
当A、 B两端BFD会话进入UP状态之后,双方按照协商后的时间(发送间隔通常是毫秒级)互相发送BFD保活报文(状态为UP的BFD报文),当链路出现故障或保活报文因为某种原因丢弃时,A、 B两端BFD的检测机制就会报告故障,A、 B两端设备的BFD会话状态就会从UP切换到DOWN,并且通知具体绑定的应用进行流量切换、路由重计算等操作。如果双方能够正常收发
报文,则双方的BFD会话又会立刻进入UP状态。
BFD会话连接建立以后,BFD会话的状态机的状态切换都是由于链^^出
5现缺陷而引起。
目前的异步模式状态机会存在这样一个问题
BFD会话在进入UP状态之前,都是以秒级的发包间隔双向发送报文,超时时间也是秒级,当网络状况较差出现丟包时,由于此时会话的发送报文时间间隔时间和超时都相对较长,双方报文仍旧可以在超时时间内到达,BFD会话可以正常进入UP状态;但在BFD会话进入检测生效(UP )状态之后,双方设备会以一个协商后的时间,通常是毫秒级的间隔互相发送保活报文;此时如果网络状况较差,网络中的传输出现延时或者丢包的情况,两端设备A、 B就会因为不能及时接收到对方发送的保活报文,检测到链路出现故障而跳转到失效(DOWN)的状态,并且通知具体绑定的应用进行流量切换、路由重计算等操作;在进入DOWN状态后,两端设备又会以较长的时间间隔和超时时间发送探测报文和初始建链报文,此时网络状况若能够正常收发探测报文和初始建链报文,则双方的BFD会话又会立刻进入检测生效状态;如此循环,通信链路两端的BFD会话状态就会进入一种DOWN—INIT—UP—DOWN的频繁循环切换的过程里,BFD会话状态进入振荡状态;振荡会导致转发路由不断的重新计算和切换,并且会造成网络中的持续断流。

发明内容
本发明实施例提供了一种抑制双向转发检测链路振荡的方法及装置,用以解决在网络状况较差的情况下,BFD链路进入振荡状态导致转发路由不断重新计算和切换,造成网络中的持续断流的问题。
本发明实施例提供的抑制双向转发检测链路振荡的方法,包括
周期性地对双向转发4企测BFD会话的状态进行监-见;
统计当前周期内所述BFD会话状态由一种状态经过状态切换再次回到该状态的频率值;
当所述频率值大于等于设定的阈值时,抑制所述BFD会话切换至下一个状态。
所述统计BFD会话状态由一种状态经过状态切换再次回到该状态的频率值,包括.-
统计所述BFD会话状态由失效状态、初始建链状态和;险测生效状态再次切换至失效状态的频率值;或
统计所述BFD会话状态由初始建链状态、;险测生效状态和失效状态再次切换至初始建链状态的频率值;或
统计所述BFD会话状态由检测生效状态、失效状态和初始建链状态再次切换至检测生效状态的频率值。
所述抑制所述BFD会话切换至下一个状态,包括
在设定的惩罚抑制时间内,停止发送和接收BFD报文。
所述惩罚抑制时间的时长通过以下方式确定
根据统计得到的所述频率值,确定所述惩罚抑制时间的时长;所述时长与所述频率值正相关。
所述设定的时长大于等于对所述BFD会话的监视周期。
在所述设定的惩罚抑制时间结束之后,还包括
继续发送相应的BFDl艮文;
对所述BFD会话的状态进行下一个周期的监视。
本发明实施例提供的一种抑制双向转发检测链路振荡的装置,包括
监视模块,用于周期性地对双向转发检测BFD会话的状态进行监视;
统计模块,用于统计当前周期所述BFD会话状态由一种状态经过状态切换再次回到该状态的频率值;
判断模块,用于判断所述频率是否大于等于设定的阈值;
抑制模块,当所述频率值大于等于设定的阈值时,抑制所述BFD会话切换至下一个状态。
所述统计模块,还用于统计所述BFD会话状态由失效状态、初始建链状态和^r测生效状态再次切换至失效状态的频率;或
统计所述BFD会话状态由初始建链状态、;险测生效状态和失效状态再次 切换至初始建链状态的频率;或
统计所述BFD会话状态由片企测生效状态、失效状态和初始建《连状态再次 切换至检测生效状态的频率。
所述抑制模块,还用于在设定的惩罚抑制时间内,停止发送和接收BFD 报文。
本发明实施例提供的一种抑制双向转发检测链路振荡的装置,还包括时 长确定模块,用于才艮据统计得到的所述频率值,确定所述惩罚抑制时间的时长; 所述时长与所述频率值正相关。
本发明实施例提供的一种抑制双向转发检测链路振荡的装置,还包括 BFD报文发送模块,用于在所述惩罚抑制时间结束之后,继续发送相应的BFD 报文;
所述监视模块,还用于在所述惩罚抑制时间结束之后,对所述BFD会话 的状态进行下一个周期的监视。 本发明实施例的有益效果如下
本发明实施例提供的抑制双向转发检测BFD链路振荡的方法及装置,当 网络状态较差的情况下,通过对BFD会话的状态进行监视,统计当前周期内 BFD会话状态由一种状态经过状态切换再次回到该状态的频率值,如果统计得 到的频率值大于等于设定的阈值,抑制BFD会话切换至下一个状态,也就是 抑制了该BFD会话的进一步建链流程,避免了在网路状况较差的情况下BFD 链路不断地重新建链、断链造成BFD链路振荡,导致转发路由不断重新计算 和切换的问题。
更进一步地,本发明实施例提供的抑制BFD链路振荡的方法及装置,抑 制BFD会话切换至下一个状态的步骤,是通过在设定的惩罚抑制时间内,暂 时停止发送和接收任何BFD "R文来实现的,并且惩罚抑制时间的时长与统计得到的频率值正相关,换言之,统计的BFD会话状态切换的频率值越高,对 应的,其惩罚抑制时间就越长,这种惩罚抑制的策略,能够才艮据网络状况不稳 定的实际程度,来调整抑制BFD建链流程的时长,更有效地保证了抑制BFD 链路振荡的效果。


图1为现有技术中基于OSPF协议的BFD会话建立示意图; 图2为现有异步^f莫式的BFD会话连接建立过程中状态机状态切换过程图; 图3为本发明实施例提供的抑制双向转发检测链路振荡的方法的硬件连接 示意图4为本发明实施例提供的抑制双向转发4企测链路振荡的方法的流程图; 图5为本发明实施例提供的抑制双向转发检测链路振荡的装置的结构示意图。
具体实施例方式
下面结合附图,用具体的实施例对本发明提供的一种抑制双向转发检测链 路振荡的方法及装置进行详细的说明。
以图3所示的应用场景为例,图3所示的应用场景中,路由转发的硬件部 分包括两台支持BFD功能的路由器(也可以是交换机或其他转发设备)和另 外一台路由器R3。
路由器Rl同时具备支持配置静态路由、与BFD关联的功能和支持IP快 速重路由(IP Fast Reroute Framework, IPFRR)功能。在路由器Rl与接入网 相连的接口上配置两条静态路由,指定不同的优先级,高优先级的下一跳指向 R2设备的接口地址例如(142.0.0.2),次优先级的下一跳指向路由器R3与Rl 相连的接口地址,由路由器R1与路由器R2组成主链路,由于路由器R1与路 由器R2之间配置了 BFD会话关联,支持BFD功能的路由器R1和R2能够組成一对BFD邻居,在路由器Rl和路由器R2之间主链路正常情况下,由接入 网访问远端设备的数据包经过路由器R1时,通过路由器R1和路由器R2进行 转发,同时这两个路由器使用BFD会话来保证主链路的可达性, 一旦路由器 Rl和路由器R2之间的链路出现故障,那么,BFD会话会通知具体绑定的应用 完成路由的FRR切换,即将转发链路切换到路由器Rl和路由器R3之间的备 用链路上去。
本发明实施例提供的抑制BFD链路振荡的方法,可以预先对设备进行BFD 链路振荡抑制的相关参数,例如对BFD会话的状态的监视(可以通过对其状 态机监视实现)周期、BFD会话状态切换频率的最大门限值等。
当路由器R1和路由器R2之间BFD会话正常建立,进入链路检测过程时, 可以在链路两端任意一端的设备中使用本发明实施例提供的抑制双向转发检 测链路振荡的方法。
为了说明的方便,以下仅以其中一端设备为例来说明,具体说明本发明实 施例提供的抑制双向转发检测链路振荡方法,并且称呼路由器R1为第一设备, 相应地,称呼路由器R2为第二设备。
本发明实施例提供的抑制双向转发检测链路振荡的方法,如图4所示,包 括以下步骤
5401、 根据预设的监视周期,周期性地对第一设备的BFD会话的状态进 行监视;
对BFD会话的状态的监视,可以通过对BFD会话的状态机(以下简称BFD 状态机,记录BFD会话的状态)进行监视实现。
5402、 统计当前周期内该BFD会话状态由一种状态经过状态切换再次回 到该状态的频率值;
如果两端设备间BFD链路进入了振荡状态,BFD状态机会将不断地在不 同的状态之间进行切换。
在当前周期内,不断地对第一设备的BFD状态^i由某一个状态经过状态说
切换再次回到该状态的发生次数进行计数。
例如BFD状态机每发生一次下述状态迁徙过程从失效状态(DOWN) 切换至初始建链状态(INIT),然后切换检测生效状态(UP),再次切换至失效 状态(DOWN);或者从初始建链状态(INIT)切换至4企测生效状态(UP), 然后切换至失效状态(DOWN),再次切换至初始建链状态(INIT);或者从检 测生效状态(UP )切换至失效状态(DOWN ),然后切换至初始建链状态(INIT), 再次切换至4企测生效状态(UP),都相应地进^f亍记录,统计在当前周期内发生 上述状态迁徙过程的次数。
然后根据统计得到BFD状态机状态迁徙的总次数除以周期时长,得到当 前周期内BFD会话由某一个状态经过状态切换再次回到该状态的发生频率值。
步骤S403、判断步骤S402得到的BFD会话由某一个状态经过状态切换再 次回到该状态的频率值是否大于设定的阈值,若是,执行下述步骤S404,若否, 执行下述步骤S405;
步骤S404、在设定的惩罚抑制时间内,进行BFD会话建链的惩罚抑制, 抑制BFD会话切换至下一个状态。
具体的实现方法如下
第一设备在设定的惩罚抑制时间内,停止向第二设备发送任何BFD报文 (包括探测报文、建链报文和保活报文),并且对于第二设备发送的BFD报文, 也停止接收,直接丢弃。
举例来说,假设当前BFD状态机由UP状态切换到了 DOWN状态(统计 BFD会话从DOWN状态—INIT状态—UP状态—DOWN状态切换过程的发生 频率),需要进行BFD会话建链的惩罚抑制,那么,第一设备不再向第二设备 发送状态为DOWN的探测报文,当第二设备超时未收到第一设备发送的 DOWN报文后,也相应地切换到了 DOWN的状态,即使第二设备未采用本发 明实施例提供的抑制BFD链路振荡的方法,继续向第一设备发送状态为 DOWN的探测报文,由于第一设备不会接收第二设备发送的任何BFD报文,所以,在惩罚抑制时间内,第一设备和第二设备的BFD会话都无法切换到 DOWN的下一个状态即INIT状态。
惩罚抑制时间的时长可以根据步骤S402中统计得到的BFD会话状态迁徙 过程的频率值来确定,如果统计得到的BFD会话状态迁徙频率值较大,那么 惩罚抑制时间可以长一点,反之,则可以相对短一些,惩罚抑制时间的时长与 统计得到的频率值正相关。
但是惩罚抑制时间不能过短,否则无法达到对BFD链路振荡抑制的效果,
在惩罚抑制时间结束之后,执行下述步骤S405。
步骤S405、第一设备继续向第二设备发送相应的BFD报文,对设备BFD 会话的状态进行下一个周期的监视。
假设惩罚时间结束时,BFD状态机的状态是DOWN状态,那么第一设备 发起下一轮的建链流程,继续向第二设备发送状态为DOWN的探测报文。
如果此时链路状况好转,第一设备和第二设备又可以进入UP状态,互相 以很短的时间间隔来发送保活报文。
本发明实施例提供的抑制双向转发检测BFD链路振荡的方法,可以实现 在路由器Rl和路由器R2之间网络状况较差或网络状况不稳定时,对BFD建 链过程进行暂时的抑制,避免了 BFD链路振荡导致数据转发路径在主链路与 备用链路之间频繁切换的问题。
根据本发明实施例提供的抑制双向转发检测BFD链路振荡的方法,本发 明实施例还提供了一种抑制双向转发检测BFD链路振荡的装置,如图5所示, 包括监视模块501、统计模块502、判断模块503和抑制模块504,其中
监视模块501,用于周期性地对设备双向转发检测BFD会话的状态进行监
视;
统计模块502,用于统计当前周期设备BFD会话状态由一种状态经过状态 切换再次回到该状态的频率值;判断模块503,用于判断所述频率是否大于等于设定的阈值;
抑制模块504,当统计得到的频率值大于等于设定的阈值时,抑制该设备 BFD会话切换至下一个状态。
本发明实施例提供的抑制双向转发检测BFD链路振荡的装置中的统计模 块502,还用于统计BFD会话状态由失效状态、初始建链状态和4全测生效状态 再次切换至失效状态的频率;或
统计BFD会话状态由初始建链状态、;险测生效状态和失效状态再次切换 至初始建链状态的频率;或
统计所述BFD会话状态由^r测生效状态、失效状态和初始建链状态再次 切换至检测生效状态的频率。
本发明实施例提供的抑制双向转发检测BFD链路振荡的装置中的抑制模 块504,还用于在设定的惩罚抑制时间内,停止发送和接收发送BFD报文。
本发明实施例提供的抑制双向转发检测BFD链路振荡的装置,如图5所 示,还可以包括时长确定模块505,用于根据统计得到的频率值,确定惩罚抑 制时间的时长;惩罚抑制时间的时长与该频率值正相关。
本发明实施例提供的抑制双向转发检测BFD链路振荡的装置,如图5所 示,还可以包括BFD报文发送模块506,用于在惩罚抑制时间结束之后,继 续发送相应的BFD报文;
监视模块501,还用于在惩罚抑制时间结束之后,对BFD会话的状态进行 下一个周期的监^L。
本发明实施例提供的抑制双向转发检测BFD链路振荡的方法及装置,当 网络状态较差的情况下,通过对BFD会话的状态进行监视,统计当前周期内 BFD会话状态由一种状态经过状态切换再次回到该状态的频率值,如果统计得 到的频率值大于等于设定的阈值,抑制BFD会话切换至下一个状态,也就是 抑制了该BFD会话的进一步建链流程,避免了在网路状况较差的情况下BFD 链路不断地重新建链、断链造成BFD链路振荡,导致转发路由不断重新计算
13和切换的问题。
更进一步地,本发明实施例提供的抑制BFD链路振荡的方法及装置,抑 制BFD会话切换至下一个状态的步骤,是通过在设定的惩罚抑制时间内,暂 时停止发送和接收BFD报文来实现的,并且惩罚抑制时间的时长与统计得到 的频率值正相关,换言之,统计的BFD会话状态切换的频率值越高,对应的, 其惩罚抑制时间就越长,这种惩罚抑制的策略,能够根据网络状况不稳定的实 际程度,来调整抑制BFD建链流程的时长,更有效地保证了抑制BFD链路振 荡的效果。
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种抑制双向转发检测链路振荡的方法,其特征在于,包括周期性地对双向转发检测BFD会话的状态进行监视;统计当前周期内所述BFD会话状态由一种状态经过状态切换再次回到该状态的频率值;当所述频率值大于等于设定的阈值时,抑制所述BFD会话切换至下一个状态。
2、 如权利要求l所述的方法,其特征在于,所述统计BFD会话状态由一种状态经过状态切换再次回到该状态的频率值,包括统计所述BFD会话状态由失效状态、初始建链状态和检测生效状态再次切换至失效状态的频率值;或统计所述BFD会话状态由初始建链状态、片企测生效状态和失效状态再次切换至初始建链状态的频率值;或统计所述BFD会话状态由检测生效状态、失效状态和初始建链状态再次切换至4企测生效状态的频率值。
3、 如权利要求2所述的方法,其特征在于,所述抑制所述BFD会话切换至下一个状态,包括在设定的惩罚抑制时间内,停止发送和接收BFD报文。
4、 如权利要求3所述的方法,其特征在于,所述惩罚抑制时间的时长通过以下方式确定根据统计得到的所述频率值,确定所述惩罚抑制时间的时长;所述时长与所述频率值正相关。
5、 如权利要求3所述的方法,其特征在于,所述设定的时长大于等于对所述BFD会话的监视周期。
6、 如权利要求4或5所述的方法,其特征在于,在所述设定的惩罚抑制时间结束之后,还包括继续发送相应的BFD净艮文;对所述BFD会话的状态进行下一个周期的监视。
7、 一种抑制双向转发检测链路振荡的装置,其特征在于,包括监视模块,用于周期性地对双向转发检测BFD会话的状态进行监视;统计模块,用于统计当前周期所述BFD会话状态由一种状态经过状态切换再次回到该状态的频率值;判断模块,用于判断所述频率是否大于等于设定的阈值;抑制模块,当所述频率值大于等于设定的阈值时,抑制所述BFD会话切换至下一个状态。
8、 如权利要求7所述的装置,其特征在于,所述统计模块,还用于统计所述BFD会话状态由失效状态、初始建链状态和^r测生效状态再次切换至失效状态的频率值;或统计所述BFD会话状态由初始建链状态、;险测生效状态和失效状态再次切换至初始建链状态的频率值;或统计所述BFD会话状态由检测生效状态、失效状态和初始建链状态再次切换至检测生效状态的频率值。
9、 如权利要求7所述的装置,其特征在于,所述抑制模块,还用于在设定的惩罚抑制时间内,停止发送和接收BFD报文。
10、 如权利要求9所述的装置,其特征在于,还包括时长确定模块,用于根据统计得到的所述频率值,确定所述惩罚抑制时间的时长;所迷时长与所述频率值正相关。
11、 如权利要求9所述的装置,其特征在于,还包括BFD报文发送模块,用于在所述惩罚抑制时间结束之后,继续发送相应的BFD报文;所述监视模块,还用于在所述惩罚抑制时间结束之后,对所述BFD会话的状态进行下一个周期的监视。
全文摘要
本发明公开了一种抑制双向转发检测链路振荡的方法及装置,本发明的方法包括周期性地对第一设备双向转发检测BFD会话的状态进行监视;统计当前周期内所述BFD会话状态由一种状态经过状态切换再次回到该状态的频率值;当所述频率值大于等于设定的阈值时,抑制所述BFD会话切换至下一个状态。本发明提供的抑制双向转发检测链路振荡的方法及装置解决了在网络状况较差的情况下,BFD链路进入振荡状态导致转发路由不断重新计算和切换,造成网络中的持续断流的问题。
文档编号H04L12/56GK101483592SQ20091000690
公开日2009年7月15日 申请日期2009年2月5日 优先权日2009年2月5日
发明者辉 何, 磊 张, 韦红波 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1