Welcome
admin
admin

2025-09-29 04:25:34

赛事资讯
8429 829

一、ARP请求无应答的原因

1.目的网络不存在。

2.arp请求传播时被路由器等一些设备隔离。

3.源主机和目的主机不在同一广播域。

二、抓包分析

原因1、2就不再解释了,下面分析原因3:源主机和目的主机不在同一广播域时arp请求无应答的抓包分析。

如下图所示的网络拓扑图

PC3:IP地址 192.168.26.3/24

PC4:IP地址 192.168.26.129/27

AR2:GE0/0/0接口 192.168.26.2/27

这里将PC3、PC4的网关设置为192.168.26.2(AR2的GE0/0/0接口)

经过上面的配置后发现,PC3和PC4是相互ping不通的。

各IP地址后24位二进制如下图:

1、当PC3 ping PC4时,PC3检查发现PC4的ip地址属于自己的一个网段,但PC3没有PC4的MAC地址所以发送目的地址为PC4的ARP广播请求,该广播到达PC4后PC4向PC3发送ARP单播应答告诉PC3我自己的MAC地址。

2、PC3得知PC4的MAC地址后发生ICMP请求报文给PC4。

3、PC4经计算发现PC3的ip地址不属于自己的一个网段,所以会将ICMP应答报文交给网关,所以会发生一个ARP广播请求来获取网关的MAC地址。经抓包发现网关并不会回应PC4发送的ARP广播请求。

所以互相ping不通的原因就出在PC4获取不到网关的MAC地址,导致PC3的ICMP报文无法发送。

回看PC4和网关的IP地址,掩码都是27位,但是它们互相不在对方的网段内,大致可以理解为PC3和网关处在不同的广播域,所以网关是无法接收到PC4发生的ARP请求广播的。

三、解决

经过上面的抓包分析可以得知,其实是网关的掩码配置错误导致无法接收到PC4的ARP请求广播,在不改变主机IP的情况下,只需要将网关所处的广播域包含了PC4的广播域即可解决问题。

查看PC4和网关的IP地址二进制表达式可知:

当网关的掩码≤24时,网关所处广播域就包含了PC4的广播域,这时PC4发送的ARP广播就会被网关接收。

网关掩码修改为24位:

PC3 ping PC4,路由器GE0/0/0接口抓包:

可以看到网关(192.168.26.2)向PC4(192.168.26.129)发送了ARP单播应答告诉PC4自己的MAC地址。

PC3 ping PC4:

PC4 ping PC3:

四、总结

当源主机和目的主机不在同一广播域时,只需将一方的广播域包含另一方的广播域即可。