据我所知,地址解析协议 (ARP) 有一个缓存表,它将 MAC 地址存储到相应的 IP 地址,直到该条目在一段时间内不再使用(超时)时被删除。
此超时取决于操作系统,在几秒到几小时之间变化。
我有一个路由器作为子网的网关,如果该路由器出现故障,我会插入另一个具有相同 IP 地址的路由器。大多数设备在几秒钟内就能识别出 IP 地址现在位于另一个可用的 MAC 地址上,但我有一个设备仍然试图通过不再可用的旧 MAC 地址进行通信。
我认为您不必等待几个小时(直到超时)才能与同一 IP 地址上的另一台设备进行通信,所以我想有一些机制可以让它更快地完成。
当我将 IP 地址从一台设备移动至另一台设备时,ARP 协议如何处理这种情况?
答案1
操作系统应该发送一个免费 ARP 消息当它检测到 IP 地址变化或(通常)当接口启动时。
在 Linux 系统上,您也可以使用该arping
实用程序自行发送一个。
答案2
动态ARP缓存超时通常只有大约2分钟我相信在大多数系统上。
此外,许多系统在启动、开始使用新 IP 地址或将给定 IP 地址热切换到其他 NIC(因此是新 MAC 地址)时,都会执行“免费 ARP”——未经请求的广播 ARP 公告。某些设备使用这些 ARP 公告(当它们收到这些公告时)来更新其 ARP 表。