ping 的特殊问题

ping 的特殊问题

我在 Ubuntu 14.04 上使用pingiputils-ping( )。3:20121221-4ubuntu1.1

当使用最初关闭但在 运行期间出现的host2.lanIP 对主机执行 ping 操作时,我在上线时看到此情况(在序列号 56 和 57 之间):192.168.1.20pinghost2.lan

From host1.lan (192.168.1.1) icmp_seq=49 Destination Host Unreachable
From host1.lan (192.168.1.1) icmp_seq=50 Destination Host Unreachable
From host1.lan (192.168.1.1) icmp_seq=51 Destination Host Unreachable
From host1.lan (192.168.1.1) icmp_seq=52 Destination Host Unreachable
From host1.lan (192.168.1.1) icmp_seq=53 Destination Host Unreachable
From host1.lan (192.168.1.1) icmp_seq=54 Destination Host Unreachable
From host1.lan (192.168.1.1) icmp_seq=55 Destination Host Unreachable
From host1.lan (192.168.1.1) icmp_seq=56 Destination Host Unreachable
64 bytes from host1.lan (192.168.1.1): icmp_seq=57 ttl=64 time=0.303 ms
64 bytes from host1.lan (192.168.1.1): icmp_seq=58 ttl=64 time=0.165 ms
64 bytes from host1.lan (192.168.1.1): icmp_seq=60 ttl=64 time=0.284 ms
64 bytes from host1.lan (192.168.1.1): icmp_seq=61 ttl=64 time=0.181 ms
64 bytes from host1.lan (192.168.1.1): icmp_seq=62 ttl=64 time=0.136 ms
64 bytes from host1.lan (192.168.1.1): icmp_seq=63 ttl=64 time=0.180 ms

host1.lan这是怎么回事?我是从这里收到回声host2.lan,还是只是显示host1.lan错误?


搜索引擎的描述:最初host2host1产量中进行 ping 离线操作,但一旦 host2 出现就Destination Host Unreachable切换到回显回复。host1

答案1

简化:

  1. 您的主机发送ARP“谁拥有”的请求host2.lan
  2. 当它没有收到任何响应时,它会向其网关发送一个“ echo-requestfor ”(大概);host2.lanhost1.lan
  3. 网关用 ; 回答host-unreachable
  4. host2.lan醒来时,它会回复请求,并在LAN 中所有计算机上的表ARP中注册;ARP
  5. 然后您的主机开始发送icmp-echo数据包host2.lan而不是将其发送到网关;
  6. 网关停止回复并将其仍在传输中的host-unreachable少数内容转发到(现在由 已知);icmp-echoARPhost2.lan
  7. 最后,host2.lan回复echo-reply

顺便说一句,这正是应该发生的事情。它无论如何都不是特定于 Linux 的。

答案2

我怀疑 ping 打印了错误的 IP 地址——我很确定它会打印数据包中的实际内容。我建议 tcpdump/wireshark 进一步调查。我想到的事情:

  • 防火墙 NAT 规则。在您要执行 ping 操作的机器上,您要执行 ping 操作的机器上,以及(特别是如果它是您和主机 2 之间的一跳!)主机 1 上。
  • DNS 混乱。您的 DNS 条目错误,并且您没有 ping 通您认为的内容。或者你的反向条目是错误的。
  • IP冲突(对方主机IP是否错误?)

根据时间戳猜测,它确实来自远程主机。这里 0.1 毫秒是通过 gig-e 的远程时间,0.02 毫秒是本地时间。

相关内容