用于虚拟路由器冗余协议备份组同步arp表项的方法和装置的制作方法

文档序号:7871341阅读:177来源:国知局
专利名称:用于虚拟路由器冗余协议备份组同步arp表项的方法和装置的制作方法
技术领域
本发明涉及VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)技术,特别涉及用于VRRP备份组同步ARP(Address Resolution Protocol,地址解析协议)表项的方法和装置。
背景技术
VRRP备份组由多台可承担网关功能的成员设备构成,相应地,二层网络(例如局域网)中的各台本地主机只需将VRRP备份组看作是一台虚拟路由设备、并将该虚拟路由设备配置为缺省网关。其中,VRRP备份组中只有一个台成员设备会处在Master (主)状态,而VRRP备份组中的其余成员设备则均处在Backup (备)状态。VRRP备份组在本地主机与三层网络之间的报文转发均由Master状态的成员设备承担;并且,为了使从三层网络向本地主机发送的报文能够被正确转发,Master状态的成员设备还需要通过ARP学习来建立ARP表项,并依据ARP表项来确定本地主机的IP(Internet Protocol,互联网协议)地址与Mac (Media Access Control,媒体接入控制)地址的映射关系。当Master状态的成员设备故障时,VRRP备份组会进行主备切换,S卩,由一台Backup状态的成员设备切换至Master状态、并接管VRRP备份组在本地主机与三层网络之间的报文转发;同样地,主备切换后处于Master状态的成员设备也需要有ARP表项才能够确保从三层网络向本地主机发送的报文被正确转发。在某些组网条件下,主备切换后处于Master状态的成员设备需要重新进行ARP学习,由此就会导致在重新进行ARP学习的期间内出现流量中断。为了避免这样的流量中断出现,现有技术会在VRRP备份组发生主备切换之前由Master状态的成员设备将ARP表项同步至Backup状态的成员设备,以使得Backup状态的成员设备在通过主备切换而变为Master状态后无需再进行ARP学习。在现有技术中,通常采用如下两种方式实现ARP表项的同步方式UMaster状态的成员设备将ARP表项中的ARP信息封装在VRRP通告报文中发送至Backup状态的成员设备;方式2、由网管系统通过 SNMP (SimpleNetworkManagementProtocol,简单网络管理协议)周期性地从Master状态的成员设备中读取ARP表项、并将从ARP表项中读取到的ARP信息下发至Backup状态的成员设。上述的方式I和方式2虽然均能够VRRP备份组的ARP表项同步,但是却分别存在如下的缺陷对于方式I来说,必须改进VRRP通告报文,而不同厂商对于VRRP通告报文的改进方式又可能互不相同,因而导致方式I的通用性不高;而且,由于VRRP通告报文是周期性发送的,因此,无论ARP表项是否已完成同步,上述的方式I都会不断地在VRRP通告报文中封装ARP信息,从而导致一定的资源浪费;对于方式2来说,ARP表项的同步必须依赖于网管系统的支持。可见,现有技术在实现VRRP备份组的ARP表项同步时,必须需借助对VRRP通告报文的改进,或者必须依赖于网管系统的支持。

