我有运行 4.14.7 内核的 Linux 设备。我的设备A通过1Gig端口直接连接到第三方设备(设备B)。 UDHCPD 服务器在 dev-A 上运行,它始终根据 DHCP 配置分配单个 IP 地址。
Dev-A 位于 172.16.xx,掩码为 255.255.0.0。
Dev-B 被分配了来自 Dev-A 上运行的 UDHCPD 的 172.16.100.1 和 255.255.255.0。
有时我会看到 Dev-B 的“arp”表显示“不完整”并且通信失败。此时我可以看到 Dev-B 从 UDHCPD 服务器获得了有效的租约。
$arp
? (172.16.100.1) at <incomplete> on br0
ping 将恢复与 Dev-B 的连接。如何在不发出“ping”的情况下解决此问题?
提前致谢。
答案1
当系统尚未获悉与特定 IP 地址关联的 MAC 地址时,就会出现“不完整”条目。
您可以使用 ARP 探针,其中设备向其自己的 IP 地址发送 ARP 请求,以检查该 IP 地址是否已在使用中。这有助于确保使用正确的 MAC 地址更新 ARP 缓存。
要在Linux上启用ARP Probe,可以使用以下命令(替换为网络接口的名称(eth0)):
ip neigh flush dev <interface> nud permanent
此命令将刷新 ARP 缓存并发送 ARP 探测来刷新条目。