# Windows Network Load Balancing: Traffic-Verteilung im Handumdrehen
TL;DR / Management Summary Network Load Balancing (NLB) ist eine Software-basierte Lösung, um Netzwerkverkehr (primär HTTP/HTTPS) auf bis zu 32 Server zu verteilen. Im Gegensatz zum Failover-Cluster (Artikel 536) gibt es keinen Shared Storage – alle Knoten sind aktiv. Ein Senior Admin nutzt NLB für einfache, zustandslose Web-Frontends oder VPN-Gateways, wenn kein dedizierter Hardware-Loadbalancer (wie F5) oder HAProxy (Artikel 429) verfügbar ist.
# 1. Einführung & Architektur
Die VIP (Virtual IP).
NLB arbeitet auf Layer 2/3 des OSI-Modells. Es weist allen Cluster-Knoten die gleiche Virtuelle IP-Adresse (VIP) zu.
# Wie wird Traffic verteilt?
NLB nutzt einen verteilten Algorithmus (Hashing) basierend auf der Quell-IP/Port des Clients. Jeder Knoten sieht das Paket, aber nur ein Knoten entscheidet sich (anhand des Hashwertes), es zu verarbeiten.
# Unicast vs. Multicast (Der Admin-Stolperstein)
- Unicast Mode: Alle Knoten erhalten die gleiche virtuelle MAC-Adresse.
- Nachteil: Knoten können untereinander nicht mehr über ihre primären NICs kommunizieren (erfordert zweite NIC).
- Multicast Mode: Jede NIC behält ihre echte MAC, erhält aber eine zusätzliche Multicast-MAC für die VIP.
- Nachteil: Erfordert oft statische ARP-Einträge auf dem physischen Switch.
# 2. Einrichtung in der Praxis
Einen Web-Cluster bauen.
# Schritt 1: Feature installieren
Install-WindowsFeature -Name NLB -IncludeManagementTools
# Schritt 2: Cluster erstellen (via CLI)
# Neuen Cluster mit dem ersten Knoten erstellen
New-NlbCluster -InterfaceName "Ethernet" -ClusterPrimaryIP 10.0.0.80 -ClusterSubnetMask 255.255.255.0 -OperationMode Multicast
# Weitere Knoten hinzufügen
Add-NlbClusterNode -NewNodeName "SRV-WEB-02" -NewNodeInterface "Ethernet"
# 3. Deep Dive: Port-Regeln
Feingranulare Steuerung.
Sie können festlegen, welcher Traffic überhaupt gebalanced werden soll.
- Affinität: None: Pakete werden wild verteilt (gut für UDP).
- Affinität: Single: Alle Anfragen einer Quell-IP landen beim gleichen Server (Wichtig für Web-Sessions/Warenkörbe).
- Affinität: Network: Alle Anfragen eines Class-C Netzes landen beim gleichen Server (gut für Proxy-Umgebungen).
# 4. Day-2 Operations: Wartung & Drain-Stop
Patchen ohne Downtime.
Wenn Sie einen Server neustarten müssen, darf der Traffic nicht abrupt abreißen.
# Sagt NLB: Keine NEUEN Verbindungen mehr annehmen, bestehende abarbeiten (Draining)
nlb.exe drain <cluster_ip>
# ... warten bis alle Sessions weg sind ...
nlb.exe stop
# 5. Troubleshooting & “War Stories”
Wenn der Cluster zum Broadcast-Monster wird.
# Top 3 Fehlerbilder
-
Symptom: Switch-Performance bricht ein (“MAC Flapping”).
- Ursache: NLB im Unicast-Modus flutet den Switch mit Paketen an alle Ports.
- Lösung: Switch-Port Isolation (VLAN) oder Wechsel auf Multicast-Modus mit IGMP-Snooping.
-
Symptom: Knoten zeigen im Manager “Inaccessible”.
- Ursache: Firewall blockiert den NLB-Heartbeat (UDP).
- Lösung: Ausnahme für ICMP und NLB-Traffic in der Windows Firewall prüfen.
-
Symptom: Sessions brechen ständig ab.
- Ursache: Affinität auf “None” gestellt bei einer Applikation, die keine synchronisierten Sessions im Backend hat.
# “War Story”: Der “Silent” Failover
Ein Kunde betrieb ein Portal auf zwei NLB-Knoten. Eines Tages war die Seite extrem langsam.
Die Entdeckung: Ein Knoten war vor Wochen abgestürzt. NLB hatte den Traffic korrekt auf den zweiten Knoten umgeleitet. Dieser lief nun auf 100% CPU. Da der Admin kein Monitoring für die NLB-Events hatte, bemerkte er den Ausfall des ersten Knotens erst, als der zweite fast aufgab.
Lehre: NLB ist kein “Set and Forget”. Überwachen Sie den Status der Cluster-Member (Get-NlbClusterNode)!
# 6. Monitoring & Alerting
Status im Dashboard.
# Wichtige Events
Überwachen Sie das System Log auf Quelle Microsoft-Windows-NLB.
- Event ID 29: Knoten hat den Cluster verlassen.
- Event ID 28: Konvergenz abgeschlossen (Cluster wieder stabil).
# 7. Fazit & Empfehlung
NLB ist eine “Quick & Dirty” Lösung für Hochverfügbarkeit.
- Empfehlung: Nutzen Sie NLB nur für zustandslose Dienste (Statische Webseiten, DNS).
- Alternative: Für moderne Applikationen nutzen Sie lieber einen Application Gateway oder HAProxy (Artikel 429). Diese können auch “Health Checks” auf Applikationsebene (z.B. Antwortet die SQL-Datenbank hinter dem Webserver noch?) durchführen, was NLB nicht kann.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| NLB Konsole | nlbmgr.exe |
| Status aller Knoten | nlb.exe display |
| Port-Regeln sehen | Get-NlbClusterPortRule |
| Wartung starten | nlb.exe drain |