CN108833273A - Vrrp备份组中主备切换、选举方法、路由器和介质 - Google Patents
Vrrp备份组中主备切换、选举方法、路由器和介质 Download PDFInfo
- Publication number
- CN108833273A CN108833273A CN201810681364.9A CN201810681364A CN108833273A CN 108833273 A CN108833273 A CN 108833273A CN 201810681364 A CN201810681364 A CN 201810681364A CN 108833273 A CN108833273 A CN 108833273A
- Authority
- CN
- China
- Prior art keywords
- router
- neighbor list
- role state
- local
- sender
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
- H04L45/586—Association of routers of virtual routers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种VRRP备份组中主备切换方法、主路由器选举方法、路由器和介质。其中,VRRP备份组中主备切换方法包括:VRRP备份组中第一路由器检测到处于主控角色状态的第二路由器处于故障状态后,从本地邻居列表中,读取所述第一路由器的角色状态;如果所述本地邻居列表中所述第一路由器的角色状态是备份角色状态,则将所述第一路由器的角色状态切换为主控角色状态;其中,所述本地邻居列表存储有所述VRRP备份组中各路由器的角色状态。本实施例可以提高主备切换效率。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种VRRP备份组中主备切换、选举方法、路由器和介质。
背景技术
虚拟链路冗余协议(Virtual Router Redundancy Protocol,VRRP)是一种容错协议,它保证当主机的下一跳路由器出现故障时,由另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性。VRRP将局域网内的一组路由器划分在一起,形成一个VRRP备份组,包括一个Master路由器和多个Backup路由器。
目前,当Master路由器发生故障,多个Backup路由器检测到主路由器宕机后,通过优先级来重新选举Master路由器,即通过VRRP通告报文的交互进行协商后,优先级较低的路由器将切换成Backup状态,优先级最高的路由器成为最终的Master设备。
现有的主备切换方法需要通过发送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备份组中主备切换方法的流程图;
图4是本发明实施例四提供的一种VRRP备份组中主路由器选举方法的流程图;
图5a是本发明实施例五提供的一种VRRP备份组中主路由器选举方法的流程图;
图5b是本发明实施例五提供的VRRP备份组的网络架构图;
图6a是本发明实施例六提供的一种路由器的结构示意图;
图6b是本发明实施例六提供的另一种路由器的结构示意图;
图7a是本发明实施例七提供的一种路由器的结构示意图;
图7b是本发明实施例七提供的另一种理由器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
本实施例中,VRRP备份组至少包括第一路由器和第二路由器。其中,第二路由器处于主控角色状态,称为Master路由器;第一路由器处于备份角色状态,称为Backup路由器。本实施例可适用于处于主控角色状态的路由器故障后,处于备份角色状态的路由器切换为主控角色状态的情况,该方法可以由处于备份角色状态的第一路由器来执行。图1是本发明实施例一提供的一种VRRP备份组中主备切换方法的流程图,具体包括如下步骤:
S110、VRRP备份组中第一路由器检测到处于主控角色状态的第二路由器处于故障状态后,从本地邻居列表中,读取第一路由器的角色状态,其中,本地邻居列表存储有VRRP备份组中各路由器的角色状态。
其中,第一路由器可以是VRRP备份组中任一路由器。第一路由器实时检测处于主控角色状态的第二路由器的状态。可选地,第一路由器的交换芯片上设置有检测模块,例如OAM模块或者OFD模块,检测模块检测到第二路由器的通信链路不通后,发出告警生成消息。告警生成消息包括消息类型字段和路由器标识字段,消息类型为告警生成,路由器标识为第二路由器的标识,例如第二路由器的MAC地址和/或第二路由器的Router ID。
第一路由器通过解析告警生成消息,确定第二路由器处于故障状态,则从本地邻居列表中,读取自己的角色状态。
本实施例为VRRP备份组中的路由器定义新的角色状态,该角色状态至少包括主控角色状态和备份角色状态。第一路由器维护有邻居列表,该邻居列表存储有VRRP备份组中各路由器的角色状态,具体地,邻居列表包括表示主控角色状态的字段:rd_master和表示备份角色状态的字段:rd_slave。
优选地,VRRP备份组中处于主控角色状态的路由器有一个,处于备份角色状态的路由器有一个。在VRRP备份组中,处于主控角色状态的路由器的优先级最高,处于备份角色状态的路由器的优先级仅次于处于主控角色状态的路由器的优先级。
可选地,邻居列表还存储有路由器的标识。第一路由器检测到处于主控角色状态的第二路由器的告警生成消息后,从告警生成消息中获取路由器的标识,并遍历本地邻居列表,找到匹配的路由器标识后,删除对应路由器的角色状态和标识。
S120、如果本地邻居列表中第一路由器的角色状态是备份角色状态,则将第一路由器的角色状态切换为主控角色状态。
本实施例中,处于备份角色状态的路由器是处于主控角色状态的路由器的替补,即当主控角色状态的路由器故障后,将由处于备份角色状态的路由器切换为主控角色状态。具体地,将本地邻居列表中第一路由器的角色状态rd_slave更改为rd_master。
可选地,还需要修改上层协议的状态,即将第一路由器的VRRP状态切换为VRRP主控状态。
本发明实施例中,VRRP备份组中每个路由器均维护有邻居列表,邻居列表存储有VRRP备份组中各路由器的角色状态,在检测到处于主控角色状态的路由器处于故障状态后,VRRP备份组中路由器如果从本地邻居列表中读取的角色状态是备份角色状态,即确定自己是备份角色状态后,则将自己的角色状态切换为主控角色状态,即能够通过邻居列表中的角色状态快速确定新的主控路由器,无需通过报文交互、优先级选举确定,提高了主备切换效率。
实施例二
本实施例对上述实施例进行进一步优化,在第一路由器的角色状态切换为主控角色状态后,会周期性向其他路由器发送VRRP通告报文。其他路由器实时检测第一路由器的状态。如果检测到第一路由器处于故障状态后,还需要从本地邻居列表中继续确定新的处于备份角色状态的路由器,作为新的主控角色状态的路由器,即Master路由器。基于上述目的,各路由器的邻居列表中还需确定新的处于备份角色状态的路由器。基于此,本实施例在邻居列表中加入优先级和候补角色状态。在从本地邻居列表中,读取第一路由器的角色状态之后,还包括:如果本地邻居列表中第一路由器的角色状态是备份角色状态,则从本地邻居列表中,获取多个处于候补角色状态的路由器的优先级;在本地邻居列表中,将多个处于候补角色状态的路由器中优先级最高的路由器的角色状态切换为备份角色状态。
图2是本发明实施例二提供的一种VRRP备份组中主备切换方法的流程图,包括以下步骤:
S200、VRRP备份组中第一路由器检测到处于主控角色状态的第二路由器处于故障状态后,从本地邻居列表中,读取第一路由器的角色状态,其中,本地邻居列表存储有VRRP备份组中各路由器的角色状态。
S210、判断本地邻居列表中第一路由器的角色状态是否是备份角色状态,如果是备份角色状态,跳转到S220,如果不是备份角色状态而是候补角色状态,跳转到S260或者S270。
S220、将第一路由器的角色状态切换为主控角色状态。继续执行S230。
S230、从本地邻居列表中,获取多个处于候补角色状态的路由器的优先级。继续执行S240。
S240、在本地邻居列表中,将多个处于候补角色状态的路由器中优先级最高的路由器的角色状态切换为备份角色状态。
本实施例中,VRRP备份组还包括除第一路由器和第二路由器之外的其它路由器,角色状态还包括候补角色状态。相应地,邻居列表包括标识候补角色状态的字段:rd_others。可选地,在邻居列表中,处于候补角色状态的路由器的优先级低于处于备份角色状态的路由器的优先级和处于主控角色状态的路由器的优先级。
可选地,处于候补角色状态的路由器有一个时,则直接切换该路由器为备份角色状态。
具体地,将本地邻居列表中上述优先级最高的路由器的角色状态rd_others更改为rd_slave。此时,本地邻居列表存储有第一路由器的角色状态rd_master,上述优先级最高的路由器的角色状态rd_slave,可选地,邻居列表还可能存储其它路由器的角色状态,均是rd_others。
值得说明的是,S220可以与S230、S240同步实施或者先后执行,可选地,可先执行S220再执行S230、S240;或者先执行S230、S240再执行S220。
在一些实施例中,VRRP备份组中的其他路由器也维护有各自的邻居列表,各自的邻居列表存储有VRRP备份组中各路由器的角色状态。在VRRP备份组中主备切换过程中,其他路由器维护的邻居列表也需要更新并与新的主控路由器(第一路由器)中的邻居列表保持一致。为了实现其他路由器中邻居列表的同步,继续执行S250。
S250、第一路由器向VRRP备份组中其它路由器发送包括更新后的本地邻居列表的VRRP通告报文,以供其它路由器根据接收到的邻居列表刷新各自的邻居列表,更新后的邻居列表包括VRRP备份组中各路由器切换后的角色状态。
本实施例在现有VRRP通告报文的基础上加入邻居列表,并在各个路由器中配置规则:当接收到其他路由器发送的VRRP通告报文后,根据VRRP通告报文中的邻居列表刷新各自的邻居列表。
基于上述规则,VRRP备份组中其它路由器接收到第一路由器发送的VRRP通告报文后,根据VRRP通告报文中更新后的本地邻居列表更新自己的邻居列表。可选地,其它路由器遍历第一路由器的邻居列表,在各自的邻居列表中添加第一路由器的邻居列表中新的信息,并删除不存在于第一路由器的邻居列表中的信息。或者,其它路由器直接复制第一路由器的邻居列表并覆盖自己的邻居列表,至此,VRRP备份组中各个路由器的邻居列表保持同步。
当然,S250描述的仅是实现各路由器邻居列表保持同步的一种方式,即其他路由器通过接收包括邻居列表的VRRP通告报文刷新本地邻居列表。本实施例还提供另一种保持邻居列表同步的方式,在处于主控角色状态的第二路由器处于故障状态之前,各路由器维护的邻居列表应保持一致。对于其他路由器来说,检测到处于主控角色状态的第二路由器处于故障状态后,从各自邻居列表中,读取本路由器的角色状态;如果本路由器的角色状态是候补角色状态,则将本地邻居列表中处于备份角色状态的路由器的角色状态切换为主控角色状态,以及将本地邻居列表中多个处于候补角色状态的路由器中优先级最高的路由器的角色状态切换为备份角色状态。
当然,对于第一路由器来说,与其他路由器类似地,如果第一路由器是候补角色状态,将通过上述两种保持邻居列表同步的方式中任一种进行同步。上述另一种邻居列表同步方式的具体描述见S260和S270。
S260、将本地邻居列表中处于备份角色状态的路由器的角色状态切换为主控角色状态,以及将本地邻居列表中多个处于候补角色状态的路由器中优先级最高的路由器的角色状态切换为备份角色状态。
S270、从接收到的VRRP通告报文中获取邻居列表,并根据获取到的邻居列表刷新本地邻居列表。
根据获取到的邻居列表刷新本地邻居列表的方式详见S250处的描述,此处不再赘述。
本实施例在上述实施例的基础上定义了候补角色状态,并将候补角色状态存储在邻居列表中。在此基础上,如果邻居列表中第一路由器的角色状态是备份角色状态,将其他路由器中优先级最高的路由器切换为备份角色状态,从而确定新的处于备份角色状态的路由器,以便VRRP备份系统能够在第一路由器故障后继续执行本实施提供的主备切换方法。本实施例通过向VRRP备份组中其它路由器发送包括邻居列表的VRRP通告报文,以供其它路由器根据接收到的邻居列表更新各自的邻居列表,或者其他路由器自动更新各自的邻居列表,从而保证VRRP备份组中各个路由器的邻居列表是最新且同步的,以便后续进行主备切换。
实施例三
实施例一和实施例二的技术方案主要应用在处于主控角色状态的路由器退出VRRP备份组的情景中,本实施例的技术方案主要应用于当退出VRRP备份组的该路由器重新接入VRRP备份组的情景。图3是本发明实施例三提供的一种VRRP备份组中主备切换方法的流程图,包括以下步骤:
S310、VRRP备份组中第一路由器检测到处于主控角色状态的第二路由器处于故障状态后,从本地邻居列表中,读取第一路由器的角色状态,其中,本地邻居列表存储有VRRP备份组中各路由器的角色状态。
S320、如果本地邻居列表中第一路由器的角色状态是备份角色状态,则将第一路由器的角色状态切换为主控角色状态。
值得说明的是,根据VRRP协议,一旦路由器的状态被切换为主控角色状态,就会向其他路由器发送包括更新后的本地邻居列表的VRRP通告报文。此时,本地邻居列表中不包括第二路由器的角色状态。
S330、第一路由器检测到第二路由器处于故障修复状态后,获取第二路由器的优先级。
在第二路由器与其他路由器之间的通信链路上配置有检测模块,当第二路由器重新接入VRRP备份组时,该检测模块会向各个路由器发送告警消除消息。告警消除消息包括字段消息类型字段和路由器标识字段,消息类型为告警消除,路由器标识为第二路由器的标识,例如第二路由器的MAC地址和/或第二路由器的Router ID和/或IP地址。
第二路由器维护有邻居列表,该邻居列表存储有第二路由器退出之前的各路由器的角色状态和优先级,例如第二路由器的角色状态rd_master,优先级100,第一路由器的角色状态rd_slave,优先级99。第一路由器检测到第二路由器的告警消除消息后,从告警消除消息中获取路由器的标识,即第二路由器的标识,并以第二路由器的标识为索引查找第二路由器上的邻居列表,从查找到的邻居列表中获取第二路由器的优先级100。
S340、如果第二路由器的优先级高于第一路由器的优先级,则在本地邻居列表中调整第二路由器的优先级低于第一路由器的优先级,以及将第二路由器的角色状态切换为备份角色状态或者候补角色状态。
可见,本实施例中,第二路由器的优先级高于第一路由器的优先级。为了避免主备切换,降低主备切换的频率,第一路由器在自己的邻居列表中将第二路由器的优先级调低写入,例如写入第二路由器的优先级98。如果调低后的第二路由器的优先级仅低于第一路由器的优先级,则在本地邻居列表中写入第二路由器的角色状态是备份角色状态;如果调低后的第二路由器的优先级不仅低于第一路由器的优先级还低于其他路由器的优先级,则在本地邻居列表中写入第二路由器的角色状态是候补角色状态。
当然,第二路由器在接入VRRP备份组之前,其优先级可能已经被调低,以使第二路由器的优先级低于第一路由器的优先级,则第一路由器在确定第二路由器的优先级低于第一路由器的优先级之后,直接在自己的邻居列表中写入第二路由器的优先级。如果第二路由器的优先级仅低于第一路由器的优先级,则在本地邻居列表中写入第二路由器的角色状态是备份角色状态;如果第二路由器的优先级不仅低于第一路由器的优先级还低于其他路由器的优先级,则在本地邻居列表中写入第二路由器的角色状态是候补角色状态。
S350、第一路由器向VRRP备份组中其它路由器发送包括邻居列表的VRRP通告报文,以供其它路由器根据接收到的邻居列表更新各自的邻居列表。
第一路由器的邻居列表中写入第二路由器的优先级和角色状态后,其周期性发送的VRRP通告报文中包括该更新后的本地邻居列表。第二路由器在接收到第一路由器发送的VRRP通告报文后,根据VRRP通告报文中更新后的本地邻居列表更新自己的邻居列表,使自己的邻居列表与处于主控角色状态的路由器的邻居列表同步。经此,第二路由器在自己的邻居列表中将自己的优先级修改为VRRP通告报文中第二路由器的优先级。第二路由器的邻居列表中,第一路由器的优先级最高且处于主控角色状态,第二路由器则处于备份角色状态或者候补角色状态。
本实施例中,通过在检测到第二路由器的优先级高于第一路由器的优先级,则在邻居列表中调整第二路由器的优先级低于第一路由器的优先级,以及将第二路由器的角色状态设置为备份角色状态或者候补角色状态,避免了第二路由器重新接入VRRP备份组而导致流量的回切,从而发生网络震荡的情况。
实施例四
本实施例提供一种VRRP备份组中主路由器选举方法。本实施例可适用于构建VRRP备份组之初,选举主路由器的情况,主路由器选举的方法实质是确定路由器主控角色状态的过程。本实施例中,确定路由器各角色状态的大体思路是:首先各路由器均初始化为主控角色状态,并向其他路由器发送包括本地邻居列表的VRRP通告报文。路由器接收到VRRP通告报文后,比较发送方邻居列表中路由器数目、第一路由器的优先级和发送方的优先级,令满足比较条件的路由器暂时维持主控角色状态,并继续向外发送VRRP通告报文;不满足比较条件的路由器则切换为备份角色状态或者候补角色状态,并停止向外发送VRRP通告报文。经过一段时间后,VRRP备份组中仅有一个路由器向外发送VRRP通告报文,成为最终的主路由器。
为了方便描述,从VRRP备份组中任选一路由器作为第一路由器,并以第一路由器为执行主体执行本实施例提供的方法。VRRP备份组中的其它路由器也执行与第一路由器相同的方法。图4是本发明实施例四提供的一种VRRP备份组中主路由器选举方法的流程图,具体包括如下步骤:
S410、VRRP备份组中第一路由器初始化为主控角色状态,并向VRRP备份组中其它路由器周期性发送包括本地邻居列表的VRRP通告报文;其中,本地邻居列表包括第一路由器和第一路由器的当前邻居路由器的信息。
VRRP备份组中的任一路由器均执行S410,即每个路由器均建立邻居列表,并在各自的邻居列表中存储有各自路由器和当前邻居路由器的信息,具体包括各自路由器和当前邻居路由器的优先级、标识、角色状态以及包括各自路由器在内的路由器数目。其中,当前邻居路由器的信息是第一路由器曾经学习到的路由器信息。
每个路由器均是主控角色状态,并向其他路由器发送包括各自的邻居列表的VRRP通告报文。
在现有VRRP通告报文格式的基础上,本申请新加入路由器信息后的格式如表1所示:
表1
可见VRRP通告报文共包括N个路由器的信息,第一个路由器的信息是VRRP通告报文的发送方的信息。路由器的标识包括路由器的Router_ID和MAC地址,当然,还可能包括IP地址。其中,Router_ID包括低8位字节和高24位字节,MAC地址包括低24位字节和高24位字节。表1中除第一路由器之外的其它路由器,为通告报文发送方路由器即第一路由器的邻居路由器。
S420、第一路由器接收到VRRP备份组中其他路由器发送的VRRP通告报文时,从VRRP通告报文中获取发送方邻居列表;其中,发送方邻居列表包括发送方路由器和发送方的当前邻居路由器的信息。
S430、如果发送方邻居列表中的路由器数目与本地邻居列表中的路由器数目相等且第一路由器的优先级大于发送方的优先级,或者发送方邻居列表中的路由器数目小于本地邻居列表中的路由器数目,遍历发送方邻居列表中各路由器的信息,将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中。
本实施例优先比较路由器数目,再比较优先级。具体地,首先比较发送方邻居列表中路由器数目和本地邻居列表中路由器数目。如果本地邻居列表中路由器数目大于发送方邻居列表中路由器数目,说明本地邻居列表学习到更多的路由器,为了加快选举过程,默认第一路由器为当前主路由器,而不必比较优先级,直接遍历发送方邻居列表中各路由器的信息,将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中。具体地,将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的优先级、标识、角色状态等信息添加到本地邻居列表,并对应增加路由器数目。
如果本地邻居列表中路由器数目等于发送方邻居列表中路由器数目,还需要比较优先级。如果第一路由器的优先级大于发送方的优先级,说明相比于发送方,第一路由器成为主路由器的概率更大,则遍历发送方邻居列表中各路由器的信息,将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中。
S440、在将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中后,或者,预设时长内未接收到其它路由器发送的VRRP通告报文时,将本地邻居列表中优先级最高的路由器的角色状态切换为主控角色状态,将优先级次之的路由器的角色状态切换为备份角色状态,并向VRRP备份组中其它路由器发送包括更新后的本地邻居列表的VRRP通告报文。
在更新本地邻居列表后,需要进一步确定各路由器的角色状态。在一可选实施方式中,在每次更新本地邻居列表之后,均执行各路由器的角色状态确定操作,即将当前优先级最高的路由器的角色状态切换为主控角色状态,将当前优先级次之的路由器的角色状态切换为备份角色状态,并向VRRP备份组中其它路由器发送包括更新后的本地邻居列表的VRRP通告报文。
在另一可选实施方式中,考虑到主控角色状态的路由器才会向外发送VRRP通告报文,而其它角色状态的路由器不再向外发送VRRP通告报文,如果在预设时长内未接收到其它路由器发送的VRRP通告报文,说明第一路由器是VRRP备份组中唯一处于主控角色状态的路由器,此时可确定各路由器最终的角色状态,即将当前优先级最高的路由器的角色状态切换为主控角色状态,将当前优先级次之的路由器的角色状态切换为备份角色状态,并向VRRP备份组中其它路由器发送包括更新后的本地邻居列表的VRRP通告报文。
可选地,预设时长大于等于VRRP通告报文发送周期。
在一些实施例中,角色状态除了主控角色状态和备份角色状态之外,还包括候补角色状态。基于此,在将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中后,或者,预设时长内未接收到其它路由器发送的VRRP通告报文时,将本地邻居列表中除主控角色状态和备份角色状态的路由器外的路由器的角色状态切换为候补角色状态。
本实施例中,在第一路由器接入VRRP备份组后初始化为主控角色状态,并周期性向VRRP备份组中其他路由器发送包括本地邻居列表的VRRP通告报文,第一路由器接收到发送方的VRRP通告报文后,如果发送方邻居列表中的路由器数目与本地邻居列表中的路由器数目相等且第一路由器的优先级大于发送方的优先级,或者发送方邻居列表中的路由器数目小于本地邻居列表中的路由器数目,学习发送方邻居列表中的新信息。如此,随着接收到的VRRP通告报文越来越多,路由器数目较多或者路由器数目相等且优先级较高的路由器的邻居列表会逐渐囊括整个VRRP备份组中路由器的信息,并维持主控角色状态,最终成为主路由器。本实施例提供的选举主路由器的方法能够快速、自动将整个VRRP备份组中路由器的信息收集到邻居列表中,并依据优先级排序选举出主控角色状态的路由器和备份角色状态的路由器,进而在主控角色状态的路由器故障后,可以根据邻居列表中的角色状态,快速切换为备份角色状态,即为后续路由器切换提供基础。
实施例五
本实施例对上述实施例进行进一步优化,具体描述存在多种路由器数目比较结果和多种优先级比较结果的情况下,主路由器选举的方法。图5a是本发明实施例五提供的一种VRRP备份组中主路由器选举方法的流程图,具体包括以下步骤:
S501、VRRP备份组中第一路由器初始化为主控角色状态,并向VRRP备份组中其它路由器周期性发送包括本地邻居列表的VRRP通告报文;其中,本地邻居列表包括第一路由器和第一路由器的当前邻居路由器的信息。
S502、第一路由器接收到VRRP备份组中其他路由器发送的VRRP通告报文时,从VRRP通告报文中获取发送方邻居列表;其中,发送方邻居列表包括发送方路由器和发送方的当前邻居路由器的信息。
S503、比较发送方邻居列表中的路由器数目与本地邻居列表中的路由器数目。如果发送方邻居列表中的路由器数目与本地邻居列表中的路由器数目相等,跳转到S504;如果发送方邻居列表中的路由器数目小于本地邻居列表中的路由器数目,跳转到S505;如果发送方邻居列表中的路由器数目大于本地邻居列表中的路由器数目,跳转到S506。
S504、比较第一路由器的优先级和发送方的优先级。如果第一路由器的优先级大于发送方的优先级,跳转到S505;如果第一路由器的优先级小于发送方的优先级,跳转到S506。
路由器数目相等包括路由器数目同为1和同为大于1的值这两种情况。如果路由器数目同为1且第一路由器的优先级大于发送方的优先级,直接将发送方邻居列表中的信息添加到本地邻居列表中,并将本地邻居列表的路由器数目加1。如果路由器数目同为大于1的值且第一路由器的优先级大于发送方的优先级,则执行S505。
如果路由器数据同为1且第一路由器的优先级小于发送方的优先级,发送方必然没有学习到第一路由器的信息,则不对邻居列表进行任何操作,继续向VRRP备份组中其它路由器发送包括本地邻居列表的VRRP通告报文。如果路由器数目同为大于1的值且第一路由器的优先级小于发送方的优先级,则执行S506。
S505、遍历发送方邻居列表中各路由器的信息,将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中。继续执行S510。
如果本地邻居列表中的路由器数目大于发送方邻居列表中的路由器数目,无需关注优先级的比较结果,保持第一路由器的主控角色状态。可选地,为了使优先级较高的路由器同时拥有较多的路由器数目,以便优先级较高的路由器尽快成为最终的主路由器,如果第一路由器的优先级小于发送方的优先级,降低发送方的优先级,以使第一路由器的优先级大于发送方的优先级,之后遍历发送方邻居列表中各路由器的信息,将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中。
S506、在发送方邻居列表中查找第一路由器的信息。继续执行S507。
S507、判断在发送方邻居列表中是否查找到第一路由器的信息,如果查找到,跳转到S508;如果未查找到,跳转到S509。
S508、用发送方邻居列表刷新本地邻居列表,并停止向外发送VRRP通告报文。结束本次操作。
如果在发送方邻居列表中查找到第一路由器的信息,说明发送方邻居列表已经学习到第一路由器的信息,且第一路由器的优先级小于发送方邻居列表的优先级,第一路由器将不会成为主路由器,则用发送方邻居列表刷新本地邻居列表,并停止向外发送VRRP通告报文。第一路由器还会接收其他路由器发送的VRRP通告报文,并根据接收到的VRRP通告报文中的邻居列表刷新本地邻居列表。
S509、向VRRP备份组中其它路由器发送包括本地邻居列表的VRRP通告报文。返回执行S502。
如果在发送方邻居列表中查找到第一路由器的信息,说明发送方邻居列表尚未学习到第一路由器的信息,第一路由器有可能成为主路由器,则继续周期性向VRRP备份组中其它路由器发送包括本地邻居列表的VRRP通告报文。
S510、在将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中后,或者,预设时长内未接收到其它路由器发送的VRRP通告报文时,将本地邻居列表中优先级最高的路由器的角色状态切换为主控角色状态,将优先级次之的路由器的角色状态切换为备份角色状态,并向VRRP备份组中其它路由器发送包括更新后的本地邻居列表的VRRP通告报文。
本实施例中,随着VRRP通告报文的交互,最终选出一个主路由器,继续向外发送VRRP通告报文,其他路由器均不再向外发送VRRP通告报文,而且各路由器的邻居列表保持同步状态。此时,VRRP备份组中主路由器选举结束。
下面以一具体示例详细说明本实施例提供的主路由器选举方法。
图5b是本发明实施例五提供的VRRP备份组的网络架构图。图5b示出了4个路由器,分别是H1、H2、H3和H4。H1、H2、H3和H4的配置信息如下表所示。
表2
路由器名 | 优先级 | 标识 |
H1 | 100 | 1.1.1.1 |
H2 | 98 | 2.2.2.2 |
H3 | 96 | 3.3.3.3 |
H4 | 94 | 4.4.4.4 |
在各路由器接入VRRP备份组时,各路由器建立仅包括自己信息的邻居列表,初始化为主控角色状态,邻居列表中路由器数据为1,各路由器均向其他路由器发送包括本地邻居列表的VRRP通告报文。
H1在接收到H2发来的VRRP通告报文后,通过解析得到H2的邻居列表中路由器数目为1,与自己相同。继续对比H1的优先级与VRRP通告报文中H2的优先级,确定自己的优先级比较高,于是保持主控角色状态,并将H2的信息加到自己的邻居列表中,将路由器数目更新为2。接着,向外发送包括H1的信息和H2的信息的VRRP通告报文。
H2在接收到H1发送的VRRP通告报文后,解析其路由器数目为2,大于H2的路由器数目1。于是在接收到的VRRP通告报文的邻居列表中查找自己,查找到后用H1的邻居列表刷新自己的邻居列表,即将H1的邻居列表中H1的信息添加至H2的邻居列表,并将路由器数目更新为2。同时,H2切换为备份角色状态。具体地,将H2的master_selected标志位置为1,不再向外发送VRRP通告报文。
H1在将H2的信息加到自己的邻居列表中并将路由器数目更新为2之后,如果接收到H3发来的VRRP通告报文,解析H3的路由器数目为1,小于自己的路由器数目,则保持主控角色状态。然后,在自己的邻居列表中未查找H3的标识,于是将H3的信息添加到自己的邻居列表中,并将路由器数目更新为3,并向外发送包括更新后的邻居列表的VRRP通告报文。
H3在接收到H1发送的VRRP通告报文后,解析H1的路由器数目为3,大于H3的路由器数目1。于是在接收到的VRRP通告报文的邻居列表中查找自己,若查找到自己,用H1的邻居列表刷新自己的邻居列表,即将H1的信息和H2的信息添加至H3的邻居列表,并将路由器数目更新为3。同时,H3切换为备份角色状态。具体地,将H3的master_selected标志位置为1,不再向外发送VRRP通告报文。
H4在接收到H1发送的VRRP通告报文后,解析H1的路由器数目为4,大于H3的路由器数目1。于是在接收到的VRRP通告报文的邻居列表中查找自己,如果查找到自己,用H1的邻居列表刷新自己的邻居列表,即将H1的信息、H2的信息和H3的信息添加至H4的邻居列表,并将路由器数目更新为4。同时,H4切换为备份角色状态。具体地,将H4的master_selected标志位置为1,不再向外发送VRRP通告报文。
此时H1的邻居列表包括H1、H2、H3、H4四个路由器的信息。根据优先级对路由器进行排序,筛选出各路由器的角色状态如下:H1:rd_master,H2:rd_slave,H3:rd_others,H4:rd_others。
下面以两种场景描述VRRP备份组中主备切换的过程。
在一种场景中,当H1:rd_master发生故障时,H2:rd_slave检测到H1:rd_master处于故障状态,切换为rd_master,并且在自己的邻居列表中将H3切换为rd_slave。而且,在邻居列表中删除H1的信息,将路由器数目减1。
在另一种场景中,当H2:rd_slave发生故障时,H1:rd_master检测到H2:rd_slave处于故障状态,在邻居列表中删除H2的信息,将路由器数目减1。然后,在自己的邻居列表中将H3由rd_others切换为rd_slave,H1和H4的角色状态不改变。
在另一些实施例中,在VRRP备份组中主路由器选举完成后,正常工作过程中,可能会有新的路由器接入VRRP备份组,该新的路由器之前从未接入过该VRRP备份组,其上也未存储邻居列表。根据实施例五提供的方法,新的路由器在接入VRRP备份组后,建立邻居列表,并将新的路由器的数目、角色状态、标识和优先级写入邻居列表,其中,新的路由器的数目初始化为1,角色状态初始化为主控角色状态,则会往其他路由器发送包括自己的邻居列表的VRRP通告报文。同样处于主控角色状态的第一路由器接收到新接入的路由器的VRRP通告报文,首先判定接收到VRRP通告报文中路由器数目小于第一路由器的邻居数目,将接收到VRRP通告报文中的邻居列表中的新的路由器的信息添加至第一路由器的邻居列表,并将路由器数目加1。
接着,如果新的路由器的优先级高于第一路由器的优先级,则在第一路由器的邻居列表中调整新的路由器的优先级低于第一路由器的优先级;反之,如果新的路由器的优先级低于第一路由器的优先级,则不修改邻居列表。接着,第一路由器向VRRP备份组中其它路由器(包括新的路由器)发送包括更新后的邻居列表的VRRP通告报文。
新的路由器接收到第一路由器发送的VRRP通告报文后,判定自己的路由器数目小于接收到VRRP通告报文中的路由器数目,且在接收到VRRP通告报文中的邻居列表中查找到自己,则用接收到VRRP通告报文中的邻居列表刷新自己的邻居列表,不再向外发送VRRP报文;至此,新的路由器中的邻居列表与处于主控角色状态的第一路由器中的邻居列表相同。
本实施例中,在VRRP备份组中新加入路由器时,避免产生流量的回切,从而发送网络震荡的情况。
实施例六
图6a是本发明实施例六提供的一种路由器的结构示意图。如图6a所示,路由器包括:处理器60、存储器61。路由器中处理器60的数量可以是一个或多个,图6a中以一个处理器60为例;存储器61的数量可以是一个或多个,可选地,存储器61与处理器60一一对应。路由器中的处理器60、存储器61可以通过总线或其他方式连接,图6a中以通过总线连接为例。
存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块、本地邻居列表。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行路由器的各种功能应用以及数据处理,即实现上述的VRRP备份组中主备切换方法。
存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据路由器的使用所创建的数据等,例如本地邻居列表。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至路由器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
图6b是本发明实施例六提供的另一种路由器的结构示意图。如图6b所示,处理器包括主控处理器61和交换处理器62,主控处理器61设置在主控板63上,交换处理器62设置在交换芯片64上。存储器包括与主控处理器61关联的第一存储器65和与交换处理器62关联的第二存储器66,第一存储器65和第二存储器66中分别存储有本地邻居列表,本地邻居列表存储有VRRP备份组中各路由器的角色状态。
交换处理器62,用于检测到处于主控角色状态的第二路由器处于故障状态后,向主控处理器61转发故障状态,并从第二存储器66中存储的本地邻居列表中读取第一路由器的角色状态;如果本地邻居列表中第一路由器的角色状态是备份角色状态,则将第一路由器的角色状态切换为主控角色状态;
主控处理器61,用于接收到交换处理器62转发的故障状态后,从第一存储器65中存储的本地邻居列表中读取第一路由器的角色状态;如果本地邻居列表中第一路由器的角色状态是备份角色状态,则将第一路由器的角色状态切换为主控角色状态。
值得说明的是,第一存储器65和第二存储器66存储有相同的邻居列表。之后,二者经过相同的计算过程,使得更新后的邻居列表也相同。基于此,交换处理器62无需在主控处理器61的控制下进行角色状态的切换,而是独立于主控处理器61进行自主切换。这种切换方式提高路由器的可靠性和灵活性,同时提高了切换效率。
可选地,主控处理器61将第一路由器的角色状态切换为主控角色状态之后,还用于向交换处理器62下发VRRP备份组的虚拟IP地址和虚拟MAC地址。下发虚拟IP地址和虚拟MAC地址是为了在交换芯片(具体在第二存储器66)中建立路由表,这样,交换处理器62接收到目的MAC地址和目的IP地址的报文后,能够通过查找路由表进行报文的转发。
在一可选实施方式中,交换处理器62在从本地邻居列表中,读取第一路由器的角色状态之后,还用于:如果本地邻居列表中第一路由器的角色状态是备份角色状态,则从第二存储器66中存储的本地邻居列表中,获取多个处于候补角色状态的路由器的优先级;在本地邻居列表中,将多个处于候补角色状态的路由器中优先级最高的路由器的角色状态切换为备份角色状态。
主控处理器61在从本地邻居列表中,读取第一路由器的角色状态之后,还用于:如果本地邻居列表中第一路由器的角色状态是备份角色状态,则从第一存储器65中存储的本地邻居列表中,获取多个处于候补角色状态的路由器的优先级;在本地邻居列表中,将多个处于候补角色状态的路由器中优先级最高的路由器的角色状态切换为备份角色状态。
在一可选实施方式中,交换处理器62在如果本地邻居列表中第一路由器的角色状态是备份角色状态,将第一路由器的角色状态切换为主控角色状态之后,还用于:向VRRP备份组中其它路由器发送包括更新后的本地邻居列表的VRRP通告报文,以供其它路由器根据接收到的邻居列表刷新各自的邻居列表,更新后的邻居列表包括VRRP备份组中各路由器切换后的角色状态。
在一可选实施方式中,交换处理器62在从本地邻居列表中,读取第一路由器的角色状态之后,还用于:如果本地邻居列表中第一路由器的角色状态是候补角色状态,将第二存储器66中存储的本地邻居列表中处于备份角色状态的路由器的角色状态切换为主控角色状态,以及将本地邻居列表中多个处于候补角色状态的路由器中优先级最高的路由器的角色状态切换为备份角色状态;或者,如果本地邻居列表中第一路由器的角色状态是候补角色状态,从接收到的VRRP通告报文中获取邻居列表,并根据获取到的邻居列表刷新第二存储器66中存储的本地邻居列表。
主控处理器61在从本地邻居列表中,读取第一路由器的角色状态之后,还用于:如果本地邻居列表中第一路由器的角色状态是候补角色状态,将第二存储器66中存储的本地邻居列表中处于备份角色状态的路由器的角色状态切换为主控角色状态,以及将本地邻居列表中多个处于候补角色状态的路由器中优先级最高的路由器的角色状态切换为备份角色状态;或者,如果本地邻居列表中第一路由器的角色状态是候补角色状态,从接收到的VRRP通告报文中获取邻居列表,并根据获取到的邻居列表刷新第二存储器66中存储的本地邻居列表。
在一可选实施方式中,交换处理器62在将第一路由器的角色状态切换为主控角色状态之后,还用于:检测到第二路由器处于故障修复状态后,向主控处理器61转发故障状态,并获取第二路由器的优先级;如果第二路由器的优先级高于第一路由器的优先级,则在第二存储器66中存储的本地邻居列表中调整第二路由器的优先级低于第一路由器的优先级,以及将第二路由器的角色状态切换为备份角色状态或者候补角色状态。
主控处理器61在将第一路由器的角色状态切换为主控角色状态之后,还用于:接收到交换处理器62转发的故障修复状态后,获取第二路由器的优先级;如果第二路由器的优先级高于第一路由器的优先级,则在第一存储器65中存储的本地邻居列表中调整第二路由器的优先级低于第一路由器的优先级,以及将第二路由器的角色状态切换为备份角色状态或者候补角色状态。
实施例七
图7a是本发明实施例七提供的一种路由器的结构示意图。如图7a所示,路由器包括:处理器70、存储器71。路由器中处理器70的数量可以是一个或多个,图7a中以一个处理器70为例;存储器71的数量可以是一个或多个,可选地,存储器71与处理器70一一对应。路由器中的处理器70、存储器71可以通过总线或其他方式连接,图7a中以通过总线连接为例。
存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块、本地邻居列表。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行路由器的各种功能应用以及数据处理,即实现上述的VRRP备份组中主路由器选举方法。
存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据路由器的使用所创建的数据等,例如本地邻居列表。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至路由器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
图7b是本发明实施例七提供的另一种理由器的结构示意图,如图7b所示,处理器包括主控处理器71和交换处理器72,主控处理器71设置在主控板73上,交换处理器72设置在交换芯片74上。存储器包括与主控处理器71关联的第一存储器75和与交换处理器72关联的第二存储器76,第一存储器75和第二存储器76中分别存储有本地邻居列表。
主控处理器71,用于初始化为主控角色状态,并通过转发处理器向VRRP备份组中其它路由器周期性发送包括本地邻居列表的VRRP通告报文;其中,本地邻居列表存储在第一存储器75中,包括第一路由器和第一路由器的当前邻居路由器的信息;
接收到VRRP备份组中其他路由器发送的VRRP通告报文时,从VRRP通告报文中获取发送方邻居列表;其中,发送方邻居列表包括发送方路由器和发送方的当前邻居路由器的信息;
如果发送方邻居列表中的路由器数目与本地邻居列表中的路由器数目相等且第一路由器的优先级大于发送方的优先级,或者发送方邻居列表中的路由器数目小于本地邻居列表中的路由器数目,遍历发送方邻居列表中各路由器的信息,将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中;以及
在将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中后,或者,预设时长内未接收到其它路由器发送的VRRP通告报文时,将本地邻居列表中优先级最高的路由器的角色状态切换为主控角色状态,将优先级次之的路由器的角色状态切换为备份角色状态,并通过转发处理器向VRRP备份组中其它路由器发送包括更新后的本地邻居列表的VRRP通告报文;
主控处理器71,还用于在将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中后,或者,预设时长内未接收到其它路由器发送的VRRP通告报文时,将更新后的本地邻居列表存储至第二存储器76中。
在一可选实施方式中,主控处理器71,还用于在初始化为主控角色状态后,向交换处理器72下发MAC地址和IP地址;主控处理器71,还用于在切换为备份角色状态后,删除交换处理器72中的虚拟MAC地址和虚拟IP地址。
在一可选实施方式中,主控处理器71在将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中后,或者,预设时长内未接收到其它路由器发送的VRRP通告报文时,还用于将第一存储器75中存储的本地邻居列表中除主控角色状态和备份角色状态的路由器外的路由器的角色状态切换为候补角色状态。
在一可选实施方式中,主控处理器71还用于如果本地邻居列表中的路由器数目大于发送方邻居列表中的路由器数目,且第一路由器的优先级小于发送方的优先级,降低发送方的优先级,以使第一路由器的优先级大于发送方的优先级;遍历发送方邻居列表中各路由器的信息,将第一存储器75中存储的本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中。
在一可选实施方式中,主控处理器71还用于如果本地邻居列表中的路由器数目等于发送方邻居列表中的路由器数目且第一路由器的优先级小于发送方的优先级,或者,本地邻居列表中的路由器数目小于发送方邻居列表中的路由器数目,在发送方邻居列表中查找第一路由器的信息;如果在发送方邻居列表中未查找到第一路由器的信息,通过交换处理器72向VRRP备份组中其它路由器发送包括第一存储器75中存储的本地邻居列表的VRRP通告报文。
在一可选实施方式中,主控处理器71在在发送方邻居列表中查找第一路由器的信息之后,还用于:如果在发送方邻居列表中查找到第一路由器的信息,用发送方邻居列表刷新第一存储器75中存储的本地邻居列表,并停止向外发送VRRP通告报文。
实施例八
本发明实施例八还提供一种其上存储有计算机程序的计算机可读存储介质,计算机程序在由一个或者多个处理器执行时用于执行一种VRRP备份组中主备切换方法,该方法包括:
VRRP备份组中第一路由器检测到处于主控角色状态的第二路由器处于故障状态后,从本地邻居列表中,读取第一路由器的角色状态;
如果本地邻居列表中第一路由器的角色状态是备份角色状态,则将第一路由器的角色状态切换为主控角色状态;
其中,本地邻居列表存储有VRRP备份组中各路由器的角色状态。
当然,本发明实施例所提供的一种其上存储有计算机程序的计算机可读存储介质,其计算机程序不限于如上的方法操作,还可以执行本发明任意实施例所提供的VRRP备份组中主备切换方法中的相关操作。
实施例九
本发明实施例九还提供一种其上存储有计算机程序的计算机可读存储介质,计算机程序在由一个或者多个处理器执行时用于执行一种VRRP备份组中主路由器选举方法,该方法包括:
VRRP备份组中第一路由器初始化为主控角色状态,并向VRRP备份组中其它路由器周期性发送包括本地邻居列表的VRRP通告报文;其中,本地邻居列表包括第一路由器和第一路由器的当前邻居路由器的信息;
第一路由器接收到VRRP备份组中其他路由器发送的VRRP通告报文时,从VRRP通告报文中获取发送方邻居列表;其中,发送方邻居列表包括发送方路由器和发送方的当前邻居路由器的信息;
如果发送方邻居列表中的路由器数目与本地邻居列表中的路由器数目相等且第一路由器的优先级大于发送方的优先级,或者发送方邻居列表中的路由器数目小于本地邻居列表中的路由器数目,遍历发送方邻居列表中各路由器的信息,将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中;
在将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中后,或者,预设时长内未接收到其它路由器发送的VRRP通告报文时,将本地邻居列表中优先级最高的路由器的角色状态切换为主控角色状态,将优先级次之的路由器的角色状态切换为备份角色状态,并向VRRP备份组中其它路由器发送包括更新后的本地邻居列表的VRRP通告报文。
当然,本发明实施例所提供的一种其上存储有计算机程序的计算机可读存储介质,其计算机程序不限于如上的方法操作,还可以执行本发明任意实施例所提供的VRRP备份组中主路由器选举方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (17)
1.一种VRRP备份组中主备切换方法,其特征在于,包括:
虚拟链路冗余协议VRRP备份组中第一路由器检测到处于主控角色状态的第二路由器处于故障状态后,从本地邻居列表中,读取所述第一路由器的角色状态;
如果所述本地邻居列表中所述第一路由器的角色状态是备份角色状态,则将所述第一路由器的角色状态切换为主控角色状态;
其中,所述本地邻居列表存储有所述VRRP备份组中各路由器的角色状态。
2.根据权利要求1所述的方法,其特征在于,在从本地邻居列表中,读取所述第一路由器的角色状态之后,还包括:
如果所述本地邻居列表中所述第一路由器的角色状态是备份角色状态,则从所述本地邻居列表中,获取多个处于候补角色状态的路由器的优先级;
在所述本地邻居列表中,将多个处于候补角色状态的路由器中优先级最高的路由器的角色状态切换为备份角色状态。
3.根据权利要求2所述的方法,其特征在于,在如果所述本地邻居列表中所述第一路由器的角色状态是备份角色状态,将所述第一路由器的角色状态切换为主控角色状态之后,还包括:
所述第一路由器向所述VRRP备份组中其它路由器发送包括更新后的本地邻居列表的VRRP通告报文,以供其它路由器根据接收到的邻居列表刷新各自的邻居列表,所述更新后的邻居列表包括所述VRRP备份组中各路由器切换后的角色状态。
4.根据权利要求2所述的方法,其特征在于,在从本地邻居列表中,读取所述第一路由器的角色状态之后,还包括:
如果所述本地邻居列表中所述第一路由器的角色状态是候补角色状态,将所述本地邻居列表中处于备份角色状态的路由器的角色状态切换为主控角色状态,以及将所述本地邻居列表中多个处于候补角色状态的路由器中优先级最高的路由器的角色状态切换为备份角色状态;
或者,
如果所述本地邻居列表中所述第一路由器的角色状态是候补角色状态,从接收到的VRRP通告报文中获取邻居列表,并根据获取到的邻居列表刷新本地邻居列表。
5.根据权利要求1-4任一项所述的方法,其特征在于,在将所述第一路由器的角色状态切换为主控角色状态之后,还包括:
所述第一路由器检测到所述第二路由器处于故障修复状态后,获取所述第二路由器的优先级;
如果所述第二路由器的优先级高于所述第一路由器的优先级,则在所述本地邻居列表中调整所述第二路由器的优先级低于所述第一路由器的优先级,以及将所述第二路由器的角色状态切换为备份角色状态或者候补角色状态。
6.一种VRRP备份组中主路由器选举方法,其特征在于,包括:
虚拟链路冗余协议VRRP备份组中第一路由器初始化为主控角色状态,并向VRRP备份组中其它路由器周期性发送包括本地邻居列表的VRRP通告报文;其中,本地邻居列表包括第一路由器和第一路由器的当前邻居路由器的信息;
所述第一路由器接收到VRRP备份组中其他路由器发送的VRRP通告报文时,从VRRP通告报文中获取发送方邻居列表;其中,发送方邻居列表包括发送方路由器和发送方的当前邻居路由器的信息;
如果发送方邻居列表中的路由器数目与本地邻居列表中的路由器数目相等且第一路由器的优先级大于发送方的优先级,或者发送方邻居列表中的路由器数目小于本地邻居列表中的路由器数目,遍历发送方邻居列表中各路由器的信息,将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中;
在将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中后,或者,预设时长内未接收到其它路由器发送的VRRP通告报文时,将本地邻居列表中优先级最高的路由器的角色状态切换为主控角色状态,将优先级次之的路由器的角色状态切换为备份角色状态,并向所述VRRP备份组中其它路由器发送包括更新后的本地邻居列表的VRRP通告报文。
7.根据权利要求6所述的方法,其特征在于,还包括:
在将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中后或者所述预设时长内未接收到其它路由器发送的VRRP通告报文时,将本地邻居列表中除主控角色状态和备份角色状态的路由器外的路由器的角色状态切换为候补角色状态。
8.根据权利要求6所述的方法,其特征在于,还包括:
如果本地邻居列表中的路由器数目大于发送方邻居列表中的路由器数目,且第一路由器的优先级小于发送方的优先级,降低所述发送方的优先级,以使第一路由器的优先级大于发送方的优先级;
遍历发送方邻居列表中各路由器的信息,将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中。
9.根据权利要求6所述的方法,其特征在于,还包括:
如果本地邻居列表中的路由器数目等于发送方邻居列表中的路由器数目且第一路由器的优先级小于发送方的优先级,或者,本地邻居列表中的路由器数目小于发送方邻居列表中的路由器数目,在发送方邻居列表中查找第一路由器的信息;
如果在发送方邻居列表中未查找到第一路由器的信息,向所述VRRP备份组中其它路由器发送包括本地邻居列表的VRRP通告报文。
10.根据权利要求9所述的方法,其特征在于,在在发送方邻居列表中查找第一路由器的信息之后,还包括:
如果在发送方邻居列表中查找到第一路由器的信息,用发送方邻居列表刷新本地邻居列表,并停止向外发送VRRP通告报文。
11.一种路由器,其特征在于,包括:
一个或多个处理器;
一个或多个存储器,用于存储一个或多个程序以及本地邻居列表,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现权利要求1所述的VRRP备份组中主备切换方法。
12.根据权利要求11所述的路由器,其特征在于,所述处理器包括主控处理器和交换处理器,所述存储器包括与主控处理器关联的第一存储器和与交换处理器关联的第二存储器,第一存储器和第二存储器中分别存储有本地邻居列表,所述本地邻居列表存储有所述VRRP备份组中各路由器的角色状态;
所述交换处理器,用于检测到处于主控角色状态的第二路由器处于故障状态后,向所述主控处理器转发所述故障状态,并从第二存储器中存储的本地邻居列表中读取所述第一路由器的角色状态;如果所述本地邻居列表中所述第一路由器的角色状态是备份角色状态,则将所述第一路由器的角色状态切换为主控角色状态;
所述主控处理器,用于接收到所述交换处理器转发的所述故障状态后,从第一存储器中存储的本地邻居列表中读取所述第一路由器的角色状态;如果所述本地邻居列表中所述第一路由器的角色状态是备份角色状态,则将所述第一路由器的角色状态切换为主控角色状态。
13.一种路由器,其特征在于,包括:
一个或多个处理器;
一个或多个存储器,用于存储一个或多个程序以及本地邻居列表,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现权利要求6所述的VRRP备份组中主路由器选举方法。
14.根据权利要求13所述的路由器,其特征在于,所述处理器包括主控处理器和转发处理器,所述存储器包括与主控处理器关联的第一存储器和与交换处理器关联的第二存储器;
所述主控处理器,用于初始化为主控角色状态,并通过转发处理器向VRRP备份组中其它路由器周期性发送包括本地邻居列表的VRRP通告报文;其中,本地邻居列表存储在第一存储器中,包括第一路由器和第一路由器的当前邻居路由器的信息;
接收到VRRP备份组中其他路由器发送的VRRP通告报文时,从VRRP通告报文中获取发送方邻居列表;其中,发送方邻居列表包括发送方路由器和发送方的当前邻居路由器的信息;
如果发送方邻居列表中的路由器数目与本地邻居列表中的路由器数目相等且第一路由器的优先级大于发送方的优先级,或者发送方邻居列表中的路由器数目小于本地邻居列表中的路由器数目,遍历发送方邻居列表中各路由器的信息,将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中;以及
在将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中后,或者,预设时长内未接收到其它路由器发送的VRRP通告报文时,将本地邻居列表中优先级最高的路由器的角色状态切换为主控角色状态,将优先级次之的路由器的角色状态切换为备份角色状态,并通过转发处理器向所述VRRP备份组中其它路由器发送包括更新后的本地邻居列表的VRRP通告报文;
所述主控处理器,还用于在将本地邻居列表中未存储的且发送方邻居列表中存储的路由器的信息添加到本地邻居列表中后,或者,预设时长内未接收到其它路由器发送的VRRP通告报文时,将更新后的本地邻居列表存储至第二存储器中。
15.根据权利要求14所述的路由器,其特征在于,
所述主控处理器,还用于在初始化为主控角色状态后,向所述交换处理器下发虚拟媒体访问控制MAC地址和虚拟网际协议IP地址;
所述主控处理器,还用于在切换为备份角色状态后,删除所述交换处理器中的虚拟MAC地址和虚拟IP地址。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的VRRP备份组中主备切换方法。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求6-10中任一所述的VRRP备份组中主路由器选举方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810681364.9A CN108833273B (zh) | 2018-06-27 | 2018-06-27 | Vrrp备份组中主备切换、选举方法、路由器和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810681364.9A CN108833273B (zh) | 2018-06-27 | 2018-06-27 | Vrrp备份组中主备切换、选举方法、路由器和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108833273A true CN108833273A (zh) | 2018-11-16 |
CN108833273B CN108833273B (zh) | 2021-05-18 |
Family
ID=64139085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810681364.9A Active CN108833273B (zh) | 2018-06-27 | 2018-06-27 | Vrrp备份组中主备切换、选举方法、路由器和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108833273B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683968A (zh) * | 2018-12-18 | 2019-04-26 | 北京东土军悦科技有限公司 | 交换机快速启动方法、交换机和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1011231A3 (en) * | 1998-12-15 | 2004-01-07 | Nortel Networks Limited | Method and apparatus providing for router redundancy of non internet protocols using the virtual router redundancy protocol |
CN101146036A (zh) * | 2007-09-10 | 2008-03-19 | 北京航空航天大学 | 具有位置辅助的构建非ip网络的高动态无线路由器及路由方法 |
CN101815007A (zh) * | 2010-03-17 | 2010-08-25 | 杭州华三通信技术有限公司 | 一种基于vrrp负载均衡的快速切换方法和设备 |
CN104506429A (zh) * | 2014-12-31 | 2015-04-08 | 瑞斯康达科技发展股份有限公司 | 一种管理路由器备份组的方法、路由器及系统 |
CN105553866A (zh) * | 2014-10-29 | 2016-05-04 | 中兴通讯股份有限公司 | 一种流量负载均衡方法及路由设备 |
-
2018
- 2018-06-27 CN CN201810681364.9A patent/CN108833273B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1011231A3 (en) * | 1998-12-15 | 2004-01-07 | Nortel Networks Limited | Method and apparatus providing for router redundancy of non internet protocols using the virtual router redundancy protocol |
CN101146036A (zh) * | 2007-09-10 | 2008-03-19 | 北京航空航天大学 | 具有位置辅助的构建非ip网络的高动态无线路由器及路由方法 |
CN101815007A (zh) * | 2010-03-17 | 2010-08-25 | 杭州华三通信技术有限公司 | 一种基于vrrp负载均衡的快速切换方法和设备 |
CN105553866A (zh) * | 2014-10-29 | 2016-05-04 | 中兴通讯股份有限公司 | 一种流量负载均衡方法及路由设备 |
CN104506429A (zh) * | 2014-12-31 | 2015-04-08 | 瑞斯康达科技发展股份有限公司 | 一种管理路由器备份组的方法、路由器及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683968A (zh) * | 2018-12-18 | 2019-04-26 | 北京东土军悦科技有限公司 | 交换机快速启动方法、交换机和存储介质 |
CN109683968B (zh) * | 2018-12-18 | 2022-03-29 | 北京东土军悦科技有限公司 | 交换机快速启动方法、交换机和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108833273B (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107733793B (zh) | 一种转发表项维护方法及装置 | |
US7869349B2 (en) | Method and system for deducing network routes by querying routers | |
US20160050142A1 (en) | Transmission path switching | |
US9231831B2 (en) | Method and network system of converting a layer two network from a spanning tree protocol mode to a routed mesh mode without a spanning tree protocol | |
CN104012051A (zh) | 提供全面保护的ip快速重路由机制 | |
CN105471747B (zh) | 一种智能路由器选路方法和装置 | |
CN109347623B (zh) | 一种链路负载均衡应用中进行会话保持的方法及装置 | |
CN102404198B (zh) | 用于控制对路由数据的通告的方法和设备 | |
Ariefianto et al. | Routing in NDN network: A survey and future perspectives | |
CN114448877B (zh) | 路径切换方法、设备及系统 | |
Chen et al. | Failure recovery using vlan-tag in SDN: High speed with low memory requirement | |
GB2514675A (en) | Querying a traffic forwarding table | |
CN101022417B (zh) | 一种选择负载分担链路的方法和路由器 | |
CN111629082B (zh) | 地址跳变系统、方法、装置、存储介质及处理器 | |
CN101860477A (zh) | 一种优雅重启中处理异常的方法和装置 | |
CN108243102A (zh) | 一种快速重路由的实现方法和pe设备 | |
CN108833273A (zh) | Vrrp备份组中主备切换、选举方法、路由器和介质 | |
CN106789664B (zh) | 一种路由聚合方法及装置 | |
CN103179032B (zh) | 一种路由备份方法及装置 | |
CN101562574A (zh) | 一种路由表的更新方法及装置 | |
CN106603401B (zh) | 快速重路由方法和装置 | |
CN103259720A (zh) | 一种基于mtr的数据传输方法和设备 | |
US10044599B2 (en) | Method for managing domain routing table in router on network structure based on hierarchical domain | |
JP4934116B2 (ja) | ノード、パケット転送方法およびそのプログラム | |
TW200836525A (en) | Selective passive address resolution learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |