Archive for » August, 2010 «

Configure Network Load Balancing for websites with dedicated ip

Configuring NLB for websites with dedicated ip addresses

# Assuming NLB is already setup and the nodes are converged fine.

Ingredients-

Following are the things I planned for my NLB (Network Load Balancing) setup in Windows Server 2003-

# 3 machines for web server(IIS installed) – Windows Server 2003

Machine names and its IP addresses-
2K31   -        192.168.1.129
2K32   -        192.168.1.130
2K33   -        192.168.1.131

# 1 machine for DNS server – Windows Server 2003

2K34   – 192.168.1.132

# Cluster IP addresses (for dedicated IP) – 192.168.1.150(for arun1.com), 192.168.1.151(for arun2.com)

#  Website name that is going to use in dedicated IP configuration – arun1.com, arun2.com

# On each web servers create the folder structures as below-

C:\Domains
C:\Domains\arun1.com
C:\Domains\arun1.com\wwwroot

C:\Domains
C:\Domains\arun2.com
C:\Domains\arun2.com\wwwroot

Create a test page “index.html” under wwwroot and copy paste the below code-

<html>
<h1><center>WELCOME TO ARUN WORLD</center></h1>
<b/>
2K31 – arun1.com – dedicated
</html>

Change the domain name arun1.com and server name ‘Hosted in 2K31’ to appropriate domain name and server’s name on each sever as this will help a bit in the later stage during testing of each nodes as which node is servicing the request.

Note – It is not intention to have separate physical machines to configure NLB. You can either configure it in Virtual servers like – Microsoft Virtual PC, VMWare Workstation or VMWare Server. This saves cost. In this scenario I’ve setup servers in my friend’s laptop with this configs-

VMWare Workstation ACE Edition 6.02
1.73 Ghz Intel Dual Core
1 GB RAM
120 GB HD

Preparation-

In Network Load Balancing Manager-

1.  Open ‘Cluster Properties’  of the cluster nlb.arun.com.

2.  In ‘Cluster IP Address’  click ‘Add’ to add new dedicated IP.  In this case I’ve added 192.168.1.150 and 192.168.1.151

3.  You will be presented with a dialog box “Confirm Change of Cluster-wide

Properties”. Click ‘Yes’ to proceed further.

In IIS Manager-

Setup 2 sites arun1.com host header pointing to the ip 192.168.1.150 and arun2.com host header pointing to the ip 192.168.1.151.

In DNS Management console-

Create forward lookup zone for 2 domains – arun1.com(192.168.1.150) and arun2.com(192.168.1.151)-

Testing-

Now open the browser and type http://arun1.com and you will see something like this-

In the above pic, it is serviced by node 1 – 2K31.

To test whether this site is servicing through other nodes please suspend or stop the 2K31 node in Cluster Manager(Please refer this URL Setup Network Load Balancing in Windows Server 2003 see under ‘Testing’ section)

Happy Load Balancing! :)

“`*“`arun

Happy Independence Day

Independence day

Happy Independence Day!

Setup Network Load Balancing in Windows Server 2003

Setup Network Load Balancing in Windows Server 2003

 Generally you will need atleast 2 machines installed with Windows Server 2003 and each machine should have atleast 1 NIC and 1 static IP address. Additionally, you will need one more machine (either Windows Server 2003 or Windows XP) needed in order to test the setup. Assuming DNS server is included to add DNS records for websites.

Ingredients-

 Following are the things I planned for my NLB (Network Load Balancing) setup in Windows Server 2003-

 # 3 machines for web server(IIS installed) – Windows Server 2003
     Machine names and its IP addresses-
    2K31   -        192.168.1.129
   
2K32   -        192.168.1.130
   
2K33   -        192.168.1.131

 # 1 machine for DNS server – Windows Server 2003
     2K34   – 192.168.1.132

# Cluster IP address – 192.168.1.100

# Cluster Name  – nlb.arun.com

# On each web servers create the folder structures as below-¦lt;br />     C:\Domains
    C:\Domains\nlb.arun.com
    C:\Domains\nlb.arun.com\wwwroot
¦lt;br /> Create a test page “index.html” under wwwroot and copy paste the below code-
 <html>
<h1><center>WELCOME TO ARUN WORLD</center></h1>
<b/>
Hosted in 2K31
</html>

 Change the server name ‘Hosted in 2K31’ to appropriate server’s name on each sever as this will help a bit in the later stage during testing of each nodes as which node is servicing the request.

 Note – It is not intention to have separate physical machines to configure NLB. You can either configure it in Virtual servers like – Microsoft Virtual PC, VMWare Workstation or VMWare Server. This saves cost. In this scenario I’ve setup servers in my friend’s laptop with this configs-

