Hack 47 Implement Windows 2000 Network Load Balancing


If you need network load balancing software on
your network, why not try the NLB component that comes with Windows
2000 Advanced Server?
Installing Windows Network Load Balancing (NLB) is often a terrific
idea. Most network load balancing hardware devices
today cost over $20,000. Thus, if your web application or content
site is not necessarily going to support traffic as heavy as
http://www.msn.com, NLB is a
great choice.
However, this mighty piece of web-balancing code from Microsoft has a
few implementation gotchas that can crop up at any minute.
Let's quickly review the basics, which most you
probably already know. You can run NLB only on Windows 2000 Advanced
Server, Windows 2000 Datacenter Server, or any edition of Windows
Server 2003. NLB also has a role in Microsoft Application Center, but
the concept is the same.
The following tips provide successful techniques to use with NLB.
Two NIC Environment
Plan on a two-NIC environment. For instance, identify a private network for
Windows network activity, such as domain-level functions, file
sharing, or name resolution. Identify the second NIC as the public-
or client-facing connection. While NLB supports both unicast and
multicast routing, using two NICS lets you avoid the complexities of
using multicast mode. However, if you do want to use multicast mode
with NLB, then either use a VLAN for all NLB NIC connections (which
prevents saturating your Layer 2 network switches) or use a hub
(that's right, a nonswitched hub) for all NLB NICs
and allow the hub to make one connection to the Layer 2 switch
front-ending your web farm. For security reasons, ensure also that
the NLB NIC is stripped of all services, such as File and Print
Sharing and the Microsoft network client.
However, if you want to go home from work early,
don't even try to run NLB on one NIC using multicast
mode. The underlying technical challenge for Layer 2 switches and NLB
is that the NLB-based NICs create a dummy MAC address and provide it
to the MAC address table of the switch to which they are connected.
NLB has to receive all traffic addresses to the NLB cluster for the
software algorithm in use to make a decision on which node to send
the traffic to. Some Layer 2 switches get confused at the same MAC
address coming through different ports, and this can create the
dreaded broadcast storm.
Sample Environment
The scenario shown in Figure 4-3 illustrates
Microsoft Network Load Balancing in use in a standard Microsoft
n-tier highly available Internet configuration. The three front-end
IIS web servers (the dark shaded area in Figure 4-3) all are running Windows 2000 Advanced Server
and illustrate the redundancy and load balancing archived with an NLB
solution. Each web server has its own internal or primary IP address
of the form 10.0.0.x, which is a nonroutable address for security and
management purposes, while the clustered or shared IP addresses are
of the form 192.168.18.x. The firewall in front of the web farm is
configured to perform a network translation of the actual hosted web
site's DNS name and IP address to the listening IP
address 192.168.18.158 of NLB. In this case, equal load balancing is
used, such that each web server will carry 33% of the load so that
NLB will load-balance traffic based on an equal distribution of the
incoming traffic. If one server goes down, the load will be
distributed to the remaining two servers.
Figure 4-3. Using Network Load Balancing in an n-tier configuration

Other Microsoft high-availability technologies can also be seen in
this examplefor example, the use of a SQL Server cluster (the
light-shaded area in Figure 4-3) providing backend
database services for this solution. This illustrates the
relationship between Microsoft Clustering Services (MSCS) and
Microsoft Network Load Balancing (NLB): generally, they secure
different tiers of highly available Microsoft solutions. In this
case, NLB is used for the web tier, while clustering is used for the
database tier.
These tips and the corresponding scenario should save you
considerable time when implementing NLB web clusters using Windows
2000/2003. The main thing to remember, though, is to never fall for
the one NIC multicast option when using Microsoft Network Load
Balancing.