目录
[1. 示例场景](#1. 示例场景)
[2. 基本配置](#2. 基本配置)
[3. 配置代码](#3. 配置代码)
[4. 测试验证](#4. 测试验证)
[5. 抓包分析](#5. 抓包分析)
[5.1 在代理ARP环境下PC1和PC2通信分析](#5.1 在代理ARP环境下PC1和PC2通信分析)
[5.2 取消代理ARP环境下PC1和PC2通信分析](#5.2 取消代理ARP环境下PC1和PC2通信分析)
[【1】取消R1路由器GE 0/0/1端口ARP代理](#【1】取消R1路由器GE 0/0/1端口ARP代理)
[【2】取消R2路由器GE 0/0/1端口ARP代理](#【2】取消R2路由器GE 0/0/1端口ARP代理)
1. 示例场景
如上图所示, PC1和PC2通过代理ARP进行通信。
2. 基本配置
PC也可以配置网关IP地址,因为PC1和PC2的IP地址都是192.168.1.0/24网段的IP地址,所以PC1和PC2认为它们处于同一局域网,通过发送ARP广播就能查找到对方,不会通过网关进行路由去查找对方。即便是配置好路由,PC1和PC2也无法通信。
<Huawei>system-view
[Huawei]sysname R1
[R1]interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.1.254 24
[R1-GigabitEthernet0/0/1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]ip address 12.0.0.1 30
[R1-GigabitEthernet0/0/0]quit
[R1]ip route-static 192.168.2.0 24 12.0.0.2
[R1]ip route-static 3.3.3.3 32 12.0.0.2
[R1-GigabitEthernet0/0/1]arp-proxy enable
<Huawei>system-view
[Huawei]sysname R2
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ip address 12.0.0.2 30
[R2-GigabitEthernet0/0/0]interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1]ip address 192.168.2.254 24
[R2]interface LoopBack 1
[R2-LoopBack1]ip address 3.3.3.3 32
[R2-LoopBack1]quit
[R2]ip route-static 192.168.1.0 24 12.0.0.1
[R2-GigabitEthernet0/0/1]arp-proxy enable
3. 配置代码
system-view
sysname R1
interface GigabitEthernet 0/0/0
ip address 12.0.0.1 30
interface GigabitEthernet 0/0/1
ip address 192.168.1.254 24
arp-proxy enable
quit
ip route-static 192.168.2.0 24 12.0.0.2
ip route-static 3.3.3.3 32 12.0.0.2
system-view
sysname R2
interface LoopBack 1
ip address 3.3.3.3 32
interface GigabitEthernet 0/0/0
ip address 12.0.0.2 30
interface GigabitEthernet 0/0/1
ip address 192.168.2.254 24
arp-proxy enable
quit
ip route-static 192.168.1.0 24 12.0.0.1
4. 测试验证
PC1和PC2通信正常。
5. 抓包分析
5.1 在代理ARP环境下PC1和PC2通信分析
PC1发送ARP请求:"谁是192.168.1.65?请告诉192.168.1.1"
R1的GE 0/0/1端口应答:"192.168.1.65在 00:e0:fc:06:24:04"
上图所示R1的GE 0/0/1端口MAC地址为 00e0-fc06-2404
在代理ARP环境下PC1和PC2通信过程为:
- PC1访问PC2,PC1判断PC2的IP地址和自己是同一网段;
- PC1发送ARP请求:"谁是192.168.1.65?请告诉192.168.1.1";
- 配置了代理ARP的R1路由器GE 0/0/1端口接收到PC1的ARP广播,查看自己的路由表是否有去往PC2所在网段的路由?
- 如果R1路由器的路由表有去往PC2所在网段的路由,则R1路由器GE 0/0/1端口用自己的MAC地址代替PC2的MAC地址进行应答,"192.168.1.65在 00:e0:fc:06:24:04",同时R1路由器GE 0/0/1端口和R2路由器GE 0/0/1端口以中间人的身份替PC1和 PC2进行"传话"通信;
- 如果R1路由器的路由表没有去往PC2所在网段的路由,则不应答。
上图为在R1上删除去往PC2所在网段路由后,PC1 ping PC2的截图, 没有应答。
[R1]undo ip route-static 192.168.1.64 27 12.0.0.2
5.2 取消代理ARP环境下PC1和PC2通信分析
【1】取消R1路由器GE 0/0/1端口ARP代理
[R1-GigabitEthernet0/0/1]undo arp-proxy enable
取消R1路由器GE 0/0/1端口ARP代理后,PC1访问PC2,PC1判断PC2的IP地址和自己是同一网段,PC1发送ARP请求:"谁是192.168.1.65?请告诉192.168.1.1",收不到应答,因为路由器R1隔离了ARP广播,而PC1所在局域网没有192.168.1.65 IP地址的终端,所以PC1访问不到PC2。
取消了R1路由器GE 0/0/1端口ARP代理,但没取消R2路由器GE 0/0/1端口ARP代理,PC2还能访问到PC1。
PC2访问PC1正常。因为R2路由器GE 0/0/1端口ARP代理,通信过程与"5.1 在代理ARP环境下PC1和PC2通信分析"小节一致。
【2】取消R2路由器GE 0/0/1端口ARP代理
同时取消R1路由器GE 0/0/1端口和R2路由器GE 0/0/1端口ARP代理,PC1访问不到PC2, PC2也访问不到PC1。原理与"【1】取消R1路由器GE 0/0/1端口ARP代理"小节一致。