Linux arp 表忽略网关 IP

Linux arp 表忽略网关 IP

首先我要说的是,我对网络还比较陌生,所以请原谅我的无知,并纠正我思维中的任何错误、我的知识差距或不正确的假设。

我正在尝试在 Linux 上设置静态 arp 缓存条目并使用 tcpdump/Wireshark 来监视流量,并注意到一些奇怪的事情。通常,当我为给定 IP 地址创建一个条目,然后 ping 该 IP 时,我看不到任何传出 ARP 请求,我预计这是因为 MAC 地址是从本地缓存确定的。

然而,对于网关的 IP 地址而言,情况并非如此。具体来说,当我为网关/路由器的 IP 地址创建 ARP 条目,然后加入网络时,我看到来自我的计算机的传出 arp 请求,询问网关的 MAC 地址。就像我的 ARP 缓存被忽略/绕过一样。为什么是这样?或者我不明白什么?

我用来创建 ARP 条目的命令是:

sudo arp -s 10.0.0.2 00:0c:29:c0:94:bf

我也尝试过

sudo ip n replace dev wlan0 to 10.0.0.2 lladdrr 00:0c:29:c0:94:bf

更新:我也在 OSX 上看到了这种行为。我用来创建新的 arp 条目的命令是:

sudo arp -S 10.0.0.2 00:0c:29:c0:94:bf ifscope en0

答案1

你需要

ip neigh replace dev wlan0 to 10.0.0.2 lladdrr 00:0c:29:c0:94:bf nud permanent

以便永久设置条目。

我无法重现你所描述的效果。

相关内容