Network load balancing: Difference between revisions

Content deleted Content added
m Connectify Dispatch: minor fixes, mostly disambig links using AWB
Tonkie (talk | contribs)
Microsoft NLB: adding technical details and potential problems with MS NLB
Line 12:
 
Microsoft has also developed a technology called Network Load Balancing (NLB) that allows for efficient utilization of multiple network cards.
MS NLB can be configured in [[unicast]] or in [[multicast]] mode<ref name='ovw'>TechNet [http://technet.microsoft.com/en-us/library/cc725691.aspx Overview of NLB], visited 8 June, 2013</ref> where in multicast mode you can enable [[IGMP snooping]].
 
MS NLB was introduced for the first time in [[Windows NT 4.0|Windows NT server]] to spread traffic over multiple hosts without the need for a hardware based load balancer, eg when you host a busy web-server application where a single host wouldn't be able to manage all the traffic. And in more recent applications it would be used in Windows clusters for [[Hyper-V]] or [[Microsoft SQL Server]]
 
=== MS NLB in unicast mode ===
In unicast mode MS NLB re-assigns the stations [[MAC address]] (which applies to the clusters [[IP address]]) to a virtual MAC address and all NIC's in the NLB cluster use this same MAC address. This setup will cause all incoming traffic for the cluster to be flooded to all ports of the switch as unknown unicast frames <ref name="vmware">VMWare knowledge base: [http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006580 MS NLB in unicast and multicast mode], visited 8 May, 2013</ref>: even to hosts that are not joining in the cluster. To keep flooding minimal you would need to use a dedicated VLAN for the cluster.
 
=== MS NLB in multicast mode ===
Another option is to run NLB in multicast-mode. The unicast [[IPv4]] address of the cluster is linked to a multicast MAC address. The hosts in the cluster will never send traffic to the switch using this MAC address with the cluster IPv4 address so you would need to create a static ARP entry on the layer 3 switch/router in the network. Not all vendors will allow you to create an ARP entry where you use a unicast IP address and a multicast MAC address. Cisco publishes some examples how to setup MS NLB on Catalyst switches running IOS<ref>Cisco: [http://www.cisco.com/en/US/products/hw/switches/ps708/products_configuration_example09186a0080a07203.shtml Catalyst configuration examples], visited 8 June, 2013</ref> and these same examples can be used for switches from many other vendors. As with NLB in unicast mode: incoming traffic towards the cluster will be flooded to all ports in the switch/VLAN and not all vendors do support this setup. To limit the flooding MS NLB now supports IGMP snooping which should lead to the switches learning which ports are actually using the multicast address<ref>Microsoft Support knowledge base: [http://support.microsoft.com/kb/283028 KB283028: IGMP Snooping support on NLB], visited 8 June, 2013</ref> , but it doesn' always lead to the desired result. For example [[Dell PowerConnect]] multi-layer switches officially don't support MS NLB in multicast. Even though it does work, it will lead to high CPU utilization - affecting (other) traffic in the switch<ref>Dell Tech Communities:[http://en.community.dell.com/support-forums/network-switches/f/866/p/19435793/20091643.aspx Trying to limit switch flooding from a Microsoft Windows Network Load Balacing (NLB)], Februari 2012. Visited: 8 June, 2013</ref> and on other switches you might have other limitations such that the switch to which the NLB NIC's are connected can't be the same switch that does the IP routing.
 
== Server load balancing ==