Network Load Balancing (NLB)
Network Load Balancing, or NLB for short, is used when an organization needs to provide access to a service to a large number of users. It allows multiple servers to be grouped under one IP address, and share the work of responding to queries to that IP. The main criteria for this service are usually high availability and good performance. A classic example of a requirement for NLB would be any large online web presence, such as Amazon or eBay. These companies need to serve enormous amounts of complex web pages to users, and they need their web site accessible at all times.
The usual way to achieve this is for the company in question to build a number of identical web servers, and install them into a datacenter. NLB is then configured on each of the web servers to share the load of all traffic to and from a virtual IP, and the servers are brought into the load-balanced cluster (not to be confused with a proper cluster, which is described later in this section). The company then associates the FQDN (Fully Qualified Domain Name)of its website (for example, www.amazon.com) with the virtual IP address of the load-balanced cluster, and the configuration is complete. From this point on when a user browses to www.amazon.com, the servers in the load-balanced cluster negotiate with each other and respond to the request.
How does this actually work? The basic principle behind NLB is multicast MAC addressing. When a NLB cluster is created, the Microsoft NLB drivers associate the cluster IP address provided with an automatically generated multicast MAC address This ensures that all traffic destined for the cluster IP is broadcasted to the entire subnet of that IP. This in turn means that every machine in the NLB cluster will see all the traffic destined for the cluster IP. When traffic arrives on the subnet, all the servers in the load-balanced cluster negotiate among themselves to see which of them is least busy and should answer the request. As a separate task, the cluster members talk to each other via a heartbeat. This allows the cluster as a whole to know if one of the members has ceased responding to network traffic, so that no further traffic is sent to it. This ensures that traffic will never be sent to a dead server, ensuring that high service availability is maintained.
There are some important points to be aware of with regard to NLB. Firstly, it only operates at the network level. In other words if a cluster member is shut down or crashes, NLB will automatically remove it from the cluster. However, if the server (and the NLB service) remains online and working, but the application itself crashes, NLB has no way to know this and will continue to send traffic to the server. To address this, Microsoft has created a product called AppCenter (http://www.microsoft.com/applicationcenter). Acknowledging that most organizations use NLB to load balance multiple web servers in a web farm (multiple, identical webservers), AppCenter has been designed to reduce application management across a cluster, improve availability and allow for better scalability. Secondly, NLB has been known to cause issues with firewalls and routers. This author has experienced issues with e.g. Nokia firewalls, not correctly understanding how to handle traffic outside the NLB clusters subnet passing through it destined for the shared IP address with the multicast MAC address. If you do experience similar problems, check with your firewall or router vendor for any required firmware updates.
Home - Table Of Contents - Contact Us
CertiGuide to A+ (A+ 4 Real) (http://www.CertiGuide.com/apfr/) on CertiGuide.com
Version 1.0 - Version Date: March 29, 2005
Adapted with permission from a work created by Tcat Houser et al.
CertiGuide.com Version © Copyright 2005 Charles M. Kozierok. All Rights Reserved.
Not responsible for any loss resulting from the use of this site.