我在不受我控制的子网中运行
Linux服务器.有时,无法从外部(Internet)访问服务器几秒钟.我正在尝试追踪原因并开始查看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开发人员.
解决方法
arp缓存中的Failed输出表示您的服务器无法访问网关.您可以在局域网中对此进行测试但是ping局域网中的任何PC,检查arp状态,断开PC,然后检查arp状态.您会注意到状态从REACHABLE变为Failed.同样,如果发送icmp请求,并且网关回复,则在运行ip neigh show或arp -a命令时,网关的MAC地址将包含在输出中.状态最初将是REACHABLE,但如果连接出现问题,则可能会将状态更改为Failed.您可能会注意到DELAY和PROBE的中间状态,因为它在将其标记为失败之前尝试访问网关.
要确定原因,您需要ping子网中的多个主机,并在发生连接问题时检查arp缓存状态.如果只有网关显示为失败,而其他主机正常,则问题出在服务器和网关之间.如果所有主机都显示为失败,则问题可能是服务器与交换机之间的连接,或者只是电缆问题.