发明内容
有鉴于此,本发明提供了一种用于VRRP备份组发布路由的方法和装置。
本发明提供的一种用于VRRP备份组发布路由的方法,在应用该方法的VRRP备份组中,每台成员设备在切换至Backup状态后被禁止发布VRRP备份组所在网段的网段路由信息,并且,该方法包括在VRRP备份组中的每台成员设备执行的如下步骤:
a10、当本机从Backup状态切换至Master状态后,判断在本机从Backup状态切换之前处于Master状态并发布了所述VRRP备份组所在网段的网段路由信息的其他成员设备目前是否仍在Master状态正常工作;
a20、若步骤a10判断出在本机切换之前处于Master状态并发布了所述网段路由信息的其他成员设备目前仍在Master状态正常工作,则侦测VRRP备份组所在网段内的ARP表项是否有效;
a21、若步骤a20侦测到与本机失去连接的本地主机所对应的无效ARP表项,则删除无效ARP表项;
a22、若步骤a20侦测到与本机保持连接的本地主机所对应的有效ARP表项,则针对有效ARP表项所对应的本地主机IP地址,发布所述网段路由信息的子集路由信息。
所述子集路由信息包括各条有效ARP表项的本地主机IP地址所分别对应的主机路由信息;或者,所述子集路由信息为聚合路由信息、且所述聚合路由信息由各条有效ARP表项的本地主机IP地址所分别对应的主机路由信息聚合而成。
所述子集路由信息包括各条有效ARP表项的本地主机IP地址所分别对应的主机路由信息,并且,本地主机IP地址所分别对应的主机路由信息中携带有聚合标识,所述聚合标识用于触发三层网络的上游设备将下一跳相同的路由信息聚合。
该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
a00、当本机从Initialize状态切换至Master状态后,本机发布所述VRRP备份组所在网段的网段路由信息;
a30、若步骤a10判断出在本机从Backup状态切换至Master状态之前处于Master状态并发布了所述网段路由信息的其他成员设备目前未在Master状态正常工作,则由本机发布所述网段路由信息。
该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
b10、当本机在发布了所述网段路由信息之后从Master状态切换至Backup状态,撤销本机发布的所述网段路由信息。
该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
b20、当本机通过重选举而使在本机切换之前处于Master状态并发布了所述网段路由信息的其他成员设备又切换至Backup状态之后,本机发布所述网段路由信息。
该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
b30、当本机通过步骤a22发布了所述子集路由信息之后,又从Master状态切换至Backup状态,撤销本机发布的所述子集路由信息。
该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
c10、当本机发布所述网段路由信息时,还发布本机真实IP地址的主机路由信息;
c20、当本机在Backup状态接收到其他成员设备真实IP地址的主机路由信息后,记录该主机路由信息;
c30、当本机在连接三层网络的接口感知到其他成员设备真实IP地址的主机路由信息被撤销后,将本机记录的该主机路由信息删除;
d00、当本机从Master状态切换至Backup状态后,撤销本机发布的本机真实IP地址的主机路由信息;
步骤a10包括:
a101、当本机从Backup状态切换至Master状态后,查询本机是否记录有其他成员设备真实IP地址的主机路由信息;
a102、当步骤a101查询到本机记录有其他成员设备真实IP地址的主机路由信息后,依据查询到的主机路由信息中包含的其他成员设备真实IP地址,从本机连接三层网络的接口发出查询报文、并在预定的查询等待周期内等待接收应答报文;
a103、若步骤a101未查询到本机记录有其他成员设备真实IP地址的主机路由信息、或所述a102在所述查询等待周期内未接收到所述应答报文,则确认在本机切换之前处于Master状态并发布了所述网段路由信息的其他成员设备目前未在Master状态正常工作;
a104、若步骤a102在所述查询等待周期内接收到所述应答报文,则确认在本机切换之前处于Master状态并发布了所述网段路由信息的其他成员设备目前仍在Master状态正常工作;
或者,步骤a10包括:
a101、当本机从Backup状态切换至Master状态后,查询本机是否记录有其他成员设备真实IP地址的主机路由信息;
a102、若步骤a101未查询到本机记录有其他成员设备真实IP地址的主机路由信息,则确认在本机切换之前处于Master状态并发布了所述网段路由信息的其他成员设备目前未在Master状态正常工作;
a103、若步骤a101查询到本机记录有其他成员设备真实IP地址的主机路由信息,则确认在本机切换之前处于Master状态并发布了所述网段路由信息的其他成员设备目前仍在Master状态正常工作。
所述a20包括:
a201、当判断出在本机切换之前处于Master状态并发布了所述网段路由信息的其他成员设备仍在Master状态正常工作后,在本机连接二层网络的接口分别针对各条ARP表项发送对应的ARP查询报文、并在预定的应答等待周期内等待响应的ARP应答报文;
a202、若步骤a201在所述应答等待周期内未接收到ARP应答报文,则确认对应的ARP表项无效;
a203、若步骤a201在所述应答等待周期内收到了ARP应答报文,则确认对应的ARP表项有效。
该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
e10、当本机在Backup状态接收到VRRP备份组所在网段内的免费ARP报文后,将本机在Backup状态依据所述免费ARP报文所创建的ARP表项设置为不老化状态;
e20、若步骤a20侦测到与本机保持连接的本地主机所对应的有效ARP表项,则为有效ARP表项配置老化时间;
e30、当本机的有效ARP表项老化时,删除老化的有效ARP表项、并更新本机已发布的所述子集路由信息;
e00、当本机从Master状态切换至Backup状态后,将本机在Master状态依据所述免费ARP报文所创建的ARP表项设置为不老化状态。
本发明提供的一种用于VRRP备份组发布路由的装置,在应用该方法的VRRP备份组中,每台成员设备在切换至Backup状态后被禁止发布VRRP备份组所在网段的网段路由信息,并且,该装置包括在VRRP备份组中的每台成员设备承载的如下模块:
成员状态判断模块,当本机从Backup状态切换至Master状态后,判断在本机切换之前处于Master状态并发布了所述VRRP备份组所在网段的网段路由信息的其他成员设备目前是否仍在Master状态正常工作;
ARP表项侦测模块,若所述成员状态判断模块判断出在本机从Backup状态切换之前处于Master状态并发布了所述网段路由信息的其他成员设备目前仍在Master状态正常工作,则侦测VRRP备份组所在网段内的ARP表项是否有效;
无效ARP删除模块,若所述ARP表项侦测模块侦测到与本机失去连接的本地主机所对应的无效ARP表项,则删除无效ARP表项;
有效ARP发布模块,若所述ARP表项侦测模块侦测到与本机保持连接的本地主机所对应的有效ARP表项,则针对有效ARP表项所对应的本地主机的IP地址,发布所述网段路由信息的子集路由信息。
所述子集路由信息包括各条有效ARP表项的本地主机IP地址所分别对应的主机路由信息;或者,所述子集路由信息为聚合路由信息、且所述聚合路由信息由各条有效ARP表项的本地主机IP地址所分别对应的主机路由信息聚合而成。
所述子集路由信息包括各条有效ARP表项的本地主机IP地址所分别对应的主机路由信息,并且,本地主机IP地址所分别对应的主机路由信息中携带有聚合标识,所述聚合标识用于触发三层网络的上游设备将下一跳相同的路由信息聚合
该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
第一网段发布模块,当本机从Initialize状态切换至Master状态后,本机发布所述网段路由信息;
第二网段发布模块,若所述成员状态判断模块判断出在本机从Backup状态切换之前处于Master状态并发布了所述网段路由信息的其他成员设备目前未在Master状态正常工作,则由本机发布所述网段路由信息。
该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
网段撤销通告模块,当本机在发布了所述网段路由信息之后从Master状态切换至Backup状态,撤销本机发布的所述网段路由信息。
该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
第三网段发布模块,当本机通过重选举而使在本机切换之前处于Master状态并发布了所述网段路由信息的其他成员设备又切换至了Backup状态之后,本机发布所述网段路由信息。
该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
子集撤销通告模块,当本机通过所述有效ARP发布模块发布了所述子集路由信息之后、又从Master状态切换至Backup状态,撤销本机发布的所述子集路由信息。
该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
主机路由发布模块,当本机发布所述网段路由信息时,还发布本机真实IP地址的主机路由信息;
主机路由记录模块,当本机在Backup状态接收到其他成员设备真实IP地址的主机路由信息后,记录该主机路由信息;
主机路由删除模块,当本机在连接三层网络的接口感知到其他成员设备真实IP地址的主机路由信息被撤销后,将本机记录的该主机路由信息删除;
主机路由撤销模块,当本机从Master状态切换至Backup状态后,针对本机真实IP地址的主机路由信息发布路由撤销通知;
所述成员状态判断模块包括:
记录查询子模块,当本机从Backup状态切换至Master状态后,查询本机是否记录有其他成员设备真实IP地址的主机路由信息;
成员查询子模块,当所述记录查询子模块查询到本机记录有其他成员设备真实IP地址的主机路由信息后,依据查询到的主机路由信息中包含的其他成员设备真实IP地址,从本机连接三层网络的接口发出查询报文、并在预定的查询等待周期内等待接收应答报文;
应答异常子模块,若所述记录查询子模块未查询到本机记录有其他成员设备真实IP地址的主机路由信息、或所述成员查询子模块在所述查询等待周期内未接收到所述应答报文,则确认在本机切换之前处于Master状态并发布了所述网段路由信息的其他成员设备目前未在Master状态正常工作;
应答正常子模块,若所述成员查询子模块在所述查询等待周期内接收到所述应答报文,则确认在本机切换之前处于Master状态并发布了所述网段路由信息的其他成员设备目前仍在Master状态正常工作;
或者,所述成员状态判决模块包括:
记录查询子模块,当本机从Backup状态切换至Master状态后,查询本机是否记录有其他成员设备真实IP地址的主机路由信息;
查询失败子模块,若所述记录查询子模块未查询到本机记录有其他成员设备真实IP地址的主机路由信息,则确认在本机切换之前处于Master状态并发布了所述网段路由信息的其他成员设备目前未在Master状态正常工作;
查询成功子模块,若所述记录查询子模块查询到本机记录有其他成员设备真实IP地址的主机路由信息,则确认在本机切换之前处于Master状态并发布了所述网段路由信息的其他成员设备目前仍在Master状态正常工作。
所述ARP表项侦测模块包括:
查询等待子模块,当判断出在本机切换之前处于Master状态并发布了所述网段路由信息的其他成员设备仍在Master状态正常工作后,在本机连接二层网络的接口分别针对各条ARP表项发送对应的ARP查询报文、并在预定的应答等待周期内等待响应的ARP应答报文;
无效判定子模块,若所述查询等待子模块在所述应答等待周期内未接收到ARP应答报文,则确认对应的ARP表项无效;
有效判定子模块,若所述查询等待子模块在所述应答等待周期内收到了ARP应答报文,则确认对应的ARP表项有效。
该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
ARP老化禁止模块,当本机在Backup状态接收到VRRP备份组所在网段内的免费ARP报文后,将本机在Backup状态依据所述免费ARP报文所创建的ARP表项设置为不老化状态;
ARP老化开启模块,若所述ARP表项侦测模块侦测到与本机保持连接的本地主机所对应的有效ARP表项,则为有效ARP表项配置老化时间;
子集路由更新模块,当本机的有效ARP表项老化时,删除老化的有效ARP表项、并更新本机已发布的所述子集路由信息;
ARP老化关闭模块,当本机从Master状态切换至Backup状态后,将本机在Master状态依据所述免费ARP报文所创建的ARP表项设置为不老化状态。
由此可见,在本发明中,所有成员设备在处于Backup状态时均被禁止发布VRRP备份组所在网段的网段路由信息,即所有上行和下行报文流量均由VRRP备份组中的Master成员设备承担;并且,当二层网络发生网络分裂后,由于原Master成员设备已发布了网段路由信息,因此,为了区别于网段路由信息,在二层网络分裂之后选举出的新Master成员设备仅针对分裂后与其保持连接的本地主机发布长度大于该网段路由信息的子集路由信息。从而:
对于原Master成员设备所连接的本地主机,唯一可用的网段路由信息能够确保对应的下行流量被路由至原Master成员设备;
而对于新Master成员设备所连接的本地主机,基于最长匹配原则而被优先选用的子集路由信息能够确保对应的下行流量被路由至新Master成员设备。
进而,由于所有上行和下行报文流量均由VRRP备份组中的Master成员设备承担,且当VRRP备份组由于二层网络发生网络分裂而导致Master状态的成员设备多于一个时,处在Master状态的各成员设备所发布的路由信息也互不相同,因而使得三层网络能够正确区分出正确的下一跳成员设备,进而就能够有效减少本地主机的下行报文流量中断。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
在本实施例中,首先设置所有成员设备在处于Backup状态时均被禁止发布VRRP备份组所在网段的网段路由信息,即,所有上行报文流量和下行报文流量均由VRRP备份组中的Master成员设备来承担。
并且,当二层网络发生网络分裂后,VRRP备份组中会同时存在二层网络分裂之前选举出的原Master成员设备、以及二层网络分裂之后选举出的新Master成员设备,此时,为了区别于原Master成员设备在二层网络分裂之前所发布的VRRP备份组所在网段的网段路由信息,新Master成员设备仅针对分裂后与其保持连接的本地主机发布该网段路由信息的子集路由信息。从而:
对于在分裂后与原Master成员设备保持连接、与新Master成员设备失去连接的本地主机来说,其对应的下行报文流量在三层网络中只有原Master成员设备发布的网段路由信息可用,因此,就能够确保对应的下行流量被路由至原Master成员设备;
而对于在分裂后与原Master成员设备失去连接、与新Master成员设备保持连接的本地主机来说,虽然其对应的下行报文流量在三层网络中同时存在可用的网段路由信息和子集路由信息,但基于最长匹配原则,长度大于网段路由信息的子集路由信息会被优先选用,因此,被优先选用的子集路由信息就能够确保对应的下行流量被路由至新Master成员设备。
实际应用中,子集路由信息可以包括若干条独立的主机路由信息,这些独立的主机路由信息分别对应各条有效ARP表项的本地主机IP地址;或者,子集路由信息也可以为聚合路由信息,聚合路由信息可以由各条有效ARP表项的本地主机IP地址所分别对应的主机路由信息聚合而成。另外,当子集路由信息包括若干条独立的本地主机IP地址所分别对应的主机路由信息时,每一条与本地主机IP地址所分别对应的主机路由信息中可以携带有聚合标识,该聚合标识用于触发三层网络的上游设备将下一跳相同的路由信息聚合。即,若干条独立的本地主机IP地址所分别对应的主机路由信息既可以在成员设备聚合后发布、也可以分别发布后在上游设备聚合。
而当VRRP备份组由于成员设备故障而导致正常重选举时,正常重选举之前的原Master成员设备会退出VRRP备份组、而正常重选举后产生的新Master成员设备则是VRRP备份组中唯一处在Master状态的成员设备,此时,新Master成员设备即可发布VRRP备份组所在网段的网段路由信息,以接管VRRP备份组下属的所有本地主机的下行报文流量。
另外,无论是二层网络发生网络分裂,还是VRRP备份组由于成员设备故障而导致正常重选举,对于上行报文流量的处理均可以按照现有方式来实现,本实施例对此不再赘述。
基于上述原理,本实施例提供了一种用于VRRP备份组发布路由的方法,并且,在应用该方法的VRRP备份组中,每台成员设备在切换至Backup状态后都被禁止发布VRRP备份组所在网段的网段路由信息。
请参见图3,当VRRP备份组中有成员设备成为新Master成员设备时,该方法包括在该成员设备执行的如下步骤:
步骤310,当本机从Backup状态切换至Master状态后,需要先判断在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前是否仍在Master状态正常工作,即判断原Master成员设备此时是否存在;
步骤320,若步骤310判断出在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前仍在Master状态正常工作,则确认此时属于二层网络发生网络分裂的情况,相应地,本机属于新Master成员设备、而目前仍在Master状态正常工作的其他成员设备为与本机共存的原Master成员设备,因此,本机需要侦测VRRP备份组所在网段内的ARP表项是否有效、并以此来识别各本地主机是否在二层网络分裂后还与本机保持连接;
步骤321,若步骤320侦测到与本机失去连接的本地主机所对应的无效ARP表项,则删除无效ARP表项;
步骤322、若步骤320侦测到与本机保持连接的本地主机所对应的有效ARP表项,则针对有效ARP表项所对应的本地主机IP地址,发布所述网段路由信息的子集路由信息。
步骤330、若步骤310判断出在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前未在Master状态正常工作,则确认此时属于当VRRP备份组由于成员设备故障而导致正常的重选举的情况,相应地,目前未在Master状态正常工作的其他成员设备已退出VRRP备份组、而本机既是新Master成员设备也是VRRP备份组中仅存的处于Master状态的成员设备,因此,本机发布VRRP备份组所在网段的网段路由信息。
至此,本流程结束。
如上可见,基于本实施例,当VRRP备份组由于二层网络发生网络分裂而导致Master状态的成员设备多于一个时,处在Master状态的各成员设备所发布的路由信息不同,从而使得三层网络能够正确区分出正确的下一跳成员设备,进而就能够有效避免本地主机的报文流量中断。而且,当成员设备发生故障而导致VRRP备份组的正常重选举时,本实施例也能够支持VRRP备份组的正常运行。
实际应用中:
若在VRRP备份组从未发生过重选举时发生了二层网络分裂,则在VRRP备份组启动后首次被选举为Master状态的成员设备为原Master成员设备、并且是从Initialize(初始)状态切换至Master状态;
若在VRRP备份组发生了重选举之后又发生了二层网络分裂,则对于分裂后的二层网络来说,最近一次重选举所产生的Master状态的成员设备为原Master成员设备、并且是从Backup状态切换至Master状态,而二层网络分裂导致的重选举所产生的Master状态的成员设备为新Master成员设备。
相应地,对于在VRRP备份组从未发生过重选举时发生了二层网络分裂的情况,当有成员设备成为在VRRP备份组启动后首次选举产生的新Master成员设备时,该方法包括在该成员设备执行的如下步骤:
步骤a、当本机从Initialize状态切换至Master状态后,发布VRRP备份组所在网段的网段路由信息。
而对于在VRRP备份组发生了重选举之后又发生了二层网络分裂的情况,如图3所示的步骤330即可用于原Master成员设备发布网段路由信息。
下面结合两个实例对上述步骤进行详细说明。
请参见图4,当交换机SW1与SW2之间的链路发生故障、并导致二层网络发生网络分裂后,VRRP备份组就存在着两台Master状态的成员设备,即在二层网络分裂之前选举出的原Master成员设备R1、以及在二层网络分裂之后选举出的新Master成员设备R2。
当二层网络分裂之前,只有原Master成员设备R1在其切换至Master状态后发布了VRRP备份组所在网段10.1.1.0/24的网段路由信息,而成员设备R2和R3则均不会在Backup状态发布网段10.1.1.0/24的网段路由信息。
当二层网络分裂之后,新Master成员设备R2在从Backup状态切换至Master状态后先判断是否同时存在原Master成员设备R1、即在本机切换之前处于Master状态并发布了网段路由信息的成员设备R1目前是否仍在Master状态正常工作。
对于图4中示出的二层网络分裂的情况,新Master成员设备R2会判断出存在原Master成员设备R1、即在本机切换之前处于Master状态并发布了网段路由信息的成员设备R1目前仍在Master状态正常工作,并由此确认其切换为Master状态是由于二层网络分裂所致,因此,新Master成员设备R2并不发布网段10.1.1.0/24的网段路由信息,而是侦测本机所创建的VRRP备份组所在网段10.1.1.0/24内的ARP表项是否有效;
当侦测到与本机失去连接的本地主机C1所对应的无效ARP表项时,即表示新Master成员设备R2无法为该本地主机C1转发报文,因此,新Master成员设备R2会删除无效ARP表项;
而当侦测到与本机保持连接的本地主机C2和C3所对应的有效ARP表项时,即表示新Master成员设备R2能够为该本地主机C2和C3转发报文、并且原Master成员设备R1可能无法为该本地主机C2和C3转发报文,因此,新Master成员设备R2会针对有效ARP表项所对应的本地主机C2的IP地址10.1.1.13/32、以及本地主机C3的IP地址10.1.1.14/32,发布长度大于网段路由信息的子集路由信息。
实际应用中,子集路由信息包括多条独立的主机路由信息,即,IP地址10.1.1.13/32的主机路由信息和IP地址10.1.1.14/32的主机路由信息;或者,子集路由信息也可以是由主机路由信息聚合而成的聚合路由信息,即IP地址10.1.1.13/32的主机路由信息和IP地址10.1.1.14/32的主机路由聚合而成的大于24位、小于32位的聚合IP地址的路由信息。
这样,对于三层网络来说,以原Master成员设备R1为下一跳的是网段路由、以新Master成员设备R2为下一跳的是子集路由,因而对于向本地主机C1~C3发送的报文,三层网络就能够正确区分出下一跳。具体说:
当需要VRRP备份组向原Master成员设备R1在分裂后保持连接的本地主机C1转发报文时,只有原Master成员设备发布的网段10.1.1.0/24的网段路由信息可用、即报文的下一跳只可能是原Master成员设备R1,从而能够确保报文被路由至原Master成员设备R1、并被原Master成员设备R1转发至相应的本地主机C1;
当需要VRRP备份组向新Master成员设备R2在分裂后保持连接的本地主机C2和C3转发报文时,虽然新Master成员设备R2发布的IP地址10.1.1.13/32和10.1.1.14/32的主机路由信息(即子集路由信息的一种情况)、以及原Master成员设备发布的网段10.1.1.0/24的网段路由信息均可用,但基于路由的最长匹配原则,新Master成员设备R2发布的32位主机路由信息会被优先选用、即报文的下一跳优选新Master成员设备R2,从而能够确保报文被路由至新Master成员设备R2、并被新Master成员设备R2转发至相应的本地主机C2和C3;
即,基于路由的最长匹配原则,新Master成员设备R2通过发布IP地址10.1.1.13/32和10.1.1.14/32的主机路由信息(即子集路由信息的一种情况),能够接管在分裂后与其保持连接的本地主机C2和C3的报文流量,而对于在分裂后与其失去连接的本地主机C1的报文流量则仍由原Master成员设备R1承担。
请参见图5,当Master状态的成员设备R1发生故障后,Backup状态的成员设备R2和R3长时间未接收到VRRP通告报文,进而导致其中的成员设备R2被重选举为Master状态。
此时,VRRP备份组中的原Master成员设备R1已退出,因而VRRP备份组中仅存一台Master状态的成员设备、即新Master成员设备R2。
其中,在成员设备R2被重选举为Master状态之前,只有原Master成员设备R1在其切换至Master状态后发布了VRRP备份组所在网段10.1.1.0/24的网段路由信息,而成员设备R2和R3则均不会在Backup状态发布网段10.1.1.0/24的网段路由信息;而且,原Master成员设备R1在Master状态时发布的网段10.1.1.0/24的网段路由信息,会在原Master成员设备R1发生故障后被三层网络中的上游设备撤销;
而新Master成员设备R2从Backup状态切换至Master状态后,先判断在本机切换之前处于Master状态并发布了网段路由信息的成员设备R1目前是否仍在Master状态正常工作;在图5中,新Master成员设备R2会判断出在本机切换之前处于Master状态并发布了网段路由信息的成员设备R1目前未在Master状态正常工作,并由此确认其切换为Master状态不是由于二层网络分裂所致、而是由于原Master成员设备R1发生故障所致,因此,新Master成员设备R2即可发布网段10.1.1.0/24的网段路由信息,即,成员设备R2会接管所有本地主机C1~C3的报文流量。
如上可见,本实施例中用于VRRP备份组发布路由的方法既能够适用于二层网络分裂的情况,也能够适用于成员设备故障导致VRRP备份组正常重选举的情况。
另补充说明的是:
若在发生了二层网络分裂后又出现原Master成员设备故障、并且原Master成员设备所在分裂子网中还有其他成员设备,则可按照成员设备故障导致VRRP备份组正常重选举的方式在该分裂子网中重新选举出Master状态的成员设备、并由该分裂子网中重新选举出Master状态的成员设备继续充当原Master成员设备;
同理,若在发生了二层网络分裂后又出现新Master成员设备故障、并且新Master成员设备所在分裂子网中还有其他成员设备,则由该分裂子网中重新选举出Master状态的成员设备在该分裂子网中继续充当新Master成员设备;
但若在发生了二层网络分裂后又出现原Master成员设备故障、但原Master成员设备所在分裂子网中不存在其他成员设备,或者,在发生了二层网络分裂后又出现新Master成员设备故障、但新Master成员设备所在分裂子网中不存在其他成员设备,则VRRP备份组对该分裂子网的网关功能失效,但网关功能失效不属于本实施例所要解决的问题,因而本实施例不予关注。
此外,在实际应用中,发生分裂的二层网络有可能会复原,并且,在发生故障并退出的原Master成员设备也有可能恢复、并重新回到VRRP备份组。
当二层网络分裂又复原后,原Master成员设备和新Master成员设备中需要有一台切换至Backup状态,其中:
若是原Master成员设备继续保持在Master状态、新Master成员设备切换回Backup状态,则无需原Master成员设备额外发布任何路由信息、但需要新Master成员设备主动撤销其发布的子集路由信息,以确保VRRP备份组下属的所有本地主机的报文流量全部由原Master成员设备承担;
但若是原Master成员设备切换回Backup状态、新Master成员设备继续保持在Master状态,则需要原Master成员设备主动撤销其发布的网段路由信息、并由新Master成员设备重新发布网段路由信息,以确保VRRP备份组下属的所有本地主机的报文流量全部由新Master成员设备接管。
当发生故障的原Master成员设备以Initialize状态重新加入VRRP备份组后,Initialize状态的原Master成员设备需要和新Master成员设备竞争、且只能有一台处在Master状态,其中:
若是Initialize状态的原Master成员设备切换至Master状态、新Master成员设备切换回Backup状态,则需要Initialize状态的原Master成员设备在切换至Master状态后重新发布网段路由信息、且需要新Master成员设备主动撤销其发布的网段路由信息,以确保VRRP备份组下属的所有本地主机的报文流量全部归还至原Master成员设备承担;
若是Initialize状态的原Master成员设备切换至Backup状态、新Master成员设备继续保持在Master状态,则Initialize状态的原Master成员设备在切换至Backup状态后无需发布任何路由信息、新Master成员设备同样无需再额外发布任何路由信息,以确保VRRP备份组下属的所有本地主机的报文流量全部保持在新Master成员设备承担。
相应地,基于上述的情况,本实施例中用于VRRP备份组发布路由的方法可以进一步包括在该成员设备执行的如下步骤:
步骤b、当本机(原Master成员设备或新Master成员设备)在发布了网段路由信息之后从Master状态切换至Backup状态,撤销本机发布的网段路由信息。
步骤c、当本机(新Master成员设备)通过重选举而使在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备(原Master成员设备)又切换至了Backup状态之后,则本机发布网段路由信息;
步骤d、当本机(新Master成员设备)通过如图3所示的步骤322发布了子集路由信息之后、又从Master状态切换至Backup状态,撤销本机发布的子集路由信息;
其中:
若成员设备在二层网络分裂后作为新Master成员设备、并在二层网络复原后切换至Backup状态,则步骤d会在该成员设备执行;相应地,若成员设备作为原Master成员设备、并在二层网络复原后保持在Master状态,则该成员设备中此时无需额外执行任何步骤;
若成员设备在二层网络分裂后作为新Master成员设备、并在二层网络复原后继续保持在Master状态,则步骤c会在该成员设备执行;相应地,若成员设备作为原Master成员设备、并在二层网络复原后切换至Backup状态,则步骤b此时会在该成员设备执行;
若成员设备在正常重选举后作为新Master成员设备、并原Master成员设备重回VRRP备份组之后切换回Backup状态,则步骤b会在该成员设备执行;相应地,若成员设备作为故障退出的原Master成员设备、并重回VRRP备份组后从Initialize状态切换至Master状态,则前文所述的步骤a此时需要在该成员设备执行。
下面结合四个实例对上述步骤进行详细说明。
参见图6a并结合图4,当二层网络分裂导致VRRP备份组中同时存在原Master成员设备R1和新Master成员设备R2后,二层网络又恢复完整;并且,原Master成员设备R1经重选举后继续保持在Master状态、而新Master成员设备R2经重选举后切换回Backup状态。
此时,保持在Master状态的成员设备R1无需对其发布的网段10.1.1.0/24的网段路由信息进行任何处理,而切换回Backup状态的成员设备R2需要撤销其针对本地主机C2的IP地址10.1.1.13/32本地主机C3的IP地址10.1.1.14/32所发布的子集路由信息,以确保所有本地主机C1~C3的报文流量均由唯一处在Master状态的成员设备R1承担。
参见图6b并结合图4,当二层网络分裂导致VRRP备份组中同时存在原Master成员设备R1和新Master成员设备R2后,二层网络又恢复完整;并且,原Master成员设备R1经重选举后切换回Backup状态、而新Master成员设备R2经重选举后继续保持在Master状态。
此时,切换回Backup状态的成员设备R1需要撤销其发布的网段10.1.1.0/24的网段路由信息,而保持在Master状态的成员设备R2则需要发布网段10.1.1.0/24的网段路由信息,以确保所有本地主机C1~C3的报文流量均由唯一处在Master状态的成员设备R2承担。而且,保持在Master状态的成员设备R2此前发布的子集路由信息也不会与网段路由冲突,因而既可以保留、也可以撤销。
请参见图7a并结合图5,在Master状态发生故障的成员设备R1又恢复正常、并以Initialize状态重新加入VRRP备份组;并且,成员设备R1经重选举后从Initialize状态切换至Master状态、而新Master成员设备R2经重选举后切换回Backup状态。
此时,从Initialize状态切换至Master状态的成员设备R1需要发布网段10.1.1.0/24的网段路由信息,而切换回Backup状态的成员设备R2需要撤销其发布的网段10.1.1.0/24的网段路由信息,以确保所有本地主机C1~C3的报文流量均由唯一处在Master状态的成员设备R1承担。
请参见图7b并结合图5,在Master状态发生故障的成员设备R1又恢复正常、并以Initialize状态重新加入VRRP备份组;并且,成员设备R1经重选举后从Initialize状态切换至Backup状态、而新Master成员设备R2经重选举后继续保持在Master状态。
此时,从Initialize状态切换至Backup状态的成员设备R1无需发布任何路由信息,而保持在Master状态的成员设备R2也无需发布任何路由信息,这样,成员设备R2之前已发布的网段10.1.1.0/24的网段路由信息即可确保所有本地主机C1~C3的报文流量均由唯一处在Master状态的成员设备R2承担。
此外,在实际应用中还有可能出现二层网络多次分裂的情况,对此,本领域技术人员可以基于上述的描述而对方案进行适应性调整。
例如,当首次发生二层网络分裂后,若原Master成员设备所在的一个分裂子网又再次发生分裂,则由于后一次分裂而选举出的新Master成员设备可以与原Master成员设备按照与前一次分裂相同的方式处理;
再例如,当首次发生二层网络分裂后,若新Master成员设备所在的另一个分裂子网又再次发生分裂,则由于后一次分裂而选举出的新Master成员设备可以与原Master成员设备按照与前一次分裂相同的方式处理;而且,对于前一次分裂而选举出的新Master成员设备来说,后一次分裂会使得原本与其保持连接的部分主机又与其失去连接,因此,还需要首次分裂形成的新Master在接收到后一次分裂形成的新Master成员设备所发布的子集路由信息后,还需要判断其自身发布的子集路由信息与接收到的子集路由信息是否冲突,并针对冲突的部分(即由于后一次分裂而与本机失去连接的本地主机)更新其发布的子集路由信息、以在更新后的子集路由中将由于再次分裂而失去连接的本地主机排除。
同样地,而当再次分裂的分裂子网复原后,按照前文所述的二层网络复原后的处理方式,本领域技术人员也可以基于上述的描述而对方案进行适应性调整。
例如,两个新Master成员设备中的一个会切换回Backup状态,且切换回Backup状态的一个成员设备会撤销其发布的子集路由信息,而保持在Master状态的另一个需要再次更新发布其子集路由、以涵盖由于分裂子网复原而存在连接的本地主机。
因此,对于可能出现的二层网络多次分裂及恢复的情况,本实施不再详述。
以上是对本实施例中用于VRRP发布路由的方法的原理性说明。但在具体实现该方法时,还需要考虑以下几点:
新Master成员设备如何判断出原Master成员设备的存在,即,在如图3所示的步骤310中,成员设备在从Backup状态切换至Master状态后如何判断在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前是否仍在Master状态正常工作;
新Master成员设备如何实现对ARP表项的有效性的侦测,即,在如图3所示的步骤320中,成员设备如何侦测ARP表项是否有效;
以及,新Master成员设备如何确保其ARP表项不会在其切换至Master状态之前就由于老化而被删除,即,成员设备在Backup状态如何保持其ARP表项不会在其切换至Master状态之前就由于老化而被删除。
为此,本实施例还进一步提供了相应的解决方案,下面分别予以说明。
为了使成员设备在从Backup状态切换至Master状态后,能够判断出在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前是否仍在Master状态正常工作,本实施例采用如下方式:
当二层网络完整时,原Master成员设备(有可能是从Initialize状态切换至Master状态、也有可能是从Backup状态切换至Master状态)在发布网段路由信息的同时,还发布该Master成员设备真实IP地址的主机路由信息,相应地,此时所有的Backup成员设备就会记录该Master成员设备真实IP地址的主机路由信息。
当二层网络分裂之后,分裂导致重选举产生的新Master成员设备会查询其是否在Backup状态记录了其他成员设备(即原Master成员设备)真实IP地址的主机路由信息,若是,则可以依据查询到的主机路由信息中包含的其他成员设备真实IP地址,从本机连接三层网络的接口发出查询报文、并在预定的查询等待周期内等待接收应答报文;
对于二层网络分裂的情况,新Master成员设备会在查询等待周期内接收到了从其他成员设备返回的应答报文,因此,新Master成员设备即可确认回应该应答报文的其他成员设备就为此时同时存在的原Master成员设备、即在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前仍在Master状态正常工作,从而确认本机的切换是由于二层网络分裂所致。
当二层网络完整时的Master成员设备发生故障后,发布了网段路由信息和主机路由信息的Master成员设备就不再处于Master状态,其发布的网段路由信息和主机路由信息也会被三层网络中的上游设备撤销,此时,重选举产生的Master成员设备会查询其是否在Backup状态记录了其他成员设备真实IP地址的主机路由信息;
对于二层网络完整时的Master成员设备发生故障的情况,由于二层网络完整时的Master成员设备所发布的网段路由信息和主机路由信息会被三层网络中的上游设备撤销,因此,重新选举出的Master成员设备通常会查询不到其在Backup状态记录的主机路由信息,并确认此时不存在原Master成员设备、即在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前未在Master状态正常工作;
但如若三层网络中的上游设备所执行的撤销处理稍有延迟,导致重新选举出的Master成员设备查询到了其在Backup状态记录的其他成员设备真实IP地址的主机路由信息、并发出上述的查询报文,重新选举出的Master成员设备也不可能接收到上述的应答报文,因而仍能够确认此时不存在原Master成员设备、即在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前未在Master状态正常工作。
实际应用中,上述的查询报文和应答报文可以为例如ICMP(Internet Control MessageProtocol,英特网控制消息协议)报文等各种适合通过三层网络传输的协议报文。可选地,为了简化上述过程,也可以仅依据记录查询来判断、而不使用查询报文和应答报文的查询机制。
相应地,本实施例中用于VRRP发布路由的方法就可以进一步包括在成员设备中执行的如下步骤:
当本机(即原Master成员设备)发布网段信息时,还发布本机真实IP地址的主机路由信息;
当本机(即Backup成员设备)在Backup状态接收到其他成员设备(即原Master成员设备)真实IP地址的主机路由信息后,记录该主机路由信息;
当本机(即新Master成员设备)在连接三层网络的接口感知到其他成员设备(即原Master成员设备)真实IP地址的主机路由信息被撤销后,将本机记录的该主机路由信息删除;
并且,如图3所示的步骤310可以具体包括:
当本机从Backup状态切换至Master状态后,查询本机是否记录有其他成员设备真实IP地址的主机路由信息;
当查询到本机记录有其他成员设备真实IP地址的主机路由信息后,依据查询到的主机路由信息中包含的其他成员设备真实IP地址,从本机连接三层网络的接口发出查询报文、并在预定的查询等待周期内等待接收应答报文;
若未查询到本机记录有其他成员设备真实IP地址的主机路由信息、或在查询等待周期内未接收到了应答报文,则确认在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前未在Master状态正常工作;
若在查询等待周期内接收到应答报文,则确认在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前仍在Master状态正常工作。
实际应用中,也可以取消对原Master成员设备的查询机制、而仅依据是否记录有主机路由信息来判断,相应地,如图3所示的步骤310也可以予以简化,即:
当本机从Backup状态切换至Master状态后,查询本机是否记录有其他成员设备真实IP地址的主机路由信息;
若未查询到本机记录有其他成员设备真实IP地址的主机路由信息,则确认在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前未在Master状态正常工作;
若查询到本机记录有其他成员设备真实IP地址的主机路由信息,则确认在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前仍在Master状态正常工作。
下面再结合实例对于上述步骤进一步说明。
请参见图8a至图8c、并结合图4和图5:
在图8a中,当二层网络完整、且原Master成员设备R1正常时,原Master成员设备R1在其发布网段10.1.1.0/24的网段路由的同时,还发布了本机真实IP地址10.1.1.2/32的主机路由信息,此时,处在Backup状态的成员设备R2和R3会记录成员设备R1的真实IP地址10.1.1.2/32的主机路由信息。
在图8b中,当二层网络按照如图4所示的方式发生分裂后,新Master成员设备R2能够查询到本机在Backup状态记录了原Master成员设备R1的真实IP地址10.1.1.2/32的主机路由信息,并从本机连接三层网络的接口发出以原Master成员设备R1的真实IP地址10.1.1.2/32为目的地址的ICMP查询报文;
此后,在预定的查询等待周期内,新Master成员设备R2能够接收到原Master成员设备R1返回的ICMP应答报文,并确认回应该应答报文的原Master成员设备R1此时存在、即在本机切换之前处于Master状态并发布了网段路由信息的成员设备R1目前仍在Master状态正常工作,从而确认本机的切换是由于二层网络分裂所致,然后即可按照如图4所示的方式处理。
在图8c中,当VRRP备份组按照如图5所示的情况出现原Master成员设备R1的故障后,假设原Master成员设备R1此前发布的网段路由信息和主机路由信息未被三层网络中的上游设备及时撤销,重选举出的新Master成员设备R2查询到本机在Backup状态记录了原Master成员设备R1的真实IP地址10.1.1.2/32的主机路由信息,并从本机连接三层网络的接口发出以原Master成员设备R1的真实IP地址10.1.1.2/32为目的地址的ICMP查询报文;
但由于此时的原Master成员设备R1已发生了故障、且无法回应ICMP应答报文,因而新Master成员设备R2在预定的查询等待周期内不可能接收到ICMP应答报文,并确认此时不存在原Master成员设备R1、即在本机切换之前处于Master状态并发布了网段路由信息的成员设备R1目前未在Master状态正常工作,然后即可按照如图5所示的方式处理。
另外,由于原Master成员设备发布本机真实IP地址的主机路由信息是为了标识其已处在Master状态并已发布了网段路由信息,因此,当原Master成员设备由于二层网络分裂复原等原因而切换至Backup状态、并撤销其发布的网段路由信息时,其同样需要在撤销其发布的本机真实IP地址的主机路由信息。
相应地,本实施例中用于VRRP发布路由的方法就可以进一步包括在成员设备中执行的如下步骤:
当本机(即原Master成员设备)从Master状态切换至Backup状态后,撤销本机已发布的本机真实IP地址的主机路由信息。
为了使成员设备在作为新Master成员设备时能够侦测ARP表项是否有效,本实施例可以通过ARP查询机制来实现,具体说:
新Master成员设备在本机连接二层网络的接口分别针对各条ARP表项发送对应的ARP查询报文、并在预定的应答等待周期内等待响应的ARP应答报文;
若在应答等待周期内未接收到对应的本地主机返回的ARP应答报文,则确认该本地主机与本机失去连接、并确认对应的ARP表项无效;
若在应答等待周期内收到了对应的本地主机返回的ARP应答报文,则确认该本地主机与本机保持连接、并确认对应的ARP表项有效。
相应地,如图3所示的步骤320可以具体包括:
当判断出在本机(二层网络分裂后的新Master成员设备)切换之前处于Master状态并发布了网段路由信息的其他成员设备仍在Master状态正常工作后,在本机连接二层网络的接口分别针对各条ARP表项向对应的各本地主机发送ARP查询报文、并在预定的应答等待周期内等待各本地主机响应的ARP应答报文;
若在应答等待周期内未接收到ARP应答报文,则确认对应的本地主机在二层网络分裂后与本机失去连接、从而确认该本地主机对应的ARP表项无效;
若在应答等待周期内收到了ARP应答报文,则确认对应的本地主机在二层网络分裂后仍与本机保持连接、从而确认该本地主机对应的ARP表项有效。
下面结合实例对上述步骤进行进一步说明。
请参见图9、并结合图4,当二层网络按照如图4所示的方式发生分裂后,新Master成员设备R2会从本机连接二层网络的接口针对本地主机C1~C3的ARP表项发送对应的ARP查询报文,并且,由于二层网络的分裂,因而ARP查询报文只能到达与新Master成员设备R2保持连接的本地主机C2和C3、而无法到达与新Master成员设备R2失去连接的本地主机C1;
相应地,新Master成员设备R2只能在应答等待周期内收到本地主机C2和C3返回的ARP应答报文、但无法接收到本地主机C1返回的ARP应答报文,从而,确认本地主机C2和C3与本机保持连接、并确认本地主机C2的IP地址10.1.1.13/32和本地主机C3的IP地址10.1.1.14/32所分别对应的ARP表项有效,以及,确认本地主机C1与本机失去连接、并确认本地主机C1的IP地址10.1.1.12/32对应的ARP表项无效。
为了使成员设备在Backup状态能够保持其ARP表项不会在其切换至Master状态之前就由于老化而被删除:
处在Backup状态的成员设备在接收到VRRP备份组所在网段内的免费ARP报文后,将本机在Backup状态依据免费ARP报文所创建的ARP表项设置为不老化状态;
并且,当成员设备从Backup状态切换至Master状态后,若判断出由于二层网络分裂导致本机切换、即本机此时作为新Master成员设备与原Master成员设备共存,则为本机侦测到的与本机保持连接的本地主机所对应的有效ARP表项配置老化时间。
当然,对于Master状态的成员设备由于二层网络复原、成员设备故障恢复等原因而切换至Backup状态的情况,该成员设备需要在切换至Backup状态后再将本机在Master状态依据免费ARP报文所创建的ARP表项设置为不老化状态。
相应地,本实施例中用于VRRP发布路由的方法就可以进一步包括在成员设备中执行的如下步骤:
当本机(Backup成员设备)在Backup状态接收到VRRP备份组所在网段内的免费ARP报文后,将本机在Backup状态依据免费ARP报文所创建的ARP表项设置为不老化状态;
若本机(二层网络分裂后的新Master成员设备)通过如图3所示的步骤320侦测到与本机保持连接的本地主机所对应的有效ARP表项,则为有效ARP表项配置老化时间;
以及,当本机(原Master成员设备或新Master成员设备)从Master状态切换至Backup状态后,将本机在Master状态依据免费ARP报文所创建的ARP表项设置为不老化状态。
此外,对于新Master成员设备来说,当ARP表项的老化功能被开启后,还需要针对老化超时的有效ARP表项来更新已发布的子集路由。因此,本实施例中用于VRRP发布路由的方法可以进一步包括在成员设备中执行的如下步骤:
当本机的有效ARP表项老化时,删除老化的有效ARP表项、并更新本机已发布的子集路由信息。
实际应用中,当子集路由信息包括若干条独立的主机路由信息时,只需撤销老化超时的有效ARP表项所对应的主机路由信息即可;而当子集路由信息为聚合路由信息时,需要先撤销之前发布的聚合路由信息,然后再针对当前未老化超时的有效ARP表项重新聚合形成新的聚合路由信息、然后再重新发布新的聚合路由信息。
以上是对本实施例中用于VRRP备份组发布路由的方法的说明。该方法能够以计算机程序来实现,因此,与上述方法相对应地,本实施例还提供了一种用于VRRP备份组发布路由的装置。
同样地,在应用该装置的VRRP备份组中,每台成员设备在切换至Backup状态后都被禁止发布VRRP备份组所在网段的网段路由信息。
当有成员设备成为新Master成员设备时,该装置包括在该成员设备中运行的如下模块:
成员状态判断模块,当本机从Backup状态切换至Master状态后,需要先判断在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前是否仍在Master状态正常工作,即判断原Master成员设备此时是否存在;
ARP表项侦测模块,若成员状态判断模块判断出在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前仍在Master状态正常工作,则确认此时属于二层网络发生网络分裂的情况,相应地,本机属于新Master成员设备、而目前仍在Master状态正常工作的其他成员设备为与本机共存的原Master成员设备,因此,本机需要侦测VRRP备份组所在网段内的ARP表项是否有效、并以此来识别各本地主机是否在二层网络分裂后还与本机保持连接;
无效ARP删除模块,若ARP表项侦测模块侦测到与本机失去连接的本地主机所对应的无效ARP表项,则删除无效ARP表项;
有效ARP发布模块、若ARP表项侦测模块侦测到与本机保持连接的本地主机所对应的有效ARP表项,则针对有效ARP表项所对应的本地主机IP地址,发布所述网段路由信息的子集路由信息。
并且,与方法同理,对于在VRRP备份组从未发生过重选举时发生了二层网络分裂的情况,当有成员设备成为在VRRP备份组启动后首次选举产生的新Master成员设备时,该装置可以进一步包括在该成员设备运行的如下模块:
第一网段发布模块,当本机从Initialize状态切换至Master状态后,发布VRRP备份组所在网段的网段路由信息。
而对于在VRRP备份组发生了重选举之后又发生了二层网络分裂的情况,该装置可以进一步包括在该成员设备运行的如下模块:
第二网段发布模块,若成员状态判断模块判断出在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前未在Master状态正常工作,则确认此时属于当VRRP备份组由于成员设备故障而导致正常的重选举的情况,相应地,目前未在Master状态正常工作的其他成员设备已退出VRRP备份组、而本机既是新Master成员设备也是VRRP备份组中仅存的处于Master状态的成员设备,因此,本机发布VRRP备份组所在网段的网段路由信息。
上述的第二网段发布模块即可用于原Master成员设备发布网段路由信息。
另外,对于发生分裂的二层网络复原、以及发生故障退出的原Master成员设备恢复后重新回到VRRP备份组的情况,该装置可以进一步包括在成员设备中运行的如下模块:
网段撤销通告模块,当本机(原Master成员设备或新Master成员设备)在发布了网段路由信息之后从Master状态切换至Backup状态,撤销本机发布的网段路由信息。
第三网段发布模块,当本机(新Master成员设备)通过重选举而使在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备(原Master成员设备)又切换至了Backup状态之后,则本机发布网段路由信息;
子集路由撤销模块,当本机(新Master成员设备)通过有效ARP发布模块发布了子集路由信息之后、又从Master状态切换至Backup状态,撤销本机发布的子集路由信息;
其中:
若成员设备在二层网络分裂后作为新Master成员设备、并在二层网络复原后切换至Backup状态,则子集路由撤销模块会在该成员设备中运行;相应地,若成员设备作为原Master成员设备、并在二层网络复原后保持在Master状态,则该成员设备中此时无需额外运行任何模块;
若成员设备在二层网络分裂后作为新Master成员设备、并在二层网络复原后继续保持在Master状态,则第三网段发布模块会在该成员设备中运行;相应地,若成员设备作为原Master成员设备、并在二层网络复原后切换至Backup状态,则网段撤销通告模块此时会在该成员设备中运行;
若成员设备在正常重选举后作为新Master成员设备、并原Master成员设备重回VRRP备份组之后切换回Backup状态,则网段撤销通告模块会在该成员设备中运行;相应地,若成员设备作为故障退出的原Master成员设备、并重回VRRP备份组后从Initialize状态切换至Master状态,则前文所述的第一网段发布模块此时需要在该成员设备中再次运行。
在具体实现时,为了使成员设备在从Backup状态切换至Master状态后,能够判断出在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前是否仍在Master状态正常工作,本实施例中用于VRRP发布路由的装置可以进一步包括在成员设备中运行的如下模块:
主机路由发布模块,当本机(即原Master成员设备)发布网段信息时,还发布本机真实IP地址的主机路由信息;
主机路由记录模块,当本机(即Backup成员设备)在Backup状态接收到其他成员设备(即原Master成员设备)真实IP地址的主机路由信息后,记录该主机路由信息;
主机路由删除模块,当本机(即新Master成员设备)在连接三层网络的接口感知到其他成员设备(即原Master成员设备)真实IP地址的主机路由信息被撤销后,将本机记录的该主机路由信息删除;
并且,前文所述的成员状态判断模块可以具体包括:
记录查询子模块,当本机从Backup状态切换至Master状态后,查询本机是否记录有其他成员设备真实IP地址的主机路由信息;
成员查询子模块,当记录查询子模块查询到本机记录有其他成员设备真实IP地址的主机路由信息后,依据查询到的主机路由信息中包含的其他成员设备真实IP地址,从本机连接三层网络的接口发出查询报文、并在预定的查询等待周期内等待接收应答报文;
应答异常子模块,若记录查询子模块未查询到本机记录有其他成员设备真实IP地址的主机路由信息、或成员查询子模块在查询等待周期内未接收到应答报文,则确认在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前未在Master状态正常工作;
应答正常子模块,若记录查询子模块在查询等待周期内接收到应答报文,则确认在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前仍在Master状态正常工作。
实际应用中,也可以取消对原Master成员设备的查询机制、而仅依据是否记录有主机路由信息来判断,相应地,成员状态判断模块也可以予以简化,即包括:
记录查询子模块,当本机从Backup状态切换至Master状态后,查询本机是否记录有其他成员设备真实IP地址的主机路由信息;
查询成功子模块,若未查询到本机记录有其他成员设备真实IP地址的主机路由信息,则确认在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前未在Master状态正常工作;
查询失败子模块,若查询到本机记录有其他成员设备真实IP地址的主机路由信息,则确认在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前仍在Master状态正常工作。
另外,由于原Master成员设备发布本机真实IP地址的主机路由信息是为了标识其已处在Master状态并已发布了网段路由信息,因此,当原Master成员设备由于二层网络分裂复原等原因而切换至Backup状态、并撤销其发布的网段路由信息时,其同样需要在撤销其发布的本机真实IP地址的主机路由信息。
相应地,本实施例中用于VRRP发布路由的装置可以进一步包括在成员设备中运行的如下模块:
主机路由撤销模块,当本机(即原Master成员设备)从Master状态切换至Backup状态后,撤销本机已发布的本机真实IP地址的主机路由信息。
在具体实现时,为了使成员设备在作为新Master成员设备时能够侦测ARP表项是否有效,本实施例可以通过ARP查询机制来实现。相应地,ARP表项侦测模块可以具体包括:
查询等待子模块,当判断出在本机(二层网络分裂后的新Master成员设备)切换之前处于Master状态并发布了网段路由信息的其他成员设备仍在Master状态正常工作后,在本机连接二层网络的接口分别针对各条ARP表项向对应的各本地主机发送ARP查询报文、并在预定的应答等待周期内等待各本地主机响应的ARP应答报文;
无效判定子模块,若在应答等待周期内未接收到ARP应答报文,则确认对应的本地主机在二层网络分裂后与本机失去连接、从而确认该本地主机对应的ARP表项无效;
有效判定子模块,若在应答等待周期内收到了ARP应答报文,则确认对应的本地主机在二层网络分裂后仍与本机保持连接、从而确认该本地主机对应的ARP表项有效。
在具体实现时,为了使成员设备在Backup状态能够保持其ARP表项不会在其切换至Master状态之前就由于老化而被删除,本实施例中用于VRRP发布路由的装置可以进一步包括在成员设备中运行的如下模块:
ARP老化禁止模块,当本机(Backup成员设备)在Backup状态接收到VRRP备份组所在网段内的免费ARP报文后,将本机在Backup状态依据免费ARP报文所创建的ARP表项设置为不老化状态;
ARP老化开启模块,若本机(二层网络分裂后的新Master成员设备)通过如图3所示的步骤320侦测到与本机保持连接的本地主机所对应的有效ARP表项,则为有效ARP表项配置老化时间;
以及,ARP老化关闭模块,当本机(原Master成员设备或新Master成员设备)从Master状态切换至Backup状态后,将本机在Master状态依据免费ARP报文所创建的ARP表项设置为不老化状态。
此外,对于新Master成员设备来说,当ARP表项的老化功能被开启后,还需要针对老化超时的有效ARP表项来更新已发布的子集路由。因此,本实施例中用于VRRP发布路由的装置可以进一步包括在成员设备中运行的如下模块:
子集路由更新模块,当本机的有效ARP表项老化时,删除老化的有效ARP表项、并更新本机已发布的子集路由信息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。