# Netzwerklastenausgleich

Netzwerklastenausgleich (auch bekannt als dual-WAN Routing) ist die Fähigkeit, Datenverkehr über zwei WAN-Links auszugleichen, ohne komplexe Routing-Protokolle wie BGP zu verwenden.
Diese Fähigkeit gleicht Sitzungen wie Web, E-Mail etc. über mehrere Verbindungen aus, um die verwendete Bandbreite jedes WAN-Benutzers auszubreiten, und so die insgesamt verfügbare Bandbreite zu erhöhen. Zum Beispiel, ein Benutzer hat eine einzige WAN-Verbindung zum Internet mit einer Bandbreite von 1.5 Mbit/s. Dieser wünscht, eine zweite Breitband (Kabel, DSL, WLan etc.) -Verbindung mit 2.5 Mbit/s hinzuzufügen. Das würde insgesamt eine Bandbreite von 4 Mbit/s ergeben, wenn die Sitzungen ausgeglichen werden.
Sitzungen ausgleichen bedeutet, die Sitzungen über jeden WAN-Link auszugleichen. Wenn Webbrowser sich mit dem Internet verbinden, so öffnen sie üblicherweise mehrere Sitzungen: Eine für Text, eine für ein Bild, eine für ein anderes Bild etc. Jede dieser Sitzungen kann über die vorhandenen Verbindungen ausgeglichen werden. Eine FTP-Anwendung nutzt nur eine einzige Sitzung und ist daher nicht ausgeglichen; wird jedoch eine weitere FTP-Verbindung hergestellt, dann kann es so ausgeglichen werden, dass generell Datenverkehr gleichmäßig über unterschiedliche Verbindungen verteilt wird, und so der gesamte Durchsatz erhöht.
Netzwerklastenausgleich wird außerdem häufig verwendet, um Redundanz bereitzustellen, so dass selbst beim Ausfall eines WAN-Links die Verbindung zu Ressourcen im Netzwerk noch immer über andere Verbindung(en) vorhanden sind. Redundanz ist eine wesentliche Voraussetzung für Business-Continuity-Pläne und wird grundsätzlich in Verbindung mit kritischen Anwendungen wie VPNs oder VoIP eingesetzt.
Die meisten Netzwerklastenausgleich-Systeme beinhalten auch die Fähigkeit sowohl eingehenden, als auch ausgehenden Datenverkehr auszugleichen. Eingehende Lastverteilung wird üblicherweise mittels DDNS durchgeführt oder von einem externen System oder Dienst zur Verfügung gestellt. Einen DDNS-Dienst innerhalb eines Systems zu haben wird, vom Standpunkt der Kosten/Nutzen und generellen Kontrolle, grundsätzlich als besser wahrgenommen.

## Microsoft NLB

Microsoft hat auch eine Technologie gekauft, die es in Netzwerklastenausgleich (englisch network load balancing, NLB) umbenannt hat, die es ermöglicht, mehrere Netzwerkkarten effizient zu nutzen. MS NLB kann sowohl im Unicast- als auch in Multicast-Modus konfiguriert werden wobei im Multicast-Modus IGMP Snooping aktiviert werden kann.
MS NLB wurde in Windows NT server eingeführt, um Datenverkehr über mehrere Hosts zu verteilen, ohne einen Hardware-basierenden Lastenverteiler zu benötigen, z. B. wenn eine ausgelastete Webserver-Anwendung gehostet wird, wo ein einziger Host nicht den gesamten Datenverkehr bewältigen könnte. Und in neueren Anwendungen wird es in Windows Cluster für Hyper-V oder Microsoft SQL Server verwendet.

### Unicast-Modus

Im Unicast-Modus ändert NLB die MAC-Adresse der Station (abhängig von der primären IP-Adresse des NLB-Clusters) zu einer virtuellen MAC-Adresse und alle Netzwerkkarten im NLB-Cluster benutzen diese eine MAC-Adresse. Dieser Aufbau wird jeglichen eingehenden Datenverkehr für den Cluster dazu bringen, alle Ports des Switches als unbekannte Unicast-Frames zu überfluten, selbst Ports an die Hosts angeschlossen sind, die nicht zum Cluster gehören. Um die Überflutung möglichst gering zu halten, müsste für den Cluster ein eigenes VLAN benutzt werden.

### Multicast-Modus

Eine andere Möglichkeit ist, NLB im Multicast-Modus zu betreiben. Die Unicast IPv4-Adresse des Clusters ist mit der Multicast-Mac-Adresse verbunden. Die Hosts des Clusters werden mit dieser MAC- und IPv4-Adresse keine Daten zum Switch senden, also müsste man einen statischen ARP-Eintrag im Router (Layer 3) anlegen. Nicht alle Hersteller erlauben es, ARP-Einträge zu erstellen, wo eine unicast IP-Adresse und eine Multicast MAC-Adresse verwendet wird. Cisco hat Beispiele veröffentlicht, wie MS NLB auf Catalyst Switches mit Cisco IOS eingerichtet werden kann, und diese Beispiele können für Switches von vielen anderen Herstellern benutzt werden. Wie mit NLB im Unicast-Modus gilt: Eingehender Datenverkehr zum Cluster wird zu allen Ports im Switch/VLAN geflutet und nicht alle Hersteller unterstützen diesen Aufbau. Um die Datenflut zu minimieren, wird nun IGMP von MS NLB unterstützt, was dazu führen sollte, dass die Switches lernen, welche Ports tatsächlich eine Multicast-Adresse verwenden, aber dies führt nicht immer zum erwünschten Ergebnis. Zum Beispiel unterstützen die Dell PowerConnect Multi-Layer Switches den MS NLB Multicast nicht offiziell. Es funktioniert zwar, führt aber zu einer hohen CPU-Auslastung – was (anderen) Datenverkehr im Switch beeinflusst und bei anderen Switches können andere Einschränkungen auftreten, wie dass der Switch, mit dem die NLB Netzwerkkarten verbunden sind, nicht derselbe Switch sein kann, der IP-Routing handhabt.

## Server-Lastverteilung

Hierbei werden mehrere Server verbunden, um einen Cluster zu bilden. Cluster können Netzwerklastenausgleich benutzen, wobei gleichzeitige Cluster-Anfragen zwischen den Clustern verteilt werden. Lastverteilung per DNS ist eine Form von Cluster-Lastverteilung. Es funktioniert durch die Erstellung von mehreren Hosteinträgen (normalerweise A und/oder AAAA) für eine Maschine. Wenn Klienten Anfragen stellen, rotiert DNS durch seine Liste von Einträgen. Zusätzlich zum oben erwähnten, um einen Terminalserver-Cluster zu konfigurieren, braucht jemand eine Lastverteilungstechnologie wie Netzwerklastenausgleich (NLB) oder Lastverteilung per DNS. Eine derartige Lösung wird die Client-Verbindungen zu allen Terminalservern verteilen. Terminal Server Session Directory ist eine Funktion, die es Benutzern erlaubt, sich in einer Terminalserver-Farm mit Lastverteilung einfach und automatisch zu einer zuvor unterbrochenen Sitzung zu verbinden. Das Sitzungsverzeichnis führt dazu eine Liste von Sitzungen, indiziert mit Benutzername und Server-Name. Das ermächtigt den Benutzer, mit dem Terminalserver, wo die unterbrochene Sitzung liegt, sich erneut zu Verbinden, um die unterbrochene Arbeit wieder aufzunehmen. Diese Wiederverbindung funktioniert sogar, wenn sich der Benutzer von einem anderen Computer verbindet.