Running Windows Multicast Network Load Balancing (NLB) on XenServer 5+6 guests

We have recently been implementing Windows Network Load Balancing (NLB) on a few clients sites for the Citrix Web Interface and Storefront services, and the implementation on XenServer guests posed a few issues where once the NLB was enabled connectivity would fail.

There are a lot of sites with information regarding Unicast and creating static ARP entries but this we found was not relevant.

The default configuration for XenServer and likely Open vSwitch in general sets multicast to off on the guest virtual machines. Re-enabling Multicast resolved our issues so we set this up on a per machine basis. It is possible to alter this setting globally for all machines which I will show you later, but we cannot confirm what adverse effects this may have.

To begin with locate the XenServer host which your Virtual machine is currently running on and SSH to it.

Once you have logged in as root run the following command to locate the VIF if of the virtual machine:

xe vm-list name-label=<VM NAME Goes here> params=dom-id

image

You will then see the DOM-ID of the VIF associated with your Virtual machine, in the above example this is 21

To first check that multicast is not enabled run the following command:

ifconfig vif<DOMID>.0

As canbe seen below there is no multicast listed

image

To setup multicsat on your VIF run the following command:

ifconfig vif<DOMID>.0 multicast

To confirm this has worked run the same command as above

ifconfig vif<DOMID>.0

image

And you should now see Multicast in the configuration of the VIF.

You can enable multicast for all virtual machines, although as this is not the default unless you have a specific need we would not necesarily recommend this but it is possible by editing the the following file on all of your XenSerer hosts:

/etc/xensource/scripts/vif

Locate the add_to_bridge section within this file and put a # in front of the following line:

${IP} link set “${dev}” multicast off               || logger -t scripts-vif “Failed to ip link set ${dev} multicast off”

image

If you have any questions about the blog post please direct any questions to [email protected]