# OPNsense Load Balancing: Skalierbare Dienste mit mehreren Backends
TL;DR / Management Summary Ein einzelner Server ist ein Single Point of Failure. Mit Load Balancing verteilt OPNsense eingehende Anfragen auf eine Gruppe von Backend-Servern (Pool). Fällt ein Server aus, wird er automatisch aus dem Verbund entfernt. Ein Senior Admin nutzt dafür heute primär das HAProxy Plugin, da es neben einfachem Round-Robin auch intelligentes Layer-7 Switching, SSL-Terminierung und Health-Checks bietet.
# 1. Einführung & Architektur
Vom Gateway zum Balancer.
Load Balancing in OPNsense kann auf zwei Arten erfolgen:
- Relay (L4): Einfache Verteilung von TCP/UDP-Paketen (Port-basiert).
- Reverse Proxy (L7): Versteht den Inhalt (z.B. HTTP-Header). Ermöglicht Session-Persistence (“Sticky Sessions”).
# Architektur-Übersicht (Mermaid)
graph TD
CLIENT[User / Internet] -->|HTTPS 443| VIP[Virtual IP / OPNsense]
VIP -->|HAProxy| BAL[Load Balancer Logic]
BAL -->|Health Check| S1[Web Server 01]
BAL -->|Health Check| S2[Web Server 02]
BAL -->|Health Check| S3[Web Server 03]
subgraph "Backend Pool"
S1
S2
S3
end
# 2. Einrichtung mit HAProxy
Die Enterprise-Lösung.
# Schritt 1: Plugin installieren
System -> Firmware -> Plugins. Installieren Sie os-haproxy.
# Schritt 2: Real Servers definieren
Services -> HAProxy -> Backend Pool -> Real Servers.
Legen Sie die IP-Adressen Ihrer internen Server (z.B. 10.0.1.51, 10.0.1.52) fest.
# Schritt 3: Backend Pool erstellen
Fassen Sie die Real Servers zusammen und definieren Sie den Health Check (z.B. “Antwortet der Server auf /health.php mit HTTP 200?”).
# Schritt 4: Frontend erstellen
Hier legen Sie fest, auf welcher IP und welchem Port OPNsense lauscht (z.B. WAN-IP Port 443). Verknüpfen Sie das Frontend mit dem Backend Pool.
# 3. Deep Dive: Health Checks & Algorithmen
Intelligenz in der Verteilung.
# Load Balancing Algorithmen
- Round Robin: Reihum (Standard). Gut bei identischer Hardware.
- Least Connections: Der Server mit den wenigsten aktiven Usern bekommt den nächsten. Ideal für langlaufende Verbindungen.
- Source IP Hash: Der gleiche User landet immer beim gleichen Server (Wichtig für Warenkörbe).
# Health Checks (Liveness Probes)
Ein guter Loadbalancer prüft nicht nur, ob der Port offen ist, sondern ob die Applikation sinnvoll antwortet.
- Tipp: Nutzen Sie HTTP-Checks, die eine Datenbank-Abfrage im Backend triggern. So wird ein Server auch dann entfernt, wenn zwar der Webdienst läuft, aber die Datenbankverbindung tot ist.
# 4. Day-2 Operations: SSL-Offloading
Den Backend-Server entlasten.
Warum SSL auf jedem einzelnen Webserver konfigurieren?
- Aktion: Importieren Sie das Zertifikat (z.B. via ACME/Let’s Encrypt, Artikel 322) direkt in OPNsense.
- Fluss: Internet (HTTPS) -> OPNsense (Entschlüsseln) -> Backend (HTTP).
- Vorteil: Zentrales Zertifikatsmanagement und weniger Last auf den Backends.
# 5. Troubleshooting & “War Stories”
Wenn der Pool leer bleibt.
# Top 3 Fehlerbilder
-
Symptom: Alle Backend-Server werden als
Offlineangezeigt.- Ursache: Firewall-Regel auf dem LAN-Interface blockiert den Traffic von der Firewall-IP zum Backend.
- Lösung: Regel
Source: LAN address->Destination: Backend_Neterlauben.
-
Symptom: User fliegen ständig aus der Web-Session.
- Ursache: Fehlende Persistence. User wechselt bei jedem Klick den Server.
- Lösung: “Sticky Table” oder “AppSession” im HAProxy Backend aktivieren.
-
Symptom: “503 Service Unavailable”.
- Ursache: Backend-Server überlastet oder Health-Check Pfad falsch geschrieben.
# “War Story”: Der “Infinite” Health-Check
Ein Admin konfigurierte einen Health-Check, der eine komplexe SQL-Abfrage startete.
Das Ergebnis: Da der Check jede Sekunde von beiden OPNsense-Knoten kam, verbrauchte die SQL-Datenbank 30% ihrer CPU nur für die Health-Checks.
Lösung: Wir änderten den Check auf eine statische .txt Datei, die nur vom Backup-Skript des SQL-Servers gelöscht wurde, falls ein Problem auftrat.
Lehre: Health-Checks müssen aussagekräftig, aber leichtgewichtig sein.
# 6. Monitoring & Reporting
Echtzeit-Statistiken.
# HAProxy Statistics Page
Aktivieren Sie die Statistik-Seite unter Services -> HAProxy -> Settings -> Statistics.
- Hier sehen Sie live: Sessions pro Sekunde, Error-Rates und welcher Server gerade die meiste Last trägt.
# 7. Fazit & Empfehlung
OPNsense mit HAProxy ersetzt teure dedizierte Loadbalancer.
- Empfehlung: Nutzen Sie Load Balancing für alle unternehmenskritischen Web-Apps.
- Strategie: Kombinieren Sie Load Balancing mit dem Let’s Encrypt Plugin, um die SSL-Wartung voll zu automatisieren.
# Anhang: Cheatsheet
| Aufgabe | Pfad |
|---|---|
| Plugin | os-haproxy |
| Health Check | HAProxy -> Backend Pool -> Health Checks |
| SSL Certs | System -> Trust -> Certificates |
| Live Logs | HAProxy -> Diagnostics -> Log File |