I have a Cisco router running Hot Standby Router Protocol (HSRP) to handle failover to a backup router. Normally, a "Virtual IP Address" and a "Virtual MAC Addresss" are shared between between the two routers, with the virtual addresses being assigned to the router with the active interface, allowing you to set up a pair of routers with two gateway addresses (they are cross-configured to back each other up). You can assign some of the local hosts on the network to one router gateway and some to the other (providing a form of "static" load balancing for outbound traffic). In this case, each router is cross configured with the others virtual IP and MAC addresses, thus we have two virtual IP gateway addresses and their corresponding virtual MAC addresses.
On the particular low-end router I am using, though, the router interface does not support multiple MAC addresses. They still allow you to set up multiple virtual IP addresses, but each interface can only have one MAC address (instead of the two Virtual MAC addresses). In this case, the hardware (burned-in address) is used instead of the virtual MAC addresses. When failure occurs, the virtual IP address is re-associated with the real MAC hardware address of the backup router and a "gratuitous" ARP is broadcast to tell all hosts on the network segment of the change in IP/ARP association. This effectively places the burden on the local hosts in the network to recognize the ARP change and update their ARP caches.
My questions are:
Will the Windows platforms recognize the gratuitous requests the routers send when a fail-over occurs and adjust their ARP caches so new outbound packets are sent to the backup router rather than the failed one?
Is there any difference between Windows releases in the recognition of the gratuitous ARP requests? Specifically, our local network has Windows 2000 Server, Windows 2003 Server, Windows 2000 Pro, Windows XP Pro, and a couple of Windows 98SE holdouts. Will any (or hopefully ALL) of these systems accept the gratuitous ARP messages and automatically switch over to the remaining router when a failure occurs?