Network Load BalancingServices and applications that are affected by high load require technologies to address this issue. Network Load Balancing is a technology that allows system administrators to configure clusters that distribute traffic between several servers. Suppose you have a website that receives a large number of requests and cannot be handled by one server. In this case you would configure a NLB cluster to distribute traffic across multiple web servers and thus ensuring that the website can serve all requests.

In this article I will show you how to configure Network Load Balancing (NLB) within your Windows Server infrastructure. For this tutorial I will be using two virtual machines hosted in my VMWare testing environment. Without any delays let’s open up the Server Manager console and install the Network Load Balancing feature. Note that this feature must be installed on both servers. Click on Add roles and features button and skip all pages until you reach the Features section. From the features list select Network Load Balancing and proceed with the installation. Note that Powershell support for NLB will also be installed:

Network Load Balancing Installation

Once the install operation is completed, open the Network Load Balancing Manager console from Administrative Tools.

Within the NLB console, click on Cluster from the upper menu and select New. Now enter the local server IP address and click on Connect. Select one of the available network interfaces that will be part of the NLB process and proceed with the following section. I’ve added one of my two servers to the cluster, you will need to add the second machine afterwards.

New NLB Cluster Parameters

In the following section we’ll need to configure the priority of the specified server and the initial host state. Note that you can add multiple IP addresses for one host. Continue the wizard by pressing the Next button. We’ll need to assign an IP address for the load balancing cluster that is shared between all nodes. This IP address is not physically assigned to a network card and instead a virtual network adapter is created. Note that you can add multiple IPs for load balancing, but the first one will be considered the primary address. For testing purposes I will add a random IP address:

NLB Cluster IP Addresses

The next section is used to configure cluster parameters. Enter the cluster full internet name (in my example cluster1.ppscu.com) and the cluster’s operation mode. A NLB cluster must operate in one of the following modes:

Unicast – the MAC address of the cluster virtual network adapter is shared with all cluster nodes. If your servers have only one network adapter then the MAC address of the VNA replaces the MAC address of the physical interface. By using only one network adapter on each server, communication will be made only with devices that are part of the same subnet as the given node. It’s recommended that you use two network adapters for each node, one used for load balancing and the other one for server management.

Multicast – the server will retain its original MAC and IP address while also using the MAC and IP address of the cluster’s virtual network adapter. All devices from all subnets can communicate with the node, but multicasting is used for cluster communication.

IGMP Multicast – uses the IGMP protocol (Internet Group Management Protocol) to increase network performance by using multicast clients registered to a IGMP multicast server.

From the three available options, choose multicast and proceed with the next section:

NLB IGMP Multicast

From the port rules section we configure how traffic is managed on the NLB cluster. By specifying the designated port or port range you filter packets so that only desired traffic is received by the NLB cluster:

NLB Specify Port or Port Range

Rules can be created on each of the cluster’s IP address. By pressing the Edit button we configure the port range, protocol (TCP or UDP) and the filtering mode. There are three available filtering methods, as follows:

Multiple host – used to configure all nodes within the NLB cluster to respond to requests. The node’s affinity determines which of the cluster’s servers handles the traffic. There are three options available here:

· None – traffic is distributed between all cluster nodes

· Single – uses all nodes to handle NLB traffic, but a node will receive all traffic for a specific request. This is used when stateful connections are used and is the default option. The timeout parameter is configured to discard connections once a connection passes a certain period of time.

· Network – redirects client requests to the closest available node. Just like netmask ordering, requests are sent to the appropriate node based on the subnet of the client.

Single host – in this mode the traffic that matches a filtering rule will be handled by one node only.

Disable this port range – this mode is used to block the traffic sent on the specified ports.

NLB Add or Edit Port Rule

The newly created node will appear in the NLB Manager console. We will add the second server by right clicking the cluster and selecting Add Host to Cluster:

NLB Add Host to Cluster

Now you will need to follow the same procedure as we did earlier for the first node. Once the wizard is completed, the second node will be added to the NLB cluster.

NLB Manager Add Node to Cluster

With this NLB cluster we can now distribute traffic destined for our applications between these two hosts. I’ve used this type of configuration when balancing traffic between two IIS servers. The port rules where handling only HTTP (port 80) and HTTPS (port 443) traffic. Most enterprises use dedicated network devices for load balancing such as Netscaler, Cisco Ace, etc, but it’s good to remember that Windows Server Editions can support this feature as well. Hope this article will serve you well in understanding how this technology works and how to install and configure NLB clusters. For any questions don’t hesitate to use our comments section and I will respond as soon as possible. Wish you a great day and stay tuned for the following articles.

You can learn more about Dan Popescu by visiting him on Google+

Share →

4 Responses to Configuring Network Load Balancing in Windows Server

  1. nazyar says:

    hi
    first thank you.
    i have two iis server.i wana know what be should open port between two iis server ?
    my web servers are clustering together with NLB.
    i want close port on the server but i dont now requrement port between two server for load balancing.

  2. Popescu Dan says:

    Hello,
    There are two terms that you’ve used clustering and load balancing. Are you using two IIS servers that are clustered AND balanced or are you using two servers that are load balanced. Clustered servers are configured using Windows Clustering Management and load balancing using NLB. If you are just using two servers that are load balanced using NLB then you need to allow only the listening ports of the web servers. Suppose you have one site that accepts only secured requests (port 443). The NLB service will only redirect an incoming request between the web servers that are part of the load balancer thus you just need to open the rules from the NLB server to each Web Server on port 443 (both ways).
    Hope this will server you well

  3. Vineetha says:

    Hi,

    We have a windows console application and it is running as a windows scheduler, can we depend on NLB concept and just keep another instance of the app running on different server.

  4. Ehsan says:

    Thanks sir,

    My question is that, Which type of applications can configure on NLB. Means which type of applications supported on NLB ??

(19)