同一networking上的节点不能间歇地ping通,如何排除故障?

我通过电线连接到交换机,交换机连接到另一台服务器S的路由器。通常,我可以ping S,但现在我得到以下错误:

$ ping 196.168.2.106 PING 196.168.2.106 (196.168.2.106) 56(84) bytes of data. From 173.167.59.141 icmp_seq=4 Destination Net Unreachable From 173.167.59.141 icmp_seq=19 Destination Net Unreachable From 173.167.59.141 icmp_seq=26 Destination Net Unreachable 

我的同事,连接到同一个交换机可以ping S,我可以ping我的同事的机器,并访问互联网。 我也可以ping另一个同事的机器连接到不同的交换机。 这个错误每几个星期就发生一次,我不知道为什么。 可能是什么问题,我该如何诊断呢?

这是我的/etc/resolv.conf:

 $ cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 192.168.2.1 

这是我的路由表:

 $ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default router.asus.com 0.0.0.0 UG 0 0 0 eth0 link-local * 255.255.0.0 U 1000 0 0 eth0 192.168.0.0 * 255.255.0.0 U 0 0 0 eth0 

服务器是否有一个静态的IP地址? – 特别仔细检查服务器和路由器上的networking掩码。

仔细检查networking掩码是一样的192.168.0.0通常是一个/ 24(255.255.255.0)networking,因为在你的路由你有它/ 16(255.255.0.0)不是一个理想的子网掩码有 – 显然取决于在你的设置上,但我猜你没有很多设备。

您可以使用tcpdump来帮助诊断问题。 使用它如下:

 tcpdump -i <INTERFACE> icmp and host <IPADDR> 

例如:

 tcpdump -i eth0 icmp and host 196.168.2.106 

(注意:tcpdump的语法可以在不同的发行版上有所不同,这对于CentOS是有效的。)

对于每台服务器,需要将主机(IP地址)设置为对端服务器。

检查看到的数据包:

  1. 离开你的服务器(tcpdump在你的系统上)
  2. 到达目标服务器(另一个系统上的tcdump)
  3. 答复离开目标服务器(另一个系统上的tcpdump)
  4. 答复到达你的服务器(你的系统上的tcpdump)

这将有助于确定它失败的地方。

如果你有权访问路由器,并且tcpdump可用,那么这也会有很大的帮助。