/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 neighbor
(ip n
))使用 Netlink 接口而不是 /proc 来检索邻居缓存。)