Iphlpapi!AddIpAddress() adds the IP address but other machines can’t locate this machine (Windows Server 2008)

On Windows Server 2003, when an IP Address is added to the machine’s adapter, a gratuitous ARP packet is broadcast to the network. This indicates to other machines that there is a change in the IP Address of a
machine with “this” MAC address, so other machines can update their ARP table to identify the machine correctly.

On Windows Server 2008 onwards, when an IP address is added to the machine’s adapter, a gratuitous ARP packet is not broadcast to the network. This causes other machines on the network to be  unable to locate this machine because the ARP table on these machines (IP to MAC address) was not updated of this change. SendArp() and other methods (clearing ARP cache) will not be helpful.

As far as I know, this does not apply in cluster environment of Windows Server 2008, meaning a gratuitous ARP packet is broadcast to the network for a cluster IP Address change.

On Windows Server 2008, you can still send a gratuitous ARP packet on an IP Address change request, but you will need to implement it via NDIS. The NDISProt  sample in WDK can be modified to achieve this so a gratuitous ARP packet is broadcast to network on an IP Address change.

More references- RFC 826, RFC 5227 

Keywords- AddIpAddress, gratuitous ARP

 

Content developed by: Nitin Dhawan

Content reviewed by: Jeff Lambert