The cause of the problem turned out to be that I was creating the NLB cluster using unicast mode, which has compatibility problems with VMware's virtualised network plumbing. When I re-created the cluster using multicast then it worked correctly.

Microsoft's documentation suggests that using unicast is the simplest option because it requires no router configuration changes. This is not true under VMware, which will require some network configuration changes. Multicast mode seems to just work.

Useful links:

  • Microsoft NLB not working properly in Unicast Mode - describes why unicast doesn't easily work under VMware, and what to do if you really want to use it anyway. The linked page refers to ESX server, but it also seems to appply to VMware server.

  • Sample Configuration - Network Load Balancing (NLB) Multicast Mode Configuration - how to set-up a cluster using multicast mode.

  • Implementing Microsoft Network Load Balancing in a Virtualized Environment (pdf)

  • An Optimal Network Load Balancing (NLB) Configuration - some useful background