[[start|zurück]]====== Load Balancing – Grundlagen (L4 & L7) ======
Load Balancing verteilt Anfragen (Traffic) auf mehrere Server,
um Verfügbarkeit, Leistung und Ausfallsicherheit zu erhöhen.
Typische Einsatzgebiete:
* Webseiten (z. B. www.example.com)
* APIs & Microservices
* Docker / Kubernetes
* Unternehmensanwendungen
* Datenbanken (Read-Replicas)
* E-Mail-Cluster
* VPN-Gateways
===== Warum Load Balancing? ======
* höhere Verfügbarkeit (kein Single Point of Failure)
* bessere Performance
* mehr Kapazität
* Wartung ohne Downtime
* DDoS-Abmilderung
===== Zwei Hauptarten ======
* **Layer 4 Load Balancing** (Transport Layer)
* **Layer 7 Load Balancing** (Application Layer)
---
====== 1. Layer 4 Load Balancing (Transport-Layer) ======
L4 arbeitet auf Basis von:
* IP-Adresse
* Port
* TCP/UDP
Der Load Balancer weiß NICHT, was im HTTP/TLS passiert – er verteilt nur Verbindungen.
ASCII:
Client → LB (L4) → Server1
→ Server2
→ Server3
==== Merkmale ====
* sehr schnell
* arbeitet mit TCP/UDP direkt
* keine Inhalteinsicht
* gut für VPN, Datenbanken, SMTP, Spiele-Server
==== Beispiele ====
* HAProxy (L4/L7)
* Linux IPVS (z. B. keepalived)
* LVS Load Balancer
* AWS NLB (Network Load Balancer)
==== Typische L4-Methoden ====
* Round Robin
* Least Connections
* Source IP Hash
* Weighted Scheduling
---
====== 2. Layer 7 Load Balancing (Application-Layer) ======
L7 „versteht“, was im HTTP/HTTPS passiert, und kann Inhalte analysieren.
Kann abhängig machen von:
* URLs
* Headern
* Cookies
* Benutzeragenten
* Sessions
* APIs
ASCII:
Client → LB (L7)
├── /api → Server1
├── /images → Server2
└── /admin → Server3
==== Merkmale ====
* sehr flexibel
* Routing nach Inhalt
* SSL/TLS-Terminierung möglich
* ideal für Webservices
==== Beispiele ====
* Nginx
* Traefik
* HAProxy (kann L7)
* Envoy
* F5 Big-IP
* AWS ALB (Application Load Balancer)
==== Vorteile ====
* intelligenter Trafficfluss
* HTTPS-Aufbrechen & Analyse
* API-Gateway-Funktionen
==== Nachteile ====
* mehr CPU-Bedarf
* komplexer
* TLS-Handling muss sauber sein
---
====== 3. Load Balancing-Methoden ======
==== Round Robin ====
Jede Anfrage nacheinander an anderen Server.
1 → S1
2 → S2
3 → S3
4 → S1
==== Least Connections ====
Der Server mit den wenigsten aktiven Verbindungen bekommt die nächste Anfrage.
==== Source IP Hash ====
Gleiche Quell-IP → immer gleicher Server (Sessionstickiness).
==== Weighted Round Robin ====
Server mit mehr Leistung bekommen mehr Anfragen.
---
====== 4. Health Checks ======
Ein Load Balancer prüft regelmäßig, ob ein Server gesund ist.
Beispiele:
* Ping
* TCP-Port erreichbar
* HTTP-Status 200
* eigene API-Healthchecks
Wenn ein Server nicht gesund ist → automatisch herausgenommen.
ASCII:
Server2 DOWN → Traffic nur an Server1 & Server3
---
====== 5. TLS-Terminierung (SSL-Offloading) ======
Der Load Balancer entschlüsselt HTTPS und leitet intern HTTP weiter.
Vorteile:
* geringere Serverlast
* zentrale Zertifikatsverwaltung
* Content-based Routing möglich
Beispiel (Traefik, Nginx):
Client → HTTPS → LB → HTTP → Backend
---
====== 6. Load Balancing in der Praxis (Beispiele) ======
==== Beispiel 1: Webserver-Cluster ====
Nginx/Traefik LB → 3× Apache/PHP Server
==== Beispiel 2: Mailserver High Availability ====
HAProxy (L4) → 2× Dovecot IMAP Server
==== Beispiel 3: VPN-Cluster ====
HAProxy (L4) → 2× WireGuard Gateways
==== Beispiel 4: Kubernetes ====
K8s nutzt:
* kube-proxy
* ingress controller (Traefik, Nginx)
* LoadBalancer Services
---
====== 7. Load Balancer vs. Reverse Proxy ======
Load Balancer:
* verteilt Traffic
* kann L4 oder L7 sein
Reverse Proxy:
* immer L7
* nimmt Anfragen entgegen und leitet an Backend weiter
* z. B. Traefik, Nginx, Apache mod_proxy
Viele Produkte kombinieren beides.
---
====== 8. High Availability (HA) ======
Oft nutzt man:
* VRRP (Keepalived)
* Heartbeat
* Pacemaker
ASCII:
VIP (Virtuelle IP)
↓
[LB1] <→> [LB2]
Wenn LB1 ausfällt → LB2 übernimmt.
---
====== Zusammenfassung ======
* Load Balancing verteilt Anfragen auf mehrere Server
* L4 = schnelles Routing nach IP/Port
* L7 = Routing nach Inhalten (URLs, Header)
* Health Checks prüfen Serverzustand
* TLS-Offloading erleichtert Verwaltung
* in modernen Architekturen unverzichtbar
* Docker, Kubernetes, Cloud nutzen fast immer L7 Load Balancer