Today I had the luxury of setting up a Unicast NLB on a couple of Windows 2008 servers (for Citrix Web Interface 5.2). The servers themselves are guest VMs running on Hyper-V R2. I noticed that when trying to create the NLB, it would not converge. The NLB wizard was erroring out, plus the entire NIC would go offline, losing its static IP association. I would also see Error 12289.

I mean, I’ve done NLBs plenty of times before… unicast or multicast… 2003 or 2008… really no difference… its not that hard, but it would not work!!! Arrrgggg!!! After bashing my head for a few minutes thinking I was insane, I did some digging.I’ve done this on Physical Servers (check), VMWare ESX guests (check), and XenServer guests (check)… no issues. So I figured it was Hyper-V related… and viola! NLB creates a virtual MAC for the balanced servers to listen on, however the v-switch in Hyper-V does not allow it by default.

In R1, I found out, you had to statically assign the NLB MAC as the VM MAC. Luckily, in R2, they made this easier (along with a lot of other nice enhancements). In Hyper-V R2 / SCVMM R2, set the NIC of the VM to enable spoofing.

 Once I set this, the NLB could properly configure, bind, and converge.

Of note: Although I could have left the MAC at dynamic, I chose to set both VMs to static, but inheriting their current MAC address. I’m just not a big fan of MACs changing. 🙂 Also, the VMs were OFFLINE when I made the changes through SCVMM console.