CN102932252A - 用于虚拟路由器冗余协议备份组恢复流量的方法和装置 - Google Patents

用于虚拟路由器冗余协议备份组恢复流量的方法和装置 Download PDF

Info

Publication number
CN102932252A
CN102932252A CN2012104789239A CN201210478923A CN102932252A CN 102932252 A CN102932252 A CN 102932252A CN 2012104789239 A CN2012104789239 A CN 2012104789239A CN 201210478923 A CN201210478923 A CN 201210478923A CN 102932252 A CN102932252 A CN 102932252A
Authority
CN
China
Prior art keywords
address
machine
local
host
member device
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
Application number
CN2012104789239A
Other languages
English (en)
Other versions
CN102932252B (zh
Inventor
林鹏程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Information Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201210478923.9A priority Critical patent/CN102932252B/zh
Publication of CN102932252A publication Critical patent/CN102932252A/zh
Application granted granted Critical
Publication of CN102932252B publication Critical patent/CN102932252B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种用于虚拟路由器冗余协议备份组恢复流量的方法和装置。在本发明中,原Master成员设备依据新Master成员设备发布的主机路由信息能够识别出新Master成员设备所在分裂子网的本地主机、并创建远程ARP代理表项,以使原Master所在分裂子网产生的二层报文可通过ARP远程代理而作为三层报文转发至新Master成员设备所在分裂子网;相应地,新Master成员设备依据以三层报文方式转发的二层报文能够识别出原Master成员设备所在分裂子网的本地主机、并创建远程ARP代理表项,以使新Master所在分裂子网产生的二层报文可通过ARP远程代理而作为三层报文转发至原Master成员设备所在分裂子网。

Description

用于虚拟路由器冗余协议备份组恢复流量的方法和装置
技术领域
本发明涉及VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)技术,特别涉及用于VRRP备份组恢复流量的方法和装置。
背景技术
VRRP能够将可承担网关功能的多台路由设备加入到一个VRRP备份组中、并利用该VRRP备份组形成一台虚拟路由设备,以使得二层网络(例如局域网)中处在VRRP备份组所在网段内的各台本地主机只需将虚拟路由设备配置为缺省网关,从而能够简化网络主机的配置。其中,VRRP备份组中的每台路由设备可称为该VRRP备份组的成员设备;并且,在VRRP备份组中,优先级最高的一台成员设备会被选举为Master(主)状态、其余成员设备则均处在Backup(备)状态。
当产生各本地主机之间的二层报文流量时,二层网络中的交换设备可以直接转发、而无需由VRRP备份组承担。
当产生各本地主机与三层网络交互的上、下行报文流量时,则需要由VRRP备份组来承担。具体说,Master状态的成员设备和Backup状态的成员设备都会发布VRRP备份组所在网段的网段路由信息,通过网段路由信息的发布,从本地主机通过VRRP备份组发向三层网络(例如Internet)的上行报文流量就会全部被Master状态的成员设备单独承担,而三层网络通过VRRP备份组发向本地主机的下行流量就能够被Master状态的成员设备和Backup状态的成员设备共同分担。
在图1a至图1c中,二层网络中包括顺序相连的三台交换机SW1~SW3,三台交换机SW1~SW3分别接入有本地主机C1~C3;VRRP备份组作为本地主机C1~C3的网关、并包括三台成员设备R1~R3,三台成员设备R1~R3分别连接交换机SW1~SW3、并均接入三层网络。其中,本地主机C1~C3的IP地址依次为10.1.1.12、10.1.1.13、10.1.1.14,成员设备R1~R3具有相同的虚拟IP地址(vIP)10.1.1.1,且成员设备R1~R3的真实IP地址依次为10.1.1.2、10.1.1.3、10.1.1.4。
其中,参见图1a,本地主机C1与C2之间的二层报文流量可以由交换机SW1和SW2来转发;同理,本地主机C1与C3之间的二层报文流量能够由交换机SW1~SW3转发、本地主机C2与C3之间的二层报文流量能够由交换机SW2和SW3转发。
而且,成员设备R1~R3均会发布VRRP备份组所在网段10.1.1.0/24的网段路由信息;相应地,参见图1b,成员设备R1处在Master状态、并承担本地主机C1~C3的上行报文流量;以及,参见图1c,成员设备R2和R3则均处在Backup状态、并与成员设备R1共同分担本地主机C1~C3的下行报文流量。
另外,在实际应用中,有可能会出现Master状态的成员设备发生故障的情况,以及,二层网络分裂的情况。
对于Master状态的成员设备发生故障的情况,Backup状态的各台成员设备会长期无法收到由原Master状态的成员设备发送的VRRP通告报文,因而会认定原Master状态的成员设备已发生故障,并触发Backup状态的各台成员设备重新选举出一台成员设备切换至Master状态。
此时,由交换设备承担的二层报文流量不受影响、上行报文流量会切换至新Master状态的成员设备、下行报文流量则仍能够由新Master状态的成员设备和剩余的Backup状态的成员设备共同分担。
即,对于如图1a至图1c所示的实例,只需更换成员设备R2或R3为Master状态、并且成员设备R1不再承担上、下行报文流量。
对于二层网络分裂的情况,交换设备之间的二层链路会断开、并导致VRRP通告报文无法通过二层网络到达所有Backup状态的成员设备,相应地,若有Backup状态的成员设备与Master状态的成员设备分属于不同的分裂子网,则这些Backup状态的成员设备就会长期无法收到VRRP通告报文、且这些Backup状态的成员设备中会有一台被选举为Master状态,从而在每个分裂子网中均有一台成员设备处在Master状态。
此时,只有上行报文流量能够正确地被所属分裂子网内的Master状态的成员设备转发。但本地主机之间的二层报文流量会由于交换设备之间的二层链路而中断;而且,由于分属于不同分裂子网的所有成员设备均在分裂之前发布了相同网段的网段路由信息、并导致三层网络中同时存在多条可用的相同网段的网段路由信息,因此,对于无法分辨出本地主机所属分裂子网的三层网络来说,每一台本地主机的下行报文流量就有可能被错误地路由至与其分属不同分裂子网的成员设备,从而导致该本地主机无法接收到其下行报文流量、即该本地主机的下行流量中断。
在图2a至图2c中,当交换机SW1与SW2之间的链路发生故障、并导致二层网络发生网络分裂后,交换机SW1与本地主机C1处在一个分裂子网、交换机SW2和SW3与本地主机C2和C3处在另一个分裂子网;相应地,Backup状态的成员设备R2和R3就无法通过二层网络接收到成员设备R1的VRRP通告报文,进而导致其中的成员设备R2被选举为Master状态、并由成员设备R2再次发布VRRP备份组所在网段10.1.1.0/24的网段路由信息。而且,Master状态的成员设备R1仅与接入在交换机SW1的本地主机C1保持连接、但与分别接入在交换机SW2和SW3的本地主机C2和C3失去连接,而切换至Master状态的成员设备R2以及继续保持在Backup的成员设备R3则与接入在交换机SW2和SW3的本地主机C2和C3保持连接、但与接入在交换机SW1的本地主机C1失去连接。
其中,参见图2a,本地主机C1与C2之间的二层报文流量、以及本地主机C1与C3之间的二层报文流量均会中断。
参见图2b,成员设备R1处在Master状态、并承担其所在分裂子网内的本地主机C1的上行报文流量,而成员设备R2处在Master状态、并承担其所在分裂子网内的本地主机C2~C3的上行报文流量;
参见图2c,当三层网络产生本地主机C1的下行报文流量时,该下行报文流量既有可能以本地主机C1所在分裂子网中的成员设备R1为下一跳、也有可能以另一分裂子网中的成员设备R2或R3为下一跳,但若该下行报文流量被路由至成员设备R2或R3、而不是成员设备R1,则会导致成员设备R2或R3无法将该下行报文流量转发至与其失去连接的本地主机C1,从而导致本地主机C1的下行报文流量中断。同理,当三层网络产生本地主机C2或C3的下行报文流量时,若该下行报文流量被路由至成员设备R1,同样也会导致成员设备R1无法将该下行报文流量转发与其失去连接的本地主机C2或C3,从而导致本地主机C2或C3的下行报文流量中断。
可见,在现有技术中,二层网络分裂所导致的二层报文流量中断无法被恢复;而且,由于所有成员设备均会发布相同网段的网段路由信息,因此,当VRRP备份组由于二层网络发生网络分裂时,三层网络会无法正确区分出下行报文流量的下一跳成员设备,进而就有可能导致本地主机的下行报文流量中断。
发明内容
有鉴于此,本发明提供了一种用于VRRP备份组恢复流量的方法和装置。
本发明提供的一种用于VRRP备份组恢复流量的方法,该方法包括在VRRP备份组中的每台成员设备执行的如下步骤:
a10、当本机从Backup状态切换至Master状态后,判断在本机切换之前处于Master状态的其他成员设备目前是否仍在Master状态正常工作;
a20、若步骤a10判断为是,则侦测VRRP备份组所在网段内的本地ARP表项是否有效;
a30、若步骤a20侦测到与本机保持连接的本地主机所对应的有效的本地ARP表项,则发布有效的本地ARP表项所对应的本地主机IP地址的主机路由信息;
b10、当本机在Master状态接收到其他成员设备发布的本地主机IP地址的主机路由信息后,判断该本地主机IP地址是否与本机的二层接口同处在VRRP备份组所在网段;
b20、若步骤b10判断为是,则检测该本地主机IP地址与本机的二层接口所连接的本地主机的IP地址是否存在IP地址冲突、并触发与本机保持连接的本地主机实现Mac地址刷新;
其中,步骤b20所触发的Mac地址刷新的过程,用于使与本机保持连接的本地主机中对应其他成员发布的本地主机IP地址的主机ARP表项的Mac地址被刷新为本机的Mac地址;
b30、若步骤b20检测出无IP地址冲突,则为其他成员发布的该本地主机IP地址在本机创建远程ARP代理表项;
c10、当本机在Master状态从本机连接三层网络的三层接口接收到数据报文后,判断该数据报文的源IP地址和目的IP地址是否均与本机的二层接口同处在VRRP备份组所在网段;
c20、若步骤c10判断为是、且该数据报文的源IP地址目前尚未在本机创建对应的远程ARP代理表项,则检测该数据报文的源IP地址与本机的二层接口所连接的本地主机是否存在IP地址冲突、并触发与本机保持连接的本地主机实现Mac地址刷新;
其中,步骤c20所触发的Mac地址刷新的过程,用于使与本机保持连接的本地主机中对应该数据报文的源IP地址的主机ARP表项的Mac地址被刷新为本机的Mac地址;
c30、若步骤c20检测出无IP地址冲突,则为该数据报文的源IP地址在本机创建远程ARP代理表项;
其中,与远程ARP代理表项对应相同IP地址的本地ARP表项会被本机删除;远程ARP代理表项中的Mac地址为本机的Mac地址;由本机利用远程ARP代理表项所转发的数据报文中的Mac地址会被设置为本机的Mac地址。
该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
d10、当本机从Master状态切换至Backup状态后,若本机通过步骤a30发布了本地主机IP地址的主机路由信息,则撤销本机发布的该本地主机IP地址的主机路由信息;
d21、当本机接收到其他成员设备撤销了已发布的本地主机IP地址的主机路由信息的通知后,若判断出被撤销的主机路由信息所对应的该本地主机IP地址与本机的二层接口同处在VRRP备份组所在网段、且被撤销的主机路由信息所对应的该本地主机IP地址在本机存在对应的远程ARP代理表项,则检测被撤销的主机路由信息所对应的该本地主机IP地址与本机的二层接口所连接的本地主机的IP地址是否存在IP地址冲突;
d22、若步骤d21检测出存在IP地址冲突,则删除该本地主机IP地址对应的远程ARP代理表项、并为该本地主机IP地址创建对应的本地ARP表项;
d31、当本机从Master状态切换至Backup状态后,若本机已创建有远程ARP代理表项,则检查已创建的各远程ARP代理表项所对应的IP地址与本机的二层接口所连接的本地主机是否存在IP地址冲突;
d32、若步骤d31检测出有远程ARP代理表项存在IP地址冲突,则删除存在IP地址冲突的远程ARP代理表项、并为冲突的IP地址创建对应的本地ARP表项。
步骤b20和步骤c20通过在本机的二层接口发出免费ARP报文来实现对IP地址冲突的检测、以及触发与本机保持连接的本地主机实现Mac地址刷新;其中,步骤b20发出的免费ARP报文的源IP地址和目的IP地址均为其他成员发布的主机路由信息所对应的本地主机IP地址;步骤c30发出的免费ARP报文的源IP地址和目的IP地址均为接收到的数据报文的源IP地址、源Mac地址为本机的Mac地址;
步骤d21和步骤d31通过在本机的二层接口发出免费ARP报文来实现IP地址冲的检测;其中,步骤d21发出的该免费ARP报文的源IP地址和目的IP地址均为被撤销的主机路由信息所对应的本地主机IP地址、源Mac地址为本机的Mac地址;步骤d31发出的免费ARP报文的源IP地址和目的IP地址均为已创建的远程ARP代理表项所对应的IP地址、源Mac地址为本机的Mac地址;
若步骤b20、步骤c20、步骤d21、以及步骤d31在预定的冲突检测周期内收到了回应的免费ARP报文,则确认存在IP地址冲突。
在应用该方法的VRRP备份组中,每台成员设备进一步在切换至Backup状态后被禁止发布所述网段路由信息,并且,该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
b00、当本机从Initialize状态切换至Master状态后,发布所述网段路由信息。
该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
a40、若步骤a10判断为否,则发布所述网段路由信息;
a50、当本机在发布了所述网段路由信息之后从Master状态切换至Backup状态,撤销本机发布的所述网段路由信息。
该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
a60、当本机通过重选举而使在本机从Backup状态切换至Master状态之前处于Master状态、并发布了所述网段路由信息的其他成员设备又切换至了Backup状态之后,发布所述网段路由信息。
该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
e10、当本机发布所述网段信息时,还发布本机真实IP地址的主机路由信息;
e20、当本机在Backup状态接收到其他成员设备真实IP地址的主机路由信息后,记录该主机路由信息;
e30、当本机在连接三层网络的接口接收到其他成员设备真实IP地址的主机路由信息被撤销后,将本机记录的该主机路由信息删除;
e40、当本机从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通过在本机连接二层网络的接口分别针对各条本地ARP表项发送对应的ARP查询报文来侦测本地ARP表项是否有效;
若在所述应答等待周期内未接收到ARP应答报文,则确认对应的本地ARP表项无效;
若在所述应答等待周期内收到了ARP应答报文,则确认对应的本地ARP表项有效。
该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
f10、当本机在Backup状态接收到VRRP备份组所在网段内的免费ARP报文后,将本机在Backup状态依据免费ARP报文所创建的本地ARP表项设置为不老化状态;
f20、若步骤a20侦测到与本机保持连接的本地主机所对应的有效的本地ARP表项,则为有效的本地ARP表项配置老化时间;
f30、当本机的有效本地ARP表项老化时,删除老化的有效的本地ARP表项、并更新本机已发布的本地主机IP地址的主机路由信息;
f40、当本机从Master状态切换至Backup状态后,将本机在Master状态依据免费ARP报文所创建的本地ARP表项设置为不老化状态。
本发明提供的一种用于VRRP备份组恢复流量的装置,在应用该方法的VRRP备份组中,每台成员设备连接二层网络的二层接口可启用ARP远程代理功能,并且,该装置包括在VRRP备份组中的每台成员设备承载的如下模块:
成员状态判断模块,当本机从Backup状态切换至Master状态后,判断在本机从Backup状态切换至Master之前处于Master状态的其他成员设备目前是否仍在Master状态正常工作;
ARP表项侦测模块,若所述成员状态判断模块判断为是,则侦测VRRP备份组所在网段内的本地ARP表项是否有效;
主机路由发布模块,若所述ARP表项侦测模块侦测到与本机保持连接的本地主机所对应的有效的本地ARP表项,则发布有效的本地ARP表项所对应的本地主机IP地址的主机路由信息;
第一地址判断模块,当本机在Master状态接收到其他成员设备发布的本地主机IP地址的主机路由信息后,判断该本地主机IP地址是否与本机的二层接口同处在VRRP备份组所在网段;
第一检测刷新模块,若所述主机地址判断模块判断为是,则检测该本地主机IP地址与本机的二层接口所连接的本地主机的IP地址是否存在IP地址冲突、并触发与本机保持连接的本地主机实现Mac地址刷新;
其中,所述第一检测刷新模块所触发的Mac地址刷新的过程,用于使与本机保持连接的本地主机中对应其他成员发布的本地主机IP地址的主机ARP表项的Mac地址被刷新为本机的Mac地址;
第一代理创建模块,若所述第一冲突检测模块检测出无IP地址冲突,则为其他成员发布的该本地主机IP地址在本机创建远程ARP代理表项;
第二地址判断模块,当本机在Master状态从本机连接三层网络的三层接口接收到数据报文后,判断该数据报文的源IP地址和目的IP地址是否均与本机的二层接口同处在VRRP备份组所在网段;
第二检测刷新模块,若所述第一地址判断模块判断为是、且该数据报文的源IP地址目前尚未在本机创建对应的远程ARP代理表项,则检测该数据报文的源IP地址与本机的二层接口所连接的本地主机是否存在IP地址冲突、并触发与本机保持连接的本地主机实现Mac地址刷新;
其中,所述第二检测刷新模块所触发的Mac地址刷新的过程,用于使与本机保持连接的本地主机中对应该数据报文的源IP地址的主机ARP表项的Mac地址被刷新为本机的Mac地址;
第二代理创建模块,若所述第二冲突检测模块检测出无IP地址冲突,则为该数据报文的源IP地址在本机创建远程ARP代理表项;
其中,与远程ARP代理表项对应相同IP地址的本地ARP表项会被本机删除;远程ARP代理表项中的Mac地址为本机的Mac地址;由本机利用远程ARP代理表项所转发的数据报文中的Mac地址会被设置为本机的Mac地址。
该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
主机路由撤销模块,当本机从Master状态切换至Backup状态后,若本机通过所述主机路由发布模块发布了本地主机IP地址的主机路由信息,则撤销本机发布的该本地主机IP地址的主机路由信息;
第一撤销检测模块,当本机接收到其他成员设备撤销了已发布的本地主机IP地址的主机路由信息的通知后,若判断出被撤销的主机路由信息所对应的该本地主机IP地址与本机的二层接口同处在VRRP备份组所在网段、且被撤销的主机路由信息所对应的该本地主机IP地址在本机存在对应的远程ARP代理表项,则检测被撤销的主机路由信息所对应的该本地主机IP地址与本机的二层接口所连接的本地主机的IP地址是否存在IP地址冲突;
第一代理撤销模块,若所述第一撤销检测模块检测出存在IP地址冲突,则删除该本地主机IP地址对应的远程ARP代理表项、并为该本地主机IP地址创建对应的本地ARP表项;
第二撤销检测模块,当本机从Master状态切换至Backup状态后,若本机已创建有远程ARP代理表项,则检查已创建的各远程ARP代理表项所对应的IP地址与本机的二层接口所连接的本地主机是否存在IP地址冲突;
第二代理撤销模块,若所述第二撤销检测模块检测出有远程ARP代理表项存在IP地址冲突,则删除存在IP地址冲突的远程ARP代理表项、并为冲突的IP地址创建对应的本地ARP表项。
所述第一检测刷新模块和所述第二检测刷新模块通过在本机的二层接口发出免费ARP报文来实现对IP地址冲突的检测、以及触发与本机保持连接的本地主机实现Mac地址刷新;其中,所述第一检测刷新模块发出的免费ARP报文的源IP地址和目的IP地址均为其他成员发布的主机路由信息所对应的本地主机IP地址;所述第二检测刷新模块发出的免费ARP报文的源IP地址和目的IP地址均为接收到的数据报文的源IP地址、源Mac地址为本机的Mac地址;
所述第一撤销检测模块和所述第二撤销检测模块通过在本机的二层接口发出免费ARP报文来实现对IP地址冲突的检测;其中,所述第一撤销检测模块发出的免费ARP报文的源IP地址和目的IP地址均为被撤销的主机路由信息所对应的本地主机IP地址、源Mac地址为本机的Mac地址;所述第二撤销检测模块发出的免费ARP报文的源IP地址和目的IP地址均为已创建的远程ARP代理表项所对应的IP地址、源Mac地址为本机的Mac地址;
若所述第一检测刷新模块、所述第二检测刷新模块、所述第一撤销检测模块、所述第二撤销检测模块在预定的冲突检测周期内收到了回应的免费ARP报文,则确认存在IP地址冲突。
该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
第一网段发布模块,当本机从Initialize状态切换至Master状态后,发布所述网段路由信息。
该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
第二网段发布模块,若所述成员状态判断模块判断为否,则发布所述网段路由信息;
网段撤销通告模块,当本机在发布了所述网段路由信息之后从Master状态切换至Backup状态,撤销本机发布的所述网段路由信息。
该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
第三网段发布模块,当本机通过重选举而使在本机从Backup状态切换至Master状态之前处于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表项侦测模块通过在本机连接二层网络的接口分别针对各条本地ARP表项发送对应的ARP查询报文来侦测本地ARP表项是否有效;
若在所述应答等待周期内未接收到ARP应答报文,则确认对应的本地ARP表项无效;
若在所述应答等待周期内收到了ARP应答报文,则确认对应的本地ARP表项有效。
该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
ARP老化禁止模块,当本机在Backup状态接收到VRRP备份组所在网段内的免费ARP报文后,将本机在Backup状态依据所述免费ARP报文所创建的本地ARP表项设置为不老化状态;
ARP老化开启模块,若所述本地ARP表项侦测模块侦测到与本机保持连接的本地主机所对应的有效本地ARP表项,则为有效本地ARP表项配置老化时间;
主机路由更新模块,当本机的有效本地ARP表项老化时,删除老化的有效本地ARP表项、并更新本机已发布的本地主机IP地址的主机路由信息;
ARP老化关闭模块,当本机从Master状态切换至Backup状态后,将本机在Master状态依据所述免费ARP报文所创建的本地ARP表项设置为不老化状态。
由此可见,在本发明中,二层网络分裂产生的新Master成员设备能够针对与其处在同一分裂子网的本地主机发布主机路由信息,并且,原Master成员设备能够依据新Master成员设备所发布的主机路由信息识别出与新Master成员设备处在相同分裂子网的本地主机、并创建相应的远程ARP代理表项,因此,原Master所在分裂子网中的本地主机所发出的二层报文能够由原Master成员设备通过ARP远程代理而作为三层报文从三层网络转发至新Master成员设备所在分裂子网;相应地,新Master成员设备能够依据从三层网络接收到的以三层报文方式转发的二层报文识别出与原Master成员设备处在同一分裂子网的本地主机、并同样创建相应的远程ARP代理表项,因此,新Master所在分裂子网中的本地主机所发出的二层报文能够由新Master成员设备通过ARP远程代理而作为三层报文从三层网络转发至原Master成员设备所在分裂子网。
从而,本发明即可使得二层报文流量在二层网络分裂之后能够得以恢复。
此外,本发明还可以设置所有成员设备在处于Backup状态时均被禁止发布VRRP备份组所在网段的网段路由信息,即,所有上行和下行报文流量均由VRRP备份组中的Master成员设备承担;并且,当二层网络发生网络分裂后,新Master针对分裂后与其处在同一分裂子网的本地主机所发布的主机路由信息,能够区别于原Master成员设备在分裂前已发布的网段路由信息。因此:
对于原Master成员设备所在分裂子网中的本地主机,在三层网络中唯一可用的网段路由信息能够确保对应的下行流量被路由至原Master成员设备;
而对于新Master成员设备所在分裂子网中的本地主机,基于最长匹配原则而被优先选用的主机路由信息能够确保对应的下行流量被路由至新Master成员设备。
从而,由于所有上行和下行报文流量均由VRRP备份组中的Master成员设备承担,且当VRRP备份组由于二层网络发生网络分裂而导致Master状态的成员设备多于一个时,处在Master状态的各成员设备所发布的路由信息也互不相同,因而使得三层网络能够正确区分出正确的下一跳成员设备,进而就能够有效减少本地主机的下行报文流量中断。
附图说明
图1a至图1c为现有技术中的VRRP备份组在二层网络完整时的示意图;
图2a至图2c为现有技术中的VRRP备份组在二层网络分裂后的示意图;
图3a至图3c为本发明实施例中用于VRRP备份组恢复流量的方法的示例性流程示意图;
图4a和图4b为本发明实施例中VRRP备份组在二层网络分裂后实现本地主机之间的报文流量转发的实例示意图;
图5为本发明实施例中的VRRP备份组在二层网络复原后恢复二层报文流的实例示意图;
图6为本发明实施例中的VRRP备份组在二层网络分裂后切换下行报文流量的实例示意图;
图7为本发明实施例中的VRRP备份组在Master故障导致重选举后切换下行报文流量的实例示意图;
图8a和图8b为本发明实施例中的VRRP备份组在二层网络复原后切换下行报文流的实例示意图;
图9a和图9b为本发明实施例中的VRRP备份组在故障恢复后切换下行报文流的实例示意图;
图10a至图10c为本发明实施例中的VRRP备份组用于分辨是否发生二层网络分裂的实例示意图;
图11为本发明实施例中的VRRP备份组用于分辨本地ARP表项有效性的实例示意图;
图12a和图12b为本发明实施例中的VRRP备份组用于判断是否存在IP冲突的实例示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
在本实施例中,为了实现对二层报文流量的恢复,首先设置所有成员设备连接二层网络的二层接口可启用ARP远程代理功能,以使二层网络分裂后分处在不同分裂子网的本地主机之间的二层报文流量能够通过ARP远程代理而作为三层报文由VRRP备份组通过三层网络代为转发。其中,当VRRP备份组由于成员设备故障而导致正常重选举时,二层报文流量并不受影响,因此,本实施例用于恢复二层报文流量的方案中仅考虑二层网络发生网络分裂的情况、而不涉及VRRP备份组正常重选举的情况。
当二层网络发生网络分裂后,VRRP备份组中会同时存在二层网络分裂之前选举出的原Master成员设备、以及二层网络分裂之后选举出的新Master成员设备,此时:
新Master成员设备在识别出当前发生了二层网络分裂后,需要先针对分裂后与其保持连接的本地主机发布相应本地主机IP地址的主机路由信息;
原Master成员设备能够接收到新Master成员设备所发布的本地主机IP地址的主机路由信息,若判断出该本地主机IP地址与原Master成员设备启用ARP远程代理功能的二层接口同处在VRRP备份组所在的网段、且该本地主机IP地址与原Master成员设备启用ARP远程代理功能的二层接口所连接的本地主机无冲突,则可确认新Master成员设备所发布的主机路由信息的该本地主机IP地址所对应的本地主机在二层网络分裂之前与原Master成员设备同处于一个二层网络、但在二层网络分裂后与原Master成员设备处在不同的分裂子网;
因此,为了使原Master成员设备所在分裂子网中的本地主机向新Master成员设备所在另一分裂子网中对应该本地主机IP地址的本地主机发送二层报文流量能够被原Master成员设备接管,原Master成员设备中对应该本地主机IP地址的本地ARP表项就需要变更为远程ARP代理表项(其IP地址为该本地主机IP地址、Mac地址为原Master成员设备的Mac地址),并且,在与原Master成员设备保持连接的本地主机中,对应新Master成员设备所在另一分裂子网中的本地主机IP地址的主机ARP表项的Mac地址需要被原Master成员设备刷新为原Master成员设备的Mac地址;
相应地,基于原Master成员设备对于与其保持连接的本地主机的Mac地址刷新,原Master成员设备所在分裂子网中的本地主机向新Master成员设备所在另一分裂子网中的本地主机所发送的二层报文流量,就能够先被转发至原Master成员设备(即二层报文的Mac地址被替换为原Master成员设备的Mac地址);基于原Master成员设备中的远程ARP代理表项,被转发至原Master成员设备的二层报文流量即可由原Master成员设备以三层报文的形式通过三层网络转发至新Master成员设备;
这样,新Master成员设备就能够从三层网络接收到来自原Master成员设备所在分裂子网、且以三层报文的方式转发的二层报文流量,并能够将该二层报文流量再转发至新Master成员设备所在分裂子网中对应的本地主机;
而且,由于上述二层报文流量中的各数据报文的源IP地址是原Master成员设备所在分裂子网中的本地主机的主机IP地址、目的地址是新Master成员设备所在分裂子网中的本地主机的主机IP地址,因此,若新Master成员设备判断出数据报文的源IP地址和目的IP地址均与本机启用ARP远程代理功能的接口同处在VRRP备份组所在的网段、且数据报文的源IP地址与本机启用ARP远程代理功能的二层接口所连接的本地主机无冲突,则可以确认二层报文流量源端的本地主机在二层网络分裂之前与新Master成员设备同处于一个二层网络、但在二层网络分裂后与新Master成员设备处在不同的分裂子网;
从而,为了使新Master成员设备所在分裂子网中的本地主机向原Master成员设备所在另一分裂子网中的本地主机回应二层报文流量能够被新Master成员设备接管,新Master成员设备中对应数据报文的源IP地址的本地ARP表项就需要变更为远程ARP代理表项(其IP地址为该数据报文的源IP地址、Mac地址为新Master成员设备的Mac地址),并且,在与新Master成员设备保持连接的本地主机中,对应该数据报文的源IP地址的主机ARP表项的Mac地址还需要被新Master成员设备刷新为新Master成员设备的Mac地址;
相应地,基于新原Master成员设备对于与其保持连接的本地主机的Mac地址刷新,新Master成员设备所在分裂子网中的本地主机向原Master成员设备所在分裂子网中的本地主机所发送的二层报文流量,就能够先被转发至新Master成员设备(即二层报文的Mac地址被替换为新Master成员设备的Mac地址);基于新Master成员设备中的远程ARP代理表项,被转发至新Master成员设备的二层报文流量即可由新Master成员设备以三层报文的形式通过三层网络转发至原Master成员设备;
这样,原Master成员设备就能够从三层网络接收到来自新Master成员设备所在分裂子网、且以三层报文的方式转发的二层报文流量,并能够将该二层报文流量再转发至原Master成员设备所在分裂子网中对应的本地主机。
基于上述原理,本实施例提供了一种用于VRRP备份组恢复流量的方法,并且,在应用该方法的VRRP备份组中,每台成员设备连接二层网络的接口可启用ARP远程代理功能。
请参见图3a,当VRRP备份组中有成员设备成为新Master成员设备时,该方法首先包括在该成员设备执行的如下步骤:
步骤301,当本机从Backup状态切换至Master状态后,需要先判断在本机从Backup状态切换至Master状态之前处于Master状态的其他成员设备目前是否仍在Master状态正常工作,即判断原Master成员设备此时是否存在;
步骤302,若步骤301判断出在本机从Backup状态切换至Master状态之前处于Master状态的其他成员设备目前仍在Master状态正常工作,则确认此时属于二层网络发生网络分裂的情况,相应地,本机属于新Master成员设备、而目前仍在Master状态正常工作的其他成员设备为与本机共存的原Master成员设备,因此,本机需要侦测VRRP备份组所在网段内的本地ARP表项是否有效、并以此来识别各本地主机是否在二层网络分裂后还与本机保持连接;
步骤303,若步骤302侦测到与本机保持连接的本地主机所对应的有效本地ARP表项,则确认该有效的本地ARP表项所对应的本地主机在二层网络分裂之前与本机同处于一个二层网络、且在二层网络分裂后仍与本机同处在同一个的分裂子网中,因此,发布有效的本地ARP表项所对应的本地主机IP地址的主机路由信息。
另外,若步骤301判断出在本机从Backup状态切换至Master状态之前处于Master状态的其他成员设备目前此时已不在Master状态正常工作,则属于成员设备故障导致VRRP备份组的正常重选举,此时的二层报文流量不会中断,因此本流程无需对此进行额外处理、而是可以直接结束本流程。
至此,本流程结束。
请参见图3b,当VRRP备份组中有成员设备作为原Master成员设备、并接收到新Master成员设备发布的本地主机IP地址的主机路由信息时,该方法还包括在该成员设备执行的如下步骤:
步骤311,当本机在Master状态接收到其他成员设备发布的本地主机IP地址的主机路由信息后,判断其他成员设备发布的本地主机IP地址所对应的该本地主机IP地址是否与本机启用ARP远程代理功能的二层接口同处在VRRP备份组所在网段;
步骤312,若步骤311判断出该本地主机IP地址与本机启用ARP远程代理功能的接口均处在VRRP备份组所在网段,则确认该本机IP地址所对应的本地主机在二层网络分裂之前与本机处在同一网段的二层网络中,并且,为了进一步确认该本地主机IP地址所对应的本地主机在二层网络分裂后是否与本机处在不同的分裂子网,再检测该本地主机IP地址与本机启用ARP远程代理功能的二层接口所连接的本地主机的IP地址是否存在IP地址冲突、并触发与本机保持连接的本地主机实现Mac地址刷新;
其中,步骤312所触发的Mac地址刷新的过程,用于使与本机保持连接的本地主机中对应其他成员发布的本地主机IP地址的主机ARP表项的Mac地址被刷新为本机的Mac地址;
另外,若步骤311判断出其他成员设备发布的主机路由信息所对应的该本地主机IP地址与本机启用ARP远程代理功能的二层接口未处在VRRP备份组所在网段,则不属于本实施例所涉及的二层网络分裂的情况,因而直接结束本流程。
步骤313,若步骤312检测出其他成员设备发布的主机路由信息所对应的该本地主机IP地址与本机启用ARP远程代理功能的二层接口所连接的本地主机无IP地址冲突,则确认该本地主机IP地址所对应的本地主机在二层网络分裂之前与本机同处于一个二层网络、但在二层网络分裂后与本机处在不同的分裂子网,因此,将该本地主机IP地址在本机对应的本地ARP表项变更为远程ARP代理表项(该远程ARP代理表项的IP地址为该本地主机IP地址、Mac地址为本机的Mac地址),以使本机能够利用远程ARP代理表项对以该本地主机IP地址为目的IP地址的二层的数据报文按照三层报文的方式(数据报文中的Mac地址为本机的Mac地址)进行转发;
其中,对于与远程ARP代理表项对应相同IP地址的本地ARP表项,会在本步骤、或本步骤之前的步骤312被删除。
另外,若步骤312判断出其他成员设备发布的主机路由信息所对应的该本地主机IP地址与本机启用ARP远程代理功能的二层接口所连接的本地主机存在IP地址冲突,则表示本机与该主机IP地址所对应的本地主机之间目前存在连接,因而无需创建对应的远程ARP代理表项、并可以直接结束本流程。此时,在步骤312被刷新为本机Mac地址的对应的主机ARP表项也会被对应的本地主机回刷为该本地主机的Mac地址。
至此,上述流程结束。
请参见图3c,当VRRP备份组中有成员设备在成为新Master成员设备后又从三层网络接收到了数据报文时,该方法还需要包括在该成员设备执行的如下步骤:
步骤321,当本机在Master状态从本机连接三层网络的三层接口接收到数据报文后,判断该数据报文的源IP地址和目的IP地址是否均与本机启用ARP远程代理功能的二层接口同处在VRRP备份组所在网段;
步骤322,若步骤321判断出该数据报文的源IP地址和目的IP地址均与本机启用ARP远程代理功能的二层接口同处在VRRP备份组所在网段,则确认该数据报文属于以远程代理方式从三层网络转发的二层报文、且该数据报文的源端和目的端的本地主机在二层网络分裂之前均与本机处在同一网段的二层网络中,此时,先判断本机是否已针对该数据报文的源端的本地主机创建有远程ARP代理表项;
另外,若步骤321判断出该数据报文的源IP地址和/或目的IP地址未与本机启用ARP远程代理功能的二层接口同处在VRRP备份组所在网段,则不属于本实施例所涉及的二层网络分裂的情况,因而直接结束本流程。
步骤323,若步骤322判断出该数据报文的源IP地址在本机不存在远程ARP代理表项,则表示需要为该数据报文的源IP地址创建远程ARP代理表项,此时,就需要先确认该数据报文的源端的本地主机在二层网络分裂后是否与本机处在不同的分裂子网,再检测该数据报文的源IP地址与本机启用ARP远程代理功能的二层接口所连接的本地主机是否存在IP地址冲突、并触发与本机保持连接的本地主机实现Mac地址刷新;
其中,经过步骤323所触发的Mac地址刷新的过程,用于使与本机保持连接的本地主机中对应其他成员发布的本地主机IP地址的主机ARP表项的Mac地址被刷新为本机的Mac地址;
另外,若步骤322判断出该数据报文的源IP地址在本机已存在远程ARP代理表项,则表示无需再针对该数据报文的源IP地址重复创建远程ARP代理表项,因而可以直接结束本流程。
步骤324,若步骤323检测出该数据报文的源IP地址与本机启用ARP远程代理功能的二层接口所连接的本地主机无IP地址冲突,则确认该数据报文的源端的本地主机在二层网络分裂之前与本机同处于一个二层网络、但在二层网络分裂后与本机处在不同的分裂子网,因此,为该数据报文的源IP地址在本机创建远程ARP代理表项(该远程ARP代理表项的IP地址为该数据报文的源IP地址、Mac地址为本机的Mac地址),以使本机能够利用远程ARP代理表项对以该数据报文的源IP地址为目的IP地址的二层的其他数据报文按照三层报文的方式(其他数据报文中的Mac地址为本机的Mac地址)进行转发;
其中,对于与远程ARP代理表项对应相同IP地址的本地ARP表项,会在本步骤、或本步骤之前的步骤322被删除,或者,与远程ARP代理表项对应相同IP地址的本地ARP表项还有可能在如图3a所示的步骤302被侦测为无效的本地ARP表项、并在步骤302之后作为无效的本地ARP表项被删除。
另外,若步骤323判断出该数据报文的源IP地址与本机启用ARP远程代理功能的二层接口所连接的本地主机存在IP地址冲突,则表示本机与该数据报文的源IP地址所对应的本地主机之间目前存在连接,因而无需创建对应的远程ARP代理表项、并可以直接结束本流程。此时,在步骤323被刷新为本机Mac地址的主机ARP表项也会被该数据报文的源IP地址所对应的本地主机回刷为该本地主机的Mac地址。
至此,上述流程结束。
下面结合实例进行详细说明。
在参见图4a和图4b中,当交换机SW1与SW2之间的链路发生故障、并导致二层网络发生网络分裂后,VRRP备份组就存在着两台Master状态的成员设备,即在二层网络分裂之前选举出的原Master成员设备R1、以及在二层网络分裂之后选举出的新Master成员设备R2。
参见图4a,当二层网络分裂之后,新Master成员设备R2在从Backup状态切换至Master状态后,先判断出存在原Master成员设备R1、即在本机切换之前处于Master状态并发布了网段路由信息的成员设备R1目前仍在Master状态正常工作,并由此确认其切换为Master状态是由于二层网络分裂所致,因此,新Master成员设备R2并不发布网段10.1.1.0/24的网段路由信息,而是侦测本机所创建的VRRP备份组所在网段10.1.1.0/24内的本地ARP表项是否有效;
当侦测到与本机保持连接的本地主机C2和C3所对应的有效本地ARP表项时,即表示新Master成员设备R2与本地主机C2和C3处在同一个分裂子网,因此,新Master成员设备R2会针对有效本地ARP表项所对应的本地主机C2的IP地址10.1.1.13/32、以及本地主机C3的IP地址10.1.1.14/32发布相应的主机路由信息。
相应地,当原Master成员设备R1接收到新Master成员设备所发布的10.1.1.13/32和10.1.1.14/32的主机路由之后,能够判断出10.1.1.13/32和10.1.1.14/32与其连接二层网络、并启动ARP远程代理功能的二层接口同处在VRRP备份组所在网段10.1.1.0/24内,并且,原Master成员设备R1还能够检测到10.1.1.13/32和10.1.1.14/32与本地主机C1的IP地址10.1.1.12/32不冲突,因此,原Master成员设备R1删除10.1.1.13/32和10.1.1.14/32在本机的本地ARP表项,并重新创建10.1.1.13/32和10.1.1.14/32在本机的远程ARP代理表项,其中,所创建的两个远程ARP代理表项中的IP地址分别为10.1.1.13/32和10.1.1.14/32、Mac地址均为原Master成员设备R1的Mac地址Mac_R1。
参见图4b,由于原Master成员设备R1在检测IP地址冲突时还将本地主机C1中对应本地主机C2和C3的主机ARP表项中的Mac地址刷新为原Master成员设备R1的Mac地址Mac_R1,因此,当本地主机C1需要向本地主机C3发送二层的数据报文时,就会将二层的数据报文的Mac地址替换为Mac_R1、并发送至原Master成员设备R1。
相应地,原Master成员设备R1接收到本地主机C1原本应当通过二层网络发向本地主机C3的数据报文(以本地主机C1的10.1.1.12/32为源IP地址、以本地主机C3的10.1.1.14/32为目的IP地址、Mac地址为Mac_R1)后,利用IP地址为10.1.1.14/32、Mac地址为Mac_R1的远程ARP代理表项即可将原本应当在二层网络转发的数据报文以三层报文的方式通过三层网络转发至新Master成员设备R2。
此后,新Master成员设备R2在接收到来自三层网络、且以三层报文的方式转发的二层数据报文后,会依据该二层数据报文的目的IP地址10.1.1.14/32、以及本机对应IP地址10.1.1.14/32的本地ARP表项而将该二层数据报文按照现有方式转发至本地主机C3,并且,新Master成员设备R2还会判断出该二层数据报文的源IP地址10.1.1.12/32和目的IP地址10.1.1.14/32均与其连接二层网络、并启动ARP远程代理功能的二层接口同处在VRRP备份组所在网段10.1.1.0/24内,并且,10.1.1.12/32与新Master成员设备R2在二层接口所连接的本地主机C2和C3的IP地址不冲突,因此,新Master成员设备R2删除10.1.1.12/32在本机的本地ARP表项,并重新创建10.1.1.12/32在本机的远程ARP代理表项,其中,所创建的远程ARP代理表项中的IP地址为10.1.1.12/32、Mac地址为本机Mac地址Mac_R2。
同样地,由于新Master成员设备R2在检测IP地址冲突时也会将本地主机C2和C3中对应本地主机C1的主机ARP表项中的Mac地址刷新为新Master成员设备R2的Mac地址Mac_R2,因此,当本地主机C3需要向本地主机C1发送二层的数据报文时,就会将二层的数据报文的Mac地址替换为Mac_R2、并发送至新Master成员设备R2。
此后,当新Master成员设备R2接收到本地主机C3原本应当通过二层网络发向本地主机C1的数据报文(以本地主机C3的10.1.1.14/32为源IP地址、以本地主机C1的10.1.1.12/32为目的IP地址、Mac地址为Mac_R2)后,利用IP地址为10.1.1.12/32、Mac地址为Mac_R2的远程ARP代理表项即可将原本应当在二层网络转发的该数据报文以三层报文的方式通过三层网络转发至原Master成员设备R1,然后再由原Master成员设备R1转发至本地主机C1。
如上可见,基于本实施例,二层报文流量在二层网络分裂之后能够得以恢复。
此外,在实际应用中,发生分裂的二层网络有可能会复原,而当二层网络分裂又复原后,原Master成员设备通常会由于优先级高而继续保持在Master状态、新Master成员设备则会由于优先级低而切换至Backup状态,此时:
当新Master成员设备在切换回Backup状态之后,需要撤销其发布的本地主机IP地址的主机路由信息;
原Master成员设备接收到新Master设备撤销其发布的本地主机IP地址的主机路由信息的通知之后,检查被新Master设备撤销的主机路由信息所对应的该本地主机IP地址是否与原Master成员设备启用ARP远程代理功能的二层接口同处在VRRP备份组所在网段,若是、并且被新Master设备撤销的主机路由信息所对应的该本地主机IP地址在原Master成员设备存在对应的远程ARP代理表项,则检测被新Master设备撤销的主机路由信息所对应的该本地主机IP地址与原Master成员设备在二层接口所连接的本地主机是否存在IP地址冲突;
若原Master成员设备检测到该本地主机IP地址存在IP地址冲突,则表示原Master成员设备与该主机IP地址所对应的本地主机已恢复连接,因而原Master成员设备删除该本地主机IP地址对应的远程ARP代理表项、并为该本地主机IP地址创建对应的本地ARP表项;与此同时,在分裂后被刷新为原Master成员设备Mac地址的主机ARP表项也会被与原Master成员设备恢复连接的本地主机回刷为该本地主机的Mac地址;
以及,当新Master成员设备在从Master状态切换回Backup状态之后,若新Master成员设备中已创建了远程ARP代理表项,则新Master成员设备需要检查已创建的远程ARP代理表项所对应的IP地址与新Master成员在其二层接口所连接的本地主机是否存在IP地址冲突;
若新Master成员设备检测到已创建的远程ARP代理表项所对应的IP地址存在IP地址冲突,则表示新Master成员设备与已创建的远程ARP代理表项所对应的本地主机已恢复连接,因而删除该远程ARP代理表项、并为该远程ARP代理表项所对应的本地主机创建对应的本地ARP表项;与此同时,在分裂后被刷新为原Master成员设备Mac地址的主机ARP表项也会被与新Master成员设备恢复连接的本地主机回刷为该本地主机的Mac地址。
相应地,当二层网络复原后,该方法可以进一步包括在成员设备中执行的如下步骤:
用于新Master成员设备通知原Master成员设备撤销远程ARP代理的步骤,当本机(新Master成员设备)从Master状态切换至Backup状态后,若本机通过如图3a所示的步骤303发布了本地主机IP地址的主机路由信息,则撤销本机发布的该本地主机IP地址的主机路由信息;
用于原Master成员设备撤销远程ARP代理的步骤,当本机(原Master成员设备)接收到其他成员设备撤销了已发布的本地主机IP地址的主机路由信息的通知后,若判断出被撤销的主机路由信息所对应的该本地主机IP地址与本机的二层接口同处在VRRP备份组所在网段、且被撤销的主机路由信息所对应的该本地主机IP地址在本机存在对应的远程ARP代理表项,则检测被撤销的主机路由信息所对应的该本地主机IP地址与本机的二层接口所连接的本地主机的IP地址是否存在IP地址冲突;其中,若检测出存在IP地址冲突,则删除被撤销的主机路由信息所对应的该本地主机IP地址在本机对应的远程ARP代理表项、并为被撤销的主机路由信息所对应的该本地主机IP地址创建对应的本地ARP表项;
用于新Master成员设备撤销远程ARP代理的步骤,当本机(新Master成员设备)从Master状态切换至Backup状态后,若本机已创建有远程ARP代理表项,则检查已创建的各远程ARP代理表项所对应的IP地址是否与本机的二层接口所连接的本地主机是否存在IP地址冲突;其中,若检测出有远程ARP代理表项存在IP地址冲突,则删除存在IP地址冲突的远程ARP代理表项、并为冲突的IP地址创建对应的本地ARP表项。
实际应用中,当二层网络分裂又复原后,原Master成员设备也有可能切换回Backup状态、并由新Master成员设备继续保持在Master状态。此时,只要新Master成员设备判断出原Master成员设备已切换回Backup状态(例如通过原Master成员设备撤销其发布的路由信息等方式),新Master设备仍需要撤销其发布的本地主机IP地址的主机路由信息,此时,新Master成员设备和原Master成员设备仍按照上述方式删除各自的远程ARP代理表项、并创建本地ARP代理表项。
下面结合实例进行详细说明,其中,该实例是以二层网络分裂又复原后由原Master成员设备继续保持在Master状态、新Master成员设备切换至Backup状态为例。
参见图5,当二层网络复原之后:
新Master成员设备撤销其发布的本地主机C2的IP地址10.1.1.13/32、以及本地主机C3的IP地址10.1.1.14/32的主机路由信息;
原Master成员设备接收到新Master成员设备撤销10.1.1.13/32和10.1.1.14/32的主机路由的通知之后,能够判断出10.1.1.13/32和10.1.1.14/32与其二层接口同处在VRRP备份组所在网段10.1.1.0/24内、且原Master成员设备已为10.1.1.13/32和10.1.1.14/32创建有远程ARP代理表项,因此,原Master成员设备R1会检测出10.1.1.13/32和10.1.1.14/32与其二层接口所连接的本地主机存在IP地址冲突;
对于如图5所示的二层网络复原的情况,不但本地主机C1连接在原Master成员设备R1的二层接口,本地主机C2和C3也都恢复了与原Master成员设备R1的二层接口的连接,因此,原Master成员设备R1会检测10.1.1.13/32和10.1.1.14/32存在IP地址冲突,从而删除10.1.1.13/32和10.1.1.14/32的远程ARP代理表项,并创建对应的本地ARP表项。其中,10.1.1.13/32对应的本地ARP表项中的Mac地址为本地主机C2的Mac地址Mac_C2,10.1.1.14/32对应的本地ARP表项中的Mac地址为本地主机C3的Mac地址Mac_C3;与此同时,本地主机C1中对应10.1.1.13/32和10.1.1.14/32的主机ARP表项的Mac地址,也会分别被本地主机C2和C3刷回为Mac_C2和Mac_C3;
同样地,由于新Master成员设备中已创建了10.1.1.12/32的远程ARP代理表项,因此,新Master成员设备需要检查已创建的远程ARP代理表项所对应的IP地址10.1.1.12/32与新Master成员在其二层接口所连接的本地主机是否存在IP地址冲突;
对于如图5所示的二层网络复原的情况,不但本地主机C2和C3连接在新Master成员设备R2的二层接口,本地主机C1也恢复了与新Master成员设备R2的二层接口的连接,因此,新Master成员设备R2会检测出本地主机C1的10.1.1.12/32存在IP地址冲突,从而删除10.1.1.12/32的远程ARP代理表项,并创建对应的本地ARP表项。其中,10.1.1.12/32对应的本地ARP表项中的Mac地址为本地主机C1的Mac地址Mac_C1;与此同时,本地主机C2和C3中对应10.1.1.12/32的主机ARP表项的Mac地址,也都会被本地主机C1刷回Mac_C1。
除了恢复二层报文流量之外,本实施例还能够实现对三层报文流量的恢复。为此,本实施例还可以设置所有成员设备在处于Backup状态时均被禁止发布VRRP备份组所在网段的网段路由信息、且只有成员设备在切换至Master状态后才有可能发布VRRP备份组所在网段的网段路由信息,即,所有上行报文流量和下行报文流量均由VRRP备份组中的Master成员设备来承担。其中,当二层网络分裂、以及VRRP备份组的正常重选举时,三层的上行报文流量和下行报文流量均会受到影响,因此,本实施例用于恢复三层报文流量的方案中同时考虑二层网络发生网络分裂的情况、以及VRRP备份组正常重选举的情况。
当二层网络完整,并且,VRRP备份组中处于Master状态的成员设备、即原Master成员设备正常时,原Master成员设备会发布VRRP备份组所在网段的网段路由信息;
当二层网络发生网络分裂后,VRRP备份组中会同时存在二层网络分裂之前选举出的原Master成员设备、以及二层网络分裂之后选举出的新Master成员设备,并且,如前所述,新Master成员设备仅针对分裂后与其保持连接的本地主机发布的主机路由信息,以区别于原Master成员设备在二层网络分裂之前所发布的VRRP备份组所在网段的网段路由信息,因此:
对于在分裂后与原Master成员设备保持连接、与新Master成员设备失去连接的本地主机来说,其对应的下行报文流量在三层网络中只有原Master成员设备发布的网段路由信息可用,因此,就能够确保对应的下行流量被路由至原Master成员设备;
而对于在分裂后与原Master成员设备失去连接、与新Master成员设备保持连接的本地主机来说,虽然其对应的下行报文流量在三层网络中同时存在可用的网段路由信息和主机路由信息,但基于最长匹配原则,长度大于网段路由信息的主机路由信息会被优先选用,因此,被优先选用的主机路由信息就能够确保对应的下行流量被路由至新Master成员设备。
实际应用中,新Master成员设备所发布的本地主机IP地址的主机路由信息中可以携带有聚合标识,该聚合标识用于触发三层网络的上游设备将下一跳相同的路由信息聚合,以节省三层网络的上游设备的表项管理资源。
而当VRRP备份组由于原Master成员设备故障而导致正常重选举时,正常重选举之前的原Master成员设备会退出VRRP备份组、而正常重选举后产生的新Master成员设备则是VRRP备份组中唯一处在Master状态的成员设备,此时,新Master成员设备发布的VRRP备份组所在网段的网段路由信息即可接管VRRP备份组下属的所有本地主机的下行报文流量。
另外,无论是二层网络发生网络分裂,还是VRRP备份组由于成员设备故障而导致正常重选举,对于上行报文流量的处理均可以按照现有方式来实现,本实施例对此不再赘述。
基于上述原理,在应用本实施例用于VRRP备份组恢复流量的上述方法的VRRP备份组中,每台成员设备在切换至Backup状态后都被禁止发布VRRP备份组所在网段的网段路由信息,并且,在有成员设备成为新Master成员设备时,该方法还可以进一步包括在该成员设备执行的如下的用于接管网段路由的步骤:
当本机(新Master成员设备)通过如图3a所示的步骤301判断出在本机切换之前处于Master状态的其他成员设备(即已发布了网段路由信息的原Master设备)目前已不在Master状态正常工作,则发布VRRP备份组所在网段的网段路由信息。
实际应用中:
若在VRRP备份组从未发生过重选举时发生了二层网络分裂,则在VRRP备份组启动后首次被选举为Master状态的成员设备为原Master成员设备、并且是从Initialize(初始)状态切换至Master状态;
若在VRRP备份组发生了重选举之后又发生了二层网络分裂,则对于分裂后的二层网络来说,最近一次重选举所产生的Master状态的成员设备为原Master成员设备、并且是从Backup状态切换至Master状态,而二层网络分裂导致的重选举所产生的Master状态的成员设备为新Master成员设备。
相应地,对于在VRRP备份组从未发生过重选举时发生了二层网络分裂的情况,当有成员设备成为在VRRP备份组启动后首次选举产生的新Master成员设备时,该方法包括在该成员设备执行的如下的用于初始发布网段路由步骤:
当本机(原Master成员设备)从Initialize状态切换至Master状态后,发布VRRP备份组所在网段的网段路由信息。
而对于在VRRP备份组发生了重选举之后又发生了二层网络分裂的情况,在二层网络分裂之前执行了上述用于接管网段路由的步骤的成员设备,就为二层网络分裂后的原Master成员设备。
下面结合实例进行详细说明。
请参见图6,当交换机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状态正常工作,并由此确认其切换为Master状态是由于二层网络分裂所致,然后,新Master成员设备R2通过侦测本机所创建的VRRP备份组所在网段10.1.1.0/24内的本地ARP表项是否有效,会删除本地主机C1所对应的无效的本地ARP表项时,并针对有效本地ARP表项所对应的本地主机C2的IP地址10.1.1.13/32、以及本地主机C3的IP地址10.1.1.14/32发布长度大于网段路由信息的主机路由信息。
这样,对于三层网络来说,以原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承担。
请参见图7,当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状态正常工作;在图7中,新Master成员设备R2会判断出在本机切换之前处于Master状态并发布了网段路由信息的成员设备R1目前未在Master状态正常工作,并由此确认其切换为Master状态不是由于二层网络分裂所致、而是由于原Master成员设备R1发生故障所致,因此,新Master成员设备R2即可发布网段10.1.1.0/24的网段路由信息,即,成员设备R2会接管所有本地主机C1~C3的报文流量。
如上可见,基于本实施例,下行报文流量在二层网络分裂之后能够恢复正确的路由转发,而且,本实施例并不影响成员设备故障导致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成员设备主动撤销其发布的本地主机IP地址的主机路由信息,以确保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备份组恢复流量的方法可以进一步包括在该成员设备执行的如下步骤:
用于撤销网段路由的步骤,当本机(原Master成员设备或新Master成员设备)在发布了网段路由信息之后从Master状态切换至Backup状态,撤销本机发布的网段路由信息。
用于抢占网段路由的步骤,当本机(新Master成员设备)通过重选举而使在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备(原Master成员设备)又切换至了Backup状态之后,则本机发布网段路由信息;
用于撤销主机路由的步骤,当本机(新Master成员设备)通过如图3a所示的步骤303发布了本地主机IP地址的主机路由信息之后、又从Master状态切换至Backup状态,撤销本机发布的本地主机IP地址的主机路由信息;
其中:
若成员设备在二层网络分裂后作为新Master成员设备、并在二层网络复原后切换至Backup状态,则用于撤销主机路由的步骤会在该成员设备执行;相应地,若成员设备作为原Master成员设备、并在二层网络复原后保持在Master状态,则该成员设备中此时无需额外执行任何步骤;
若成员设备在二层网络分裂后作为新Master成员设备、并在二层网络复原后继续保持在Master状态,则用于抢占网段路由的步骤会在该成员设备执行;相应地,若成员设备作为原Master成员设备、并在二层网络复原后切换至Backup状态,则用于撤销网段路由的步骤此时会在该成员设备执行;
若成员设备在正常重选举后作为新Master成员设备、并原Master成员设备重回VRRP备份组之后切换回Backup状态,则用于撤销网段路由的步骤会在该成员设备执行;相应地,若成员设备作为故障退出的原Master成员设备、并重回VRRP备份组后从Initialize状态切换至Master状态,则前文所述的用于初始发布网段路由的步骤此时需要在该成员设备执行。
下面结合四个实例对上述步骤进行详细说明。
参见图8a并结合图6,当二层网络分裂导致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承担。
参见图8b并结合图6,当二层网络分裂导致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此前针对本地主机C2和C3发布的主机路由信息也不会与网段路由冲突,因而既可以保留、也可以撤销。
请参见图9a并结合图7,在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承担。
请参见图9b并结合图7,在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承担。
此外,在实际应用中还有可能出现二层网络多次分裂的情况,对此,本领域技术人员可以基于上述的描述而对方案进行适应性调整。对于可能出现的二层网络多次分裂及恢复的情况,本实施不再详述。
以上是对本实施例中用于VRRP发布路由的方法的原理性说明。但在具体实现该方法时,还需要考虑以下几点:
新Master成员设备如何判断出原Master成员设备的存在,即,在如图3a所示的步骤301中,成员设备在从Backup状态切换至Master状态后如何判断在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前是否仍在Master状态正常工作;
新Master成员设备如何实现对本地ARP表项的有效性的侦测,即,在如图3a所示的步骤302中,成员设备如何侦测本地ARP表项是否有效;
原Master成员设备和新Master成员设备如何实现对IP地址冲突的检测以及触发本地主机的Mac地址刷新,即,在如图3b所示的步骤312、如图3c所示的步骤323、以及用于原Master和新Master成员设备撤销远程ARP代理的步骤中,成员设备如何判断冲突是否存在,在如图3b所示的步骤312、如图3c所示的步骤323中,成员设备如何触发本地主机实现Mac地址刷新;
以及,新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成员设备)真实IP地址的主机路由信息,并确认此时不存在原Master成员设备、即在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前未在Master状态正常工作;
但如若三层网络中的上游设备所执行的撤销处理稍有延迟,导致重新选举出的Master成员设备查询到了其在Backup状态记录的其他成员设备真实IP地址的主机路由信息、并发出上述的查询报文,重新选举出的Master成员设备也不可能接收到上述的应答报文,因而仍能够确认此时不存在原Master成员设备、即在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前未在Master状态正常工作。
实际应用中,上述的查询报文和应答报文可以为例如ICMP(Internet Control MessageProtocol,英特网控制消息协议)报文等各种适合通过三层网络传输的协议报文。可选地,为了简化上述过程,也可以仅依据记录查询来判断、而不使用查询报文和应答报文的查询机制。
相应地,本实施例中用于VRRP发布路由的方法就可以进一步包括在成员设备中执行的如下步骤:
当本机(即原Master成员设备)发布网段信息时,还发布本机真实IP地址的主机路由信息;
当本机(即Backup成员设备)在Backup状态接收到其他成员设备(即原Master成员设备)真实IP地址的主机路由信息后,记录该主机路由信息;
当本机(即新Master成员设备)在连接三层网络的接口接收到其他成员设备(即原Master成员设备)真实IP地址的主机路由信息被撤销的通知后,将本机记录的该主机路由信息删除;
并且,如图3a所示的步骤301可以具体包括:
当本机从Backup状态切换至Master状态后,查询本机是否记录有其他成员设备真实IP地址的主机路由信息;
当查询到本机记录有其他成员设备真实IP地址的主机路由信息后,依据查询到的主机路由信息中包含的其他成员设备真实IP地址,从本机连接三层网络的接口发出查询报文、并在预定的查询等待周期内等待接收应答报文;
若未查询到本机记录有其他成员设备真实IP地址的主机路由信息、或在查询等待周期内未接收到了应答报文,则确认在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前未在Master状态正常工作;
若在查询等待周期内接收到应答报文,则确认在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前仍在Master状态正常工作。
实际应用中,也可以取消对原Master成员设备的查询机制、而仅依据是否记录有主机路由信息来判断,相应地,如图3a所示的步骤301也可以予以简化,即:
当本机从Backup状态切换至Master状态后,查询本机是否记录有其他成员设备真实IP地址的主机路由信息;
若未查询到本机记录有其他成员设备真实IP地址的主机路由信息,则确认在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前未在Master状态正常工作;
若查询到本机记录有其他成员设备真实IP地址的主机路由信息,则确认在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备目前仍在Master状态正常工作。
下面再结合实例进一步说明。
请参见图10a至图10c、并结合图6和图7:
在图10a中,当二层网络完整、且原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的主机路由信息。
在图10b中,当二层网络按照如图6所示的方式发生分裂后,新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状态正常工作,从而确认本机的切换是由于二层网络分裂所致,然后即可按照如图6所示的方式处理。
在图10c中,当VRRP备份组按照如图7所示的情况出现原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状态正常工作,然后即可按照如图7所示的方式处理。
另外,由于原Master成员设备发布本机真实IP地址的主机路由信息是为了标识其已处在Master状态并已发布了网段路由信息,因此,当原Master成员设备由于二层网络分裂复原等原因而切换至Backup状态、并撤销其发布的网段路由信息时,其同样需要在撤销其发布的本机真实IP地址的主机路由信息。
相应地,本实施例中用于VRRP发布路由的方法就可以进一步包括在成员设备中执行的如下步骤:
当本机(即原Master成员设备)从Master状态切换至Backup状态后,撤销本机已发布的本机真实IP地址的主机路由信息。
为了使成员设备在作为新Master成员设备时能够侦测本地ARP表项是否有效,本实施例可以通过ARP查询机制来实现,具体说:
新Master成员设备在本机连接二层网络的接口分别针对各条本地ARP表项发送对应的ARP查询报文、并在预定的应答等待周期内等待响应的ARP应答报文;
若在应答等待周期内未接收到对应的本地主机返回的ARP应答报文,则确认该本地主机与本机失去连接、并确认对应的本地ARP表项无效;
若在应答等待周期内收到了对应的本地主机返回的ARP应答报文,则确认该本地主机与本机保持连接、并确认对应的本地ARP表项有效。
相应地,如图3a所示的步骤302可以具体包括:
当判断出在本机(二层网络分裂后的新Master成员设备)切换之前处于Master状态并发布了网段路由信息的其他成员设备仍在Master状态正常工作后,在本机连接二层网络的接口分别针对各条本地ARP表项向对应的各本地主机发送ARP查询报文、并在预定的应答等待周期内等待各本地主机响应的ARP应答报文;
若在应答等待周期内未接收到ARP应答报文,则确认对应的本地主机在二层网络分裂后与本机失去连接、从而确认该本地主机对应的本地ARP表项无效;
若在应答等待周期内收到了ARP应答报文,则确认对应的本地主机在二层网络分裂后仍与本机保持连接、从而确认该本地主机对应的本地ARP表项有效。
下面结合实例进行进一步说明。
请参见图11、并结合图6,当二层网络按照如图6所示的方式发生分裂后,新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表项无效。
为了实现原Master成员设备判断IP地址的冲突是否存在、以及触发本地主机的Mac地址刷新,本实施例可以通过免费ARP报文来实现。
对于原Master成员设备在二层网络分裂后接收到新Master成员设备发布的本地主机IP地址的主机路由信息的情况,以及原Master成员设备在二层网络复原后接收到新Master成员设备已撤销其发布的主机路由信息的通知的情况:
原Master成员设备都会在其启用ARP远程代理功能的该接口发出免费ARP报文、并在预定的冲突检测周期内等待其连接的本地主机的回应;其中,原Master成员设备发出的免费ARP报文的源IP地址和目的IP地址均为新Master成员设备发布的主机路由信息所对应的本地主机IP地址、源Mac地址为原Master成员设备的Mac地址;
此后,对于前一种情况,若原Master成员设备在冲突检测周期内未收到回应的免费ARP报文,则确认新Master成员设备发布的主机路由信息所对应的该本地主机IP地址与原Master成员设备的二层接口所连接的本地主机无IP地址冲突、并将新Master成员设备发布的主机路由信息所对应的该本地主机IP地址在原Master成员设备对应的本地ARP表项变更为远程ARP代理表项;并且,原Master成员设备发出的免费ARP报文的源Mac地址还能够将与原Master成员设备二层接口保持连接的本地主机的主机ARP表项的Mac地址刷新为原Master成员设备的Mac地址;
但对于后一种情况,若原Master成员设备在冲突检测周期内收到了回应的免费ARP报文,则确认被新Master成员设备撤销的主机路由信息所对应的该本地主机IP地址与原Master成员设备的二层接口所连接的本地主机存在IP地址冲突、并将被新Master成员设备撤销的主机路由信息所对应的该本地主机IP地址在原Master成员设备对应的远程ARP代理表项变更回本地ARP表项;并且,被新Master成员设备撤销的主机路由信息所对应的本地主机能够回应免费ARP报文、且该本地主机所回应的免费ARP报文中的源Mac地址为该本地主机自身的Mac地址,因此,该本地主机所回应的免费ARP报文中的源Mac地址即可将其他本地主机中对应该本地主机的主机ARP表项的Mac地址刷回为该本地主机的Mac地址。
相应地,如图3b所示的步骤312、以及在二层网络复原后用于原Master成员设备撤销远程ARP代理的步骤,即可通过在本机的二层接口发出免费ARP报文来实现对IP地址冲突的检测,并且,如图3b所示的步骤312可通过在本机的二层接口发出免费ARP报文来触发本地主机的Mac地址刷新;
其中,步骤312所发出的免费ARP报文的源IP地址和目的IP地址均为其他成员设备发布的主机路由信息所对应的本地主机IP地址、源Mac地址为本机的Mac地址;用于原Master成员设备撤销远程ARP代理的步骤所发出的免费ARP报文的源IP地址和目的IP地址均为被撤销的主机路由信息所对应的本地主机IP地址、源Mac地址为本机的Mac地址;
并且,若步骤312、以及用于原Master成员设备撤销远程代理ARP表项的步骤在预定的冲突检测周期内未收到回应的免费ARP报文,则确认无IP地址冲突,但若步骤312、以及用于原Master成员设备撤销远程代理ARP表项的步骤在预定的冲突检测周期内收到了回应的免费ARP报文,则确认存在IP地址冲突。
为了实现新Master成员设备判断IP地址的冲突是否存在、以及触发本地主机的Mac地址刷新,本实施例同样可以通过免费ARP报文来实现。
对于新Master成员设备在二层网络分裂后从三层接口接收到原Master成员设备以ARP远程代理方式发送的数据报文的情况、以及新Master成员设备在二层网络复原后主动删除远程ARP代理表项的情况:
新Master成员设备均在其启用ARP远程代理功能的二层接口发出免费ARP报文、并在预定的冲突检测周期内等待其连接的本地主机的回应;
其中,新Master成员设备对于前一种情况而发出的该免费ARP报文的源IP地址和目的IP地址均为该数据报文的源IP地址、源Mac地址为新Master成员设备的Mac地址,对于后一种情况而发出的该免费ARP报文的源IP地址和目的IP地址均为已创建的远程ARP代理表项所对应的IP地址、源Mac地址为新Master成员设备的Mac地址;
此后,对于前一种情况,若新Master成员设备在冲突检测周期内未收到回应的免费ARP报文,则确认该数据报文的源IP地址所对应的IP地址与新Master成员设备的二层接口所连接的本地主机无IP地址冲突,并将该数据报文的源IP地址在新Master成员设备对应的本地ARP表项变更为远程ARP代理表项;并且,新Master成员设备发出的免费ARP报文的源Mac地址即可将与新Master成员设备二层接口保持连接的本地主机的主机ARP表项的Mac地址刷新为新Master成员设备的Mac地址;
但对于后一种情况,若新Master成员设备在冲突检测周期内收到了回应的免费ARP报文,则确认已创建的远程ARP代理表项所对应的IP地址与原Master成员设备的二层接口所连接的本地主机存在IP地址冲突,并将存在IP地址冲突的该远程ARP代理表项变更回本地ARP表项;并且,与远程ARP代理表项存在IP地址冲突的本地主机所回应的免费ARP报文中的源Mac地址为该本地主机自身的Mac地址,因此,该本地主机所回应的免费ARP报文中的源Mac地址即可将其他本地主机中对应该本地主机的主机ARP表项的Mac地址刷回为该本地主机的Mac地址。
相应地,如图3c所示的步骤323、以及在二层网络复原后用于新Master成员设备撤销远程ARP代理的步骤,即可通过在本机的二层接口发出免费ARP报文来实现对IP地址冲突的检测,并且,如图3c所示的步骤323通过在本机的二层接口发出免费ARP报文还能够触发本地主机的Mac地址刷新;其中,步骤323所发出的免费ARP报文的源IP地址和目的IP地址均为数据报文的源IP地址、源Mac地址为本机的Mac地址;在二层网络复原后用于新Master成员设备撤销远程ARP代理的步骤所发出的免费ARP报文的源IP地址和目的IP地址均为已创建的远程ARP代理表项所对应的IP地址、源Mac地址为本机的Mac地址;
并且,若步骤323、以及用于新Master成员设备撤销远程ARP代理的步骤在预定的冲突检测周期内未收到回应的免费ARP报文,则确认无IP地址冲突;但若步骤323、以及用于新Master成员设备撤销远程ARP代理的步骤在预定的冲突检测周期内收到了回应的免费ARP报文,则确认存在IP地址冲突。
下面结合实例进行详细说明。
请参见图12a并结合图4a和图4b,对于二层网络分裂后的情况:
当原Master成员设备R1感知到新Master成员设备所发布的10.1.1.13/32和10.1.1.14/32的主机路由之后,能够判断出10.1.1.13/32和10.1.1.14/32与其连接二层网络、并启动ARP远程代理功能的二层接口同处在VRRP备份组所在网段10.1.1.0/24内,因此,原Master成员设备R1会在其启动ARP远程代理功能的二层接口发出免费ARP报文,包括:
源IP地址和目的IP地址均为10.1.1.13/32、源Mac地址为Mac_R1的免费ARP报文R1_C2;
以及,源IP地址和目的IP地址均为10.1.1.14/32、源Mac地址为Mac_R1的免费ARP报文R1_C3。
相应地,本地主机C1接收到上述的免费ARP报文R1_C2以及R1_C3后会将其对应10.1.1.13/32和10.1.1.14/32的本地ARP表项的Mac地址均刷新为Mac_R1,但不会向原Master成员设备R1回应免费ARP报文。
因此,原Master成员设备R1在冲突检测周期内就不会收到针对10.1.1.13/32和10.1.1.14/32的回应,从而判断出10.1.1.13/32和10.1.1.14/32与原Master成员设备R1在其二层接口所连接的本地主机C1的IP地址10.1.1.12/32不存在IP地址冲突。从而,原Master成员设备R1就会按照如图4a所示的方式删除10.1.1.13/32和10.1.1.14/32在本机的本地ARP表项,并重新创建10.1.1.13/32和10.1.1.14/32在本机的远程ARP代理表项。
同样地,当原Master成员设备R1通过ARP远程代理为本地主机C1转发的数据报文到达新Master成员设备R2后,新Master成员设备R2会在其三层接口接收到该数据报文,且新Master成员设备R2能够判断出该数据报文的源IP地址10.1.1.12/32和目的IP地址10.1.1.14/32均与其二层接口同处在VRRP备份组所在网段10.1.1.0/24内,因此,新Master成员设备R2会在其启动ARP远程代理功能的二层接口发出免费ARP报文,即,源IP地址和目的IP地址均为10.1.1.12/32、源Mac地址为Mac_R2的免费ARP报文R2_C1。
相应地,本地主机C2和C3接收到上述的免费ARP报文R2_C1后,均会将各自对应10.1.1.12/32的本地ARP表项的Mac地址均刷新为Mac_R2,但都不会向新Master成员设备R2回应免费ARP报文。
因此,新Master成员设备R2在冲突检测周期内就不会收到针对10.1.1.12/32的回应,从而判断出10.1.1.12/32与新Master成员设备R2在其连接二层网络、并启动ARP远程代理功能的接口所连接的本地主机C2和C3的IP地址不冲突。从而,新Master成员设备R2就会按照如图4b所示的方式删除10.1.1.12/32在本机的本地ARP表项,并重新创建10.1.1.12/32在本机的远程ARP代理表项。
请参见图12b并结合图5,对于二层网络复原后的情况:
当原Master成员设备R1接收到新Master成员设备已撤销了10.1.1.13/32和10.1.1.14/32的主机路由信息的通知之后,能够判断出10.1.1.13/32和10.1.1.14/32与其连接二层网络、并启动ARP远程代理功能的二层接口同处在VRRP备份组所在网段10.1.1.0/24内,因此,原Master成员设备R1会在其启动ARP远程代理功能的二层接口发出图12a中示出的免费ARP报文R1_C2和R1_C3。
相应地,本地主机C2在接收到上述的免费ARP报文R1_C2后会回应免费ARP报文C2_Recover、本地主机C3在接收到上述的免费ARP报文R1_3后会回应免费ARP报文C3_Recover,其中:
免费ARP报文C2_Recover的源IP地址和目的IP地址均为10.1.1.13/32、源Mac地址为该本地主机C2的Mac地址Mac_C2;
免费ARP报文C3_Recover的源IP地址和目的IP地址均为10.1.1.14/32、源Mac地址为该本地主机C3的Mac地址Mac_C3。
此后,原Master成员设备R1在冲突检测周期内就会收到回应的免费ARP报文C2_Recover和C3_Recover,从而判断出本地主机C2和C3与其恢复了连接、且被撤销的主机路由信息所对应的10.1.1.13/32和10.1.1.14/32与原Master成员设备R1在其二层接口所连接的本地主机C2和C3存在IP地址冲突。从而,原Master成员设备R1就会按照如图5所示的方式删除10.1.1.13/32和10.1.1.14/32的远程ARP代理表项、并重新创建10.1.1.13/32和10.1.1.14/32的本地ARP表项。
与此同时,本地主机C1也能够接收到上述的免费ARP报文C2_Recover和C3_Recover,并由此将对应10.1.1.13/32和10.1.1.14/32的主机ARP表项的Mac地址从Mac_R1分别刷新回Mac_C2和Mac_C3。
同样地,当原Master成员设备R1切换为Backup状态后,新Master成员设备R2会依据其已创建的远程ARP代理表项所对应的10.1.1.12/32而在其启动ARP远程代理功能的二层接口发出图12a中示出的免费ARP报文R2_C1。
相应地,本地主机C1在接收到上述的免费ARP报文R1_C1后会回应免费ARP报文C1_Recover,其中,免费ARP报文C1_Recover的源IP地址和目的IP地址均为10.1.1.12/32、源Mac地址为该本地主机C1的Mac地址Mac_C1。
此后,新Master成员设备R2在冲突检测周期内就会收到回应的免费ARP报文C1_Recover,从而判断出本地主机C1与其恢复了连接、且已创建的远程ARP代理表项所对应的10.1.1.12/32与新Master成员设备R2在其二层接口所连接的本地主机C1存在IP地址冲突。从而,新Master成员设备R2就会删除10.1.1.12/32的远程ARP代理表项、并重新创建10.1.1.12/32的本地ARP表项。
与此同时,本地主机C2和C3也都能够接收到上述的免费ARP报文C1_Recover,并由此将对应10.1.1.12/32的主机ARP表项的Mac地址从Mac_R2刷新回Mac_C1。
为了使成员设备在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表项的本地主机IP地址的主机路由信息。
以上是对本实施例中用于VRRP备份组恢复流量的方法的说明。该方法能够以计算机程序来实现,因此,与上述方法相对应地,本实施例还提供了一种用于VRRP备份组恢复流量的装置。
与方法同理,为了实现对二层报文流量的恢复,在应用该装置的VRRP备份组中,每台成员设备连接二层网络的二层接口可启用ARP远程代理功能。
当有成员设备成为新Master成员设备时,该装置包括在该成员设备中运行的如下模块:
成员状态判断模块,当本机从Backup状态切换至Master状态后,需要先判断在本机从Backup状态切换切换至Master状态之前处于Master状态的其他成员设备目前是否仍在Master状态正常工作,即判断原Master成员设备此时是否存在;
ARP表项侦测模块,若成员状态判断模块判断出在本机从Backup状态切换至Master状态之前处于Master状态的其他成员设备目前仍在Master状态正常工作,则确认此时属于二层网络发生网络分裂的情况,相应地,本机属于新Master成员设备、而目前仍在Master状态正常工作的其他成员设备为与本机共存的原Master成员设备,因此,本机需要侦测VRRP备份组所在网段内的本地ARP表项是否有效、并以此来识别各本地主机是否在二层网络分裂后与本机处在同一分裂子网并保持连接;
主机路由发布模块,若ARP表项侦测模块侦测到与本机保持连接的本地主机所对应的有效的本地ARP表项,则确认该有效的本地ARP表项所对应的本地主机在二层网络分裂之前与本机同处于一个二层网络、且在二层网络分裂后仍与本机同处在同一个的分裂子网中,因此,发布有效的本地ARP表项所对应的本地主机IP地址的主机路由信息。
当有成员设备作为原Master成员设备接收到新Master成员设备发布的本地主机IP地址的主机路由信息时,该装置包括在该成员设备中运行的如下模块:
原Master地址判断模块,当本机在Master状态接收到其他成员设备发布的本地主机IP地址的主机路由信息后,判断其他成员设备发布的本地主机IP地址所对应的该本地主机IP地址是否与本机启用ARP远程代理功能的二层接口同处在VRRP备份组所在网段;
原Master检测刷新模块,若原Master地址判断模块判断出其他成员设备发布的主机路由信息所对应的该本地主机IP地址与本机启用ARP远程代理功能的接口均处在VRRP备份组所在网段,则确认该本机IP地址所对应的本地主机在二层网络分裂之前与本机处在同一网段的二层网络中,并且,为了进一步确认该本地主机IP地址所对应的本地主机在二层网络分裂后是否与本机处在不同的分裂子网,再检测该本地主机IP地址与本机启用ARP远程代理功能的二层接口所连接的本地主机的IP地址是否存在IP地址冲突、并触发与本机保持连接的本地主机实现Mac地址刷新;
其中,原Master检测刷新模块所触发的Mac地址刷新的过程,用于使与本机保持连接的本地主机中对应其他成员发布的本地主机IP地址的主机ARP表项的Mac地址被刷新为本机的Mac地址;
原Master代理创建模块,若原Master检测刷新模块检测出其他成员设备发布的主机路由信息所对应的该本地主机IP地址与本机启用ARP远程代理功能的二层接口所连接的本地主机无IP地址冲突,则确认该本地主机IP地址所对应的本地主机在二层网络分裂之前与本机同处于一个二层网络、但在二层网络分裂后与本机处在不同的分裂子网,因此,将该本地主机IP地址在本机对应的本地ARP表项变更为远程ARP代理表项(该远程ARP代理表项的IP地址为该本地主机IP地址、Mac地址为本机的Mac地址),以使本机能够利用远程ARP代理表项对以该本地主机IP地址为目的IP地址的二层的数据报文按照三层报文的方式(数据报文中的Mac地址为本机的Mac地址)进行转发;
另外,若原Master检测刷新模块判断出其他成员设备发布的主机路由信息所对应的该本地主机IP地址与本机启用ARP远程代理功能的二层接口所连接的本地主机存在IP地址冲突,则表示本机与该主机IP地址所对应的本地主机之间目前存在连接,因而无需创建对应的远程ARP代理表项、并可以直接结束本流程。此时,在原Master检测刷新模块的触发下而被刷新为本机Mac地址的对应的主机ARP表项也会被对应的本地主机回刷为该本地主机的Mac地址。
其中,对于与远程ARP代理表项对应相同IP地址的本地ARP表项,会由原Master代理创建模块、或原Master检测刷新模块删除。
相应地,当有成员设备成为新Master成员设备、并发布了本地主机IP地址的主机路由信息后,该装置包括在该成员设备中运行的如下模块:
新Master地址判断模块,当本机在Master状态从本机连接三层网络的三层接口接收到数据报文后,判断该数据报文的源IP地址和目的IP地址是否均与本机启用ARP远程代理功能的二层接口同处在VRRP备份组所在网段;
新Master表项查询模块,若新Master地址判断模块判断出该数据报文的源IP地址和目的IP地址均与本机启用ARP远程代理功能的二层接口同处在VRRP备份组所在网段、且该数据报文的源IP地址在本机不存在远程ARP代理表项,则确认该数据报文属于以远程代理方式从三层网络转发的二层报文、且该数据报文的源端和目的端的本地主机在二层网络分裂之前均与本机处在同一网段的二层网络中,此时,先判断本机是否已针对该数据报文的源端的本地主机创建有远程ARP代理表项;
新Master检测刷新模块,若新Master表项查询模块判断出该数据报文的源IP地址在本机不存在远程ARP代理表项,则表示需要为该数据报文的源IP地址创建远程ARP代理表项,此时,就需要先确认该数据报文的源端的本地主机在二层网络分裂后是否与本机处在不同的分裂子网,再检测该数据报文的源IP地址与本机启用ARP远程代理功能的二层接口所连接的本地主机是否存在IP地址冲突、并触发与本机保持连接的本地主机实现Mac地址刷新;
其中,新Master检测刷新模块所触发的Mac地址刷新的过程,用于使与本机保持连接的本地主机中对应其他成员发布的本地主机IP地址的主机ARP表项的Mac地址被刷新为本机的Mac地址;
新Master代理创建模块,若新Master检测刷新模块检测出该数据报文的源IP地址与本机启用ARP远程代理功能的二层接口所连接的本地主机无IP地址冲突,则确认该数据报文的源端的本地主机在二层网络分裂之前与本机同处于一个二层网络、但在二层网络分裂后与本机处在不同的分裂子网,因此,为该数据报文的源IP地址在本机创建远程ARP代理表项(该远程ARP代理表项的IP地址为该数据报文的源IP地址、Mac地址为本机的Mac地址),以使本机能够利用远程ARP代理表项对以该数据报文的源IP地址为目的IP地址的二层的其他数据报文按照三层报文的方式(其他数据报文中的Mac地址为本机的Mac地址)进行转发;
另外,若新Master检测刷新模块判断出该数据报文的源IP地址与本机启用ARP远程代理功能的二层接口所连接的本地主机存在IP地址冲突,则表示本机与该数据报文的源IP地址所对应的本地主机之间目前存在连接,因而无需创建对应的远程ARP代理表项、并可以直接结束本流程。此时,在新Master检测刷新模块的触发下而被刷新为本机Mac地址的主机ARP表项也会被该数据报文的源IP地址所对应的本地主机回刷为该本地主机的Mac地址。
其中,对于与远程ARP代理表项对应相同IP地址的本地ARP表项,会由新Master代理创建模块、或新Master检测刷新模块删除,或者,与远程ARP代理表项对应相同IP地址的本地ARP表项还有可能被ARP表项侦测模块作为无效的本地ARP表项予以删除。
如上可见,基于上述模块,二层报文流量在二层网络分裂之后能够得以恢复。
此外,在实际应用中,发生分裂的二层网络有可能会复原,而当二层网络分裂又复原后,原Master成员设备通常会由于优先级高而继续保持在Master状态、新Master成员设备则会由于优先级低而切换至Backup状态。因此,当二层网络复原后,该装置可以进一步包括在成员设备中运行的如下模块:
主机路由撤销模块,当本机(新Master成员设备)从Master状态切换至Backup状态后,若本机通过如前所述的主机路由发布模块发布了本地主机IP地址的主机路由信息,则撤销本机发布的本地主机IP地址的主机路由信息;
原Master撤销检测模块,当本机(原Master成员设备)接收到其他成员设备撤销了已发布的本地主机IP地址的主机路由信息的通知后,若判断出该本地主机IP地址是否与本机的二层接口同处在VRRP备份组所在网段、且该本地主机IP地址在本机存在对应的远程ARP代理表项,则检测该本地主机IP地址与本机的二层接口所连接的本地主机是否存在IP地址冲突;
原Master代理撤销模块,若原Master撤销检测模块检测出存在IP地址冲突,则删除该本地主机IP地址对应的远程ARP代理表项、并为该本地主机IP地址创建对应的本地ARP表项;
新Master撤销检测模块,当本机(新Master成员设备)从Master状态切换至Backup状态后,若本机已创建有远程ARP代理表项,则检查已创建的各远程ARP代理表项所对应的IP地址是否与本机的二层接口所连接的本地主机是否存在IP地址冲突;
新Master代理撤销模块,若新Master撤销检测模块检测出有远程ARP代理表项存在IP地址冲突,则删除存在IP地址冲突的远程ARP代理表项、并为冲突的IP地址创建对应的本地ARP表项。
实际应用中,当二层网络分裂又复原后,原Master成员设备也有可能切换回Backup状态、并由新Master成员设备继续保持在Master状态。此时,只要新Master成员设备判断出到原Master成员设备已切换回Backup状态(例如通过原Master成员设备撤销其发布的路由信息等方式),新Master设备仍需要撤销其发布的本地主机IP地址的主机路由信息,此时,新Master成员设备和原Master成员设备仍按照上述方式删除各自的远程ARP代理表项、并创建本地ARP代理表项。
除了恢复二层报文流量之外,本实施例还可以设置所有成员设备在处于Backup状态时均被禁止发布VRRP备份组所在网段的网段路由信息、且只有成员设备在切换至Master状态后才有可能发布VRRP备份组所在网段的网段路由信息,即,所有上行报文流量和下行报文流量均由VRRP备份组中的Master成员设备来承担。
因此,在应用本实施例用于VRRP备份组恢复流量的上述装置的VRRP备份组中,还可以设置每台成员设备在切换至Backup状态后都被禁止发布VRRP备份组所在网段的网段路由信息,并且,在有成员设备成为新Master成员设备时,该装置还可以进一步包括在该成员设备运行的如下模块:
网段接管发布模块,当本机(新Master成员设备)通过如上所述的成员状态判断模块判断出在本机切换之前处于Master状态的其他成员设备(即已发布了网段路由信息的原Master设备)目前已不在Master状态正常工作,则发布VRRP备份组所在网段的网段路由信息。
实际应用中:
若在VRRP备份组从未发生过重选举时发生了二层网络分裂,则在VRRP备份组启动后首次被选举为Master状态的成员设备为原Master成员设备、并且是从Initialize状态切换至Master状态;
若在VRRP备份组发生了重选举之后又发生了二层网络分裂,则对于分裂后的二层网络来说,最近一次重选举所产生的Master状态的成员设备为原Master成员设备、并且是从Backup状态切换至Master状态,而二层网络分裂导致的重选举所产生的Master状态的成员设备为新Master成员设备。
相应地,对于在VRRP备份组从未发生过重选举时发生了二层网络分裂的情况,当有成员设备成为在VRRP备份组启动后首次选举产生的新Master成员设备时,该装置可以进一步包括在该成员设备运行的如下模块:
网段初始发布模块,当本机从Initialize状态切换至Master状态后,发布VRRP备份组所在网段的网段路由信息。
而对于在VRRP备份组发生了重选举之后又发生了二层网络分裂的情况,上述的网段接管发布模块即可用于原Master成员设备发布网段路由信息。
另外,对于发生分裂的二层网络复原、以及发生故障退出的原Master成员设备恢复后重新回到VRRP备份组的情况,该装置可以进一步包括在成员设备中运行的如下模块:
网段撤销通告模块,当本机(原Master成员设备或新Master成员设备)在发布了网段路由信息之后从Master状态切换至Backup状态,撤销本机发布的网段路由信息。
网段抢占发布模块,当本机(新Master成员设备)通过重选举而使在本机切换之前处于Master状态并发布了网段路由信息的其他成员设备(原Master成员设备)又切换至了Backup状态之后,则本机发布网段路由信息;
以及,如前所述的主机路由撤销模块,当本机(新Master成员设备)通过有效ARP发布模块发布了本地主机IP地址的主机路由信息之后、又从Master状态切换至Backup状态,撤销本机发布的本地主机IP地址的主机路由信息;
其中:
若成员设备在二层网络分裂后作为新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表项侦测模块可以通过在本机连接二层网络的接口分别针对各条本地ARP表项向对应的各本地主机发送ARP查询报文、并在预定的应答等待周期内等待各本地主机响应的ARP应答报文,来实现对本地ARP表项的有效性侦测;
若在应答等待周期内未接收到ARP应答报文,则确认对应的本地主机在二层网络分裂后与本机失去连接、从而确认该本地主机对应的本地ARP表项无效;
若在应答等待周期内收到了ARP应答报文,则确认对应的本地主机在二层网络分裂后仍与本机保持连接、从而确认该本地主机对应的本地ARP表项有效。
在具体实现时,为了实现原Master成员设备判断IP地址的冲突是否存在、以及触发本地主机的Mac地址刷新,原Master检测刷新模块、原Master撤销检测模块可通过在本机的二层接口发出免费ARP报文来实现;其中,原Master检测刷新模块所发出的免费ARP报文的源IP地址和目的IP地址均为其他成员设备发布的主机路由信息所对应的本地主机IP地址、源Mac地址为本机的Mac地址;原Master撤销检测模块所发出的该免费ARP报文的源IP地址和目的IP地址均为被撤销的主机路由信息所对应的本地主机IP地址、源Mac地址为本机的Mac地址;
并且,若原Master检测刷新模块、原Master撤销检测模块在预定的冲突检测周期内未收到回应的免费ARP报文,则确认无IP地址冲突,但若原Master检测刷新模块、原Master撤销检测模块在预定的冲突检测周期内收到了回应的免费ARP报文,则确认存在IP地址冲突。
在具体实现时,为了实现新Master成员设备判断IP地址的冲突是否存在、以及触发本地主机的Mac地址刷新,新Master检测刷新模块、以及新Master撤销检测模块可通过在本机的二层接口发出免费ARP报文来实现;其中,新Master检测刷新模块所发出的免费ARP报文的源IP地址和目的IP地址均为数据报文的源IP地址、源Mac地址为本机的Mac地址;新Master撤销检测模块所发出的免费ARP报文的源IP地址和目的IP地址均为已创建的远程ARP代理表项所对应的IP地址、源Mac地址为本机的Mac地址;
并且,若新Master检测刷新模块、以及新Master撤销检测模块在预定的冲突检测周期内未收到回应的免费ARP报文,则确认无IP地址冲突;但若新Master检测刷新模块、以及新Master撤销检测模块在预定的冲突检测周期内收到了回应的免费ARP报文,则确认存在IP地址冲突。
在具体实现时,为了使成员设备在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表项、并更新本机已发布的本地主机IP地址的主机路由信息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (18)

