欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> VRRP震荡的抑制方法及装置独创技术21975字

VRRP震荡的抑制方法及装置

2021-02-05 09:52:07

VRRP震荡的抑制方法及装置

  技术领域

  本发明涉及通信技术领域,尤指一种虚拟路由冗余协议(Virtual RouterRedundancy Protocol,VRRP)震荡的抑制方法及装置。

  背景技术

  VRRP是一种路由容错协议,能够确保VRRP系统中的主设备发生故障时,备设备可以在不影响内外数据通信的前提下切换为主设备。

  通常,VRRP系统的主设备会以设定周期向备设备发送VRRP心跳报文,当主设备与备设备之间的链路不稳定,比如由于受到流量攻击或其他原因,就会导致VRRP心跳报文间断性丢包,若备设备在超时时长(为超时倍数的设定周期)内未收到VRRP心跳报文而切换成主设备后又立即收到了VRRP心跳报文,又会切换为备设备,这就出现了VRRP震荡,VRRP震荡会引起流量转发异常。因此,需要抑制VRRP震荡的发生。

  目前,VRRP震荡的抑制方法是,在VRRP震荡后,增大设定周期来减少震荡频率,但由于超时倍数是固定的,因此,确定出的超时时长比较粗糙,VRRP震荡的抑制效果较差。

  发明内容

  本发明实施例提供一种VRRP震荡的抑制方法及装置,用以解决现有技术中存在的VRRP震荡的抑制效果较差的问题。

  根据本发明实施例,提供一种VRRP震荡的抑制方法,应用于VRRP系统的备设备中,所述方法包括:

  监测超时定时器是否到期;

  若监测到所述超时定时器到期,则切换为所述VRRP系统的主设备,以设定周期发送VRRP心跳报文并更新主设备发送报文计数;

  若监测到所述超时定时器未到期,则确定当前的设定周期到期时是否接收到所述VRRP心跳报文,若未接收到所述VRRP心跳报文,则更新备设备未接收报文计数;若接收到所述VRRP心跳报文,则更新备设备接收报文计数,基于所述主设备发送报文计数、所述备设备未接收报文计数、所述备设备接收报文计数、所述设定周期、偏移时长和设定超时倍数确定超时时长,并基于所述超时时长重置所述超时定时器后执行所述监测超时定时器是否到期的步骤。

  具体的,基于所述主设备发送报文计数、所述备设备未接收报文计数、所述备设备接收报文计数、所述设定周期、偏移时长和设定超时倍数确定超时时长,具体包括:

  基于所述主设备发送报文计数、所述备设备未接收报文计数、所述备设备接收报文计数、自动延长时长系数、所述设定周期和设定超时倍数计算自动延长时长;

  将所述设定周期与设定超时倍数相乘再加上偏移时长和所述自动延长时长,得到超时时长。

  具体的,基于所述主设备发送报文计数、所述备设备未接收报文计数、所述备设备接收报文计数、自动延长时长系数、所述设定周期和设定超时倍数计算自动延长时长,具体包括:

  计算所述主设备发送报文计数、所述备设备未接收报文计数与所述备设备接收报文计数的和值;

  将自动延长时长系数、所述设定周期、设定超时倍数和所述备设备未接收报文计数相乘后除以所述和值,得到自动延长时长。

  可选的,还包括:

  监控设置的检测周期是否到期;

  若监控到所述检测周期到期,则将所述主设备发送报文计数、所述备设备未接收报文计数和所述备设备接收报文计数清零。

  根据本发明实施例,还提供一种VRRP震荡的抑制装置,应用于VRRP系统的备设备中,所述装置包括:

  监测模块,用于监测超时定时器是否到期;

  切换模块,用于若监测到所述超时定时器到期,则切换为所述VRRP系统的主设备,以设定周期发送VRRP心跳报文并更新主设备发送报文计数;

  处理模块,用于若监测到所述超时定时器未到期,则确定当前的设定周期到期时是否接收到所述VRRP心跳报文,若未接收到所述VRRP心跳报文,则更新备设备未接收报文计数;若接收到所述VRRP心跳报文,则更新备设备接收报文计数,基于所述主设备发送报文计数、所述备设备未接收报文计数、所述备设备接收报文计数、所述设定周期、偏移时长和设定超时倍数确定超时时长,并基于所述超时时长重置所述超时定时器后转向所述监测模块。

  具体的,所述处理模块,用于基于所述主设备发送报文计数、所述备设备未接收报文计数、所述备设备接收报文计数、所述设定周期、偏移时长和设定超时倍数确定超时时长,具体用于:

  基于所述主设备发送报文计数、所述备设备未接收报文计数、所述备设备接收报文计数、自动延长时长系数、所述设定周期和设定超时倍数计算自动延长时长;

  将所述设定周期与设定超时倍数相乘再加上偏移时长和所述自动延长时长,得到超时时长。

  具体的,所述处理模块,用于基于所述主设备发送报文计数、所述备设备未接收报文计数、所述备设备接收报文计数、自动延长时长系数、所述设定周期和设定超时倍数计算自动延长时长,具体用于:

  计算所述主设备发送报文计数、所述备设备未接收报文计数与所述备设备接收报文计数的和值;

  将自动延长时长系数、所述设定周期、设定超时倍数和所述备设备未接收报文计数相乘后除以所述和值,得到自动延长时长。

  可选的,还包括:

  监控模块,用于监控设置的检测周期是否到期;

  清零模块,用于若监控到所述检测周期到期,则将所述主设备发送报文计数、所述备设备未接收报文计数和所述备设备接收报文计数清零。

  根据本发明实施例,还提供一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

  存储器,用于存放计算机程序;

  处理器,用于执行存储器上所存储的程序时,实现上述的方法步骤。

  根据本发明实施例,还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法步骤。

  本发明有益效果如下:

  本发明实施例提供一种VRRP震荡的抑制方法及装置,通过监测超时定时器是否到期;若监测到所述超时定时器到期,则切换为所述VRRP系统的主设备,以设定周期发送VRRP心跳报文并更新主设备发送报文计数;若监测到所述超时定时器未到期,则确定当前的设定周期到期时是否接收到所述VRRP心跳报文,若未接收到所述VRRP心跳报文,则更新备设备未接收报文计数;若接收到所述VRRP心跳报文,则更新备设备接收报文计数,基于所述主设备发送报文计数、所述备设备未接收报文计数、所述备设备接收报文计数、所述设定周期、偏移时长和设定超时倍数确定超时时长,并基于所述超时时长重置所述超时定时器后执行所述监测超时定时器是否到期的步骤。该方案中,每次接收到VRRP心跳报文后,会基于主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数确定超时时长,由于不仅仅是改变设定周期,而是要参考主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数,相对于现有技术,可以更加精细地确定超时时长,从而可以提高VRRP震荡的抑制效果。

  附图说明

  图1为本发明实施例中一种VRRP震荡的抑制方法的流程图;

  图2为本发明实施例中一种VRRP震荡的抑制装置的结构示意图;

  图3为本申请示出的一种电子设备的结构示意图。

  具体实施方式

  针对现有技术中存在的VRRP震荡的抑制效果较差的问题,本发明实施例提供一种VRRP震荡的抑制方法,应用于VRRP系统的备设备中,该方法的流程如图1所示,执行步骤如下:

  S11:流程开始。

  S12:监测超时定时器是否到期,若监测到超时定时器到期,则执行S13;若监测到超时定时器未到期,则执行S14。

  超时定时器可以用来监控未接收到VRRP心跳报文的时长是否超过超时时长。

  S13:切换为VRRP系统的主设备,以设定周期发送VRRP心跳报文并更新主设备发送报文计数。

  若监测到超时定时器到期,说明未接收到VRRP心跳报文的时长超过超时时长,此时可以切换为VRRP系统的主设备,可以预先设置主设备发送报文计数,然后以设定周期发送VRRP心跳报文并更新主设备发送报文计数,具体可以在每次发送VRRP心跳报文后将主设备发送报文计数增加1。

  其中,设定周期可以根据实际需要进行设定,例如,可以但不限于设定为0.5秒、1秒、1.5秒等等。

  S14:确定当前的设定周期到期时是否接收到VRRP心跳报文,若未接收到VRRP心跳报文,则执行S15;若接收到VRRP心跳报文,则执行S16。

  若监测到超时定时器未到期,说明未接收到VRRP心跳报文的时长未超过超时时长,还可以进一步确定当前的设定周期到期时是否接收到VRRP心跳报文。

  S15:更新备设备未接收报文计数。

  可以预先设置备设备未接收报文计数,若未接收到VRRP心跳报文,可以更新备设备未接收报文计数,具体可以将备设备未接收报文计数增加1。

  S16:更新备设备接收报文计数,基于主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数确定超时时长,并基于超时时长重置超时定时器,执行S12。

  还可以预先设置备设备接收报文计数,在每次接收到VRRP心跳报文后更新备设备未接收报文计数,具体可以备设备未接收报文计数增加1,然后还可以重新确定超时时长,并基于超时时长重置超时定时器,再转向S12,重新开始执行上述方法。

  该方案中,每次接收到VRRP心跳报文后,会基于主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数确定超时时长,由于不仅仅是改变设定周期,而是要参考主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数,相对于现有技术,可以更加精细地确定超时时长,从而可以提高VRRP震荡的抑制效果。

  具体的,上述S16中的基于主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数确定超时时长,实现过程具体包括:

  基于主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、自动延长时长系数、设定周期和设定超时倍数计算自动延长时长;

  将设定周期与设定超时倍数相乘再加上偏移时长和自动延长时长,得到超时时长。

  具体的,上述基于主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、自动延长时长系数、设定周期和设定超时倍数计算自动延长时长,具体包括:

  计算主设备发送报文计数、备设备未接收报文计数与备设备接收报文计数的和值;

  将自动延长时长系数、设定周期、设定超时倍数与备设备未接收报文计数相乘后除以和值,得到自动延长时长。

  超时时长=设定周期*设定超时倍数+偏移时长+自动延长时长;

  其中,设定超时倍数可以根据实际需要进行设定,在RFC5798中规定偏移时长为(((256-优先级)*设定周期)/256)。

  自动延长时长=自动延长时长系数*设定周期*设定超时倍数*备设备未接收报文计数/(主设备发送报文计数+备设备未接收报文计数+备设备接收报文计数);

  其中,自动延长时长系数可以设定为0.5。

  从以上两个公式中可以看出,若备设备未接收报文计数为零,则自动延长时长为零,超时时长不会改变,只要备设备未接收报文计数大于零,自动延长时长大于零,超时时长也会增加,并且按照上述公式增加,从而可以更加精细地调整超时时长。

  可选的,上述方法还包括:

  监控设置的检测周期是否到期;

  若监控到检测周期到期,则将主设备发送报文计数、备设备未接收报文计数和备设备接收报文计数清零。

  检测周期可以根据实际需要进行设定,例如,可以但不限于设定为30秒、1分钟、10分钟等等。在监控到检测周期到期后,将主设备发送报文计数、备设备未接收报文计数和备设备接收报文计数清零,从而避免主设备发送报文计数、备设备未接收报文计数和备设备接收报文计数的数值过大,减小超时时长的计算难度。

  假设,在一个检测周期内,第2、4、5、7、8、11、13、15个设定周期未接收到VRRP心跳报文,设定值周期为1秒,设定超时倍数为3,优先级为100,按照现有技术确定出的超时时长为3秒,而采用本实施例的方法,在该检测周期结束后,自动延长时长时间为:(0.5*3*1*9)/(6+9+0)=0.9秒,超时时长为(3*1)+(((256-100)*1)/256)+0.9=4.5秒,即在4.5秒内VRRP系统的备设备没有收到VRRP心跳报文才会切换为主设备,相对于现有技术可以更好精细地确定超时时长,从而可以更好地抑制VRRP震荡。

  基于同一发明构思,本发明实施例提供一种VRRP震荡的抑制装置,应用于VRRP系统的备设备中,该装置的结构如图2所示,包括:

  监测模块21,用于监测超时定时器是否到期;

  切换模块22,用于若监测到超时定时器到期,则切换为VRRP系统的主设备,以设定周期发送VRRP心跳报文并更新主设备发送报文计数;

  处理模块23,用于若监测到超时定时器未到期,则确定当前的设定周期到期时是否接收到VRRP心跳报文,若未接收到VRRP心跳报文,则更新备设备未接收报文计数;若接收到VRRP心跳报文,则更新备设备接收报文计数,基于主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数确定超时时长,并基于超时时长重置超时定时器后转向监测模块。

  该方案中,每次接收到VRRP心跳报文后,会基于主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数确定超时时长,由于不仅仅是改变设定周期,而是要参考主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数,相对于现有技术,可以更加精细地确定超时时长,从而可以提高VRRP震荡的抑制效果。

  具体的,处理模块23,用于基于主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数确定超时时长,具体用于:

  基于主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、自动延长时长系数、设定周期和设定超时倍数计算自动延长时长;

  将设定周期与设定超时倍数相乘再加上偏移时长和自动延长时长,得到超时时长。

  具体的,处理模块23,用于基于主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、自动延长时长系数、设定周期和设定超时倍数计算自动延长时长,具体用于:

  计算主设备发送报文计数、备设备未接收报文计数与备设备接收报文计数的和值;

  将自动延长时长系数、设定周期、设定超时倍数和备设备未接收报文计数相乘后除以和值,得到自动延长时长。

  可选的,还包括:

  监控模块,用于监控设置的检测周期是否到期;

  清零模块,用于若监控到检测周期到期,则将主设备发送报文计数、备设备未接收报文计数和备设备接收报文计数清零。

  本申请实施例还提供了一种电子设备,请参见图3所示,包括处理器310、通信接口320、存储器330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。

  存储器330,用于存放计算机程序;

  处理器310,用于执行存储器330上所存放的程序时,实现上述实施例中任一所述的VRRP震荡的抑制方法。

  通信接口320用于上述电子设备与其他设备之间的通信。

  存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

  上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

  该方案中,每次接收到VRRP心跳报文后,会基于主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数确定超时时长,由于不仅仅是改变设定周期,而是要参考主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数,相对于现有技术,可以更加精细地确定超时时长,从而可以提高VRRP震荡的抑制效果。

  相应地,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的VRRP震荡的抑制方法。

  该方案中,每次接收到VRRP心跳报文后,会基于主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数确定超时时长,由于不仅仅是改变设定周期,而是要参考主设备发送报文计数、备设备未接收报文计数、备设备接收报文计数、设定周期、偏移时长和设定超时倍数,相对于现有技术,可以更加精细地确定超时时长,从而可以提高VRRP震荡的抑制效果。

  本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

  这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

  这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

  尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。

  显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

《VRRP震荡的抑制方法及装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)