Network Load Balancing to a single host

This is how I configured Microsoft NLB to support the following two requirements.

All I had to do to get an NLB to support multiple VIPs was to add them to the NLB on the Cluster IP Addresses tab in the Cluster Properties window. There, I added the additional IPs to the NLB very similarly to the way that additional IPs are added to a normal NIC. As you can see in the following screen shot, the NLB's main IP address is 192.0.2.10, and two additional VIPs, 192.0.2.11 and 192.0.2.12, have been added.

Cluster IP Addresses

Then I went to the Port Rules tab of the Cluster Properties window and add a couple of port rules, one for each additional VIP. I made sure to set the Filter Mode to Single so that traffic for the two additional VIPs will be processed by a single node. While I was there I changed the Affinity of the port rule that was created when the NLB was created so that traffic would be (more) equally balanced across the nodes. Note, the host affinity setting can impact things that assume that they will be talking to the same server all the time. So, if you run in to a problem with broken sessions, you will want to turn host affinity back on.

Cluster Port Rules

When the NLB Filter Mode is set to Single, the host with the highest priority will service all the traffic for the VIP as long as it's available. If the host with the highest priority goes down, the node with the next highest priority will start servicing all the traffic for the VIP. So, the trick is to make sure the host that you want to service the traffic for a VIP has the highest priority. By default, the host that the NLB was created on has the highest priority. So, to get a different host to have a higher priority involves the following changes:

  1. Change the priority of the host with the highest priority to something other than 1, i.e. 3.
  2. Change the priority of the host with the next highest priority from what it is, likely 2, to be 1.
  3. Change the priority of the host that originally had the highest priority back to be next in sequence, i.e. from 3 to 2.

You can see below that I have configured host 1 as highest priority for the 192.0.2.11 VIP and lowest priority for the 192.0.2.12 VIP.

Host 1 Port Rules

Similarly, I have configured host 2 as the highest priority for the 192.0.2.12 VIP and lowest priority for the 192.0.2.11 VIP.

Host 2 Port Rules

Considering that it is possible for the lower priority host to service traffic for a VIP if the higher priority host is down, it is advisable to configure all systems in the NLB to be able to service the traffic in some capacity. In my case, all I had to do was to create a new web site in IIS with a custom 404 error page to display a "Site is down for maintenance" message. With this in place, errors are gracefully handled in a way that I can control and inform users at the same time.