Novell Home

Dual Server Configuration Tip for BorderManager

Novell Cool Solutions: Tip
By James Gosling

Digg This - Slashdot This

Posted: 6 Jun 2007
 

Problem

Our school increasingly relies on Internet access to deliver online curriculum materials. Any disruption to Internet access causes a direct impact on the students' education. The challenge was to make best use of a second Internet server to implement fault tolerance and load balancing, while making the best use of both servers for caching.

Solution

I installed the second BorderManager server, with both running BorderManager 3.8, and each working independently as a fully functional proxy server.

I then implemented hierarchical caching and configured them as peers.

1. In NWAdmin, go into the properties of the server object.

2. Select the BorderManager Setup tab.

3. Click Application Proxy.

4. On the Cache Hierarchy tab, check "Enable Cache Hierarchy Server" and note the port being used (3130 by default).

5. Under the Cache Hierarchy Client tab, check "Enable Cache Hierarchy Client".

6. On the neighbors list, add a new entry with the following details: host name or ip address of the other peer/proxy, http port (default 8080), ICP port (default 3130) and Type as "Peer".

7. Repeat the process for both servers.

The school's network is divided into a number of subnets - I created a proxy.pac file similar to the example given below, to implement basic load balancing and fault tolerance based on the ip address of the client:

Proxy.pac Example

function BorderManagerBalancing(url, host)
{

// Define servers in order of preference in two strings, each in an alternate order.

var 1stBMserver = "PROXY :8080; PROXY :8080";
var 2ndBMserver = "PROXY :8080; PROXY :8080";

// if the target URL is on the internal network do not use either proxy server

if (shExpMatch(url, "")) { return "DIRECT"; }

// Assign pre-defined server strings based upon the subnet the client is in.

if (isInNet(myIpAddress(), "", "")) { return 1stBMserver; }
if (isInNet(myIpAddress(), "", "")) { return 2ndBMserver; }
if (isInNet(myIpAddress(), "", "")) { return 1stBMserver; }
if (isInNet(myIpAddress(), "", "")) { return 2ndBMserver; }

else

return "DIRECT";

}

This proxy.pac file is then distributed to each client computers 'c:\windows' folder, and the clients' Internet settings are modified to make use of it.

1. In Internet Explorer 6.x, go to the Tools menu.

2. Choose Internet Options > Connections > LAN settings.

3. Check "use automatic configuration script".

4. Put "file://c:/windows/proxy.pac" in the address box.

5. Uncheck "automatically detect settings" and "use a proxy server for your LAN".

In our environment we distribute the file and the internet settings using ZENworks - how you do this will depend on your environment and the tools available.

This configuration gives us basic load balancing. Clients are assigned to servers based on what subnet they are in, for basic fault tolerance. If one server is inaccessible, the proxy.pac script re-directs them to the alternative server. Hierarchical caching ensures that both servers are used for caching; pages already cached on one server are not duplicated unnecessarily in the others cache, yet neither is dependent on the other.

This solution has proven to be very reliable and I believe makes the best use of the resources we have.

James Gosling is a Network Manager at a large school campus in the UK and part-time freelance IT consultant specializing in Novell products.


Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com

© 2014 Novell