CN107547677B - Arp代理方法和装置 - Google Patents
Arp代理方法和装置 Download PDFInfo
- Publication number
- CN107547677B CN107547677B CN201710451644.6A CN201710451644A CN107547677B CN 107547677 B CN107547677 B CN 107547677B CN 201710451644 A CN201710451644 A CN 201710451644A CN 107547677 B CN107547677 B CN 107547677B
- Authority
- CN
- China
- Prior art keywords
- arp
- host
- address
- mac address
- target
- 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.)
- Active
Links
Images
Landscapes
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了ARP代理方法和装置。本申请中,即使第一主机与第二主机接入ARP代理设备的同一物理接口下,则通过在经过第一设定时长T1后的第二设定时长T2内以T1为周期执行所述向第一主机返回ARP应答的操作,最终能够保证第一主机学习到的第二主机的ARP表项中的MAC地址为指定MAC地址,实现统一管理主机ARP表项,也实现使后续第二主机迁移,也不影响第一主机对第二主机的网络访问。
Description
技术领域
本申请涉及网络通信技术,特别涉及地址解析协议(ARP:Address ResolutionProtocol)代理方法和装置。
背景技术
在ARP代理场景下,当源主机(Host)访问目的主机时,若源主机本地不存在目的主机的MAC地址,则会发送一个ARP请求以请求目的主机的MAC地址。ARP代理设备接收到源主机发送的ARP请求,则向源主机返回ARP应答,ARP应答中的发送端MAC地址为指定MAC地址比如网关MAC地址等。ARP代理设备可以是网关,也可以是独立于网关的设备。源主机收到ARP应答后,学习目的主机的ARP表项,ARP表项中的MAC地址为指定MAC地址。以指定MAC地址为网关MAC地址为例,如此,源主机后续发送至目的主机的报文会通过网关进行三层转发至目的主机。
但是,由于源主机发送的ARP请求是广播报文,若源主机与目的主机下挂在ARP代理设备的同一物理端口,则就会出现不仅ARP代理设备会收到源主机发送的ARP请求,目的主机也有会收到源主机发送的ARP请求,这就有可能出现ARP代理设备、目的主机都会向源主机返回ARP应答,目的主机返回的ARP应答的发送端MAC地址为目的主机的MAC地址,导致源主机学习到的目的主机的ARP表项中的MAC地址有可能是指定MAC地址,也可能是目的主机的MAC地址,具体取决于源主机最后收到的ARP应答,这导致主机的ARP表项不可控更不好统一管理,并且,若源主机学习到的目的主机的ARP表项中的MAC地址为目的主机的MAC地址,当目的主机发生迁移时导致源主机不能访问目的主机。
发明内容
本申请提供了ARP代理方法和装置,以实现统一管理主机ARP表项,也防止因为主机迁移而影响主机互访。
本申请提供的技术方案包括:
一种地址解析协议ARP代理方法,该方法应用于ARP代理设备,包括:
接收第一ARP请求,若所述第一ARP请求的发送端IP地址和目标IP地址不同,则返回第一ARP请求的ARP应答,并检查第一主机和第二主机是否接入本设备的同一物理接口,所述第一主机为IP地址为所述发送端IP地址的主机,所述第二主机为IP地址为所述目标IP地址的主机;
若是,在经过第一设定时长T1后的第二设定时长T2内以T1为周期返回执行返回第一ARP请求的ARP应答的操作,所述T2为T1的正整数倍;
其中,所述ARP应答的发送端MAC地址为指定MAC地址,发送端IP地址为第二主机的IP地址,目标IP地址为第一主机的IP地址,目标MAC地址为第一主机的MAC地址。
一种地址解析协议ARP代理装置,该装置应用于ARP代理设备,包括:
接收单元,用于接收第一ARP请求;
代理单元,用于在所述第一ARP请求的发送端IP地址和目标IP地址不同,则返回第一ARP请求的ARP应答,并检查第一主机和第二主机是否接入本设备的同一物理接口,所述第一主机为IP地址为所述发送端IP地址的主机,所述第二主机为IP地址为所述目标IP地址的主机;
若是,在经过第一设定时长T1后的第二设定时长T2内以T1为周期返回执行返回第一ARP请求的ARP应答的操作,所述T2为T1的正整数倍;
其中,所述ARP应答的发送端MAC地址为指定MAC地址,发送端IP地址为第二主机的IP地址,目标IP地址为第一主机的IP地址,目标MAC地址为第一主机的MAC地址。
由以上技术方案可以看出,本申请中,即使第一主机与第二主机接入本设备的同一物理接口,则通过在经过第一设定时长T1后的第二设定时长T2内以T1为周期执行所述向第一主机返回ARP应答的操作,最终能够保证第一主机学习到的第二主机的ARP表项中的MAC地址为指定MAC地址,实现了主机ARP表项的统一管理,并且,由于第一主机学习到的第二主机的ARP表项中的MAC地址为指定MAC地址,意味着后续第一主机对第二主机的网络访问是经过指定MAC地址(比如网关的MAC地址)对应的网络设备比如网关进行转发的,这样,即使后续第二主机迁移,也不影响第一主机对第二主机的网络访问。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请提供的方法流程图;
图2为本申请提供的应用组网示意图;
图3为本申请提供的另一应用组网示意图;
图4为本申请提供的实施例示意图;
图5为本申请提供的装置结构示意图;
图6为本申请提供的图5所示装置的硬件结构图。
具体实施方式
参见图1,图1为本申请提供的方法流程图。该流程应用于ARP代理设备。作为一个实施例,这里的ARP代理设备可为网关,也可为独立于网关的网络设备。其中,若ARP代理设备为独立于网关的网络设备,则在本申请中,ARP代理设备可连接在主机侧和网关之间。
如图1所示,该流程可包括以下步骤:
步骤101,ARP代理设备接收第一ARP请求,若所述第一ARP请求的发送端IP地址和目标IP地址不同,则执行步骤102。
在本申请中,第一ARP请求是为便于描述而进行的命名,并非用于限定。
当ARP代理设备识别出所述第一ARP请求的发送端(Sender)IP地址和目标(Target)IP地址不同,则认为第一ARP请求是基于主机访问时触发的ARP请求。假如以发送端IP地址为第一主机的IP地址,目标IP地址为第二主机的IP地址为例,也即,第一ARP请求是第一主机访问第二主机时因本地不存在第二主机的ARP表项而发起的。这里,第一主机、第二主机只是为便于区分而进行的命名,并非用于限定。
如上描述,第一ARP请求是第一主机访问第二主机时因本地不存在第二主机的ARP表项而发起的,则第一ARP请求的发送端IP地址为第一主机IP地址,目标IP地址为第二主机的IP地址,表1具体示出了第一ARP请求的各地址:
表1
步骤102,ARP代理设备返回第一ARP请求的ARP应答,并检查第一主机和第二主机是否接入本设备的同一物理接口,若是,执行步骤103。
这里,所述ARP应答的发送端MAC地址为指定MAC地址,表2示出了ARP应答的各地址:
表2
可以看出,本步骤102中,ARP应答的发送端MAC地址为指定MAC地址,能够使第一主机学习到的第二主机的ARP表项中的MAC地址为指定MAC地址,实现第一主机后续对第二主机的网络访问是经过指定MAC地址对应的网络设备比如网关进行转发的。作为一个实施例,这里的指定MAC地址可为网关的MAC地址。
步骤103,ARP代理设备在经过第一设定时长T1后的第二设定时长T2内以T1为周期返回执行步骤102中返回ARP应答的操作,所述T2为T1的正整数倍。
本步骤103是ARP代理设备在检查出第一主机与第二主机接入本设备同一物理接口的前提下执行的。其中,ARP代理设备在检查出第一主机与第二主机接入本设备的同一物理接口时,之所以执行经过第一设定时长T1后的第二设定时长T2内以T1为周期返回执行步骤102中返回ARP应答的操作,其原因是:第一主机学习的第二主机的ARP表项是依赖于最后收到的针对第一ARP请求的ARP应答,若ARP代理设备仅向第一主机返回一次ARP应答,并不能保证本ARP代理设备返回的ARP应答迟于第二主机返回的ARP应答到达第一主机,为保证第一主机最后收到的针对第一ARP请求的ARP应答是来自ARP代理设备,则ARP代理设备还需要在经过第一设定时长T1后的第二设定时长T2内以T1为周期返回执行步骤102中返回ARP应答的操作,以最终保证第一主机最终学习的第二主机的ARP表项是依赖于最后收到的本ARP代理设备针对第一ARP请求返回的ARP应答学习的。作为一个实施例,上述的T1、T2可根据实际组网情况设置,本申请并不具体限定。
至此,完成图1所示的流程。
通过图1所示流程可以看出,在本申请中,即使第一主机与第二主机接入至本设备的同一物理接口,则通过在经过第一设定时长T1后的第二设定时长T2内以T1为周期执行向第一主机返回ARP应答的操作,最终能够保证第一主机学习到的第二主机的ARP表项中的MAC地址为指定MAC地址,实现了主机ARP表项的统一管理,并且,由于第一主机学习到的第二主机的ARP表项中的MAC地址为指定MAC地址,意味着后续第一主机对第二主机的网络访问是经过指定MAC地址(比如网关的MAC地址)对应的网络设备比如网关进行转发的,这样,即使后续第二主机迁移,也不影响第一主机对第二主机的网络访问。
在应用中,组网中任一主机在上线时都会向网关发送一个上线报文。上线报文的源IP地址为该上线的主机的IP地址,源MAC地址为该上线的主机的MAC地址。当ARP代理设备收到任一主机发送的上线报文时会学习该主机的ARP表项。其中,学习的ARP表项中的IP地址为上线报文的源IP地址,MAC地址为上线报文的源MAC地址,出端口为收到上线报文的物理端口。
基于此,上述步骤102中,ARP代理设备检查第一主机和第二主机是否接入本设备的同一物理接口包括:在本设备已学习的ARP表项中分别找到第一主机的ARP表项、第二主机的ARP表项,比较第一主机的ARP表项与第二主机的ARP表项中的出端口,若第一主机的ARP表项中的出端口与第二主机的ARP表项中的出端口均为本设备的同一个物理接口,则确定所述第一主机与所述第二主机接入本设备的同一物理接口。
图2示出了第一主机与第二主机接入ARP代理设备同一物理接口的组网示意图。第一主机与第二主机接入ARP代理设备的同一物理接口,意味着第一主机与第二主机之间可以直接交互,比如第二主机会收到第一主机发送的第一ARP请求,第一主机会收到第二主机返回的针对第一ARP请求的ARP应答。针对此种情况,为统一管理主机ARP表项,也防止因为主机迁移而影响主机之间的网络访问,则本申请中,ARP代理设备在执行一次步骤102返回针对第一ARP请求的ARP应答后,还会继续执行步骤103中在经过第一设定时长T1后的第二设定时长T2内以T1为周期返回执行步骤102中返回ARP应答的操作,以保证第一主机最后收到的针对第一ARP请求的ARP应答是来自于ARP代理设备,使得第一主机学习到的所述第二主机的ARP表项中的MAC地址为指定MAC地址,实现了即使第一主机与第二主机下挂在本设备的同一物理接口下,也统一控制第一主机学习到的第二主机的ARP表项中的MAC地址为指定MAC地址,实现了主机ARP表项的统一管理,并且,由于第一主机学习到的第二主机的ARP表项中的MAC地址为指定MAC地址,意味着后续第一主机对第二主机的网络访问是经过指定MAC地址(比如网关的MAC地址)对应的网络设备比如网关进行转发的,这样,即使后续第二主机迁移,也不影响第一主机对第二主机的网络访问。
作为一个实施例,若ARP代理设备检查出第一主机与第二主机接入本设备的不同物理接口,这里,第一主机与第二主机接入ARP代理设备的不同物理接口,则意味着第一主机与第二主机之间相互隔离,不能直接交互,只有经过指定MAC地址对应的网络设备比如网关转发也可进行交互。图3示出了第一主机与第二主机接入ARP代理设备的不同物理接口的组网示意图。此种情况下,上述步骤102可直接结束针对第一ARP请求的处理流程,原因是:第一主机与第二主机接入ARP代理设备的不同物理接口时,第二主机是不会收到第一主机发送的ARP请求的,进而,第二主机也不会向第一主机返回ARP应答,因此,只执行一次步骤102中向第一主机返回的ARP应答即可。
下面以图4所示的组网为例对图1所示流程进行描述。在图4中,ARP代理设备1_1的物理端口Port1_1下挂了Host1至Host4共4个主机。假如Host1在访问Host2时,若Host1本地不存在Host2的ARP表项,则Host1会在组网中广播ARP请求。表3示出ARP请求的各地址:
表3
按照图1所示流程,则当ARP代理设备1_1通过Port1_1收到ARP请求时,单播返回ARP应答给Host1。表4示出了ARP应答的各地址:
表4
并且,ARP代理设备1_1基于ARP请求的发送端IP地址找到Host1的ARP表项(记为ARP表项1_1),基于ARP请求的目标IP地址找到Host2的ARP表项(记为ARP表项1_2),比较ARP表项1_1与ARP表项1_2的出端口,结果发现ARP表项1_1与ARP表项1_2的出端口均为本ARP代理设备1_1的同一物理端口Port1_1,认为Host1与Host2接入本设备的同一物理接口即Port1_1,则在经过第一设定时长T1后的第二设定时长T2内以T1为周期执行所述向Host1单播返回ARP应答的操作。如上描述,Host1与Host2接入本设备的同一物理接口即Port1_1,Host2也会收到Host1广播的ARP请求,当Host2收到Host1广播的ARP请求,则会向Host1单播返回一个ARP应答。但因为ARP代理设备1_1在经过第一设定时长T1后的第二设定时长T2内以T1为周期执行向Host1返回ARP应答,而Host2仅向Host1返回一次ARP应答,最终Host1收到的最后一个ARP应答是来自ARP代理设备1_1,而非Host2,如此,Host1学习到的Host2的ARP表项中的MAC地址为网关的MAC地址,实现了即使Host1与Host2接入ARP代理设备1_1的同一物理接口即Port1_1,也统一控制Host1学习到的Host2的ARP表项中的MAC地址为指定MAC地址,实现了主机ARP表项的统一管理,并且,由于Host1学习到的Host2的ARP表项中的MAC地址为指定MAC地址,意味着后续Host1对Host2的网络访问是经过指定MAC地址(比如网关的MAC地址)对应的网络设备比如网关进行转发的,这样,即使后续Host2迁移,也不影响Host1对Host2的网络访问。
在本申请中,ARP代理设备收到第一ARP请求的物理接口下的第二主机以及其他主机均会收到来自第一主机的第一ARP请求,当收到来自第一主机的第一ARP请求时,会依据收到的来自第一主机的第一ARP请求学习第一主机的ARP表项,学习的ARP表项中的MAC地址为第一主机的MAC地址,为避免在学习到第一主机的ARP表项后发生迁移而导致依据该学习的ARP表项无法访问第一主机,在本申请中,ARP代理设备还会进一步执行以下步骤:
步骤a1,通过本设备收到所述第一ARP请求的物理接口发送免费ARP请求。这里的免费ARP请求记为第二ARP请求,第二ARP请求的各地址如表5所示:
表5
如表5所示,第二ARP请求的发送端MAC地址为指定MAC地址,使得所述物理接口下挂的其他主机学习的所述第一主机的ARP表项中的MAC地址为指定MAC地址。通过步骤a1,能够实现ARP代理设备收到第一ARP请求的物理接口下的第二主机以及其他主机学习的第一主机的ARP表项中的MAC地址为指定MAC地址,这样,即使第二主机或其他主机发生迁移也会依据该学习的第一主机的ARP表项通过指定MAC地址对应的网络设备比如网关而正常访问第一主机。仍以图4所示的组网为例对步骤a1进行描述。在图4中,Host1会在组网中广播ARP请求(上述的第一ARP请求)。ARP请求的地址如表3所示。则当ARP代理设备1_1通过Port1_1收到ARP请求时,按照步骤a1的描述,通过Port1_1发送免费ARP请求(上述的第二ARP请求)。该免费ARP请求的各地址在表6示出:
表6
当Port1_1下挂的主机Host2至Host4收到免费ARP请求时,学习免费ARP请求的发送端IP地址对应的ARP表项(即Host1的ARP表项)中的MAC地址为指定MAC地址。这样,即使Host2至Host4在学习表项后发生迁移,因为学习的Host1的ARP表项中的MAC地址为指定MAC地址,也会通过指定MAC地址对应的网络设备比如网关而正常访问Host1。
以上是基于第一ARP请求的发送端IP地址和目标IP地址不同进行描述的;而若第一ARP请求的发送端IP地址和目标IP地址相同,则意味着第一ARP请求是第一主机在指定条件比如检查IP地址冲突或者IP地址更新时发送的,此时第一ARP请求为免费ARP请求。表7具体示出了第一ARP请求为免费ARP请求时的各地址:
表7
上述步骤101中,若识别出第一ARP请求的发送端IP地址和目标IP地址相同,均为第一主机的IP地址,此时ARP代理设备进一步执行以下步骤b1:
步骤b1,通过接收到第一ARP请求的物理接口发送免费ARP请求(记为第三ARP请求)。第三ARP请求的各地址具体参见表5,其中,第三ARP请求的发送端IP地址和目标IP地址为第一主机的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。
通过步骤b1,能够实现ARP代理设备收到第一ARP请求的物理接口下的其他主机学习的第一主机的ARP表项中的MAC地址为指定MAC地址,这样,即使其他主机发生迁移也会依据该学习的第一主机的ARP表项通过指定MAC地址对应的网络设备比如网关而正常访问第一主机。仍以图4所示的组网为例对步骤b1进行描述。假如Host1在组网中广播免费ARP请求。该免费ARP请求的发送端IP地址和目标IP地址为Host1的IP地址,发送端MAC地址为Host1的MAC地址,具体参见表8:
表8
当ARP代理设备1_1通过Port1_1收到免费ARP请求时,按照步骤b1的描述,ARP代理设备1_1会通过Port1_1发送一个新的免费ARP请求(即上述的第三ARP请求)。该发送的免费ARP请求的地址参见表6,其发送端IP地址和目标IP地址为第一主机的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。当Port1_1下挂的主机Host2至Host4收到ARP代理设备1_1发送的免费ARP请求时,学习该免费ARP请求的发送端IP地址对应的ARP表项(即Host1的ARP表项),Host1的ARP表项中的MAC地址为指定MAC地址。这样,即使Host2至Host4在学习表项后发生迁移,因为学习的Host1的ARP表项中的MAC地址为指定MAC地址,也会通过指定MAC地址对应的网络设备比如网关而正常访问Host1。
应用于主机迁移场景中,会出现以下情况:
第一主机发送的第一ARP请求(假如第一ARP请求的发送端IP地址和目标IP地址不同)先到达与第一主机接入ARP代理设备同一物理接口的主机(仍以第二主机为例),ARP代理设备按照步骤a1发送的第二ARP请求(代替第一主机发送的免费ARP请求)还未到达第二主机但第二主机已迁移的情况。此情况下,第二主机学习的第一主机的ARP表项中的IP地址为第一主机的IP地址,MAC地址为第一主机的MAC地址。比如图4所示的组网中,Host1在访问Host2时,若Host1本地不存在Host2的ARP表项,则可能会出现:Host1在组网中广播的ARP请求先到达Host2,但ARP代理设备1_1按照步骤a1发送的Host1的免费ARP请求还未到达Host2而Host2已发生迁移的情况。如此,Host2学习的Host1的ARP表项中的IP地址为Host1的IP地址,MAC地址为Host1的MAC地址。在Host2与Host1均下挂至ARP代理设备1_1的同一物理端口Port1_1时,Host2依据学习的该Host1的ARP表项可以访问Host1,但若Host2发生了迁移,则Host2依据学习的该Host1的ARP表项是无法访问Host1的,无法实现Host2与Host1之间的网络访问。
针对上述情况,则ARP代理设备做出以下三种处理方式:
方式1),若第二主机迁移后仍是下挂至本ARP代理设备,这意味着第二主机从本ARP代理设备的一个物理端口(记为第一物理端口即第二主机接入的物理端口)迁移至另一物理接口(记为第二物理端口),则依据第一物理接口下挂的其他每一主机的ARP表项生成免费ARP请求并通过所述第二物理接口发送。生成的免费ARP请求的发送端IP地址和目标IP地址为所依据的ARP表项中的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0,以太源MAC地址为ARP代理设备的MAC地址,以太目的MAC地址为广播地址,以使得第二主机学习的第一物理接口下各主机的ARP表项中的MAC地址为指定MAC地址。比如图4所示的组网中,Host1至Host4下挂至ARP代理设备1_1的同一物理端口Port1_1,假如Host1在组网中因访问Host2而触发发送的ARP请求先到达Host2,但ARP代理设备1_1按照步骤a1发送的Host1的免费ARP请求还未到达Host2而Host2已从ARP代理设备1_1的Port1_1向Port1_2迁移,则Host2学习的Host1的ARP表项中的IP地址为Host1的IP地址,MAC地址为Host1的MAC地址,ARP代理设备1_1在Host2迁移至Port1_2时,依据Host1(与Host2在迁移之前下挂同一物理端口Port1_1)的ARP表项生成Host1的免费ARP请求并通过Port1_2发送。Host1的免费ARP请求的各地址参见表6,其发送端IP地址和目标IP地址为Host1的ARP表项中的IP地址(Host1的IP地址),发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0,如此,当Host2收到ARP代理设备1_1发送的Host1的免费ARP请求时,会将之前学习的Host1的ARP表项中的MAC地址由Host1的MAC地址修改为指定MAC地址,这样,即使Host2发生了迁移,Host2依据学习的该Host1的ARP表项将网络访问转发给指定MAC地址对应的网络设备转发,实现Host2与Host1之间的网络访问。类似地,因为Host3、Host4在Host2之前也与Host2下挂至ARP代理设备1_1的同一物理端口Port1_1,ARP代理设备1_1还会依据Host3的ARP表项生成Host3的免费ARP请求通过Port1_2发送,依据Host4的ARP表项生成Host4的免费ARP请求通过Port1_2发送。Host3的免费ARP请求的发送端IP地址和目标IP地址为Host3的ARP表项中的IP地址(实质为Host3的IP地址),发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0;Host4的免费ARP请求的发送端IP地址和目标IP地址为Host4的ARP表项中的IP地址(实质为Host4的IP地址),发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。如此,当Host2收到ARP代理设备1_1发送的Host3或Host4的免费ARP请求时,假如之前学习的Host3或Host4的ARP表项中的MAC地址为指定MAC地址,则维持不变,而假如之前学习的Host3或Host4的ARP表项中的MAC地址不为指定MAC地址,则会修改为指定MAC地址,以防止即使Host2发生了迁移,Host2依据学习的该Host3或Host3的ARP表项将网络访问转发给指定MAC地址对应的网络设备转发,实现Host2与Host3、Host4之间的网络访问。
方式2),若第二主机迁移后并不下挂在本ARP代理设备,而是下挂至相邻的邻居ARP代理设备,则ARP代理设备在检测到第二主机迁出时,将与第二主机迁移之前接入同一物理端口的其他主机的ARP表项在组网中发布,当邻居ARP代理设备检测到第二主机迁入时,基于接收的ARP表项生成免费ARP请求并通过接入第二主机的物理端口发送。比如图4所示的组网中,Host1至Host4下挂至ARP代理设备的同一物理端口Port1_1,假如Host1在组网中因访问Host2而触发发送的ARP请求先到达Host2,但ARP代理设备按照步骤a1发送的Host1的免费ARP请求还未到达Host2而Host2已从图4所示的ARP代理设备1_1迁移至ARP代理设备1_2,则Host2学习的Host1的ARP表项中的IP地址为Host1的IP地址,MAC地址为Host1的MAC地址,ARP代理设备1_1在Host2迁出时发布Port1_1接入的除Host2之外的各主机即Host1、Host3、Host4的ARP表项。ARP代理设备1_2会收到ARP代理设备1_1发布的ARP表项,在检测到Host2迁入至本设备时,以收到Host1的ARP表项为例,则ARP代理设备1_2依据已收到的Host1的ARP表项的生成Host1的免费ARP请求并通过本设备接入Host2的物理端口Port2_1发送。Host1的免费ARP请求的各地址参见表6。当Host2收到ARP代理设备1_2发送的Host1的免费ARP请求时,会将之前学习的Host1的ARP表项中的MAC地址由Host1的MAC地址修改为指定MAC地址,这样,即使Host2发生了迁移,Host2依据学习的该Host1的ARP表项将网络访问转发给指定MAC地址对应的网络设备转发,实现Host2与Host1之间的网络访问。类似地,ARP代理设备1_2也会收到Host3、Host4的ARP表项,ARP代理设备1_2也会依据Host3的ARP表项生成Host3的免费ARP请求通过Port2_1发送,依据Host4的ARP表项生成Host4的免费ARP请求通过Port2_1发送。Host3的免费ARP请求的发送端IP地址和目标IP地址为Host3的ARP表项中的IP地址(实质为Host3的IP地址),发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0;Host4的免费ARP请求的发送端IP地址和目标IP地址为Host4的ARP表项中的IP地址(实质为Host4的IP地址),发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。如此,当Host2收到ARP代理设备发送的Host3或Host4的免费ARP请求时,假如之前学习的Host3或Host4的ARP表项中的MAC地址为指定MAC地址,则维持不变,而假如之前学习的Host3或Host4的ARP表项中的MAC地址不为指定MAC地址,则会修改为指定MAC地址,以防止即使Host2发生了迁移,Host2依据学习的该Host3或Host3的ARP表项将网络访问转发给指定MAC地址对应的网络设备转发,实现Host2与Host3、Host4之间的网络访问。
方式3),在本申请中,若第二主机迁移后并不下挂在本ARP代理设备,而是下挂至相邻的邻居ARP代理设备,则本方式3下,也可不执行方式2中在第二主机迁出时将与第二主机迁移之前接入同一物理端口的其他主机的ARP表项在组网中发布的步骤。如此,本方式3下,当邻居ARP代理设备检测到第二主机迁入至本设备时,从本地从已存储的ARP表项中找到第二主机迁移之前接入的ARP代理设备已同步的主机的ARP表项(该同步与第二主机迁出无关,依赖于预设的同步条件),从找到的主机ARP表项中排除第二主机的ARP表项,依据剩余的每一主机ARP表项生成免费ARP请求并通过接入第二主机的物理端口发送。生成的免费ARP请求的发送端IP地址和目标IP地址为所依据的ARP表项中的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。比如图4所示的组网中,Host1至Host4下挂至ARP代理设备的同一物理端口Port1_1,假如Host1在组网中因访问Host2而触发发送的ARP请求先到达Host2,但ARP代理设备按照步骤a1发送的Host1的免费ARP请求还未到达Host2而Host2已从图4所示的ARP代理设备1_1迁移至ARP代理设备1_2,则Host2学习的Host1的ARP表项中的IP地址为Host1的IP地址,MAC地址为Host1的MAC地址。ARP代理设备1_2在检测到Host2迁入至本设备时,从本地从已存储的ARP表项中找到ARP代理设备1_1之前已同步的主机ARP表项,从找到的主机ARP表项中排除Host2的ARP表项,依据剩余的每一主机ARP表项生成免费ARP请求并通过本设备下挂Host2的物理端口Port2_1发送。比如,依据Host1的ARP表项生成Host1的免费ARP请求并通过本设备下挂Host2的物理端口Port2_1发送,Host1的免费ARP请求的各地址参见表9:
表9
当Host2收到ARP代理设备发送的Host1的免费ARP请求时,会将之前学习的Host1的ARP表项中的MAC地址由Host1的MAC地址修改为指定MAC地址,这样,即使Host2发生了迁移,Host2依据学习的该Host1的ARP表项将网络访问转发给指定MAC地址对应的网络设备转发,实现Host2与Host1之间的网络访问。类似地,ARP代理设备1_2也会依据Host3的ARP表项生成Host3的免费ARP请求通过Port2_1发送,依据Host4的ARP表项生成Host4的免费ARP请求通过Port2_1发送,Host3的免费ARP请求、Host4的免费ARP请求类似Host1的免费ARP请求,不再赘述。当Host2收到ARP代理设备发送的Host3或Host4的免费ARP请求时,假如之前学习的Host3或Host4的ARP表项中的MAC地址为指定MAC地址,则维持不变,而假如之前学习的Host3或Host4的ARP表项中的MAC地址不为指定MAC地址,则会修改为指定MAC地址,以防止即使Host2发生了迁移,Host2依据学习的该Host3或Host3的ARP表项将网络访问转发给指定MAC地址对应的网络设备转发,实现Host2与Host3、Host4之间的网络访问。
以上描述的主机迁移场景以第一ARP请求的发送端IP地址和目标IP地址不同的情况,而第一ARP请求的发送端IP地址和目标IP地址相同时的处理方式也参考上述ARP代理设备做出的三种处理,这里不再赘述。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
参见图5,图5为本申请提供的装置结构图。该装置应用于ARP代理设备,包括:
接收单元,用于接收第一ARP请求;
代理单元,用于在所述第一ARP请求的发送端IP地址和目标IP地址不同,则返回第一ARP请求的ARP应答,并检查第一主机和第二主机是否接入本设备的同一物理接口,所述第一主机为IP地址为所述发送端IP地址的主机,所述第二主机为IP地址为所述目标IP地址的主机;
若是,在经过第一设定时长T1后的第二设定时长T2内以T1为周期返回执行返回第一ARP请求的ARP应答的操作,所述T2为T1的正整数倍;
其中,所述ARP应答的发送端MAC地址为指定MAC地址,发送端IP地址为第二主机的IP地址,目标IP地址为第一主机的IP地址,目标MAC地址为第一主机的MAC地址。
作为一个实施例,所述代理单元进一步通过接收到所述第一ARP请求的物理接口发送第二ARP请求;
所述第二ARP请求的发送端IP地址和目标IP地址为第一主机的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。
作为一个实施例,若所述代理单元确定出所述第一ARP请求的发送端IP地址和目标IP地址相同,则进一步通过接收到所述第一ARP请求的物理接口发送第三ARP请求,第三ARP请求的发送端IP地址和目标IP地址为第一主机的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。
作为一个实施例,所述代理单元进一步当检测到所述第二主机从本设备的第一物理接口迁移至本设备的第二物理接口时,进一步依据所述第一物理接口下挂的其他每一主机的ARP表项生成免费ARP请求并通过所述第二物理接口发送,生成的免费ARP请求的发送端IP地址和目标IP地址为所依据的ARP表项中的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。
作为一个实施例,所述代理单元进一步当检测到邻居ARP代理设备下挂的第三主机迁移至本设备的第三物理接口时,从已存储的ARP表项中找到所述邻居ARP代理设备发送的目标主机ARP表项;所述目标主机ARP表项为所述邻居ARP代理设备发送的除第三主机的ARP表项之外的主机ARP表项,或者为所述邻居ARP代理设备发送的与所述第三主机迁移前接入同一物理接口的其他主机的ARP表项;
依据找到的每一目标主机ARP表项生成免费ARP请求并通过所述第三物理接口发送,生成的免费ARP请求的发送端IP地址和目标IP地址为所依据的目标主机ARP表项中的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。
至此,完成图5所示装置的结构描述。
相应地,本申请还提供了对应图5所示装置的硬件结构图。如图6所示,其可包括:机器可读存储介质、处理器;机器可读存储介质、处理器可经由系统总线通信。
其中,机器可读存储介质,用于存储上述接收单元、代理单元所执行的操作对应的机器可执行指令;
处理器,用于加载并执行机器可执行指令,以实现上述的ARP代理方法。
作为一个实施例,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
至此,完成图6所示的硬件结构描述。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (11)
1.一种地址解析协议ARP代理方法,其特征在于,该方法应用于ARP代理设备,包括:
接收第一ARP请求,若所述第一ARP请求的发送端IP地址和目标IP地址不同,则返回第一ARP请求的ARP应答,并检查第一主机和第二主机是否接入本设备的同一物理接口,所述第一主机为IP地址为所述发送端IP地址的主机,所述第二主机为IP地址为所述目标IP地址的主机;
若是,在经过第一设定时长T1后的第二设定时长T2内以T1为周期返回执行返回第一ARP请求的ARP应答的操作,所述T2为T1的正整数倍;
其中,所述ARP应答的发送端MAC地址为指定MAC地址,发送端IP地址为第二主机的IP地址,目标IP地址为第一主机的IP地址,目标MAC地址为第一主机的MAC地址。
2.根据权利要求1所述的方法,其特征在于,所述检查第一主机和第二主机是否接入本设备的同一物理接口包括:
在本设备已学习的ARP表项中分别找到第一主机的ARP表项、第二主机的ARP表项;
比较第一主机的ARP表项与第二主机的ARP表项中的出端口;
若第一主机的ARP表项中的出端口与第二主机的ARP表项中的出端口均为本设备的同一个物理接口,则确定所述第一主机与所述第二主机接入本设备的同一物理接口。
3.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
通过接收到所述第一ARP请求的物理接口发送第二ARP请求;
所述第二ARP请求的发送端IP地址和目标IP地址为第一主机的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。
4.根据权利要求1所述的方法,其特征在于,若所述第一ARP请求的发送端IP地址和目标IP地址相同,则该方法进一步包括:
通过接收到所述第一ARP请求的物理接口发送第三ARP请求,第三ARP请求的发送端IP地址和目标IP地址为第一主机的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。
5.根据权利要求1至4任一所述的方法,其特征在于,当检测到所述第二主机从本设备的第一物理接口迁移至本设备的第二物理接口时,该方法进一步包括:
依据所述第一物理接口下挂的其他每一主机的ARP表项生成免费ARP请求并通过所述第二物理接口发送,生成的免费ARP请求的发送端IP地址和目标IP地址为所依据的ARP表项中的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。
6.根据权利要求1至4任一所述的方法,其特征在于,当检测到邻居ARP代理设备下挂的第三主机迁移至本设备的第三物理接口时,该方法进一步包括:
从已存储的ARP表项中找到所述邻居ARP代理设备发送的目标主机ARP表项;所述目标主机ARP表项为所述邻居ARP代理设备发送的除第三主机的ARP表项之外的主机ARP表项,或者为所述邻居ARP代理设备发送的与所述第三主机迁移前接入同一物理接口的其他主机的ARP表项;
依据找到的每一目标主机ARP表项生成免费ARP请求并通过所述第三物理接口发送,生成的免费ARP请求的发送端IP地址和目标IP地址为所依据的目标主机ARP表项中的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。
7.一种地址解析协议ARP代理装置,其特征在于,该装置应用于ARP代理设备,包括:
接收单元,用于接收第一ARP请求;
代理单元,用于在所述第一ARP请求的发送端IP地址和目标IP地址不同,则返回第一ARP请求的ARP应答,并检查第一主机和第二主机是否接入本设备的同一物理接口,所述第一主机为IP地址为所述发送端IP地址的主机,所述第二主机为IP地址为所述目标IP地址的主机;
若是,在经过第一设定时长T1后的第二设定时长T2内以T1为周期返回执行返回第一ARP请求的ARP应答的操作,所述T2为T1的正整数倍;
其中,所述ARP应答的发送端MAC地址为指定MAC地址,发送端IP地址为第二主机的IP地址,目标IP地址为第一主机的IP地址,目标MAC地址为第一主机的MAC地址。
8.根据权利要求7所述的装置,其特征在于,所述代理单元进一步通过接收到所述第一ARP请求的物理接口发送第二ARP请求;
所述第二ARP请求的发送端IP地址和目标IP地址为第一主机的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。
9.根据权利要求7所述的装置,其特征在于,若所述代理单元确定出所述第一ARP请求的发送端IP地址和目标IP地址相同,则进一步通过接收到所述第一ARP请求的物理接口发送第三ARP请求,第三ARP请求的发送端IP地址和目标IP地址为第一主机的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。
10.根据权利要求7至9任一所述的装置,其特征在于,所述代理单元进一步当检测到所述第二主机从本设备的第一物理接口迁移至本设备的第二物理接口时,依据所述第一物理接口下挂的其他每一主机的ARP表项生成免费ARP请求并通过所述第二物理接口发送,生成的免费ARP请求的发送端IP地址和目标IP地址为所依据的ARP表项中的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。
11.根据权利要求7至9任一所述的装置,其特征在于,所述代理单元进一步当检测到邻居ARP代理设备下挂的第三主机迁移至本设备的第三物理接口时,从已存储的ARP表项中找到所述邻居ARP代理设备发送的目标主机ARP表项;所述目标主机ARP表项为所述邻居ARP代理设备发送的除第三主机的ARP表项之外的主机ARP表项,或者为所述邻居ARP代理设备发送的与所述第三主机迁移前接入同一物理接口的其他主机的ARP表项;
依据找到的每一目标主机ARP表项生成免费ARP请求并通过所述第三物理接口发送,生成的免费ARP请求的发送端IP地址和目标IP地址为所依据的目标主机ARP表项中的IP地址,发送端MAC地址为指定MAC地址,目标MAC地址为全F或全0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710451644.6A CN107547677B (zh) | 2017-06-15 | 2017-06-15 | Arp代理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710451644.6A CN107547677B (zh) | 2017-06-15 | 2017-06-15 | Arp代理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107547677A CN107547677A (zh) | 2018-01-05 |
CN107547677B true CN107547677B (zh) | 2020-09-08 |
Family
ID=60970813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710451644.6A Active CN107547677B (zh) | 2017-06-15 | 2017-06-15 | Arp代理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107547677B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11394684B1 (en) * | 2021-05-29 | 2022-07-19 | Dell Products L.P. | Address discovery system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783874A (zh) * | 2004-12-01 | 2006-06-07 | 华为技术有限公司 | 网络设备中地址解析协议高速缓存表项的老化方法 |
US7095746B1 (en) * | 2000-06-14 | 2006-08-22 | Arris International, Inc. | Method and apparatus for sub-network devices without direct layer-2 communication and coupled to a common forwarding agent interface to communicate through layer-3 |
CN101594375A (zh) * | 2008-05-30 | 2009-12-02 | 华为技术有限公司 | Arp代理的方法及arp代理设备 |
CN102158407A (zh) * | 2011-03-31 | 2011-08-17 | 华为技术有限公司 | 一种配置地址解析协议arp表项的方法和装置 |
CN102594943A (zh) * | 2012-03-19 | 2012-07-18 | 杭州华三通信技术有限公司 | 用于实现arp侦听的方法和装置 |
CN105530187A (zh) * | 2015-12-14 | 2016-04-27 | 小米科技有限责任公司 | 物理地址获取方法及装置 |
-
2017
- 2017-06-15 CN CN201710451644.6A patent/CN107547677B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7095746B1 (en) * | 2000-06-14 | 2006-08-22 | Arris International, Inc. | Method and apparatus for sub-network devices without direct layer-2 communication and coupled to a common forwarding agent interface to communicate through layer-3 |
CN1783874A (zh) * | 2004-12-01 | 2006-06-07 | 华为技术有限公司 | 网络设备中地址解析协议高速缓存表项的老化方法 |
CN101594375A (zh) * | 2008-05-30 | 2009-12-02 | 华为技术有限公司 | Arp代理的方法及arp代理设备 |
CN102158407A (zh) * | 2011-03-31 | 2011-08-17 | 华为技术有限公司 | 一种配置地址解析协议arp表项的方法和装置 |
CN102594943A (zh) * | 2012-03-19 | 2012-07-18 | 杭州华三通信技术有限公司 | 用于实现arp侦听的方法和装置 |
CN105530187A (zh) * | 2015-12-14 | 2016-04-27 | 小米科技有限责任公司 | 物理地址获取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107547677A (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10298538B2 (en) | Address resolution | |
US9413713B2 (en) | Detection of a misconfigured duplicate IP address in a distributed data center network fabric | |
EP3451592B1 (en) | Packet transmission between vxlan domains | |
EP2731010A1 (en) | Method, device, and system for migrating configuration information during live migration of virtual machine | |
CN111130981B (zh) | 一种mac地址的代理应答方法及装置 | |
US11196589B2 (en) | Forwarding entry generation | |
CN107547349B (zh) | 一种虚拟机迁移的方法及装置 | |
US20140064104A1 (en) | Host Detection by Top of Rack Switch Devices in Data Center Environments | |
CN107800625B (zh) | 一种报文转发方法及装置 | |
EP3694145B1 (en) | Method and device for sending messages | |
CN107094110B (zh) | 一种dhcp报文转发方法及装置 | |
US9203753B2 (en) | Traffic optimization using network address and port translation in a computer cluster | |
US10574570B2 (en) | Communication processing method and apparatus | |
CN110505621B (zh) | 一种终端迁移的处理方法及装置 | |
US11757766B2 (en) | Reflection route for link local packet processing | |
US10972384B2 (en) | Processing of data stream | |
WO2018019216A1 (zh) | Ap接入控制 | |
US20230283589A1 (en) | Synchronizing dynamic host configuration protocol snoop information | |
CN106716870B (zh) | 卫星设备处的本地分组交换 | |
WO2018171722A1 (zh) | Mac地址同步 | |
US10680930B2 (en) | Method and apparatus for communication in virtual network | |
CN107547677B (zh) | Arp代理方法和装置 | |
CN114172853A (zh) | 流量转发及裸机服务器的配置方法、装置 | |
WO2017219777A1 (zh) | 一种报文处理方法及装置 | |
CN108881024B (zh) | 一种组播流量转发方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |