![Ping:如何区分主机关闭和MTU太长?](https://linux22.com/image/729049/Ping%EF%BC%9A%E5%A6%82%E4%BD%95%E5%8C%BA%E5%88%86%E4%B8%BB%E6%9C%BA%E5%85%B3%E9%97%AD%E5%92%8CMTU%E5%A4%AA%E9%95%BF%EF%BC%9F.png)
我将 eth0 MTU 大小更改为 1550(使用:)并ifconfig eth0 mtu 1550
运行ping -c 1 -M do -s 1500 -w 5 {some other IP}
我看到的输出是,
--- xxxx ping 统计 --- 已发送 5 个数据包,已接收 0 个数据包,100% 数据包丢失,耗时 4001 毫秒
此处的失败是因为以太网仅支持 MTU 1500。现在,如果ping -c 1 -M do -s 1472 -w 5 {some other IP}
在“其他 IP”主机关闭的情况下运行,我会得到相同的输出。
我该如何找到原因0 received, 100% packet loss
?是因为 MTU 问题还是主机已关闭?
答案1
您可以traceroute --mtu <host>
在 Linux 系统上尝试。这将导致 traceroute 从 65000 字节巨型帧开始,并根据路径 MTU 发现减小其大小。
但是,虽然这可以指出网络中的 MTU 问题,但仍不能保证您可以确定主机是否已打开电源。例如,它可能会丢弃这些数据包而不是响应它们。它也可能无法告诉您同一链路上直接连接的主机是否存在 MTU 问题。