问题描述:奇怪的广播 ARP 包和不存在的 ARP 表
电脑: MacBook Air M1
网络情况: 如下
我并没有使用 172.22.128.1 这个 IP, 也没有这个 MAC 地址, 我手动删除 arp 表这个记录仍然更新出来
Wireshark 抓包结果: 如下
有大量的 Who has xxx?Tell XXX
, 我看 Source 的 MAC 地址是 arp 表中不存在的那个 MAC 地址, 也就是说从我本机发出来的?我也不知道该如何找到哪个进程发送的
此外, 还有和我本机通信的 ARP 包
128.1 是你的网关。你的包都是通过它出去的。所以它的 MAC 回在你的 ARP 表里,这样你才能找到它。
ARP 协议里按照 IP 查询 MAC 的请求是群发的,所以同子网里任何一台机器查找另一台机器的 ARP 请求你都可以收到。这就是你机器里那一大堆 Broadcast 的 ARP 请求。
最后的那个“和你本机通信的 ARP”,你网关(128.1)在回应你的机器查找网关 MAC 的请求。你的所有的包必须通过网关,当网关的 MAC 不在本机 ARP 表里的时候,本机就会发请求查询(也是群发),网关收到后会回复(这个就不是群发了)。你看到的就是那个回复。