1.一种用于虚拟路由器冗余协议VRRP备份组恢复流量的方法,其特征在于,该方法包括在VRRP备份组中的每台成员设备执行的如下步骤:
a10、当本机从Backup状态切换至Master状态后,判断在本机切换之前处于Master状态的其他成员设备目前是否仍在Master状态正常工作;
a20、若步骤a10判断为是,则侦测VRRP备份组所在网段内的本地ARP表项是否有效;
a30、若步骤a20侦测到与本机保持连接的本地主机所对应的有效的本地ARP表项,则发布有效的本地ARP表项所对应的本地主机IP地址的主机路由信息;
b10、当本机在Master状态接收到其他成员设备发布的本地主机IP地址的主机路由信息后,判断该本地主机IP地址是否与本机的二层接口同处在VRRP备份组所在网段;
b20、若步骤b10判断为是,则检测该本地主机IP地址与本机的二层接口所连接的本地主机的IP地址是否存在IP地址冲突、并触发与本机保持连接的本地主机实现Mac地址刷新;
其中,步骤b20所触发的Mac地址刷新的过程,用于使与本机保持连接的本地主机中对应其他成员发布的本地主机IP地址的主机ARP表项的Mac地址被刷新为本机的Mac地址;
b30、若步骤b20检测出无IP地址冲突,则为其他成员发布的该本地主机IP地址在本机创建远程ARP代理表项;
c10、当本机在Master状态从本机连接三层网络的三层接口接收到数据报文后,判断该数据报文的源IP地址和目的IP地址是否均与本机的二层接口同处在VRRP备份组所在网段;
c20、若步骤c10判断为是、且该数据报文的源IP地址目前尚未在本机创建对应的远程ARP代理表项,则检测该数据报文的源IP地址与本机的二层接口所连接的本地主机是否存在IP地址冲突、并触发与本机保持连接的本地主机实现Mac地址刷新;
其中,步骤c20所触发的Mac地址刷新的过程,用于使与本机保持连接的本地主机中对应该数据报文的源IP地址的主机ARP表项的Mac地址被刷新为本机的Mac地址;
c30、若步骤c20检测出无IP地址冲突,则为该数据报文的源IP地址在本机创建远程ARP代理表项;
其中,与远程ARP代理表项对应相同IP地址的本地ARP表项会被本机删除;远程ARP代理表项中的Mac地址为本机的Mac地址;由本机利用远程ARP代理表项所转发的数据报文中的Mac地址会被设置为本机的Mac地址。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
d10、当本机从Master状态切换至Backup状态后,若本机通过步骤a30发布了本地主机IP地址的主机路由信息,则撤销本机发布的该本地主机IP地址的主机路由信息;
d21、当本机接收到其他成员设备撤销了已发布的本地主机IP地址的主机路由信息的通知后,若判断出被撤销的主机路由信息所对应的该本地主机IP地址与本机的二层接口同处在VRRP备份组所在网段、且被撤销的主机路由信息所对应的该本地主机IP地址在本机存在对应的远程ARP代理表项,则检测被撤销的主机路由信息所对应的该本地主机IP地址与本机的二层接口所连接的本地主机的IP地址是否存在IP地址冲突;
d22、若步骤d21检测出存在IP地址冲突,则删除该本地主机IP地址对应的远程ARP代理表项、并为该本地主机IP地址创建对应的本地ARP表项;
d31、当本机从Master状态切换至Backup状态后,若本机已创建有远程ARP代理表项,则检查已创建的各远程ARP代理表项所对应的IP地址与本机的二层接口所连接的本地主机是否存在IP地址冲突;
d32、若步骤d31检测出有远程ARP代理表项存在IP地址冲突,则删除存在IP地址冲突的远程ARP代理表项、并为冲突的IP地址创建对应的本地ARP表项。
3.根据权利要求2所述的方法,其特征在于,
步骤b20和步骤c20通过在本机的二层接口发出免费ARP报文来实现对IP地址冲突的检测、以及触发与本机保持连接的本地主机实现Mac地址刷新;其中,步骤b20发出的免费ARP报文的源IP地址和目的IP地址均为其他成员发布的主机路由信息所对应的本地主机IP地址;步骤c30发出的免费ARP报文的源IP地址和目的IP地址均为接收到的数据报文的源IP地址、源Mac地址为本机的Mac地址;
步骤d21和步骤d31通过在本机的二层接口发出免费ARP报文来实现IP地址冲的检测;其中,步骤d21发出的该免费ARP报文的源IP地址和目的IP地址均为被撤销的主机路由信息所对应的本地主机IP地址、源Mac地址为本机的Mac地址;步骤d31发出的免费ARP报文的源IP地址和目的IP地址均为已创建的远程ARP代理表项所对应的IP地址、源Mac地址为本机的Mac地址;
若步骤b20、步骤c20、步骤d21、以及步骤d31在预定的冲突检测周期内收到了回应的免费ARP报文,则确认存在IP地址冲突。
4.根据权利要求1所述的方法,其特征在于,在应用该方法的VRRP备份组中,每台成员设备进一步在切换至Backup状态后被禁止发布所述网段路由信息,并且,该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
b00、当本机从Initialize状态切换至Master状态后,发布所述网段路由信息。
5.根据权利要求4所述的方法,其特征在于,该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
a40、若步骤a10判断为否,则发布所述网段路由信息;
a50、当本机在发布了所述网段路由信息之后从Master状态切换至Backup状态,撤销本机发布的所述网段路由信息。
6.根据权利要求5所述的方法,其特征在于,该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
a60、当本机通过重选举而使在本机从Backup状态切换至Master状态之前处于Master状态、并发布了所述网段路由信息的其他成员设备又切换至了Backup状态之后,发布所述网段路由信息。
7.根据权利要求5所述的方法,其特征在于,该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
e10、当本机发布所述网段信息时,还发布本机真实IP地址的主机路由信息;
e20、当本机在Backup状态接收到其他成员设备真实IP地址的主机路由信息后,记录该主机路由信息;
e30、当本机在连接三层网络的接口接收到其他成员设备真实IP地址的主机路由信息被撤销后,将本机记录的该主机路由信息删除;
e40、当本机从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状态正常工作。
8.根据权利要求1所述的方法,其特征在于,步骤a20通过在本机连接二层网络的接口分别针对各条本地ARP表项发送对应的ARP查询报文来侦测本地ARP表项是否有效;
若在所述应答等待周期内未接收到ARP应答报文,则确认对应的本地ARP表项无效;
若在所述应答等待周期内收到了ARP应答报文,则确认对应的本地ARP表项有效。
9.根据权利要求1所述的方法,其特征在于,该方法进一步包括在VRRP备份组中的每台成员设备执行的如下步骤:
f10、当本机在Backup状态接收到VRRP备份组所在网段内的免费ARP报文后,将本机在Backup状态依据免费ARP报文所创建的本地ARP表项设置为不老化状态;
f20、若步骤a20侦测到与本机保持连接的本地主机所对应的有效的本地ARP表项,则为有效的本地ARP表项配置老化时间;
f30、当本机的有效本地ARP表项老化时,删除老化的有效的本地ARP表项、并更新本机已发布的本地主机IP地址的主机路由信息;
f40、当本机从Master状态切换至Backup状态后,将本机在Master状态依据免费ARP报文所创建的本地ARP表项设置为不老化状态。
10.一种用于虚拟路由器冗余协议VRRP备份恢复流量的装置,其特征在于,该装置包括在VRRP备份组中的每台成员设备承载的如下模块:
成员状态判断模块,当本机从Backup状态切换至Master状态后,判断在本机切换之前处于Master状态的其他成员设备目前是否仍在Master状态正常工作;
ARP表项侦测模块,若所述成员状态判断模块判断为是,则侦测VRRP备份组所在网段内的本地ARP表项是否有效;
主机路由发布模块,若所述ARP表项侦测模块侦测到与本机保持连接的本地主机所对应的有效的本地ARP表项,则发布有效的本地ARP表项所对应的本地主机IP地址的主机路由信息;
第一地址判断模块,当本机在Master状态接收到其他成员设备发布的本地主机IP地址的主机路由信息后,判断该本地主机IP地址是否与本机的二层接口同处在VRRP备份组所在网段;
第一检测刷新模块,若所述主机地址判断模块判断为是,则检测该本地主机IP地址与本机的二层接口所连接的本地主机的IP地址是否存在IP地址冲突、并触发与本机保持连接的本地主机实现Mac地址刷新;
其中,所述第一检测刷新模块所触发的Mac地址刷新的过程,用于使与本机保持连接的本地主机中对应其他成员发布的本地主机IP地址的主机ARP表项的Mac地址被刷新为本机的Mac地址;
第一代理创建模块,若所述第一冲突检测模块检测出无IP地址冲突,则为其他成员发布的该本地主机IP地址在本机创建远程ARP代理表项;
第二地址判断模块,当本机在Master状态从本机连接三层网络的三层接口接收到数据报文后,判断该数据报文的源IP地址和目的IP地址是否均与本机的二层接口同处在VRRP备份组所在网段;
第二检测刷新模块,若所述第一地址判断模块判断为是、且该数据报文的源IP地址目前尚未在本机创建对应的远程ARP代理表项,则检测该数据报文的源IP地址与本机的二层接口所连接的本地主机是否存在IP地址冲突、并触发与本机保持连接的本地主机实现Mac地址刷新;
其中,所述第二检测刷新模块所触发的Mac地址刷新的过程,用于使与本机保持连接的本地主机中对应该数据报文的源IP地址的主机ARP表项的Mac地址被刷新为本机的Mac地址;
第二代理创建模块,若所述第二冲突检测模块检测出无IP地址冲突,则为该数据报文的源IP地址在本机创建远程ARP代理表项;
其中,与远程ARP代理表项对应相同IP地址的本地ARP表项会被本机删除;远程ARP代理表项中的Mac地址为本机的Mac地址;由本机利用远程ARP代理表项所转发的数据报文中的Mac地址会被设置为本机的Mac地址。
11.根据权利要求10所述的装置,其特征在于,该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
主机路由撤销模块,当本机从Master状态切换至Backup状态后,若本机通过所述主机路由发布模块发布了本地主机IP地址的主机路由信息,则撤销本机发布的该本地主机IP地址的主机路由信息;
第一撤销检测模块,当本机接收到其他成员设备撤销了已发布的本地主机IP地址的主机路由信息的通知后,若判断出被撤销的主机路由信息所对应的该本地主机IP地址与本机的二层接口同处在VRRP备份组所在网段、且被撤销的主机路由信息所对应的该本地主机IP地址在本机存在对应的远程ARP代理表项,则检测被撤销的主机路由信息所对应的该本地主机IP地址与本机的二层接口所连接的本地主机的IP地址是否存在IP地址冲突;
第一代理撤销模块,若所述第一撤销检测模块检测出存在IP地址冲突,则删除该本地主机IP地址对应的远程ARP代理表项、并为该本地主机IP地址创建对应的本地ARP表项;
第二撤销检测模块,当本机从Master状态切换至Backup状态后,若本机已创建有远程ARP代理表项,则检查已创建的各远程ARP代理表项所对应的IP地址与本机的二层接口所连接的本地主机是否存在IP地址冲突;
第二代理撤销模块,若所述第二撤销检测模块检测出有远程ARP代理表项存在IP地址冲突,则删除存在IP地址冲突的远程ARP代理表项、并为冲突的IP地址创建对应的本地ARP表项。
12.根据权利要求11所述的装置,其特征在于,
所述第一检测刷新模块和所述第二检测刷新模块通过在本机的二层接口发出免费ARP报文来实现对IP地址冲突的检测、以及触发与本机保持连接的本地主机实现Mac地址刷新;其中,所述第一检测刷新模块发出的免费ARP报文的源IP地址和目的IP地址均为其他成员发布的主机路由信息所对应的本地主机IP地址;所述第二检测刷新模块发出的免费ARP报文的源IP地址和目的IP地址均为接收到的数据报文的源IP地址、源Mac地址为本机的Mac地址;
所述第一撤销检测模块和所述第二撤销检测模块通过在本机的二层接口发出免费ARP报文来实现对IP地址冲突的检测;其中,所述第一撤销检测模块发出的免费ARP报文的源IP地址和目的IP地址均为被撤销的主机路由信息所对应的本地主机IP地址、源Mac地址为本机的Mac地址;所述第二撤销检测模块发出的免费ARP报文的源IP地址和目的IP地址均为已创建的远程ARP代理表项所对应的IP地址、源Mac地址为本机的Mac地址;
若所述第一检测刷新模块、所述第二检测刷新模块、所述第一撤销检测模块、所述第二撤销检测模块在预定的冲突检测周期内收到了回应的免费ARP报文,则确认存在IP地址冲突。
13.根据权利要求10所述的装置,其特征在于,该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
第一网段发布模块,当本机从Initialize状态切换至Master状态后,发布所述网段路由信息。
14.根据权利要求13所述的装置,其特征在于,该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
第二网段发布模块,若所述成员状态判断模块判断为否,则发布所述网段路由信息;
网段撤销通告模块,当本机在发布了所述网段路由信息之后从Master状态切换至Backup状态,撤销本机发布的所述网段路由信息。
15.根据权利要求14所述的装置,其特征在于,该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
第三网段发布模块,当本机通过重选举而使在本机从Backup状态切换至Master状态之前处于Master状态、并发布了所述网段路由信息的的其他成员设备又切换至了Backup状态之后,发布所述网段路由信息。
16.根据权利要求14所述的装置,其特征在于,该装置进一步包括在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状态正常工作。
17.根据权利要求10所述的装置,其特征在于,所述ARP表项侦测模块通过在本机连接二层网络的接口分别针对各条本地ARP表项发送对应的ARP查询报文来侦测本地ARP表项是否有效;
若在所述应答等待周期内未接收到ARP应答报文,则确认对应的本地ARP表项无效;
若在所述应答等待周期内收到了ARP应答报文,则确认对应的本地ARP表项有效。
18.根据权利要求10所述的装置,其特征在于,该装置进一步包括在VRRP备份组中的每台成员设备承载的如下模块:
ARP老化禁止模块,当本机在Backup状态接收到VRRP备份组所在网段内的免费ARP报文后,将本机在Backup状态依据所述免费ARP报文所创建的本地ARP表项设置为不老化状态;
ARP老化开启模块,若所述本地ARP表项侦测模块侦测到与本机保持连接的本地主机所对应的有效本地ARP表项,则为有效本地ARP表项配置老化时间;
主机路由更新模块,当本机的有效本地ARP表项老化时,删除老化的有效本地ARP表项、并更新本机已发布的本地主机IP地址的主机路由信息;
ARP老化关闭模块,当本机从Master状态切换至Backup状态后,将本机在Master状态依据所述免费ARP报文所创建的本地ARP表项设置为不老化状态。
CN201210478923.9A 2012-11-21 2012-11-21 用于虚拟路由器冗余协议备份组恢复流量的方法和装置 Active CN102932252B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210478923.9A CN102932252B (zh) 2012-11-21 2012-11-21 用于虚拟路由器冗余协议备份组恢复流量的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210478923.9A CN102932252B (zh) 2012-11-21 2012-11-21 用于虚拟路由器冗余协议备份组恢复流量的方法和装置