VMWare Workstation ACE Edition 6.02
1.73 Ghz Intel Dual Core
1 GB RAM
120 GB HD

 Preparation-

 Setting up Network Load Balancer-

 1. Open Network Load balancing Manager-
Start > Administrative Tools > Network Load balancing Manager
(or)
Start > Run > type ‘nlbmgr’ 

2.  Right click Network Load Balancing Manager > New Cluster
New Cluster

3.  In ‘Cluster Parameters’ wizard, in ‘Cluster IP Configuration’ specify the cluster IP address – 192.168.1.100, subnet mask and Full Internet Name as ‘nlb.arun.com’.  Ensure ‘Multicast’ option is selected along with ‘IGMP Multicast’.
Leave the ‘Allow Remote Control’ unchecked.

Note – IP address is the virtual IP address for the cluster that will be used to address the cluster. If you have single adapter then you should select ‘Multicast’ in ‘Cluster Operation Mode’. By selecting ‘Unicast’ allows NLB to take over the network card it is bound to and doesn’t allow any additional network traffic through it. You can configure single adapter in ‘Unicast’ mode but after configuration the cluster manager will not be able to communicate with the server. Generally, ‘Multicast’ is slower than ‘Unicast’ mode.

3_Cluster_Parameters

4.  On the next wizard ‘Cluster IP addresses’, leave the settings as it is and click next. (We will visit this in next topic).

 4_Cluster_IP_Addresses

5.  In ‘Port Rules’ wizard, ensure the necessary ports are added. By default NLB configures to handle all ports. In this scenario I’m going to add these ports – 80 (http traffic) and 443 (https traffic). Add the ports by hitting ‘Add’ button and input 80 as From and To in Port range. Ensure ‘Both’ (ie, both TCP and UDP) protocol is selected.

One of the important thing here is ‘Filtering Mode’ which determines affinity of requests. Affinity describes how requests are routed to a specific server. ‘None’ refers any servers can service the incoming requests. ‘Single’ refers to a specific server has to handle each and every requests from a given IP. ‘None’ is recommended as it is better in stateless applications and this results in less overhead in NLB. ‘Single’ mode should be used when there’s a state server connection, for example – SSL.

5_Add-Edit_Port-Rule

     Do the same thing for adding port 443.

6.  Next step is to add nodes to the cluster. In the ‘Connect’ wizard specify the host name which needs to be included in NLB. In this case I specified 2K31 in ‘Host’ (or you can specify IP address of the host, for this server – 192.168.1.129) and click ‘Connect’ button and ensure interface name and IP info of that node are listed. If there’s more than one NIC card select the one that is going to be configured for NLB.

 6_Connect

 7.  In ‘Host Parameters’ wizard specify the Priority. This should be unique number and it identifies each node in the cluster. Lower the number the higher the priority. Priority 1 is the master node which receives requests and routes the traffic to other nodes only when the load in this node is high. Hit ‘Finish’.

7_Host_parameters

8.  This will take 25 – 35 secs for a node to get converged. Following is the status of NLB cluster-

8_result

9.  Follow the above steps (6th and 7th) to add remaining nodes-
2K32   -        192.168.1.130
2K33   -        192.168.1.131 Review the error log in the bottom pane if there is  rror during additional node setup. Wait for few seconds and hit refresh until you see all the nodes becomes ‘Converged’ state.        

2K32_error_log

 One of the other ways to determine the status of each node in the cluster is – Goto command prompt in one of the nodes > type wlbs query

You will see something like this if all nodes are converged-

2K33_NLB_Status

 In this picture I tried in 2K33 (3rd node).

Setting up website to test NLB-

Setup website in node 1 – 2K31 – Setting up a website is easy process – Open IIS Manager from Administrative Tools and create a new website called nlb.arun.com as host header mapped to the ip address 192.168.1.100 (Cluster IP). Please setup the same site with same settings in all other nodes (2K32, 2K33).

 Setting up DNS records-

This should be carried out in DNS server 2K34 which is not a part of cluster and just acts as DNS server. In order to get a website working you need DNS record configured for that website. To do this you need to create DNS record for arun.com as shown in this picture. Create host record (A) for nlb.arun.com pointing to the cluster IP – 192.168.1.100-

2K34_DNS_Setup

 Testing-

 Now open the browser and type http://nlb.arun.com and you will see something like this-

nlb.arun.com_access

In the above pic, it is serviced by node 1 – 2K31To test whether this site is servicing through other nodes please suspend or stop the 2K31 node in Cluster Manager.

2K31_Node_Suspended

Access the site http://nlb.arun.com again after suspending node 1.

nlb.arun.com_access2_node2

Now you will see the request is serviced by 2K32 (node 2). This confirms request is routed to another node when the first node is unreachable. Now resume/start the node which you stopped in previous stage.

Happy Load Balancing! :)

“`*“`arun