OPNsense 2 Provider
Plan
| Rolle | Interface | Gerät | Identifier | IP-Adresse | Provider-Gateway |
|---|---|---|---|---|---|
| Internes Netz | LAN | em0 | lan | LAN-Netz/24 | – |
| Provider A | WAN1 | em1 | opt3 | 192.168.HS.2XX/24 | 192.168.HS.254 |
| Provider B | WAN2 | em3 | opt2 | 172.30.34.2XX/24 | 172.30.34.254 |
Hinweis: Die Identifier (opt1, opt2, opt3 …) vergibt OPNsense in der Reihenfolge, in der die Interfaces angelegt werden. Sie müssen nicht fortlaufend zu den Gerätenamen passen – wichtig ist nur, dass sie in Gateways, DNS und Regeln konsistent referenziert werden.
Was müssen wir tun?
- 2 WAN-Interfaces anlegen
- 2 Gateways definieren
- Eine Gatewaygruppe erstellen
- Die Internetleitungen überwachen (Healthcheck über Monitor-IP)
- Eine Entscheidungsinstanz schaffen: die Gatewaygruppe entscheidet über Tier und Trigger Level
- Zuordnung klären: Policy Routing über die Gateway-Angabe in der Firewallregel
- DNS-Server pro Leitung zuordnen
- Firewallregeln anpassen (Reihenfolge beachten!)
- NAT-Regeln anpassen
- Szenarien testen
Voraussetzungen
- Virtuelle Maschine mit 5 Netzwerkschnittstellen (VirtualBox: LAN, WAN1, WAN2, DMZ, Reserve)
- Zeitzone unter System: Settings: General auf
Europe/Berlinsetzen (nichtEtc/UTC) - Systemdomain prüfen:
it34.xinux.de
Konfiguration
Interface WAN1
Interfaces: [WAN1]
| Feld | Wert |
|---|---|
| Enable | aktiv |
| Device | em1 |
| Description | WAN1 |
| Block private networks | aus |
| Block bogon networks | aus |
| IPv4 Configuration Type | Static IPv4 |
| IPv6 Configuration Type | None |
| IPv4 address | 192.168.HS.2XX /24 |
| IPv4 Upstream Gateway | WAN1GW |
Wichtig: Die Präfixlänge /24 darf nicht fehlen, sonst wird das Interface mit /32
angelegt und das Gateway ist nicht erreichbar.
Interface WAN2
Interfaces: [WAN2]
| Feld | Wert |
|---|---|
| Enable | aktiv |
| Device | em3 |
| Description | WAN2 |
| Block private networks | aus |
| Block bogon networks | aus |
| IPv4 Configuration Type | Static IPv4 |
| IPv6 Configuration Type | None |
| IPv4 address | 172.30.34.2XX/24 |
| IPv4 Upstream Gateway | WAN2GW |
Einstellen der Gateways
System: Gateways: Configuration
| Feld | GW1 | GW2 |
|---|---|---|
| Name | WAN1GW | WAN2GW |
| Interface | WAN1 | WAN2 |
| Address Family | IPv4 | IPv4 |
| IP Address | 192.168.HS.254 | 172.34.30.254 |
| Upstream Gateway | aktiv | aktiv |
| Far Gateway | aus | aus |
| Disable Gateway Monitoring | aus | aus |
| Monitor IP | 8.8.8.8 | 9.9.9.9 |
| Priority | 254 | 255 |
Zwei Punkte, die häufig falsch gemacht werden:
- Upstream Gateway muss bei beiden Gateways gesetzt sein. Es kennzeichnet ein Gateway als
Internet-Ausgang; ist es nur bei einem gesetzt, verhält sich das Failover unvorhersehbar.
- Die Monitor-IPs müssen bei verschiedenen Betreibern liegen und dürfen nicht mit den
DNS-Servern identisch sein. 8.8.8.8 und 8.8.4.4 gehören beide Google: fällt Google aus, werden beide Leitungen als tot gemeldet. Für jede Monitor-IP legt OPNsense zusätzlich eine Hostroute über das jeweilige Gateway an; benutzt man dieselbe IP auch als DNS-Server, überlagern sich Hostroute und DNS-Zuordnung.
- Die niedrigere Priority gewinnt bei der Wahl des Default-Gateways. Stehen beide auf 255,
ist die Wahl zufällig.
Einstellen der Gatewaygruppe
System: Gateways: Group
| Feld | Wert |
|---|---|
| Group Name | GW_GROUP |
| Gateway Priority | GW1 = Tier 1, GW2 = Tier 2 |
| Trigger Level | Member Down |
| Pool Options | Default |
| Ziel | Tier-Vergabe | Trigger Level |
|---|---|---|
| Failover (Standard hier) | GW1 = Tier 1, GW2 = Tier 2 | Member Down |
| Lastverteilung | beide Tier 1 | Packet Loss or High Latency |
Bei Lastverteilung zusätzlich Firewall: Settings: Advanced → Sticky connections aktivieren, sonst wechseln einzelne Verbindungen desselben Clients die Leitung.
DNS pro Leitung
System: Settings: General
| DNS Server | Use gateway |
|---|---|
| 9.9.9.9 | GW1 – opt3 – 10.88.1.1 |
| 1.0.0.1 | GW2 – opt2 – 10.99.99.1 |
- Prefer IPv4 over IPv6: aktiv
- Die Zuordnung sorgt dafür, dass jeder DNS-Server über „seine“ Leitung befragt wird. Fällt eine
Leitung aus, bleibt der andere Resolver erreichbar.
NAT auf beiden WAN-Interfaces
Firewall: NAT: Outbound
| Feld | Wert |
|---|---|
| Mode | Hybrid outbound NAT rule generation |
| Interface | Source | Source Port | Destination | Dest. Port | NAT Address | NAT Port | Static Port |
|---|---|---|---|---|---|---|---|
| WAN1 | LAN net | * | * | * | Interface address | * | NO |
| WAN2 | LAN net | * | * | * | Interface address | * | NO |
Warum Hybrid statt Manual: Im Modus Manual verschwinden alle automatisch erzeugten
Regeln – also auch NAT für VPN-Netze, für die Firewall selbst (Loopback) und die Static-Port-Regel
für ISAKMP (UDP 500). Hybrid behält die automatischen Regeln und stellt die eigenen davor.
Wer bewusst Manual fahren will, muss zusätzlich Regeln für alle weiteren internen Netze
(DMZ, VPN) und 127.0.0.0/8 anlegen.
Firewallregeln mit Gateway-Gruppe
Firewall: Rules: LAN – die Reihenfolge ist entscheidend:
| # | Action | Source | Destination | Gateway | Zweck |
|---|---|---|---|---|---|
| 1 | Pass | LAN net | This Firewall | leer (default) | DNS, NTP, Web-GUI |
| 2 | Pass | LAN net | Alias LOKALE_NETZE | leer (default) | interne Netze, DMZ, VPN |
| 3 | Pass | LAN net | any | GW_GROUP | Internetverkehr über die Gruppe |
Regel 3 im Detail:
| Feld | Wert |
|---|---|
| Action | Pass |
| Quick | aktiv |
| Interface | LAN |
| Direction | in |
| TCP/IP Version | IPv4 |
| Protocol | any |
| Source | LAN net |
| Destination | any |
| Description | LAN to any über Gateway-Gruppe |
| Gateway | GW_GROUP |
Der klassische Fehler: Nur eine einzige Regel mit Gateway GW_GROUP. Eine Gateway-Angabe erzwingt Policy Routing für alles, was auf die Regel passt – auch für Pakete an die DMZ, an VPN-Gegenstellen und an die Firewall selbst. Diese Pakete werden dann in Richtung Internet geschickt und verschwinden. Deshalb müssen die Regeln 1 und 2 ohne Gateway-Angabe darüber stehen.
Der Alias LOKALE_NETZE (Firewall: Aliases, Typ Network) enthält alle eigenen
Netze, z. B. die LAN-, DMZ- und VPN-Bereiche.
Firewall: Settings: Advanced
| Option | Empfehlung | Wirkung |
|---|---|---|
| Skip rules when gateway is down | aktiv | Bei totem Gateway wird die Regel entfernt statt auf das Default-Gateway zurückzufallen – verhindert stillen Rückfall auf die falsche Leitung |
| Sticky connections | nur bei Lastverteilung | hält alle Verbindungen eines Clients auf derselben Leitung |
Szenarien testen
| Szenario | Vorgehen | Erwartetes Ergebnis |
|---|---|---|
| Normalbetrieb | traceroute 9.9.9.9 vom Client |
erster Hop 10.88.1.1 (GW1) |
| Ausfall WAN1 | Kabel in VirtualBox trennen | Dashboard zeigt GW1 offline, Verkehr läuft über 10.99.99.1 |
| Rückkehr WAN1 | Kabel wieder verbinden | GW1 wieder online, neue Verbindungen laufen über GW1 |
| DNS-Test | dig @9.9.9.9 und dig @1.0.0.1 |
beide antworten, jeder über seine Leitung |
| Zugriff intern | Ping in DMZ bei totem WAN1 | funktioniert weiter (Regel 2 ohne Gateway) |
Statusanzeigen: Lobby: Dashboard (Widget Gateways), System: Gateways: Log File sowie Interfaces: Diagnostics: Routes.
