NLB – Unicast vs. Multicast

Immer wieder stelle ich in meiner Funktion als Trainer fest, das nachgefragt wird, was ist denn der Unterschied zwischen einem Unicast NLB und einem Multicast NLB. Ich möchte nun ein wenig Licht ins Dunkel bringen:

Was ist Netzwerklastenausgleich (NLB)?

Netzwerklastenausgleich (NLB) ist eine Clustertechnologie, die von Microsoft als Teil des Windows Betriebssystem eingesetzt werden kann. NLB benutzt einen verteilen Algorithmus für den Lastenausgleich von IP-Datenverkehr über mehrere Hosts. Das führt zu einer besseren Skalierbarkeit und Verfügbarkeit unternehmenskritischer, IP-basierter Dienste. Beispiele dafür sind Webdienste, Virtual Privat Netzwerk (Virtual Private Network, VPN)-Dienste, Streaming-Media, Terminaldienste, Proxy-Dienste und viele andere mehr. Ein NLB kann Ausfälle von Hosts automatisch erkennen und den Datenverkehr an andere Hosts umleiten, dadurch wird eine Hochverfügbarkeit des NLB-Clusters erreicht.

 

Unicast

Im Unicast Mode tauscht jeder NLB Knoten seine MAC Adresse mit der Cluster MAC Adresse aus,  d.h. alle Knoten haben die gleiche “virtuelle” MAC Adresse des Cluster Objektes. Dies führt in einer virtuellen Umgebung zu Schwierigkeiten dahingehend, das weitere Konfigurationsschritte in der Virtuellen Umgebung (VMWare, HyperV etc.) vorgenommen werden müssen. 

 

Dieses Konfiguration zwingt den Switch zu einem Verhalten was in einer produktiven Umgebung zu Problemen und einer höheren Netzwerklast führt, da die selbe MAC Adresse über mehrere Switchports erreichbar ist. Damit verbunden kann der Switch die MAC-Adresse nicht “lernen”, also sie nicht in seine MAC Adressen Taballe aufnehmen und an einen Port binden. Alle Pakete an diese MAC Adresse werden vom Switch über alle Ports geflutet. Das führt zu überflüssiger Last am Switch und im gesamten Netzwerk. Viele der neueren Switche haben Schutzmechanismen, die dazu führen das dieser Broadcast verhindert wird, demzufolge werden diese Pakte verworfen.  

 

Ein weiteres Problem ist dass die einzelnen NLB Knoten so nicht mehr miteinander kommunizieren können, da nicht mehr eindeutig klar ist wer ist nun der Absender und wer der Empfänger dieser Pakete, dafür wird eine zusätzliche Netzwerkkarte benötigt. Aus diesem Grund wird Unicast Mode mit nur einer Netzwerkkarte nicht empfohlen.

 

Das Fluten von Paketen kann durch erstellen eines eigenen VLAN für die NLB Knoten vermindert werden. So werden Pakete nur innerhalb dieses VLANs geflutet und nicht über den ganzen Switch.

 

Multicast

 

Beim Multicast Mode wird jedem Konten eine Multicast MAC Adresse hinzugefügt, so dass alle Knoten mit zwei Layer2 Adressen ausgestattet sind. Das ermöglicht dem Switch das “lernen” der echten MAC Adressen und den einzelnen Knoten eine Kommunikation untereinander.

 

Damit ein Multicast Cluster auch erreichbar wird, müssen statische ARP Einträge am Switch konfiguriert werden, denn Standardmäßig wird die Auflösung von Unicast IPs in Multicast MAC Adressen blockiert. So werden Pakete an die Multicast Adressen nur an die festgelegten Ports weitergeleitet.

 

Das hinzufügen von ARP Einträgen am Beispiel von einem Cisco - Router, der ein "Bein" in das LAN hat , wo der NLB - Cluster steht, könnte wie nachfolgend aussehen:

Gehen Sie in den Konfigurationsmodus des Cisco Routers, und geben Sie folgende Befehle ein:

 

arp [IP] [Cluster Multicast - MAC *] ARPA 

arp 192.168.1.100 03bf.c0a8.0164 ARPA 

 

* die Adresse Multicast - MAC des Clusters aus dem Network Load Balancing Eigenschaften - Dialogfeld

 

So, was sollte man nun wählen Unicast oder Multicast? Und warum?

 

Meine Empfehlung ist Nutzen Sie den Multicast-NLB wann immer es möglich ist. Verwenden Sie den Unicast-Modus nur dann, wenn Ihr Netzwerk-Equipment (Switches und Router) keine Unterstützung für den Multicast Modus mitbringt oder wenn sie erhebliche Leistungsprobleme mit dem Multicast NLB haben. 

 

 

Hier noch ein paar fortführende Informationen zum Thema NLB

Network Load Balancing (NLB) and virtual machines

http://blogs.msdn.com/virtual_pc_guy/archive/2006/03/21/556222.aspx

 

VMWare Implementing NLB

http://www.vmware.com/files/pdf/implmenting_ms_network_load_balancing.pdf

 

Enable NLB in a Hyper-V Guest

http://robwhitehouse.com/virtualisation/enable-nlb-in-a-hyper-v-guest

 

How to Configure a NLB Cluster on a Windows Server 2008 child hosted on a Hyper-V parent

http://marksmith.netrends.com/Lists/Posts/Post.aspx?List=d0ef1a62-8e97-484a-9053-7acda05534cb&ID=71

http://www.shudnow.net/2008/09/12/exchange-2007-unicast-nlb-issue-on-hyper-v/

 

Kommentar schreiben

Kommentare: 0