How to: Configure Microsoft Nework Load Balancing (NLB) in a Virtualized Environment for Windows 2008 R2 on a Cisco Switched Network
Using VMware vSphere 4.0 server to host Windows 2008 R2 64bit Servers which host SharePoint 2010 Server and looking to use Microsoft’s NLB.
Set up NLB in mulitcast mode as recommended by everyone in the blogosphere and some different Microsoft articles and viola! It works… until 5 minutes after implementation and then anyone who sits outside of the site where the servers reside can no longer get to the pages. Users at the site where the servers are can consistently resolve pages without fail. Anyone offsite gets an error.
How do you get NLB to work every time for all users regardless of location?
All trouble shooting pointed back to networking. After a bit of digging and working with the site networking team, I found that we had Cisco 4506 switches that we were going through and while they support multicast, the switch needs a static MAC address entered in it’s ARP table or it will not allow anyone coming to the switch from outside to connect because it doesn’t know who to route the packets to. The users on the same switch are able to see the advertisement of the MAC through broadcast.
Setting the static MAC entry in the ARP table worked for some users for a little while, but not for everyone. It wasn’t until we came across an article from VMware that we discovered that the switch supported IGMP Multicast and not standard multicast.
Things started working for a while and then we hit the wall again. I started a clean NLB Cluster installation and found that switching from standard Multicast to IGMP Multicast changed the MAC address of the virtual NIC! We were using the standard Multicast MAC for the ARP table entry instead of the IGMP Multicast MAC address.
Implementing Microsoft NLB in a Virtualized Environment
Configure Network Load Balancing Cluster Operation Mode
Internet Group Management Protocol
Verifying the NLB Cluster and Enabling Client Access
Install and configure NLB on each cluster host in the new cluster