Network Load Balancing (NLB) is an easy and cheap way to enable IP load balancing between multiple nodes in a cluster. NLB is available in all versions of Windows Server 2003.
NLB can be used in one of two modes: unicast or multicast. When you use unicast, each node in the NLB cluster has the same MAC address. ARP requests for the virtual IP address of the cluster will return this unicast MAC address. It is important that all traffic for that MAC address is sent to all nodes in the cluster. Therefor, the network switch should never learn the MAC address of a node in the cluster. NLB does this by masking the MAC address on outgoing packets.
This works fine in most situations. But in a VMWare environment (I used ESX), this does not work well. When a virtual machine powers up, the vmkernel sends a RARP packet that informs the switch about the node's MAC address. Because of that, traffic destined for the entire cluster never reaches all nodes.
You can turn off this behaviour but it is not recommended in environments where VMotion is used. To cut a long story short: in VMWare, configure NLB to use multicast. That works fine! More information about this can be found in VMWare's knowledge base.



