# OPNsense Policy Based Routing (PBR): Präzise Verkehrssteuerung
TL;DR / Management Summary Normalerweise entscheidet die Routing-Tabelle (Artikel 571) basierend auf der Ziel-IP, wohin ein Paket geht. Policy Based Routing (PBR) hebelt dies aus: Wir können Pakete basierend auf der Quelle, dem Protokoll oder dem Port über ein alternatives Gateway (z.B. einen VPN-Tunnel oder eine LTE-Leitung) schicken. Ein Senior Admin nutzt PBR, um Server-Backups über einen günstigen Link zu leiten oder den gesamten IoT-Traffic zwingend durch einen VPN-Provider zu tunneln.
# 1. Einführung & Konzepte
Routing nach Regeln, nicht nach Ziel.
In OPNsense wird PBR direkt in der Firewall-Regel konfiguriert.
- Normal: Paket kommt an -> Firewall prüft Ziel -> Ziel nicht lokal -> Ab an das “Default Gateway”.
- PBR: Paket kommt an -> Firewall matcht Regel -> Regel sagt: “Nimm Gateway X” -> Paket ignoriert die Standard-Routing-Tabelle.
# 2. Einrichtung in der Praxis
Einen ‘Bypass’ bauen.
# Szenario: Gäste-WLAN über VPN schicken
Sie möchten, dass alle Gäste im VLAN 30 über einen NordVPN/Mullvad Tunnel surfen.
- Gateway erstellen: Stellen Sie sicher, dass Ihr VPN-Client (Artikel 567) ein Interface und ein Gateway in OPNsense hat.
- Firewall Regel:
Firewall -> Rules -> GUEST_VLAN.- Action: Pass.
- Source:
GUEST_VLAN net. - Advanced Options -> Gateway: Wählen Sie das
VPN_Gateway.
- Wichtig: Platzieren Sie eine “Block”-Regel darunter für das normale WAN, falls das VPN ausfällt (Kill Switch).
# 3. Deep Dive: Der ‘Kill Switch’ Mechanismus
Sicherstellen, dass kein Leck entsteht.
Wenn das in PBR gewählte Gateway ausfällt, würde OPNsense das Paket standardmäßig über das Default-WAN schicken (Leakage!).
- Lösung: Unter
Firewall -> Settings -> Advanced. - Option:
Skip rules when gateway is downaktivieren. - Effekt: Wenn das VPN-Gateway tot ist, matcht die PBR-Regel nicht mehr, und die nächste Regel (z.B. ein expliziter Block) greift.
# 4. Day-2 Operations: Lokaler DNS & PBR
Die DNS-Falle umgehen.
Häufiges Problem: User surfen via VPN (PBR), aber DNS-Anfragen gehen weiterhin an die OPNsense (lokal).
- Aktion: Erstellen Sie eine PBR-Regel für Port 53 (UDP), die DNS-Anfragen ebenfalls in den Tunnel schickt, oder geben Sie den Clients via DHCP einen externen DNS (z.B. 8.8.8.8) mit.
# 5. Troubleshooting & “War Stories”
Wenn der Umweg in die Sackgasse führt.
# Top 3 Fehlerbilder
-
Symptom: Clients im PBR-Netz erreichen keine anderen internen VLANs.
- Ursache: Die PBR-Regel matcht auch für internen Traffic und schickt Pakete für das Server-VLAN ins Internet/VPN.
- Lösung: Erstellen Sie eine Regel oberhalb der PBR-Regel:
Source: Any->Destination: RFC1918_Aliase->Gateway: Default.
-
Symptom: PBR funktioniert, aber der Upload ist extrem langsam.
- Ursache: MSS-Issues (MTU) im VPN-Tunnel (Artikel 565).
- Lösung: MSS Clamping auf dem PBR-Interface aktivieren.
-
Symptom: “Bypass” Regeln greifen nicht.
- Ursache: States sind noch offen.
- Lösung: State-Tabelle für die Client-IP löschen.
# “War Story”: Der “Streaming” Lockout
Ein Admin wollte Netflix für seine Familie über das normale WAN schicken, aber alles andere über ein günstiges, aber langsames Satelliten-Backup.
Das Problem: Netflix nutzt hunderte IPs und CDNs. Es war unmöglich, alle IPs im PBR-Alias zu pflegen.
Die Lösung: Wir nutzten den FPI (Fingerprint Identifier) des Shapers und erstellten eine PBR-Regel basierend auf dem Hostnamen-Alias *.netflix.com.
Lehre: PBR ist am effektivsten, wenn man Aliase (Artikel 555) nutzt, die sich automatisch aktualisieren.
# 6. Monitoring & Reporting
Status der Policy-Pfade.
# Diagnostics -> Routes
Prüfen Sie, ob für Ihre PBR-Konfiguration spezielle “Policy Routes” im Kernel angelegt wurden.
- Tool:
Diagnostics -> Network -> Ping. Wählen Sie das spezifische Gateway aus, um zu sehen, ob der Pfad grundsätzlich funktioniert.
# 7. Fazit & Empfehlung
PBR macht OPNsense zum intelligenten Traffic-Manager.
- Empfehlung: Nutzen Sie PBR für Backups, Gäste-Netze und IoT-Geräte.
- Wichtig: Erstellen Sie immer eine “Default-Internal” Allow-Regel oberhalb von PBR-Regeln, um den internen Datenfluss nicht zu unterbrechen.
# Anhang: Cheatsheet
| Feld | Wert | Zweck |
|---|---|---|
| Source | IP / Netz | Wer wird gesteuert? |
| Dest Port | Port | Welcher Dienst wird gesteuert? |
| Gateway | WAN / VPN | Welcher Pfad wird genutzt? |
| Log | Yes | Debugging des Routings |