背景技术
为了向用户终端提供可靠的业务保护,IETF制定了虚拟路由器冗余协议(VRRP)技术。VRRP技术应用于作为静态配置缺省网关上的第三层交换机和路由器上,为依赖缺省网关进行广域网接入或访问其它局域网网域的终端系统提供了更快、更有效的冗余容错能力。目前,VRRP技术已不再仅仅局限于路由器上的使用,而是逐步引入到大规模的交换网,以实现高可靠性的第三层交换的冗余备份。
当采用VRRP技术时,网络侧的多个路由设备组成一个虚拟的设备组,称之为VRRP备份组。图1是VRRP备份组的示意图。参见图1,在VRRP备份组内只有一个路由设备作为主用路由设备,其它路由设备则作为备用路由设备,并且,在任何时刻,只有主用路由设备负责与网络中的其它设备进行数据交互。
在VRRP备份组内部,当主用路由设备正常工作时,主用路由设备会周期性地向备用路由设备发送一个正常通知报文即VRRP报文。这样,如果VRRP备份组内的备用路由设备在一个报文接收周期内接收到VRRP报文,则可确定主用路由设备未发生故障;而如果VRRP备份组内的备用路由设备在一个报文接收周期内未接收到VRRP报文,则可确定主用路由设备发生故障,此时,各备用路由设备首先切换自己的状态,即,将自己切换为主用状态,然后状态切换后的各个备用路由设备分别根据各自优先级的大小来重新确定一个主用路由设备,由该重新确定的主用路由设备负责与网络中的其它设备进行数据交互。
目前,在主用路由设备未发生故障时,由于各种原因,经常会出现备用路由设备无法在一个报文接收周期内接收到主用路由设备发来的VRRP报文。比如由于网络中突发大流量数据报文使得网络拥塞,或者,由于备用路由设备本身处理能力较差,不支持严格报文分类及针对分类后的报文进行带宽预留等原因,使得备用路由设备无法在一个报文接收周期内接收到主用路由设备发来的VRRP报文。
然而,根据上述VRRP备份组的工作原理,一旦备用路由设备无法在一个报文接收周期内接收到主用路由设备发来的VRRP报文,该备用路由设备则会切换自身的状态,将自身切换为主用状态,而由于初始的主用路由设备并未发生故障,在后续时间,状态切换后的备用路由设备则会接收到VRRP报文,则必须再次切换自身的状态,重新将自身切换为备用状态,往往导致备用路由设备在短时间内频繁地进行状态切换。比如,主用路由设备每隔1秒发送一次VRRP报文,备用路由设备的报文接收周期为4.5秒(即在4.5秒内未接收到VRRP报文就进行状态切换),由于网络拥塞,备用路由设备实际每5秒才能接收到VRRP报文,这样,在计时到达4.5秒时,由于备用路由设备无法接收到VRRP报文,备用路由设备就会发生一次状态切换,将自身切换为主用状态,在计时到达5秒时,由于该状态切换后的备用路由设备又接收到了VRRP报文,所以又发生一次状态切换,将自身切换回备用状态,可见,每5秒备用路由设备便会发生两次状态切换,因此,使得备用路由设备在短时间内频繁地进行状态切换,降低了备用路由设备的稳定性。
为了避免备用路由设备频繁地切换状态,目前的解决方法为:管理人员在发现备用路由设备频繁地切换状态后,手动修改报文接收周期,使该报文接收周期的值变大,从而使得备用路由设备等待VRRP报文的时间增加,延长备用路由设备进行状态切换的时间,降低备用路由设备进行状态切换的频率;或者,管理人员在发现备用路由设备频繁地切换状态后,为备用路由设备设置较长的延迟时间,使得备用路由设备无法在一个报文接收周期内接收到主用路由设备发来的VRRP报文后,延迟较长的时间后再进行状态切换,从而延长备用路由设备进行状态切换的时间,降低备用路由设备进行状态切换的频率。
由以上描述可以看出,在现有技术中,必须由管理人员进行手动配置,才能避免备用路由设备频繁地进行状态切换,系统却无法自动实现,因此,大大降低了系统的灵活性和实用性,并增加了管理人员的维护工作量。
另外,在现有技术中,在备用路由设备频繁切换状态时,管理人员往往无法及时发现,往往是网络事故发生了很久,网络管理人员才可发现然后才能进行手动配置,因此,无法有效地避免备用路由设备频繁进行状态切换。
发明内容
有鉴于此,本发明的主要目的在于提供一种避免路由设备频繁切换状态的方法,本发明的另一目的在于提供一种路由设备,保证能够由备用路由设备自动实现避免频繁状态切换的过程,提高系统的灵活性和实用性。
为了达到上述目的,本发明的技术方案是这样实现的:
一种避免路由设备频繁切换状态的方法,该方法包括:备用路由设备判断自身状态切换是否出现异常,如果是,则增加状态切换的时间长度,并根据该增加后的状态切换时间长度执行状态切换。
所述备用路由设备判断自身状态切换是否出现异常的步骤包括:备用路由设备判断在预先设定的时间长度内,自身已进行状态切换的次数是否大于预先设置的切换次数阈值,如果大于,则确定自身状态切换出现异常。
所述增加状态切换的时间长度的步骤包括:延长报文接收周期;
所述根据增加后的状态切换时间长度执行状态切换的步骤包括:备用路由设备在延长后的报文接收周期内未接收到主用路由设备发来的正常通知报文后,执行状态切换。
所述延长报文接收周期的步骤包括:在计算报文接收周期的公式中增加调节因子,并增加该调节因子的当前值。
在延长报文接收周期之后,该方法进一步包括:备用路由设备判断自身接收正常通知报文的频率是否已恢复正常,如果是,则减小所述调节因子的当前值,根据减小后的调节因子的当前值得到报文接收周期,并根据该所得的报文接收周期执行状态切换,其中,减小后的调节因子的当前值大于或等于其初始值。
所述增加状态切换的时间长度的步骤包括:增加状态切换的延迟时间S;
所述根据增加后的状态切换时间长度执行状态切换的步骤包括:备用路由设备在报文接收周期内未接收到正常通知报文后,等待状态切换的延迟时间S后,执行状态切换。
在增加状态切换的时间长度之后,该方法进一步包括:备用路由设备判断自身接收正常通知报文的频率是否已恢复正常,如果是,则减小或去除所述状态切换延迟时间S的当前值,根据减小或去除的状态切换延迟时间S执行状态切换。
所述备用路由设备判断自身接收正常通知报文的频率是否已恢复正常的步骤包括:备用路由设备判断在预先设定的时间长度内,在每一个初始的报文接收周期中是否均可接收到正常通知报文,如果均可接收到,则确定自身接收正常通知报文的频率已恢复正常。
一种路由设备,该路由设备包括:控制单元、计数器和计时器,其中,控制单元,用于在路由设备进行状态切换时,将计数器的值加1,并在监测到计时器计时到达预先设置的第一时间长度后,判断计数器在该第一时间长度内所计数值是否大于预先设置的切换次数阈值,在判断出大于后,增加状态切换的时间长度,根据增加后的状态切换时间长度执行状态切换。
所述控制单元,进一步用于监测在计时器计时到达预先设置的第二时间长度的过程中,在每一个初始的报文接收周期内是否均可接收到正常通知报文,在确定均可接收到后,减少状态切换时间长度,根据该减少后的状态切换时间长度执行状态切换。
由此可见,本发明具有以下优点:
1、备用路由设备在监测到自身频繁进行了状态切换后,能够自动延长状态切换的时间,从而自动避免了频繁进行状态切换,大大提高了系统的灵活性和实用性,并降低了管理人员的维护工作量。
2、在本发明中,由备用路由设备自己监测是否频繁进行状态切换并采用相应处理措施,因此,可以保证备用路由设备及时发现频繁状态切换的情况,并及时进行后续自动延长状态切换时间的处理,从而有效地避免了备用路由设备频繁地进行状态切换,大大提高了备用路由设备的稳定性。
3、在本发明中,备用路由设备通过一系列软件处理过程即可自动实现避免频繁状态切换,而对备用路由设备的硬件结构无需进行任何改动,因此,节约了硬件成本,并使得本发明易于实现。
具体实施方式
本发明提出了一种避免路由设备频繁切换状态的方法,其核心思想是:备用路由设备判断自身状态切换是否出现异常,如果是,则增加状态切换的时间长度,并根据该增加后的状态切换时间长度执行状态切换。
其中,备用路由设备判断自身状态切换是否出现异常的方式可以是:备用路由设备判断在一个设定时间长度内自身已进行的状态切换次数是否大于预先设置的切换次数阈值,如果是,则确定自身已频繁地进行了状态切换。
另外,所述的增加状态切换的时间长度可以通过多种方式来实现,比如,通过延长报文接收周期来实现,或通过在报文接收周期之外增加一个状态切换的延迟时间来实现等。
另外,判断在设定时间长度内自身已进行的状态切换次数是否大于预先设置的次数阈值可以通过在备用路由设备中设置计数器和计时器来实现。
相应的,本发明还提出了一种路由设备。图2是在本发明中路由设备的内部结构示意图。参见图2,在本发明中,备份组内路由设备的内部结构可以包括:控制单元、计数器和计时器,其中,
控制单元,在路由设备进行状态切换时,将计数器的值加1,并在监测到计时器计时到达预先设置的第一时间长度后,判断计数器的当前值是否大于预先设置的切换次数阈值,在判断出大于后,增加状态切换的时间长度,根据增加后的状态切换时间长度执行状态切换。
需要说明的是,本发明的技术方案不仅可以应用于采用VRRP协议的VRRP备份组,而且还可以应用于采用其他协议的备份组。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
以下通过将本发明的技术方应用于采用VRRP协议的VRRP备份组为例,来详细说明本发明的实现过程。
图3是在本发明中实现避免路由设备频繁切换状态的流程图。参见图2和图3,在本发明中,自动实现避免路由设备频繁切换状态的过程包括以下步骤:
步骤301:预先在备用路由设备中设置计数器和计时器。
这里,在备用路由设备中设置计数器和计时器,是为了在后续过程中能够通过计数器和计时器的值判断出备用路由设备是否频繁地进行了状态切换,进一步地,在后续过程中还能够通过计数器和计时器的值判断出备用路由设备接收正常通知报文的频率是否稳定,即状态切换是否恢复正常。
步骤302:在备用路由设备开始工作时,初始化计数器和计时器。
这里,所述的初始化计数器和计时器是指:将计数器的值清零,并使计时器从零开始计时。
步骤303:当满足切换条件时,备用路由设备中的控制单元执行状态切换,并将计数器的值加1。
这里,所述的满足切换条件可以是:备用路由设备中的控制单元判断出在一个报文接收周期内,未接收到主用路由设备发来的正常通知报文即VRRP报文。此种情况下,备用路由设备中控制单元执行的状态切换是将该备用路由设备的状态切换为主用状态。
所述的满足切换条件还可以是:在备用路由设备的状态切换为主用状态后,该备用路由设备中的控制单元接收到初始主用路由设备发来的VRRP报文。此种情况下,备用路由设备中的控制单元执行的状态切换是将备用路由设备的状态切换回备用状态。
需要说明的是,该步骤303的过程与后续其他步骤之间并无固定的执行上的先后顺序,也就是说,在实际业务实现中,只要满足切换条件,便需执行本步骤的过程。
步骤304:备用路由设备中的控制单元实时监测计时器,当监测到计时器计时到达预先设置的第一时间长度时,判断计数器在该第一时间长度内所计的数值是否大于预先设置的切换次数阈值,如果是,则执行步骤305,否则,返回步骤304。
这里,通过对计数器和计时器值的判断,备用路由设备则完成了判断自身状态切换是否出现异常的过程。也就是说,如果在预先设置的第一时间长度内,备用路由设备已进行的切换次数大于预先设置的切换次数阈值,则可确定备用路由设备频繁地进行了状态切换的过程,从而可执行后续的处理措施。
其中,预先设置的第一时间长度的值可以根据实际业务需要来确定,比如,需要每30秒判断一次备用路由设备的切换频率是否过于频繁,则可将第一时间长度的值设置为30秒。
步骤305:备用路由设备中的控制单元增加状态切换的时间长度。
这里,增加状态切换的时间长度可以通过包括但不限于以下方式来实现:
方式A、通过延长报文接收周期来实现。
在方式A下,初始的报文接收周期记为T,T=3×adver_interval+(255-priority)/100,其中,adver_interval为主用路由设备发送VRRP报文的周期,priority为该备用路由设备的优先级。
因此,在方式A下,可以预先修改上述公式,在上述公式中增加一个调节因子flag,通过增加该调节因子的当前值,从而实现本步骤的延长报文接收周期。所述修改方式包括但不限于以下方式:
修改方式一、将T修改为T’,使得T’=3×adver_interval×flag+(255-priority)/100。
在修改方式一下,本步骤中所述的增加报文接收周期长度的值可以是增加flag的值。比如,在备用路由设备可正常接收到主用路由设备的VRRP报文时,使该flag的值为1,在本步骤中,则可增加flag的当前值,使其大于1。
修改方式二、将T修改为T’,使得T’=3×adver_interval+flag×(255-priority)/100。
在修改方式一下,本步骤中所述的增加报文接收周期长度的值可以是增加flag的值。比如,在备用路由设备可正常接收到主用路由设备的VRRP报文时,使该flag的值为1,在本步骤中,则可增加flag的当前值,使其大于1。
修改方式三、将T修改为T’,使得T’=3×adver_interval+(255-priority)/100+flag。
在修改方式三下,本步骤中所述的增加报文接收周期长度的值可以是增加flag的值。比如,在备用路由设备可正常接收到主用路由设备的VRRP报文时,使该flag的值为0,在本步骤中,则可增加flag的当前值,使其大于0。
在本步骤中,由于增加调节因子flag的值,会使备用路由设备实现状态切换的时间增加,因此,可能会使网络通信临时中断的时间增加,因此,在增加调节因子flag的值时,可将实际用户可容忍的等待时间作为T’,来确定flag的最大值。
方式B、通过增加状态切换的延迟时间来实现。
在该方式B下,备用路由设备中的控制单元不修改报文接收周期,而是额外增加一个状态切换的延迟时间,记为S。
步骤306:备用路由设备中的控制单元根据当前的状态切换时间长度执行状态切换。
这里,如果在上述步骤305中,延长了报文接收周期长度,那么,在本步骤中,备用路由设备在修改后的报文接收周期T’内未接收到主用路由设备发来的VRRP报文后,执行状态切换。并且,由于备用路由设备等待接收VRRP报文的时间则增加了,从而延长了进行状态切换的时间,有效避免了备用路由设备频繁地进行状态切换。
如果在上述步骤305中,增加了状态切换的延迟时间S,那么,在本步骤中,在报文接收周期内未接收到VRRP报文后,备用路由设备中的控制单元会继续等待延迟时间S后,再进行状态切换,从而延长了进行状态切换的时间,有效避免了备用路由设备频繁地进行状态切换。
至此,则完成了由备用路由设备自动实现避免频繁进行状态切换的过程。
为了进一步保证在备用路由设备可正常接收到VRRP报文时,能够恢复到初始的状态切换时间长度,本发明还可以进一步包括以下步骤。
步骤307:备用路由设备中的控制单元实时监测计时器,判断在计时器计时到达第二时间长度的过程中,在每一个初始的报文接收周期内是否均可接收到主用路由设备发来的VRRP报文,如果是,则执行步骤308,否则,返回步骤307。
这里,如果在第二时间长度内,备用路由设备中的控制单元在每一个初始的报文接收周期T=3×adver_interval+(255-priority)/100内,均可接收到主用路由设备发来的VRRP报文,备用路由设备则可确定自身接收报文的频率已恢复正常,则应该执行后续的恢复处理。
从而可以减小当前的报文接收周期长度T’的值,使其逐渐恢复其初始值T=3×adver_interval+(255-priority)/100,从而使备用路由设备恢复初始的报文接收过程。
其中,所述的第二时间长度的值可以根据时间业务需要来确定,比如,需要每30秒判断一次备用路由设备是否满足接收报文频率稳定,则可将第二时间长度的值设置为30秒。
步骤308:备用路由设备中的控制单元减少状态切换时间长度,根据该减少后的状态切换时间长度执行状态切换。
这里,如果在步骤305中采用了方式A中的修改方式一、修改方式二或修改方式三,那么,在本步骤中,则可减小T’中调节因子的当前值,即减小flag的当前值,减小后的flag的当前值大于或等于其初始值。此后,根据减小后的调节因子flag的当前值得到T’,并根据该所得的T’执行状态切换。
如果在步骤305中采用了方式B,那么,在本步骤中,去除或减小所增加的状态切换的延长时间S,根据减小或去除的状态切换延迟时间S执行状态切换。其中,如果是减小S,那么,备用路由设备在报文接收周期内未接收到主用路由设备发来的VRRP报文后,在等待减小后的状态切换延长时间S后执行状态切换;如果是去除S,那么,备用路由设备在报文接收周期内未接收到主用路由设备发来的VRRP报文后,直接执行状态切换。
在本发明中,还可以进一步根据用户的需要,确定是否进行上述图3所示的由备用路由设备自动完成避免频繁状态切换的过程。也就是说,如果用户对网络通信的连续性要求较高,则可禁止备用路由设备执行上述图3中所示的各个处理过程,仍采用现有技术中的处理方式。如果用户对网络的稳定性要求较高,则可触发备用路由设备执行上述图3中所示的各个处理过程,实现自动且有效避免频繁状态切换的过程。
在上述实施例中,对本发明的技术方案应用于VRRP备份组时进行了详细说明。在实际业务实现中,本发明的技术方案还可以应用于支持其他协议的备份组,其具体实现过程与上述实施例所述过程的原理相同。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。