Publications (2)

Publication Number Publication Date
CN102932252A true CN102932252A (zh) 2013-02-13
CN102932252B CN102932252B (zh) 2015-05-20

Family

ID=47646959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210478923.9A Active CN102932252B (zh) 2012-11-21 2012-11-21 用于虚拟路由器冗余协议备份组恢复流量的方法和装置

Country Status (1)

Country Link
CN (1) CN102932252B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103686888A (zh) * 2013-12-11 2014-03-26 大唐移动通信设备有限公司 终端切换方法和基站
CN103686888B (zh) * 2013-12-11 2016-11-30 大唐移动通信设备有限公司 终端切换方法和基站
CN106716870A (zh) * 2014-09-24 2017-05-24 思科技术公司 卫星设备处的本地分组交换
CN113992630A (zh) * 2021-09-10 2022-01-28 新华三大数据技术有限公司 一种网络资源冲突处理方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080151882A1 (en) * 2006-12-21 2008-06-26 Khanna Sanjay Passive virtual router redundancy prototcol
CN101404621A (zh) * 2008-11-24 2009-04-08 杭州华三通信技术有限公司 实现vrrp负载均衡的方法和路由设备
CN102413046A (zh) * 2011-11-24 2012-04-11 杭州华三通信技术有限公司 借助虚拟路由器冗余协议备份组转发流量的方法及设备
JP2012191534A (ja) * 2011-03-14 2012-10-04 Mitsubishi Electric Corp レイヤ3スイッチの切替方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080151882A1 (en) * 2006-12-21 2008-06-26 Khanna Sanjay Passive virtual router redundancy prototcol
CN101404621A (zh) * 2008-11-24 2009-04-08 杭州华三通信技术有限公司 实现vrrp负载均衡的方法和路由设备
JP2012191534A (ja) * 2011-03-14 2012-10-04 Mitsubishi Electric Corp レイヤ3スイッチの切替方法
CN102413046A (zh) * 2011-11-24 2012-04-11 杭州华三通信技术有限公司 借助虚拟路由器冗余协议备份组转发流量的方法及设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103686888A (zh) * 2013-12-11 2014-03-26 大唐移动通信设备有限公司 终端切换方法和基站
CN103686888B (zh) * 2013-12-11 2016-11-30 大唐移动通信设备有限公司 终端切换方法和基站
CN106716870A (zh) * 2014-09-24 2017-05-24 思科技术公司 卫星设备处的本地分组交换
CN106716870B (zh) * 2014-09-24 2020-07-03 思科技术公司 卫星设备处的本地分组交换
CN113992630A (zh) * 2021-09-10 2022-01-28 新华三大数据技术有限公司 一种网络资源冲突处理方法、装置、设备及存储介质
CN113992630B (zh) * 2021-09-10 2023-08-22 新华三大数据技术有限公司 一种网络资源冲突处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN102932252B (zh) 2015-05-20

