本申请涉及通信技术领域,特别涉及一种基于VRRP协议的主路由器切换副路由器的方法及装置。
背景技术:
VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)是由IETF(The Internet Engineering Task Force,国际互联网工程任务组)提出的解决局域网中配置静态网关出现单点失效现象的路由协议。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,并在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。VRRP将局域网内的一组路由器划分在一起,称为一个备份组。备份组由一个Master路由器和多个Backup路由器组成,功能上相当于一台虚拟路由器。
Master路由器是VRRP备份组中通过优先级选举出的优先级最高的路由器,该路由器承担备份组中主路由器的功能,负责该备份组下的报文转发。Backup路由器是VRRP备份组中除了Master路由器以外的路由器,用于在Master路由器故障时接替Master路由器成为备份组的主路由器。
网络管理中管理员可能需要对当前Master路由器进行升级或者检验Backup路由器的运行状态,这时要将当前的Master路由器变为Backup路由器。现有技术中,实现Master路由器变Backup路由器的方法需修改VRRP配置,影响实际组网,实现过程较为复杂。
技术实现要素:
有鉴于此,本申请提供一种基于VRRP协议的主路由器切换副路由器的方法及装置,用以解决现有技术在实现虚拟路由器的备份组中Master路由器变为Backup路由器的过程过于复杂的问题。
具体地,本申请是通过如下技术方案实现的:
一种基于VRRP协议的主路由器切换副路由器的方法,应用于VRRP备份组中的路由器,包括:
作为Master路由器的第一路由器执行用户输入的切换为Backup路由器的命令后,向所述VRRP备份组中的所有Backup路由器发送携带的优先级为0的通告报文,以触发所述VRRP备份组中其它Backup路由器基于优先级重新选举Master路由器;
判断是否接收到所述VRRP备份组中其它Backup路由器回应的通告报文;
如果接收到所述其它Backup路由器返回的携带所述其它Backup路由器自身优先级的通告报文,删除本地预配置的所述VRRP备份组的虚拟IP地址,切换为Backup路由器。
在所述基于VRRP协议的主路由器切换副路由器的方法中,还包括:
如果没有接收到所述其它Backup路由器返回的通告报文,重传携带的优先级为0的通告报文,并在重传次数达到预设次数后,如果仍未收到所述其它Backup路由器返回的通告报文,则停止响应所述切换为Backup路由器的命令。
在所述基于VRRP协议的主路由器切换副路由器的方法中,还包括:
切换为Backup路由器的所述第一路由器接收到重新选举出的Master路由器发送的携带的优先级为0的通告报文后,在预设的Master异常超时时间内不响应该通告报文。
在所述基于VRRP协议的主路由器切换副路由器的方法中,还包括:
当在所述预设的Master异常超时时间内,仍未收到重新选举出的Master路由器发送的通告报文,则确定重新选举出的所述Master路由器工作异常,将自身恢复为Master路由器。
在所述基于VRRP协议的主路由器切换副路由器的方法中,还包括:
所述切换为Backup路由器的命令在切换为Backup路由器的所述第一路由器重启后失效;
切换为Backup路由器的所述第一路由器执行用户输入的取消切换为Backup路由器的命令后,所述切换为Backup路由器的命令失效。
在所述基于VRRP协议的主路由器切换副路由器的方法中,所述删除本地预配置的所述VRRP备份组的虚拟IP地址,还包括:
设置删除虚拟地址的延时时间,并在到达所述延时时间后删除本地预配置的所述VRRP备份组的虚拟IP地址。
一种基于VRRP协议的主路由器切换副路由器的装置,应用于VRRP备份组中的路由器,包括:
发送单元,用于作为Master路由器的第一路由器执行用户输入的切换为Backup路由器的命令后,向所述VRRP备份组中的所有Backup路由器发送携带的优先级为0的通告报文,以触发所述VRRP备份组中其它Backup路由器基于优先级重新选举Master路由器;
判断单元,用于判断是否接收到所述VRRP备份组中其它Backup路由器回应的通告报文;
删除单元,用于如果接收到所述其它Backup路由器返回的携带所述其它Backup路由器自身优先级的通告报文,删除本地预配置的所述VRRP备份组的虚拟IP地址,切换为Backup路由器。
在所述基于VRRP协议的主路由器切换副路由器的装置中,所述发送单元进一步用于:
如果没有接收到所述其它Backup路由器返回的通告报文,重传携带的优先级为0的通告报文,并在重传次数达到预设次数后,如果仍未收到所述其它Backup路由器返回的通告报文,则停止响应所述切换为Backup路由器的命令。
在所述基于VRRP协议的主路由器切换副路由器的装置中,所述判断单元进一步用于:
切换为Backup路由器的所述第一路由器接收到重新选举出的Master路由器发送的携带的优先级为0的通告报文后,在预设的Master异常超时时间内不响应该通告报文。
在所述基于VRRP协议的主路由器切换副路由器的装置中,所述发送单元进一步用于:
当在所述预设的Master异常超时时间内,仍未收到重新选举出的Master路由器发送的通告报文,则确定重新选举出的所述Master路由器工作异常,将自身恢复为Master路由器。
在所述基于VRRP协议的主路由器切换副路由器的装置中,所述切换为Backup路由器的命令还包括:
所述切换为Backup路由器的命令在切换为Backup路由器的所述第一路由器重启后失效;
切换为Backup路由器的所述第一路由器执行用户输入的取消切换为Backup路由器的命令后,所述切换为Backup路由器的命令失效。
在所述基于VRRP协议的主路由器切换副路由器的装置中,所述删除单元进一步用于:
设置删除虚拟地址的延时时间,并在到达所述延时时间后删除本地预配置的所述VRRP备份组的虚拟IP地址。
本申请实施例中,当网络管理员需要将当前的Master路由器强制切换为Backup路由器时,可以输入一条用于将Master路由器切换为Backup路由器的命令,Master路由器执行该切换为Backup路由器的命令后,可以向VRRP备份组中的所有Backup路由器发送一条携带的优先级为0的通告报文,使备份组中的其它Backup路由器能按优先级大小重新选举Master路由器,从而在网络管理员需要对当前Master路由器进行升级或者检验Backup路由器的运行状态,将当前的Master路由器强制切换为Backup路由器的过程中,不再需要修改VRRP配置,简化了实现过程。
附图说明
图1是基于VRRP协议的虚拟路由器的一个网络架构图;
图2是本申请示出的一种基于VRRP协议的主路由器切换副路由器的方法的流程图;
图3是本申请示出的一种基于VRRP协议的主路由器切换副路由器的装置的逻辑框图;
图4是本申请示出的一种基于VRRP协议的主路由器切换副路由器的装置的硬件结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本申请实施例中的技术方案作进一步详细的说明。
参见图1,为基于VRRP协议的虚拟路由器的一个网络架构图,如图所示,第一路由器、第二路由器、第三路由器共同构成了一个备份组,形成一台虚拟路由器。局域网中的主机1、主机2和主机3通过虚拟路由器实现与外部网络的通信。
具体而言,VRRP将可以承担网关功能的一组路由器加入到VRRP的备份组中,形成一台虚拟路由器。同一局域网的所有主机都设置一条相同的、以虚拟路由器为下一跳的默认路由。主机发往其它网段的报文将通过默认路由发往虚拟路由器,再由虚拟路由器进行转发,从而实现主机与外部网络的通信。VRRP选举出一台Master路由器,由Master路由器承担实际的转发任务。当Master路由器出现异常时,Backup路由器通过超时机制及选举机制选举出新的Master路由器。
VRRP备份组中可以依据VRRP优先级的高低选举Master路由器,优先级最高的成为Master路由器,用户可配置的优先级的范围为1到254。若备份组中存在IP地址和虚拟路由器的接口IP地址相同的路由器,则该路由器被称为IP地址的所有者,拥有最高优先级255。优先级为0表示IP所在的Master路由器主动切换为Backup路由器。
在VRRP抢占模式下,备份组中只要有Backup路由器的优先级高于Master路由器,该Backup路由器就会取代现有的Master路由器成为新的Master路由器。
在VRRP非抢占模式下,备份组中只要Master路由器工作正常,即便存在Backup路由器的优先级高于Master路由器的优先级,该Backup路由器也不能取代现有的Master路由器成为新的Master路由器。
在实际应用中,网络管理员可能需要将当前Master路由器进行升级或者检验Backup路由器的运行状态,此时需要将当前的Master路由器切换为Backup路由器。
现有的技术可以在抢占模式下让Backup路由器的优先级高于Master路由器的优先级,使得Backup路由器取代现有的Master路由器成为新的路由器,从而实现现有的Master路由器变成Backup路由器的转换。
一方面,可以降低现有Master路由器的优先级,当现有Master路由器的优先级低于备份组中优先级最高的Backup路由器的优先级时,该Backup路由器会取代现有的Master路由器,使现有的Master路由器切换为Backup路由器。
另一方面,可以提高备份组中任一Backup路由器的优先级,当该Backup路由器的优先级高于现有Master路由器的优先级时,该Backup路由器会取代现有的Master路由器,使现有的Master路由器切换为Backup路由器。
这种方法需要将备份组配置在抢占模式,会影响实际组网。现有技术的另一个方法是增加或者修改备份组的监视项,让现有Master路由器主动降低优先级至0,触发Backup路由器重新选举产生新的Master路由器,现有Master路由器变成Backup路由器。在监视项不恢复的情况下,现有Master路由器变成Backup路由器后无法再切换为Master路由器,如果此后的Master路由器工作异常,又没有其它Backup路由器接替成为Master路由器,虚拟路由器将无法进行转发工作。
综上所述,现有的技术方案在需要将当前的Master路由器切换为Backup路由器时,实现Master路由器切换为Backup路由器的方法需修改VRRP配置,影响实际组网;或者是通过不恢复就持续作用的监视项实现Master路由器切换为Backup路由器,实现过程较为复杂。
有鉴于此,本申请提供一种基于VRRP协议的主路由器切换副路由器的方法和装置,用于解决现有技术中Master路由器变Backup路由器的实现过于复杂的问题。
参见图2,为本申请示出的一种基于VRRP协议的主路由器切换副路由器的方法的流程图。
步骤201:作为Master路由器的第一路由器执行用户输入的切换为Backup路由器的命令后,向所述VRRP备份组中的所有Backup路由器发送携带的优先级为0的通告报文,以触发所述VRRP备份组中其它Backup路由器基于优先级重新选举Master路由器。
步骤202:判断是否接收到所述VRRP备份组中其它Backup路由器回应的通告报文。
步骤203:如果接收到所述其它Backup路由器返回的携带所述其它Backup路由器自身优先级的通告报文,删除本地预配置的所述VRRP备份组的虚拟IP地址,切换为Backup路由器。
如前所述,现有技术中,将Master路由器变Backup路由器需修改配置,影响实际组网,或因更改监视项造成受影响的Backup路由器无法再变为Master路由器,实现过程复杂。
在本实施例中,作为Master路由器的第一路由器执行用户输入的切换为Backup路由器的命令后,该第一路由器会发送携带的优先级为0的通告报文至备份组中的所有Backup路由器,以触发Backup路由器基于优先级重新选举Master路由器。该第一路由器在接收到Backup路由器响应的通告报文后,删除本地的虚拟IP地址,切换为Backup路由器。整个过程不需要更改VRRP的配置,也不用增加或修改VRRP备份组的监视项,实现Master路由器切换为Backup路由器的过程变得非常方便。
结合图1的网络架构来说明本申请实施例的技术方案,设定第一路由器的优先级是100,第二路由器的优先级是80,第三路由器的优先级是60。当前VRRP备份组中的Master路由器是第一路由器。
在本例中,作为Master路由器的第一路由器接收到用户输入的切换为Backup路由器的命令后,执行该切换为Backup路由器的命令。第一路由器向VRRP备份组中的所有Backup路由器发送携带的优先级为0的通告报文。VRRP备份组中的Backup路由器,即第二路由器和第三路由器,在接收到第一路由器发送的携带的优先级为0的通告报文后,基于自身的优先级进行Master路由器的选举。
根据VRRP协议,VRRP备份组中的Master路由器按照通告时间为间隔定时发送通告报文,通知VRRP备份组内的Backup路由器自己工作。通告报文会携带Master路由器本地的优先级。所述通告时间可以根据实际应用设定,一般设置为1秒。
一般情况下,Backup路由器接收到Master路由器发送的通告报文后,设定Master异常超时时间,在上述Master异常超时时间内收到通告报文,则对上述Master异常超时时间重新计时;如果在上述Master异常超时时间内未收到Master路由器的通告报文,则上述Master异常超时时间超时,Backup路由器认定自己是Master路由器,向VRRP备份组内的其它Backup路由器发送通告报文。上述Master异常超时时间的计算方式可以是:通告时间*3+通告时间*(256-优先级)/256。
优先级为0的通告报文是特殊用法。当Master路由器向VRRP备份组中的Backup路由器发送携带的优先级为0的通告报文时,表示当前Master路由器放弃Master的身份。VRRP备份组中的Backup路由器接收到携带的优先级为0的通告报文后,将Master异常超时时间设定为:通告时间*(256-优先级)/256。
在本例中,Master路由器的选举可以有两种方式:
一方面,第二路由器和第三路由器接收到第一路由器发送的携带的优先级为0的通告报文后,将本地的Master异常超时时间设定为:通告时间*(256-优先级)/256。第二路由器的Master异常超时时间为:通告时间*176/256。第三路由器的Master异常超时时间为:通告时间*196/256。第二路由器的Master异常超时时间小于第三路由器的Master异常超时时间,第二路由器的Master异常超时时间先超时。第二路由器的Master异常超时时间超时后,第二路由器认定自己是Master路由器,向第一路由器和第三路由器发送携带第二路由器优先级的通告报文。第三路由器接收到作为Master路由器的第二路由器发送的通告报文后,对Master异常超时时间重新计时。
另一方面,第二路由器和第三路由器接收到第一路由器发送的携带的优先级为0的通告报文后,可以立即认定自己是Master路由器,并向VRRP备份组内的其它路由器发送携带自身优先级的通告报文。第三路由器接收到第二路由器发送的通告报文后,比较通告报文中第二路由器的优先级和本地的优先级;因为第二路由器的优先级高于第三路由器的优先级,第三路由器放弃Master的身份,重新切换为Backup路由器。第二路由器接收到第三路由器发送的通告报文后,比较通告报文中第三路由器的优先级和本地的优先级;因为第二路由器的优先级高于第三路由器的优先级,第二路由器的Master的身份保持不变。
在本例中,第一路由器向VRRP备份组中的其它Backup路由器,即第二路由器和第三路由器,发送携带的优先级为0的通告报文后,要判断是否收到第二路由器或第三路由器回应的携带其自身优先级的通告报文。因为第二路由器和第二路由器可能处于工作异常状态,或者在第一路由器发送携带的优先级为0的通告报文的过程中可能出现丢包。这时第一路由器如果直接切换为Backup路由器,那么整个VRRP备份组中将没有Master路由器,虚拟路由器无法为局域网内的主机转发数据报文。
第一路由器在向第二路由器和第三路由器发送携带的优先级为0的通告报文后,如果在通告时间内没收到第二路由器或第三路由器回应的携带其自身优先级的通告报文,则以通告时间为间隔重传携带的优先级为0的通告报文。如果重传次数达到预设次数后,仍未没有收到第二路由器或第三路由器回应的携带其自身优先级的通告报文;说明第二路由器和第三路由器工作异常,无法切换为Master路由器。此时第一路由器上的切换为Backup路由器的命令失效,第一路由器不再发送携带的优先级为0的通告报文。
其中,在设置上述预设次数时,可以采用VRRP协议支持的默认重传次数;比如,3次。
在本例中,第一路由器接收到第二路由器或第三路由器回应的携带其自身优先级的通告报文,则确定VRRP备份组中出现了新的Master路由器,第一路由器可以设置删除本地预配置的所述VRRP备份组的虚拟IP地址的延时时间,并在该延时时间超时后删除预配置的所述VRRP备份组的虚拟IP地址,切换为Backup路由器。该延时时间的作用在于:VRRP备份组中的第二路由器或第三路由器回应携带自身优先级的通告报文至第一路由器时,即使第二路由器切换为Master路由器,第二路由器要在发出携带自身优先级的通告报文的稍后才能使用VRRP备份组的虚拟IP地址。该延时时间可以防止因第一路由器切换成Backup路由器,而VRRP备份组中的第二路由器尚未能够使用VRRP备份组的虚拟IP地址时,造成虚拟路由器中Master路由器的空缺。该延时时间的计算方式可以是:通告时间*(256-优先级)/256。
在本例中,第一路由器切换为Backup路由器后,VRRP备份组中除第一路由器以外优先级最高的第二路由器切换为Master路由器。如果继续在第二路由器上输入的切换为Backup路由器的命令,则第二路由器将执行该切换为Backup路由器的命令,向VRRP备份组中其它Backup路由器,即第一路由器和第二路由器,发送携带的优先级为0的通告报文。
此时第一路由器仍在响应切换为Backup路由器的命令;第一路由器接收到第二路由器发送的优先级为0的通告报文后,认定接收到的是普通的通告报文,将Master异常超时时间重新计时;第一路由器的Master异常超时时间可以是:通告时间*3+通告时间*(256-优先级)/256。通过这种方式,使VRRP备份组中其它还未切换过Master路由器的Backup路由器接收到携带的优先级为0的通告报文后,在第一路由器之前参与Master路由器的选举。
VRRP备份组中的其它Backup路由器接收到第二路由器发送的携带的优先级为0的通告报文后,基于自身的优先级进行Master路由器的选举。根据前文提出的两种Master路由器的选举方式的任一,第三路由器都能切换成Master路由器。本例中以3台路由器说明发明方案,实际通过该发明方案,VRRP备份组中的所有Backup路由器依照优先级从高到低,都可以切换成Master路由器。
在本例中,当作为Master路由器的第三路由器工作异常时,不再向第一路由器和第二路由器发送通告报文。第一路由器和第二路由器在接收到第三路由器最后发送的通告报文时开始计时Master异常超时时间。第一路由器的Master异常超时时间可以是:通告时间*3+通告时间*156/256。第二路由器的Master异常超时时间可以是:通告时间*3+通告时间*176/256。第一路由器的Master异常超时时间小于第二路由器的Master异常超时时间。所以第一路由器的Master异常超时时间先超时,第一路由器上的切换为Backup路由器的命令失效,第一路由器切换为Master路由器,并向第二路由器和第三路由器发送携带的优先级为100的通告报文。第二路由器接收到第一路由器发送的携带的优先级为100的通告报文后,重新计时Master异常超时时间。
因此,当VRRP备份组中所有的Backup路由器都切换过Master路由器,最后一台重新选举出的Master路由器工作异常时,可使剩余的其它Backup路由器中优先级最高的Backup路由器的异常超时时间超时且其响应的切换为Backup路由器的命令失效,再次切换为Master路由器。防止虚拟路由器出现缺少Master路由器的故障。
在本例中,重启切换为Backup路由器的第一路由器就可以取消第一路由器上的切换为Backup路由器的命令。上述切换为Backup路由器的命令取消后,第一路由器在接收到Master路由器发送的携带的优先级为0的通告报文时,不再将该通告报文当作普通通告报文,而是设定Master异常超时时间为:通告时间*(256-优先级)/256,在该Master异常超时时间超时后即参与Master路由器的选举。或者也可以在切换为Backup路由器的第一路由器上输入取消切换为Backup路由器的命令,使第一路由器上的切换为Backup路由器的命令无效。
第一路由器重新切换为Master路由器后,除非发生异常,否则第二路由器一致处于执行切换为Backup路由器的命令的状态。可以将第二路由器重启,或给第二路由器输入取消切换为Backup路由器的命令,从而使第二路由器恢复正常状态。这样当下一次需要让第一路由器强制切换为Backup路由器时,第二路由器收到第一路由器发送的携带的优先级为0的通告报文会参加正常的Master路由器的选举。
本申请实施例中,当网络管理员需要将当前的Master路由器强制切换为Backup路由器时,可以输入一条用于将Master路由器切换为Backup路由器的命令,Master路由器执行该切换为Backup路由器的命令后,可以向VRRP备份组中的所有Backup路由器发送一条携带的优先级为0的通告报文,使备份组中的其它Backup路由器能按优先级大小重新选举Master路由器,从而在网络管理员需要对当前Master路由器进行升级或者检验Backup路由器的运行状态,将当前的Master路由器强制切换为Backup路由器的过程中,不再需要修改VRRP配置,简化了实现过程。
与本发明基于VRRP协议的主路由器切换副路由器的方法的实施例相对应,本发明还提供了用于执行上述方法实施例的装置的实施例。
参见图3,为本发明基于VRRP协议的主路由器切换副路由器的装置的一个实施例框图:
如图3所示,该基于VRRP协议的主路由器切换副路由器的装置30包括:
发送单元310,用于作为Master路由器的第一路由器执行用户输入的切换为Backup路由器的命令后,向所述VRRP备份组中的所有Backup路由器发送携带的优先级为0的通告报文,以触发所述VRRP备份组中其它Backup路由器基于优先级重新选举Master路由器。
判断单元320,用于判断是否接收到所述VRRP备份组中其它Backup路由器回应的通告报文。
删除单元330,用于如果接收到所述其它Backup路由器返回的携带所述Backup路由器自身优先级的通告报文,删除本地预配置的所述VRRP备份组的虚拟IP地址,切换为Backup路由器。
在本例中,所述发送单元310进一步用于:
如果没有接收到所述Backup路由器返回的通告报文,重传携带的优先级为0的通告报文,并在重传次数达到预设次数后,如果仍未收到所述Backup路由器返回的通告报文,则停止响应所述切换为Backup路由器的命令。
在本例中,所述判断单元320进一步用于:
切换为Backup路由器的所述第一路由器接收到重新选举出的Master路由器发送的携带的优先级为0的通告报文后,在预设的Master异常超时时间内不响应该通告报文。
在本例中,所述发送单元310进一步用于:
当在所述预设的Master异常超时时间内,仍未收到重新选举出的Master路由器发送的通告报文,则确定重新选举出的所述Master路由器工作异常,将自身恢复为Master路由器。
在本例中,所述切换为Backup路由器的命令还包括:
所述切换为Backup路由器的命令在切换为Backup路由器的所述第一路由器重启后失效;
切换为Backup路由器的所述第一路由器执行用户输入的取消切换为Backup路由器的命令后,所述切换为Backup路由器的命令失效。
在本例中,所述删除单元330,进一步用于:
设置删除虚拟地址的延时时间,并在到达所述延时时间后删除本地预配置的所述VRRP备份组的虚拟IP地址。
本申请基于VRRP协议的主路由器切换副路由器的装置的实施例可以应用在VRRP备份组中的路由器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在VRRP备份组中的路由器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请基于VRRP协议的主路由器切换副路由器的装置所在VRRP备份组中的路由器的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的VRRP备份组中的路由器通常根据该基于VRRP协议的主路由器切换副路由器的装置的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。