我在不受我控制的子网中运行 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
Run Code Online (Sandbox Code Playgroud)
对我来说,这看起来网关(即 192.168.14.1)对服务器发出的 ARP 请求没有响应。这样对吗?
我试图找到更多信息,特别是在iproute2
源代码中,但没有找到在哪种情况下它会写出 FAILED。但也许那是因为我不是 C 开发人员。
arp 缓存中的输出FAILED
表明您的服务器无法到达网关。您可以在 LAN 中对此进行测试,但对 LAN 中的任何 PC 执行 ping 操作,检查 arp 状态,断开 PC 的连接,然后检查 arp 状态。您将注意到状态从 REACHABLE 更改为 FAILED。ip neigh show
同样,如果您发送 icmp 请求,并且网关回复,则当您运行或命令时,网关的 MAC 地址将包含在输出中arp -a
。状态REACHABLE
一开始会是 ,但是如果连接出现问题,它可能会将状态更改为FAILED
。DELAY
您可能会注意到和的中间状态,PROBE
因为它在将其标记为失败之前尝试到达网关。
要确定原因,您需要ping
在子网中的多个主机上检查发生连接问题时的 arp 缓存状态。如果只有网关显示故障,而其他主机都正常,则问题出在您的服务器和网关之间。如果所有主机都显示为故障,则问题可能是服务器与交换机之间的连接问题,或者只是电缆问题。
归档时间: |
|
查看次数: |
23783 次 |
最近记录: |