Network Load Balancing (NLB) enables all cluster hosts on a single subnet to concurrently detect incoming network traffic for the cluster Internet Protocol (IP) addresses. On each cluster host, the NLB driver acts as a filter between the network adapter driver and the TCP/IP stack to distribute the traffic across the hosts. ISA Server takes over at this point, enabling NLB in complex deployment scenarios, including virtual private networking, Cache Array Routing Protocol (CARP), and Firewall Client.
By enabling integrated NLB on an array of ISA Server firewalls, you establish the framework for NLB configuration at the network level. That is, ISA Server load balances traffic on a per-network basis. After you enable NLB on the specific networks that you want load balanced, ISA Server determines the network adapter that will be used for that network. If there is more than one network adapter available, ISA Server selects the network adapter based on name in alphabetical order.
ISA Server performs stateful inspection on all traffic. For this reason, ISA Server works with Windows NLB to ensure that incoming and outgoing traffic for each session is handled by the same array member. This is important, because this enables ISA Server to perform stateful inspection on the traffic.
Benefits of ISA Server Integrated NLB
-
Integrated NLB provides high availability and scalability of servers using a cluster with multiple host computers working together.
-
Integrated NLB delivers high availability by redirecting incoming network traffic to working cluster hosts if a host fails or is offline. Existing connections to a failing host are lost, but the services remain available. In most cases, client software automatically retries the failed connections, and the clients experience a delay of only a few seconds in receiving a response.
-
Integrated NLB delivers scaled performance by distributing the incoming network traffic among hosts, using one or more virtual IP addresses (the cluster IP addresses) assigned to the NLB cluster. The hosts in the cluster then concurrently respond to different client requests.
-
Integrated NLB employs a fully distributed algorithm to statistically map incoming clients to the cluster hosts based on their IP addresses. When inspecting an arriving packet, all hosts simultaneously perform this mapping to quickly determine which host should handle the packet. Although the mapping changes when the number of hosts changes, NLB continues to maintain the existing TCP connection.
-
Integrated NLB incorporates the benefits of NLB into the product. When integrated NLB is enabled, each network in an array can be configured as an NLB cluster. The NLB algorithm is applied to the network, so that the load is balanced across the NLB-enabled network.
NLB Integration Modes
Network load balancing can be configured using ISA Server in NLB integrated mode, or through Windows Server 2003. NLB for an array can be configured in one of these modes:
-
Integrated NLB. In this mode, you use ISA Server Management to configure NLB, and to specify whether a specific network should be load balanced. In this mode, you have the benefits of integrated easy-to-manage configuration, array integrity maintenance, multi-networking, virtual private network (VPN) support, and troubleshooting information. When you enable NLB integration, the NLB configuration for the following is supported: unicast mode and single affinity.
-
Non-integrated NLB. In this mode, you use the Windows-based NLB tools to configure NLB. Non-integrated NLB does not provide the benefits of ISA Server integrated network load balancing.
Enabling Integrated NLB
By default, NLB integration is not enabled when you install Microsoft ISA Server 2006. After NLB integration is enabled for the array, you can enable and configure NLB on the array-level networks.
You can configure ISA Server to work in integrated NLB mode for any array that contains more than one array member. After you enable NLB integration on an array, we recommend that you configure and enable NLB for each connected network in the array, except the intra-array network. The intra-array network is used for communication between array members and should not be load balanced. In additional, you should enable NLB on the network that is used to connect to the disconnected network, and is physically connected to ISA Server. For example, if the disconnected network is behind the External network, then NLB should be enabled on the External network.
When you enable NLB integration for an array, you can monitor NLB for each array member, draining or stopping NLB on a specific array member as appropriate.
Note: |
|---|
|
Do not enable NLB on networks that are not physically connected to the array. Specifically, we recommend that you enable NLB on all networks physically connected to the array (except for the intra-array network).
|
Using NLB Without ISA Server NLB Integration
If integrated NLB mode is not enabled for an array, NLB can be configured for the operating system using Windows-based NLB tools. However, if you choose to configure NLB without ISA Server NLB integration, none of the specific benefits of ISA Server load balancing will be available.
If you configure NLB using ISA Server integration, and then disable integrated NLB mode, the existing Windows NLB settings remain configured on each array member. You can use Windows NLB tools on each array member computer to further modify these NLB configuration settings.
Note: |
|---|
|
If you configure NLB using Windows-based NLB tools, and then enable integrated NLB, the addresses provided in ISA Server override the addresses you may have added using Windows.
|
Selecting the Network Adapter
When you configure integrated NLB mode, ISA Server load balances traffic on the specified networks. After you enable NLB on a specific network, ISA Server automatically determines which adapter in the network should be used for NLB. There can be only one such adapter per network.
ISA Server uses the following algorithm to select the network adapter to use for NLB:
-
Identifies all the network adapters in the load balanced network that have a static IP address configuration. These are network adapters that are not assigned by Dynamic Host Configuration Protocol (DHCP).
-
Alphabetizes the network adapters by name.
-
Selects the first network adapter that has an IP address on the same subnet as the specified virtual IP address.
This means that you can control which network adapter will be selected by renaming the adapter, and then restarting the Microsoft Firewall service.
Network Rules and NLB
Network rules define the relationship between networks. The relationship can either be defined as network address translation (NAT) or route.
When traffic is configured as NAT from one network to another, the dedicated IP address is used for outgoing communication. The traffic always returns to the same array member.
When traffic is configured as routed, the destination computer is provided the source computer IP address. For this reason, the destination computer must use the virtual IP address as its default gateway when communicating. Because NLB is integrated with ISA Server, NLB is designed to choose the appropriate array member.
Virtual IP Addresses and Dedicated IP Addresses
When you configure NLB for a network, you must specify at least one virtual IP address for the network. With NLB integration enabled, ISA Server modifies both the network properties and the TCP/IP properties of the network adapter. Using ISA Server Management, you can configure more than one virtual IP address for each load balanced network. In some scenarios, such as NLB publishing scenarios, you might want to have multiple virtual IP addresses.
Each network adapter on each array member has a dedicated IP address. The dedicated IP address is actually the original primary IP address on the network adapter of the NLB-enabled network. In integrated NLB mode, each network adapter must have its own dedicated IP address.
The network adapter used for NLB must have a dedicated IP address. Without this dedicated IP address, communication between array members and other hosts through this network adapter might not work properly. The dedicated IP address and the virtual IP address must belong to the same subnet and have the same subnet mask.
When you specify the virtual IP address, ISA Server sets this IP address as the second IP address of all the network adapters attached to the applicable network in the array. ISA Server also sets the first IP address in the TCP/IP properties of these network adapters as the dedicated IP address, if it is not the same as the virtual IP address.
When you add IP addresses to your network adapters through the ISA Server NLB properties, each adapter on the ISA Server array will be assigned an identical IP address in addition to the dedicated IP address of the adapter on that server. For example, if you add the IP address 206.73.118.1 to the External network, each array member's external network adapter will have that address added. This eliminates the risk of non-matching IP addresses, which can occur when manually assigning addresses to each array member's adapter.
Note: |
|---|
|
Virtual IP addresses should not be the same as the dedicated IP address (the first address listed for the applicable network adapter).
|
The primary virtual address should not be listed in the list of additional virtual IP addresses.