Similar Documents

Publication Publication Date Title
JP3956685B2 (ja) ネットワーク間接続方法、仮想ネットワーク間接続装置およびその装置を用いたネットワーク間接続システム
JP4747118B2 (ja) ルータ、通信保証方法および通信保証プログラム
CN102904818B (zh) 一种arp信息表项更新方法及装置
US6760859B1 (en) Fault tolerant local area network connectivity
JP4591840B2 (ja) ネットワーク間のプロセス移動方法およびそのネットワークシステム
CN102035676B (zh) 基于arp协议交互的链路故障检测与恢复的方法和设备
CN102148677B (zh) 一种更新地址解析协议表项的方法及核心交换机
EP1379038A1 (en) Method for implementing router interface backup with virtual router redundancy protocol
WO2012000234A1 (zh) 链路间快速切换的方法、装置和系统
JP4790591B2 (ja) リングノード装置
WO2011157151A2 (zh) 实现容灾备份的方法、设备及系统
US20020023150A1 (en) Method of switching between network interfaces and computer connectable to a network
US20080225699A1 (en) Router and method of supporting nonstop packet forwarding on system redundant network
WO2005039129A1 (en) Redundant routing capabilities for a network node cluster
WO2004082222A1 (fr) Procede de communication ayant la fonction de partage de charge de reseau
CN101164307A (zh) 主备网关设备状态切换后业务恢复的方法及网关设备
JPWO2007077998A1 (ja) 通信システム、通信方法、ノード、およびノード用プログラム
CN102932230B (zh) 用于虚拟路由器冗余协议备份组发布路由的方法和装置
US20140169154A1 (en) Method, routing device, and system for network device redundancy backup
CN108574626A (zh) 一种分布式nat双机热备份流量切换系统和方法
CN100492984C (zh) 一种通过地址解析协议报文实现数据转发备份的方法
CN101562576B (zh) 一种路由发布方法和设备
CN102447615A (zh) 一种切换方法和路由器
JP4405941B2 (ja) 回線冗長化方法およびこれに用いる中継装置
CN102651711B (zh) 一种建立和使用浮动网段的方法、装置和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20230703

Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right