当我们进行一些挖掘时,他们仍然从辅助路由器获得ARP条目.根据TechNet Blog,这是按设计:
First,a Windows Vista or Windows Server 2008 will not update the Neighbor cache if an ARP broadcast is received unless it is part of a broadcast ARP request for the receiver. What this means is that when a gratuitous ARP is sent on a network with Windows Vista and Widows Server 2008,these systems will not update their cache with incorrect information if there is an IP address conflict.
其次,如果机器无法再与当前位于其缓存中的计算机通信,则只会更新windows neighbor-cache(arp-cache).它不会发送偶尔的ARP请求以确保缓存不是陈旧的.虽然这在初始故障转移期间不是问题,但在两个盒子都处于活动状态时的故障恢复期间,这会导致窗口继续与辅助盒子通话.
有没有办法迫使Windows 2008接受Gratuitous ARP请求?
我使用arping和未修补的Windows 2008 R2对此进行了测试.我将辅助IP 64.34.119.80添加到具有相同网络L2段的计算机.然后我从不同的机器网络发出以下命令(sudo arping -U 64.34.119.80 -I bond0 -c1).在那之后,我看到它收到了wirehark中的arp后,从窗口框中ping了64.34.119.80.然后我应用了此修补程序并重复测试.
此外,似乎arping命令不需要使用单播MAC地址,而是使用广播MAC,因为这是我测试中忽略的唯一一种GARP.
补丁之前:
在此wireshark捕获中,GARP请求之后的ping不会发送到GARP来自的MAC目标,因此您可以看到GARP被忽略.
补丁后:
在此测试中,在补丁之后,GARP请求似乎被认可,因为ping被发送到GARP来自的MAC地址.
所以从这些测试看来,修补程序2582281修复了GARP广播被忽略的问题.