假设一个简单的 IPv4 网络,其中所有机器都在同一个子网上并共享一个交换机。
如果 IP 移动到另一个 MAC,第 3 层客户端应该如何检测该更改?客户端会继续尝试旧 MAC 直到其 ARP 缓存超时,还是会做一些更聪明的事情?它依赖于操作系统/网络堆栈吗?
我正在处理一个 GARP 公告是由超车 MAC 发布的情况,但是一些当时没有连接的客户端错过了它。
假设一个简单的 IPv4 网络,其中所有机器都在同一个子网上并共享一个交换机。
如果 IP 移动到另一个 MAC,第 3 层客户端应该如何检测该更改?客户端会继续尝试旧 MAC 直到其 ARP 缓存超时,还是会做一些更聪明的事情?它依赖于操作系统/网络堆栈吗?
我正在处理一个 GARP 公告是由超车 MAC 发布的情况,但是一些当时没有连接的客户端错过了它。
只要 ARP 缓存条目有效,客户端就会使用它。多长时间取决于操作系统。在 Cisco 路由器上,它是 4 小时。在 Windows PC 上,它是一个介于 15 到 45 秒之间的随机值(真的!)。大多数 Linux 系统使用 60 秒。
如果一个新主机接管了一个 IP 地址,它应该用一个免费 ARP 来宣布它。
你说一些主机没有接它,因为它们没有连接,但这不是它的工作原理。如果这些主机没有连接,它们一开始就不应该有 ARP 表。因为他们根本没有该 IP 地址的任何条目,所以他们应该通过广播 ARP 查询来请求它(谁有 xxxx?告诉 yyyy)。