局域网内 两台主机单向ping 通

问题:

在同一个局域网内的多台主机 ,主机A地址192.168.1.5  主机B地址192.168.1.6, 主机C地址192.168.1.7,主机D地址192.168.1.8 主机AB可以互相PING通,主机BC可以互相PING通,主机A可以PING通主机C,但是主机C不能PING通主机A。

原因:

主机A上面的ARP缓存表中的C主机IP解析的MAC地址错误(该MAC地址是D的MAC地址),

A可以PING通C主机的IP地址,是因为A其实PING到了局域网中的D主机,而不是PING到了A主机;

而C主机PING不通A主机,是因为C发给A的ICMP包,虽然A收到了,但是A主机却将ICMP的响应包发送给了D主机,所以C一直收不大ICMP的响应包,所以一直PING不同。

这个可以通过在A主机、B主机和D主机上都运行如下命令,看看解析的MAC地址

arp -a | grep 192.168.110.7

可以看到B主机和D主机解析的MAC地址都是C主机的MAC地址,但是A主机解析MAC地址却不是C的MAC地址。

至于是什么原因造成ARP解析错误,这个需要另外分析。

解决:

在A主机清空ARP缓存,

arp -n|awk '/^[1-9]/{system("arp -d "$1)}'

重新查看arp缓存表,查看是否正确解析C的IP地址

arp -a | grep 192.168.110.7

如果正确解析到C的MAC地址,说明解析正确,在C主机PING A主机应该就可以PING通了。

补充:

其他局域网内两台主机单项ping通原因,A主机可以PING通B主机,B主机不能PING通A主机。

原因1:A主机开启了防火墙,需要关闭防火墙。

原因2:B主机有多块网卡设置了同一个局域网的不同IP地址,导致PING命令不知道从那个网卡发送数据包。

猜你喜欢

转载自blog.csdn.net/abcdu1/article/details/108838999