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地址
<AR1>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地址表
<AR1>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缓存
<AR1>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。