![Linux:ip neigh show 显示“FAILED”。可能是什么原因造成的?](https://linux22.com/image/606085/Linux%EF%BC%9Aip%20neigh%20show%20%E6%98%BE%E7%A4%BA%E2%80%9CFAILED%E2%80%9D%E3%80%82%E5%8F%AF%E8%83%BD%E6%98%AF%E4%BB%80%E4%B9%88%E5%8E%9F%E5%9B%A0%E9%80%A0%E6%88%90%E7%9A%84%EF%BC%9F.png)
我在不受我控制的子网中运行 Linux 服务器。有时,服务器在几秒钟内无法从外部(互联网)访问。我正在尝试追踪原因,并开始查看输出ip neigh show
(使用 cron 作业定期写入文件)。
下次发生这种情况时,我查看了文件,上面写道:
fe80::1 dev eth0 lladdr 00:22:64:b6:10:5c router STALE
192.168.14.1 dev eth0 FAILED
对我来说,这看起来像是网关(即 192.168.14.1)没有响应服务器发出的 ARP 请求。这是正确的吗?
我试图寻找更多信息,特别是在iproute2
源代码中,但没有找到在什么情况下它会写出 FAILED。但也许是因为我不是 C 开发人员。
答案1
arp 缓存中的输出FAILED
表明您的服务器无法到达网关。您可以在 LAN 中对此进行测试,但 ping LAN 中的任何 PC,检查 arp 状态,断开 PC 的连接,然后检查 arp 状态。您会注意到状态从 REACHABLE 变为 FAILED。同样,如果您发送 icmp 请求,并且网关回复,则当您运行或命令时,网关的 MAC 地址将包含在输出中ip neigh show
。arp -a
状态REACHABLE
最初为,但如果连接存在问题,它可能会将状态更改为。您可能会注意到在将其标记为失败之前尝试到达网关时处于和FAILED
的中间状态。DELAY
PROBE
要确定原因,您需要ping
在子网中检查多个主机,并在出现连接问题时检查 arp 缓存状态。如果仅网关显示为失败,而其他主机正常,则问题出在您的服务器和网关之间。如果所有主机都显示为失败,则问题可能是您的服务器与交换机之间的连接,或者只是电缆问题。
答案2
这可能是您的系统、网关或连接本身的问题。您能访问该子网中的其他系统吗?如果它们可以访问而网关无法访问,则表明网关上重新加载了某些内容(由于防火墙/ tc 更新或其他原因)。也许交换机(例如 VLAN)的重新配置也会导致这种情况,但所有系统的连接都会受到影响。