ARP代理是ARP协议的一个变种。 对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的 ARP 请求会使用自己的 MAC 地址与目标计算机的 IP地址对源计算机进行应答。

一、前置条件

  • 计算机没有配置缺省网关
  • 实现通信的计算机在同一网络号中但是属于不同网段

1.1、ARP Proxy(代理)的过程

二、实验拓扑图

三、基本配置

PC1

IP地址:10.10.1.1/16

子网掩码:255.255.0.0

PC2

IP地址:10.10.2.1/16

子网掩码:255.255.0.0

AR1

[Huawei]sys AR1

[AR1]int g0/0/0

[AR1-GigabitEthernet0/0/0]ip addr 10.10.1.254 24

[AR1-GigabitEthernet0/0/0]int g0/0/1

[AR1-GigabitEthernet0/0/1]ip addr 10.10.2.254 24

显示AR1的mac地址

dis arp

四、测试

4.1、现在没有开启ARP代理

PC>ping 10.10.2.1

由上图可知,PC1与PC2链路不通。

在AR1的ge0/0/0接口抓包显示过程。

4.2、现在在AR1上开启ARP代理

在AR1上的两个接口g0/0/0和g0/0/1开启

[AR1]int g0/0/0

[AR1-GigabitEthernet0/0/0]arp-proxy enable

[AR1-GigabitEthernet0/0/0]q

[AR1]int g0/0/1

[AR1-GigabitEthernet0/0/1]arp-proxy enable

4.3、验证

在PC1上ping PC2

PC>ping 10.10.2.1

由上图知悉,PC1可以到达PC2.

在PC1上查看

PC>arp -a

由上图知悉,PC2所拥有的IP地址10.10.2.1对应的MAC地址是00E0-FCEB-491F。

在AR1上查看MAC地址表

dis arp

由上图知悉,PC1 ping PC2给PC1返回来的MAC地址是00E0-FCEB-491F,这个地址是PC1连接AR1的接口g0/0/0的MAC地址,并非PC2的MAC地址。

这样实现了路由器AR1接口MAC代理PC2的MAC功能,从而实现不同子网的互通。

4.3、现在我们用抓包的方式查看回包的情况

清除PC1的arp记录

PC1>arp -d

清除PC2的arp记录

PC2>arp -d

清除路由器AR1的arp缓存

reset arp all

然后用PC1去ping PC2

PC>ping 10.10.2.1

由上图抓包结果知悉,回复PC1的IP是10.10.2.1,但是MAC地址是路由器与PC1的接口g0/0/0的MAC地址(代理了PC2的MAC地址)。

然后再在PC1上ping 10.10.1.254

再用arp -a在PC1上查看arp表

由上图知悉,路由器AR1的接口g0/0/0与PC1相连的IP地址10.10.1.254和PC2的IP地址10.10.2.1对应的MAC地址相同,都是AR1的00-E0-FC-EB-49-1F。