背景
今天遇到一个ping不通,但是对端能够收到arp的广播报文。什么原因造成的?
原因
ifconfig配置eth口的时候 未指定netmask,使用了默认的8
比如 ifconfig eth0 1.1.1.1
默认配置为1.1.1.1/8
当收到对端发来的ARP who has 1.1.1.1之后,虽然本端ifconfig看到有1.1.1.1的eth口,并未做出回应。
这导致了设备对IP地址网段判断出现偏差。本端设备虽然配置了该 IP 地址,但由于子网掩码配置不当,可能将对端 IP 地址误认为不在同一网段。设备在处理 ARP 请求时,通常会检查请求报文中的源 IP 地址与自身 IP 地址是否在同一网段等信息。如果本端设备根据错误的子网掩码判断出对端与自己不在同一网段,可能会按照其 ARP 响应机制,不发送 ARP 响应报文,从而使得对端无法获取本端的 MAC 地址,进而导致后续的 Ping 操作失败
解决办法
ifconfig配置的时候添加netmask或者用ip命令配置
# ifconfig命令
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0
# ip命令
ip addr add 192.168.1.100/24 dev eth0
687

被折叠的 条评论
为什么被折叠?