发明内容
有鉴于此,本发明提供了一种用于VRRP备份组同步ARP表项的方法和装置。本发明提供的一种用于VRRP备份组同步ARP表项的方法,该方法应用于VRRP备份组中处于Master状态的成员设备,并且,该方法包括在VRRP备份组中处于Master状态的成员设备执行的如下步骤当本机有ARP表项需要向VRRP备份组中处于Backup状态的其它成员设备同步时,依据该ARP表项构造ARP报文,所构造的ARP报文中包括ARP头和以太头,ARP头中的源IP为该ARP表项中包含的本地主机的IP地址、源Mac为该ARP表项中包含的本地主机的Mac地址,以太头中的源Mac为一指定Mac地址、且该指定Mac地址区别于接入VRRP备份组的所有本地主机以及所述其它成员设备的Mac地址,以太头中的目的Mac为用于将所构造的ARP报文转发至所述其它成员设备的Mac地址;将所构造的ARP报文从本机创建该ARP表项的端口发出。指定Mac地址为本机的真实Mac地址、或本机创建该ARP表项的端口的Mac地址、或VRRP备份组的虚Mac地址、或本机创建该ARP表项的端口所连接的二层交换机中的CPU的Mac地址、或预留的空闲Mac地址。所构造的ARP报文为免费ARP报文,用于将所构造的ARP报文转发至所述其它成员设备的Mac地址为广播Mac地址。所构造的ARP报文为ARP应答报文,用于将所构造的ARP报文转发至所述其它成员设备的Mac地址为所述其它成员设备的真实Mac地址;以及,本机创建有包含所述其他成员设备的ARP信息的ARP表项,且该方法进一步包括在本机预先配置所述其它成员设备的IP地址;依据配置的所述其它成员设备的IP地址对所述其它成员设备的ARP信息进行解析、得到所述其它成员设备的真实Mac地址。需要同步的ARP表项包括本机依据ARP请求报文建立的ARP表项。本发明提供的一种用于VRRP备份组同步ARP表项的装置,该装置应用于VRRP备份组中处于Master状态的成员设备,并且,该装置包括在VRRP备份组中处于Master状态的成员设备运行的如下模块报文构造模块,当本机有ARP表项需要向VRRP备份组中处于Backup状态的其它成员设备同步时,依据该ARP表项构造ARP报文,所构造的ARP报文中包括ARP头和以太头,ARP头中的源IP为该ARP表项中包含的本地主机的IP地址、源Mac为该ARP表项中包含的本地主机的Mac地址,以太头中的源Mac为一指定Mac地址、且该指定Mac地址区别于接入VRRP备份组的所有本地主机以及所述其它成员设备的Mac地址,以太头中的目的Mac为用于将所构造的ARP报文转发至所述其它成员设备的Mac地址;
报文发送模块,将所构造的ARP报文从本机创建该ARP表项的端口发出。指定Mac地址为本机的真实Mac地址、或本机创建该ARP表项的端口的Mac地址、或VRRP备份组的虚Mac地址、或本机创建该ARP表项的端口所连接的二层交换机中的CPU的Mac地址、或预留的空闲Mac地址。所构造的ARP报文为免费ARP报文,用于将所构造的ARP报文转发至所述其它成员设备的Mac地址为广播Mac地址。所构造的ARP报文为ARP应答报文,用于将所构造的ARP报文转发至所述其它成员设备的Mac地址为所述其它成员设备的真实Mac地址;以及,本机创建有包含所述其他成员设备的ARP信息的ARP表项,且该装置进一步包括
地址配置模块,在本机预先配置所述其它成员设备的IP地址;ARP解析模块,依据配置的所述其它成员设备的IP地址对所述其它成员设备的ARP信息进行解析、得到所述其它成员设备的真实Mac地址。需要同步的ARP表项包括本机依据ARP请求报文建立的ARP表项。由此可见,在本发明中,VRRP备份组中处于Master状态的成员设备能够仿照本地主机对Backup状态的成员设备实现ARP欺骗,并通过对Backup状态的成员设备的ARP欺骗促使Backup状态的成员设备进行ARP学习,因此,就使得Backup状态的成员设备能够与Master状态的成员设备同步地建立ARP表项。从而,在基于本发明实现VRRP备份组的ARP表项同步时,既无需借助对VRRP通告报文的改进,也无需依赖于网管系统的支持。而且,由于VRRP备份组中的所有成员设备能够从本地主机发送的免费ARP报文中学习到同样的ARP表项、且每台成员设备在发生端口迁移时可以自动更新已建立的ARP表项,因此,对于从免费ARP报文学习到的ARP表项、以及由于端口迁移而更新的ARP表项,VRRP备份组中处于Master状态的成员设备可以不进行同步,因而能够节省ARP表项同步所占用的资源。


