ARP 缓存:`*` 的 `mask` 值代表什么?

ARP 缓存:`*` 的 `mask` 值代表什么?

/proc/net/arp在我的 Linux 机器上包含如下内容:

IP address       HW type     Flags       HW address            Mask     Device
10.1.0.70      0x1         0x2         a4:4d:aa:6b:f7:1a     *        eno1
10.1.0.1       0x1         0x2         bc:8f:aa:fb:aa:11     *        eno1

我查阅了手册(man arp)查看了请求函数并进行了一些网络搜索,但找不到*该列中的意思Mask。这是什么意思255.255.255.255

答案1

它确实是该缓存条目的网络掩码 - 但仅用于“已发布”(即“代理 ARP”)条目,内核将代表其他机器进行响应。您可以在阿普(8)该命令的手册页arp。普通(未发布)缓存条目没有掩码,并且始终列出*

此功能已在 Linux 2.1.79 中删除。从那时起,该列始终显示*,并且任何尝试创建具有不同于 255.255.255.255 的网络掩码的代理 ARP 条目的尝试都会被拒绝。

(请注意,许多与网络相关的 /proc 接口有些过时,并且可能缺少信息。当前工具(例如ip neighborip n))使用 Netlink 接口而不是 /proc 来检索邻居缓存。)

相关内容