Network Load Balancing (NLB) is a Windows service that enables network traffic to be shared between multiple servers, while appearing to the client to be captured and processed by a single server's IP address. It provides for load sharing between NLB cluster members, and also provides for redundancy if one of the NLB members becomes unavailable. Only the Enterprise version of ISA Server 2004 natively supports NLB.
The Cache Array Routing Protocol (CARP) is a protocol that helps to balance content caching traffic sent to a network server. It is also supported only with the Enterprise version.
Understanding Bi-Directional Affinity with Network Load Balancing (NLB)
One of the main challenges faced by the ISA team in regards to network load balancing was enabling and supporting bi-directional affinity with NLB. Bi-directional affinity is basically needed to ensure that traffic sent from one network to another, and sent back to the client from that remote network, is properly sent and received through the same ISA Server the entire time. If bi-directional affinity is not enabled, then traffic sent through one ISA server might be routed through the NLB Cluster to the wrong server, which causes sporadic serious issues.
Enabling NLB for ISA Networks
To enabled NLB on an ISA Server member server, perform the following procedure on each server:
From the ISA Server Admin Console, navigate through the Console tree to Arrays, Edge-Array, Configuration, Networks node.
In the Tasks tab of the Tasks pane, click the link for Enable Network Load Balancing Integration.
At the welcome screen, click Next to continue.
At the Select Load Balanced Networks dialog box, check the boxes next to the External and Internal Networks (do not check the box for the Edge-Array-NLB network).
With the External network selected, Click Set Virtual IP.
Enter an IP and mask of the virtual IP that will be set up for the external network (for example, 220.127.116.11, Mask:255.255.255.0) and click OK.
Click on the Internal network, then click the Set Virtual IP button.
Enter an IP and mask of the virtual IP for the Internal network, as shown in Figure 6.22, and click OK.
Figure 6.22. Entering the virtual IP for the Internal network.
Click Next to continue.
Click the Apply button at the top of the Details pane.
When prompted with the warning shown in Figure 6.23, click Save the Changes and Restart the Services and click OK.
Figure 6.23. Restarting the Services for NLB Support.
With NLB in place, the ISA Servers act as a single virtual IP address (VIP). Clients can be configured to use this IP address as their gateway, or it can be used as the destination for reverse proxy or server publishing rules.
Defining Cache Drives for CARP
Before the Cache Array Routing Protocol (CARP) can be enabled to provide for redundancy and enhancement of caching services, the actual cache drives first need to be configured on each ISA Server. Perform the following process on each server:
From the ISA Console, navigate to Arrays, Edge-Array, Configuration, Cache.
Right-click on the server and choose Properties.
Under Maximum Cache Size, enter a number less than the total amount of space, as shown in Figure 6.24, and choose Set and OK.
Figure 6.24. Enabling caching.
When prompted, select to Save the Changes and Restart the Services and click OK.
Enabling CARP Support
After the cache drives have been defined, CARP can be easily enabled via the following process:
From the ISA Admin Console, navigate to Arrays, Edge-Array, Configuration, Networks.
In the Details pane, select the Networks tab.
Right-click on the Edge-Array-NLB network and choose Properties.
Click on the CARP tab.
Check the box for Enable CARP on this network, as shown in Figure 6.25.
Figure 6.25. Enabling CARP.
Click on the Web Proxy tab.
Check the box for Enable Web Proxy Clients and click OK.
Click Apply and OK.