图1a和图1b为本发明实施例利用ARP欺骗触发ARP学习的示意图;图2a和图2b为本地主机触发VRRP备份组进行ARP学习的示意图;图3为本发明实施例中用于VRRP备份组同步ARP表项的方法的流程示意图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。本实施例将VRRP备份组中处于Master状态的成员设备简称为Master成员设备,将VRRP备份组中处于Backup状态的成员设备简称为Backup成员设备。当Master成员设备需要向Backup成员设备同步任一台本地主机的ARP表项时,先以该本地主机的身份仿构ARP报文、并将待同步的ARP表项中包含的该本地主机的ARP信息封装在仿构ARP报文的ARP头中,然后再将仿构ARP报文发出。相应地,Backup成员设备在接收到仿构ARP报文后,会认为仿构ARP报文是由本地主机所发、并依据仿构ARP报文的ARP头中所封装的该本地主机的ARP信息建立对应的ARP表项。如此一来,通过Master成员设备对Backup成员设备的ARP欺骗,能够促使Backup成员设备进行ARP学习,从而使得Master成员设备为任一台本地主机建立的ARP表项能够被同步至Backup成员设备中。·另外,在向Backup成员设备同步ARP表项时,还需要确保同步而来的该ARP表项能够被创建在Backup成员设备连接本地主机所在二层网络的端口。相应地,就需要确保Backup成员设备能够在其连接本地主机所在二层网络的端口接收到仿构ARP报文。为此,Master成员设备就应当从创建待同步的ARP表项的端口发出仿构ARP报文。由于Master成员设备创建待同步的ARP表项的端口,一定是Master成员设备连接本地主机所在二层网络的端口,因此,从该端口发出的仿构ARP报文就能够到达本地主机所在二层网络。并且,Master成员设备还需要在仿构ARP报文的以太头中设置相应的二层转发信息、并在二层转发信息中表明仿构ARP报文的接收端包括Backup成员设备,因此,当仿构ARP报文到达本地主机所在二层网络后,就能够被转发至Backup成员设备连接该二层网络的端口。此外,二层网络中的各台二层交换机通常都维护有出端口表,每当二层交换机有端口接收到报文后,二层交换机就会认为该端口连接报文的发送端设备、并在出端口表中将该端口确定为报文的发送端设备的出端口,以便于在有报文需要向该发送端设备转发时就能够通过相应的出端口发出。相应地,二层交换机就能够在出端口表中分别记录Master成员设备、Backup成员设备、以及本地主机的出端口。基于上述情况,在仿构ARP报文中设置的二层转发信息中,还需要表明仿构ARP报文的发送端既不是本地主机、也不是Backup成员设备。这样,当二层交换机从Master成员设备接收到仿构ARP报文后,就不会误认为仿构ARP报文的发送端设备是本地主机或是Backup成员设备,相应地,二层交换机也就不会错误地将其连接Master成员设备的端口在出端口表中变更为本地主机或Backup成员设备的出端口,从而能够防止由于二层交换机的出端口表发生端口误迁移而导致的流量中断。下面,以仿构ARP报文分别选用免费ARP报文和ARP应答报文为例,结合图1a和图1b对本实施例进行详细说明。在图1a和图1b所示的组网场景中,VRRP备份组包括两台成员设备,并有一台本地主机A通过二层交换机SW接入在VRRP备份组,其中VRRP 备份组的虚 IP 地址为1. O. O. 5、虚 Mac 地址为 0000-5e00-0101 ;Master成员设备的真实IP地址为1. O. O.1、真实Mac地址为0000-0000-1111 ;Backup成员设备的真实IP地址为1. 0. 0. 2、真实Mac地址为0000-0000-2222 ;本地主机的IP 地址为1. 0. 0. 10、Mac 地址为 OOOO-OOOO-AAAA ;Master成员设备的端口 PortMO与Backup成员设备的端口 PortBO直连;Master成员设备的端口 PortMl与二层交换机SW的端口 PortVl直连;Backup成员设备的端口 PortBl与二层交换机SW的端口 PortV2直连;本地主机A与二层交换机SW的端口 PortA直连;Master成员设备在其端口 PortMl创建有本地主机A的ARP表项;以及,二层交换机SW在其出端口表中记录Master成员设备的出端口为端口PortVUBackup成员设备的出端口为端口 PortV2、本地主机A的出端口为端口 PortA。请先参见图la,在如图1a所示的实例中,仿构ARP报文选用免费ARP报文。当本地主机A的ARP表项需要同步至Backup成员设备时,Master成员设备依据该ARP表项仿构出免费ARP报文、并从其端口 PortMl发出仿构的免费ARP报文。仿构的免费ARP报文包括ARP头和以太头,其中ARP头中的目的IP为ARP表项中包含的本地主机A的IP地址1. O. O. 10,ARP头中的目的Mac为空、即0000-0000-0000,以符合免费ARP报文的格式规范;ARP头中的源IP为ARP表项中包含的本地主机A的IP地址1. O. O. 10,ARP头中的源Mac为ARP表项中包含的本地主机A的Mac地址0000-0000-AAAA,以实现ARP表项中 包含的ARP信息在免费ARP报文中的封装;以太头中的目的Mac为广播Mac地址FFFF-FFFF-FFFF,以使仿构的免费ARP报文能够以广播方式被转发至Backup成员设备;以太头中的源Mac为Master成员设备的真实Mac地址为0000-0000-1111,以表明仿构的免费ARP报文的发送端设备为Master设备、而不是本地主机A或Backup成员设备;当然,以太头中的源Mac只需要表明仿构的免费ARP报文的发送端设备不是本地主机A或Backup成员设备,因此,以太头中的源Mac还可以为任何区别于本地主机A和Backup成员设备的Mac地址,例如,端口 PortMl的Mac地址、或VRRP备份组的虚Mac地址0000-5e00_0101、或二层交换机SW中的CPU的Mac地址、或预留的空闲Mac地址等。二层交换机SW从端口 PortVl接收到仿构的免费ARP报文后,会依据仿构的免费ARP报文的以太头将仿构的免费ARP报文从端口 PortV2和PortA发出,且不会将PortVl在出端口表中变更为本地主机A或Backup成员设备的出端口。从二层交换机SW的端口 PortV2发出的仿构的免费ARP报文能够到达Backup成员设备的端口 PortBl,此时,Backup成员设备会认为仿构的免费ARP报文是由本地主机A所发,并依据仿构的免费ARP报文的ARP头中封装的该本地主机A的ARP信息,在端口 PortBl建立对应的ARP表项,从而使得本地主机A的ARP表项被同步至Backup成员设备。而二层交换机SW的端口 PortA发出的仿构的免费ARP报文能够到达本地主机A,本地主机A从仿构的免费ARP报文的ARP头能够识别中自身的ARP信息,因而会认为该仿构的免费ARP报文是从其自身发出并环回,从而将仿构的免费ARP报文丢弃。请再参见图1b,在如图1b所示的实例中,仿构ARP报文选用ARP应答报文。当本地主机A的ARP表项需要同步至Backup成员设备时,Master成员设备依据该ARP表项仿构出ARP应答报文、并从其端口 PortMl发出仿构的ARP应答报文。仿构的ARP应答报文包括ARP头和以太头,其中ARP头中的目的IP为Backup成员设备的真实IP地址1. O. O. 2,ARP头中的目的Mac为Backup成员设备的真实Mac地址为0000-0000-2222,以符合ARP应答报文的格式规范;ARP头中的源IP为ARP表项中包含的本地主机A的IP地址1. 0. 0. 10,ARP头中的源Mac为ARP表项中包含的本地主机A的Mac地址0000-0000-AAAA,以实现ARP表项中包含的ARP信息在ARP应答报文中的封装;以太头中的目的Mac为Backup成员设备的真实Mac地址为0000-0000-2222,以使仿构的ARP应答报文能够以单播方式被转发至Backup成员设备;并且,为了使Master成员设备能够获得Backup成员设备的真实Mac地址0000-0000-2222,需要预先在Master成员设备中配置Backup成员设备的真实IP地址1. O. O. 2、且Master成员设备中还需要创建有Backup成员设备所对应的ARP表项,相应地,Master成员设备在仿构ARP应答报文时,通过配置的Backup成员设备的真实IP地址1. O. O. 2查找到对应的ARP表项、然后再通过对该ARP表项的解析即可得到Backup成员设备的真实Mac地址0000-0000-2222 ;以太头中的源Mac为Master成员设备的真实Mac地址为0000-0000-1111,以表明仿构的ARP应答报文的发送端设备为Master设备、而不是本地主机A或Backup成员设备;与如图1a所示的实例同理,以太头中的源Mac只需要表明仿构的免费ARP报文的发送端设备不是本地主机A或Backup成员设备,因此,以太头中的源Mac还可以为任何区别于本地主机A和Backup成员设备的Mac地址,例如,端口 PortMl的Mac地址、或VRRP备份组的虚Mac地址0000-5e00-0101、或二层交换机SW中的CPU的Mac地址、或预留的空闲Mac地址 坐寸ο二层交换机SW从端口 PortVl接收到仿构的ARP应答报文后,会依据仿构的ARP应答报文的以太头将仿构的ARP应答报文从端口 PortV2发出,且不会将PortVl在出端口表中变更为本地主机A或Backup成员设备的出端口。从二层交换机SW的端口 PortV2发出的仿构的ARP应答报文能够到达Backup成员设备的端口 PortBl,此时,Backup成员设备会认为仿构的ARP应答报文是由本地主机A所发,并依据仿构的ARP应答报文的ARP头中封装的该本地主机A的ARP信息,在端口 PortBl建立对应的ARP表项,从而使得本地主机A的ARP表项被同步至Backup成员设备。在上述如图1a所示的实例中,由于仿构的免费ARP报文是一种广播报文,因此,选用免费ARP报文实现仿构的ARP报文能够更好地适用于存在多台Backup成员设备的情况。在上述如图1b所示的实例中,由于应答ARP报文是一种单播报文,因此,选用ARP应答报文实现仿构的ARP报文不会为本地主机A增加额外的负担,但是,需要在Master成员设备进行额外的配置、以及额外的ARP解析,因此,选用ARP应答报文实现仿构的ARP报文优选地应用于仅有一台Backup成员设备的情况,这样可以避免为Master成员设备造成过多的负担。但无论是像如图1a所示的实例那样选用免费ARP报文实现仿构的ARP报文、还是像如图1b所示的实例那样选用ARP应答报文实现仿构的ARP报文,Backup成员设备均能够按照对免费ARP报文或ARP应答报文的现有处理方式实现ARP学习、进而实现ARP表项的同步,因此,选用免费ARP报文或ARP应答报文实现仿构的ARP报文,就无需对Backup成员设备进行任何改进,从而能够使本实施例的方案具有较高的通用性。当然,若能够允许Backup成员设备进行改进,也可以选用除免费ARP报文和ARP应答报文之外的其他类型的ARP报文来实现仿构ARP报文。而且,通过分析上述如图1a和图1b所示的实例可知,无论仿构的ARP报文是何种类型的ARP报文,只要满足如下条件即可ARP头中的源IP为待同步的ARP表项中包含的本地主机的IP地址,ARP头中的源Mac为待同步的ARP表项中包含的本地主机的Mac地址,以实现待同步的ARP表项中包含的ARP信息在仿构的ARP报文中封装;
以太头中的源Mac为一指定Mac地址、且该指定Mac地址区别于接入VRRP备份组的所有本地主机以及所有Backup成员设备的Mac地址,例如,Master成员设备的真实Mac地址、或Master成员设备创建待同步的ARP表项的端口 Mac地址、或VRRP备份组的虚Mac地址、或Master成员设备创建待同步的ARP表项的端口所连接的二层交换机中的CPU的Mac地址、或预留的空闲Mac地址,以表明仿构的ARP报文的发送端设备既不是接入VRRP备份组的任一台本地主机、也不是VRRP备份组中的任一台Backup成员设备,从而避免二层网络中的出端口表被错误地更新;
以太头中的目的Mac为用于将仿构的ARP报文转发至Backup成员设备的Mac地址,例如广播Mac地址、或Backup成员设备的真实Mac地址、或能够涵盖Backup成员设备的组播Mac地址等。此外,为了节省同步ARP表项所耗费的资源,Master成员设备可以仅对Backup成员设备无法通过正常的ARP学习而创建的ARP表项进而同步,而对于Backup成员设备能够通过正常的ARP学习所创建的ARP表项,则可以不再通过ARP欺骗的方式予以同步。下面,结合图2a和图2b所示的实例对VRRP备份组正常学习ARP表项的不同情况进行说明。图2a和图2b中所示的组网场景与如图1a和如图1b相同。请先参见图2a,在如图2a所示的实例中,由本地主机A发送的免费ARP报文触发VRRP备份组正常学习ARP表项。当本地主机A上线后,为了检测本地主机A的IP地址是否存在冲突发出正常的免费ARP报文,该正常的免费ARP报文包括ARP头和以太头,其中ARP头中的目的IP和源IP均为本地主机A的IP地址1. O. O. 10,ARP头中的目的Mac为空、即0000-0000-0000, ARP头中的源Mac为本地主机A的Mac地址OOOO-OOOO-AAAA ;以太头中的目的Mac为广播Mac地址FFFF-FFFF-FFFF,以太头中的源Mac为本地主机 A 的 Mac 地址 0000-0000-AAAA。二层交换机SW从端口 PortA接收到本地主机A发出的正常的免费ARP报文后,会依据该免费ARP报文的以太头将该免费ARP报文从端口 PortVl和PortV2发出,并且,还会将PortA在出端口表中记录为本地主机A的出端口。从二层交换机SW的端口 PortVl发出的免费ARP报文能够到达Master成员设备的端口 PortMl,此时,Master成员设备会依据免费ARP报文的ARP头中封装的本地主机A的ARP信息,在端口 PortMl建立对应的ARP表项。与此同时,从二层交换机SW的端口 PortV2发出的免费ARP报文能够到达Backup成员设备的端口 PortBl,此时,Backup成员设备会依据免费ARP报文的ARP头中封装的本地主机A的ARP信息,在端口 PortBl建立对应的ARP表项。从而,针对本地主机A发出的正常的免费ARP报文,Master成员设备和Backup成员设备均能够通过ARP学习而建立本地主机A的ARP表项。请再参见图2b,在如图2b所示的实例中,由本地主机A发送的ARP请求报文触发VRRP备份组正常学习ARP表项。当本地主机A上线后,并未发出用于检测IP地址是否冲突的免费ARP报文,而是直接发出正常的ARP请求报文、用以请求获取VRRP备份组的ARP信息,该正常的ARP请求报文包括ARP头和以太头,其中ARP头中的目的IP为VRRP备份组的虚IP地址1. O. O. 5、源IP为本地主机A的IP地址1. O. O. 10,ARP头中的目的Mac为空、即0000-0000-0000,ARP头中的源Mac为本地主机 A 的 Mac 地址 0000-0000-AAAA ;以太头中的目的Mac为广播Mac地址FFFF-FFFF-FFFF,以太头中的源Mac为本地主机 A 的 Mac 地址 0000-0000-AAAA。二层交换机SW从端口 PortA接收到本地主机A发出的正常的ARP请求报文后,会依据该ARP请求报文的以太头将该ARP请求报文从端口 PortVl和PortV2发出,并且,还会将PortA在出端口表中记录为本地主机A的出端口。从二层交换机SW的端口 PortVl发出的ARP请求报文能够到达Master成员设备的端口 PortMl,此时,由于ARP请求报文的ARP头中的目的IP为VRRP备份组的虚IP地址1.O. O. 5,因此,Master成·员设备会为VRRP备份组处理该ARP请求报文,并且,还会依据ARP请求报文在ARP头中封装的本地主机A的ARP信息,在端口 PortMl建立对应的ARP表项。与此同时,从二层交换机SW的端口 PortV2发出的ARP请求报文能够到达Backup成员设备的端口 PortBl,此时,由于ARP请求报文的ARP头中的目的IP为VRRP备份组的虚IP地址1. O. O. 5,因此,处于备份状态的Backup成员设备会直接丢弃该ARP请求报文、而不会依据该ARP请求报文而在端口 PortBl建立对的ARP表项。从而,针对本地主机A发出的正常的ARP请求报文,只有Master成员设备能够通过ARP学习而建立本地主机A的ARP表项,Backup成员设备则不会创建本地主机A的ARP表项。通过上述两个实例可知,对于依据本地主机发出的免费ARP报文而创建的ARP表项,Master成员设备可以无需再向Backup成员设备同步;而对于依据本地主机发出的ARP请求报文、或类似的其他类型ARP报文所创建的ARP表项,Master成员设备则需要向Backup成员设备同步。除此之外,对于Master成员设备发生端口迁移而导致ARP表项更新的情况,Master成员设备也无需再向Backup成员设备同步,这是因为,即便Backup成员设备同样也发生了端口迁移,Backup成员设备也能够自行更新已从Master成员设备同步而来的ARP表项。以上是对本实施例通过ARP欺骗实现ARP表项同步的基本原理的详细说明。基于上述原理,本实施例提供了一种用于VRRP备份组同步ARP表项的方法。本实施例中用于VRRP备份组同步ARP表项的方法应用于VRRP备份组中处于Master状态的成员设备,并且,请参见图3,该方法包括在VRRP备份组中处于Master状态的成员设备执行的如下步骤步骤300,当本机的ARP表项发生变化时,判断变化的ARP表项是否是通过免费ARP报文学习得到、或是由于本机端口迁移而被更新;若变化的ARP表项是通过免费ARP报文学习得到、或是由于本机端口迁移而被更新,则表示无需向VRRP备份组中处于Backup状态的其它成员设备同步,并结束本流程;若变化的ARP表项既不是通过免费ARP报文学习得到、也不是由于本机端口迁移而被更新,则表示需要向VRRP备份组中处于Backup状态的其它成员设备同步,并执行步骤301。
步骤301,当本机有ARP表项需要向VRRP备份组中处于Backup状态的其它成员设备同步时,依据该ARP表项构造ARP报文,然后执行步骤302。其中,本步骤构造的ARP报文中包括ARP头和以太头ARP头中的源IP为该ARP表项中包含的本地主机的IP地址、源Mac为该ARP表项中包含的本地主机的Mac地址;以太头中的源Mac为一指定Mac地址、且该指定Mac地址区别于接入VRRP备份组的所有本地主机以及其它成员设备的Mac地址;以太头中的目的Mac为用于将本步骤构造的ARP报文转发至其它成员设备的Mac地址。可选地,上述的指定Mac地址可以为本机的真实Mac地址、或本机创建该ARP表项的端口的Mac地址、或VRRP备份组的虚Mac地址、或本机创建该ARP表项的端口所连接的二层交换机中的CPU的Mac地址、或预留的空闲Mac地址。可选地,若本步骤构造的ARP报文为免费ARP报文,则以太头中的目的Mac中填写的Mac地址为广播Mac地址,若本步骤构造的ARP报文为ARP应答报文,则以太头中的目的Mac中填写的Mac地址为其它成员设备的真实Mac地址。另外,若本步骤构造的ARP报文选用ARP应答报文,则还需要本机在本步骤之前即创建有包含其他成员设备的ARP信息的ARP表项,并需要进一步在本机预先配置其它成员设备的IP地址,相应地,在本步骤构造ARP报文时,可以依据配置的其它成员设备的IP地址对其它成员设备的ARP信息进行解析、并得到用于本步骤构造ARP应答报文的其它成员设备的真实Mac地址。步骤302,将步骤301构造的ARP报文从本机创建待同步的ARP表项的端口发出,然后结束本流程。至此,上述流程结束。需要说明的是,上述步骤300主要是为了尽可能减少不必要的同步,但实际应用中,也可以不设置步骤300,而是将Master状态的成员设备中每一条发生变化的ARP表项均看作是需要同步的ARP表项、并直接通过步骤301和步骤302进行同步。在具体实现时,上述用于VRRP备份组同步ARP表项的方法可以由计算机程序来实现,因此,本实施例还提供了一种与该方法相对应的装置。本实施例中用于VRRP备份组同步ARP表项的装置应用于VRRP备份组中处于Master状态的成员设备,并且,该装置包括在VRRP备份组中处于Master状态的成员设备运行的如下模块同步判别模块,当本机的ARP表项发生变化时,判断变化的ARP表项是否是通过免费ARP报文学习得到、或是由于本机端口迁移而被更新;若变化的ARP表项是通过免费ARP报文学习得到、或是由于本机端口迁移而被更新,则表示无需向VRRP备份组中处于Backup状态的其它成员设备同步,并终止针对该ARP表项的同步;若变化的ARP表项既不是通过免费ARP报文学习得到、也不是由于本机端口迁移而被更新,则表示需要向VRRP备份组中处于Backup状态的其它成员设备同步,并触发报文构造模块。
报文构造模块,当本机有ARP表项需要向VRRP备份组中处于Backup状态的其它成员设备同步时,依据该ARP表项构造ARP报文。其中,报文构造模块构造的ARP报文中包括ARP头和以太头ARP头中的源IP为该ARP表项中包含的本地主机的IP地址、源Mac为该ARP表项中包含的本地主机的Mac地址;以太头中的源Mac为一指定Mac地址、且该指定Mac地址区别于接入VRRP备份组的所有本地主机以及其它成员设备的Mac地址;以太头中的目的Mac为用于将本步骤构造的ARP报文转发至其它成员设备的Mac地址。报文发送模块,将报文构造模块构造的ARP报文从本机创建该ARP表项的端口发出。可选地,在报文构造模块构造的ARP报文中,指定Mac地址可以为本机的真实Mac地址、或本机创建该ARP表项的端口的Mac地址、或VRRP备份组的虚Mac地址、或本机创建该ARP表项的端口所连接的二层交换机中的CPU的Mac地址、或预留的空闲Mac地址。可选地,若报文构造模块骤构造的ARP报文为免费ARP报文,则构造的ARP报文的以太头中的目的Mac中填写的Mac地址为广播Mac地址,若报文构造模块构造的ARP报文为ARP应答报文,则构造的ARP报文的以太头中的目的Mac中填写的Mac地址为其它成员设备的真实Mac地址。另外,若报文构造模块构造的ARP报文选用ARP应答报文,则还需要本机在本步骤之前即创建有包含其他成员设备的ARP信息的ARP表项,并且,上述装置需要进一步包括地址配置模块,在本机预先配置所述其它成员设备的IP地址;以及,ARP解析模块,依据配置的所述其它成员设备的IP地址对所述其它成员设备的ARP信息进行解析、得到用于报文构造模块构造ARP应答报文的所述其它成员设备的真实Mac地址。需要说明的是,上述同步判别模块主要是为了尽可能减少不必要的同步,但实际应用中,也可以不设置同步判别模块,而是将Master状态的成员设备中每一条发生变化的ARP表项均看作是需要同步的ARP表项、并直接利用报文构造模块和报文发送模块进行同
止/J/ O 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种用于虚拟路由器冗余协议VRRP备份组同步ARP表项的方法,其特征在于,该方法应用于VRRP备份组中处于Master状态的成员设备,并且,该方法包括在VRRP备份组中处于Master状态的成员设备执行的如下步骤当本机有ARP表项需要向VRRP备份组中处于Backup状态的其它成员设备同步时,依据该ARP表项构造ARP报文,所构造的ARP报文中包括ARP头和以太头,ARP头中的源IP 为该ARP表项中包含的本地主机的IP地址、源Mac为该ARP表项中包含的本地主机的Mac 地址,以太头中的源Mac为一指定Mac地址、且该指定Mac地址区别于接入VRRP备份组的所有本地主机以及所述其它成员设备的Mac地址,以太头中的目的Mac为用于将所构造的 ARP报文转发至所述其它成员设备的Mac地址;将所构造的ARP报文从本机创建该ARP表项的端口发出。
2.根据权利要求1所述的方法,其特征在于,指定Mac地址为本机的真实Mac地址、或本机创建该ARP表项的端口的Mac地址、或VRRP备份组的虚Mac地址、或本机创建该ARP 表项的端口所连接的二层交换机中的CPU的Mac地址、或预留的空闲Mac地址。
3.根据权利要求1所述的方法,其特征在于,所构造的ARP报文为免费ARP报文,用于将所构造的ARP报文转发至所述其它成员设备的Mac地址为广播Mac地址。
4.根据权利要求1所述的方法,其特征在于,所构造的ARP报文为ARP应答报文,用于将所构造的ARP报文转发至所述其它成员设备的Mac地址为所述其它成员设备的真实Mac 地址;以及,本机创建有包含所述其他成员设备的ARP信息的ARP表项,且该方法进一步包括在本机预先配置所述其它成员设备的IP地址;依据配置的所述其它成员设备的IP地址对所述其它成员设备的ARP信息进行解析、得到所述其它成员设备的真实Mac地址。
5.根据权利要求3或4所述的方法,其特征在于,需要同步的ARP表项包括本机依据 ARP请求报文建立的ARP表项。
6.一种用于虚拟路由器冗余协议VRRP备份组同步ARP表项的装置,其特征在于,该装置应用于VRRP备份组中处于Master状态的成员设备,并且,该装置包括在VRRP备份组中处于Master状态的成员设备运行的如下模块报文构造模块,当本机有ARP表项需要向VRRP备份组中处于Backup状态的其它成员设备同步时,依据该ARP表项构造ARP报文,所构造的ARP报文中包括ARP头和以太头,ARP 头中的源IP为该ARP表项中包含的本地主机的IP地址、源Mac为该ARP表项中包含的本地主机的Mac地址,以太头中的源Mac为一指定Mac地址、且该指定Mac地址区别于接入 VRRP备份组的所有本地主机以及所述其它成员设备的Mac地址,以太头中的目的Mac为用于将所构造的ARP报文转发至所述其它成员设备的Mac地址;报文发送模块,将所构造的ARP报文从本机创建该ARP表项的端口发出。
7.根据权利要求6所述的装置,其特征在于,指定Mac地址为本机的真实Mac地址、或本机创建该ARP表项的端口的Mac地址、或VRRP备份组的虚Mac地址、或本机创建该ARP 表项的端口所连接的二层交换机中的CPU的Mac地址、或预留的空闲Mac地址。
8.根据权利要求6所述的装置,其特征在于,所构造的ARP报文为免费ARP报文,用于将所构造的ARP报文转发至所述其它成员设备的Mac地址为广播Mac地址。
9.根据权利要求6所述的装置,其特征在于,所构造的ARP报文为ARP应答报文,用于将所构造的ARP报文转发至所述其它成员设备的Mac地址为所述其它成员设备的真实Mac 地址;以及,本机创建有包含所述其他成员设备的ARP信息的ARP表项,且该装置进一步包括地址配置模块,在本机预先配置所述其它成员设备的IP地址;ARP解析模块,依据配置的所述其它成员设备的IP地址对所述其它成员设备的ARP信息进行解析、得到所述其它成员设备的真实Mac地址。
10.根据权利要求8或9所述的装置,其特征在于,需要同步的ARP表项包括本机依据 ARP请求报文建立的ARP表项。
全文摘要
本发明公开了一种用于虚拟路由器冗余协议备份组同步ARP表项的方法和装置。在本发明中,Master成员设备能够仿照本地主机对Backup成员设备实现ARP欺骗,并通过对Backup成员设备的ARP欺骗促使Backup成员设备进行ARP学习,因此,就使得Backup成员设备能够与Master状态的成员设备同步地建立ARP表项。从而,本发明在实现ARP表项同步时,既无需借助对虚拟路由器冗余协议的通告报文的改进,也无需依赖网管系统的支持。
文档编号H04L12/713GK103001868SQ20121059439
公开日2013年3月27日 申请日期2012年12月31日 优先权日2012年12月31日
发明者韩冰, 张建周, 黄哲 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1