In der heutigen schnelllebigen digitalen Welt ist die **Ausfallsicherheit** von Netzwerken nicht länger ein Luxus, sondern eine absolute Notwendigkeit. Für Unternehmen jeder Größe kann ein Ausfall des Internets oder des Netzwerks zu massiven finanziellen Verlusten, Reputationsschäden und dem Verlust von Kundendaten führen. Hier kommt OPNsense ins Spiel: Eine leistungsstarke Open-Source-Firewall- und Routing-Plattform, die sich durch ihre Flexibilität und Robustheit auszeichnet. Doch um wirklich **ausfallsicher** zu sein, muss OPNsense in einem Hochverfügbarkeits-Cluster betrieben werden. In diesem detaillierten Leitfaden konzentrieren wir uns auf die Einrichtung eines **OPNsense HA CARP Clusters** mit besonderem Augenmerk auf die korrekte Integration von **PPPoE-Einwahl**, einer Konfiguration, die oft zu Herausforderungen führen kann.
Dieser Artikel richtet sich an Netzwerkadministratoren, IT-Profis und Systemingenieure, die eine zuverlässige und redundante Netzwerkinfrastruktur aufbauen möchten. Wir führen Sie Schritt für Schritt durch den gesamten Prozess, von den Grundlagen der Hochverfügbarkeit bis hin zur präzisen Konfiguration und Fehlerbehebung Ihres Clusters.
Grundlagen der Ausfallsicherheit mit OPNsense
Bevor wir in die technischen Details eintauchen, ist es wichtig, die Kernkonzepte zu verstehen, die OPNsense für seine Hochverfügbarkeitsfunktionen nutzt:
- CARP (Common Address Redundancy Protocol): CARP ist das Herzstück der OPNsense-HA-Lösung. Es ermöglicht mehreren Firewalls, eine **gemeinsame virtuelle IP-Adresse (VIP)** zu teilen. Nur eine Firewall (der sogenannte „Master”) ist zu einem bestimmten Zeitpunkt aktiv und antwortet auf Anfragen an diese VIP. Fällt der Master aus, übernimmt automatisch eine der Backup-Firewalls (der „Slave”) die Rolle des Masters und die VIP. Dies gewährleistet, dass Ihr Netzwerk auch bei einem Hardwareausfall nahtlos weiter funktioniert. Jede CARP-Instanz wird durch eine eindeutige **Virtual Host ID (VHID)** identifiziert und kann eine Priorität (Adv. Skew) für die Master-Auswahl haben.
- PFSync (Packet Filter State Synchronisation): Während CARP die IP-Adressen redundiert, sorgt PFSync für die **Zustands-Synchronisation**. Das bedeutet, dass Informationen über aktive Verbindungen (z. B. TCP-Sitzungen, UDP-Streams) zwischen den beiden OPNsense-Instanzen ausgetauscht werden. Wenn ein Failover stattfindet, kennt die neue Master-Firewall alle bestehenden Verbindungen und kann diese ohne Unterbrechung aufrechterhalten. Dies ist entscheidend für eine unterbrechungsfreie Benutzererfahrung. PFSync kommuniziert über eine dedizierte Schnittstelle zwischen den beiden Cluster-Knoten.
- PPPoE (Point-to-Point Protocol over Ethernet): PPPoE ist ein gängiges Protokoll, das von vielen ISPs verwendet wird, um Breitbandverbindungen über Ethernet herzustellen. Es erfordert eine Authentifizierung und weist dem Router dynamisch eine öffentliche IP-Adresse zu. Die Herausforderung bei PPPoE in einem HA-Cluster besteht darin, dass die PPPoE-Sitzung von Natur aus an eine bestimmte physische Schnittstelle gebunden ist. Ein einfacher Failover wie bei statischen IPs ist hier nicht direkt anwendbar. OPNsense bietet jedoch eine elegante Lösung, die wir im Detail behandeln werden.
Voraussetzungen für den Cluster-Aufbau
Eine sorgfältige Planung und Vorbereitung sind entscheidend für einen erfolgreichen Cluster. Stellen Sie sicher, dass die folgenden Punkte erfüllt sind:
- Zwei identische OPNsense-Instanzen: Ideal sind zwei physische Server oder virtuelle Maschinen mit möglichst identischer Hardware-Ausstattung (CPU, RAM, Anzahl der Netzwerkkarten). Dies minimiert Kompatibilitätsprobleme und gewährleistet eine vergleichbare Leistung.
- Mindestens drei Netzwerkschnittstellen pro Node:
- WAN-Schnittstelle: Verbindet den OPNsense-Node mit dem ISP-Modem oder dem vorgelagerten Netzwerk.
- LAN-Schnittstelle: Verbindet den OPNsense-Node mit Ihrem internen Netzwerk.
- SYNC/HA-Schnittstelle: Eine dedizierte Schnittstelle nur für die Kommunikation zwischen den beiden OPNsense-Nodes (CARP- und PFSync-Verkehr). Dies ist für die Stabilität und Sicherheit des Clusters unerlässlich und sollte nicht für den normalen Datenverkehr genutzt werden.
Je nach Komplexität Ihrer Netzwerkinfrastruktur benötigen Sie möglicherweise weitere Schnittstellen (z. B. für DMZ, VLANs).
- IP-Adressschema: Planen Sie im Voraus, welche IP-Adressen Sie für jede Schnittstelle (physisch und virtuell) auf beiden Nodes verwenden möchten.
- Für die SYNC/HA-Schnittstelle empfehlen wir ein separates Subnetz (z. B. 192.168.255.0/24).
- Für die physikalischen WAN-Schnittstellen benötigen Sie, falls das PPPoE-Modem eine Brücke ist, ein weiteres internes Subnetz, über das die beiden OPNsense-Nodes kommunizieren können, bevor die PPPoE-Einwahl erfolgt (z. B. 10.0.0.0/30).
- Für die LAN-Schnittstelle ein übliches Subnetz für Ihr internes Netzwerk.
- Neueste OPNsense-Version: Stellen Sie sicher, dass auf beiden Instanzen die neueste stabile OPNsense-Version installiert ist. Dies garantiert die Verfügbarkeit aller HA-Funktionen und Fehlerbehebungen.
- Physische Verkabelung: Überprüfen Sie alle Kabelverbindungen. Eine fehlerhafte Verkabelung kann zu unerklärlichen Problemen führen.
Schritt-für-Schritt-Anleitung zur Einrichtung
Wir gehen davon aus, dass Sie auf beiden OPNsense-Instanzen eine grundlegende Installation abgeschlossen und die Netzwerkkarten den jeweiligen Rollen (WAN, LAN, SYNC) zugewiesen haben. Beginnen Sie die Konfiguration auf **Node 1 (dem zukünftigen Primary)**.
1. Basis-Netzwerkkonfiguration auf beiden Nodes
Bevor wir CARP aktivieren, konfigurieren Sie die physikalischen Schnittstellen auf beiden Nodes.
Node 1 (Primary) und Node 2 (Secondary):
- Gehen Sie zu **Schnittstellen -> Zuweisungen** und stellen Sie sicher, dass Ihre Schnittstellen korrekt zugewiesen sind (z. B. `em0` als WAN, `em1` als LAN, `em2` als SYNC).
- LAN-Schnittstelle:
- Aktivieren Sie die Schnittstelle.
- IPv4-Konfigurationstyp: **Statische IPv4**.
- IPv4-Adresse: z.B. `192.168.1.254/24` (Node 1) und `192.168.1.253/24` (Node 2). *WICHTIG:* Diese IPs sind die physikalischen IPs der Nodes im LAN. Die Benutzer werden später die CARP VIP als Gateway nutzen.
- IPv4-Upstream-Gateway: Keines.
- SYNC/HA-Schnittstelle:
- Aktivieren Sie die Schnittstelle.
- IPv4-Konfigurationstyp: **Statische IPv4**.
- IPv4-Adresse: z.B. `192.168.255.1/24` (Node 1) und `192.168.255.2/24` (Node 2).
- IPv4-Upstream-Gateway: Keines.
- WAN-Schnittstelle (physisch):
- Aktivieren Sie die Schnittstelle.
- IPv4-Konfigurationstyp: **Statische IPv4**.
- IPv4-Adresse: Z.B. `10.0.0.1/30` (Node 1) und `10.0.0.2/30` (Node 2). *Dies ist ein Beispiel für ein internes Netz zwischen OPNsense und einem Modem im Bridged-Modus, oder wenn Ihr ISP ein /30 Netz für Ihr Equipment bereitstellt. Passen Sie dies an Ihre Gegebenheiten an.*
- IPv4-Upstream-Gateway: Keines.
2. HA-Einstellungen (PFSync)
Diese Einstellungen synchronisieren den Zustand der Firewall zwischen den Nodes.
Auf Node 1 (Primary):
- Navigieren Sie zu **System -> Hochverfügbarkeit -> Einstellungen**.
- Aktivieren Sie **Hochverfügbarkeitssynchronisation (HA)**.
- **Synchronisierungs-Schnittstelle:** Wählen Sie Ihre SYNC/HA-Schnittstelle (z. B. `em2`).
- **Peer IP:** Geben Sie die IP-Adresse der SYNC/HA-Schnittstelle von Node 2 ein (z. B. `192.168.255.2`).
- **Synchronisierungs-Passwort:** Wählen Sie ein sicheres Passwort.
- **XMLRPC-Synchronisierung:** Aktivieren Sie diese Option, um die Konfiguration zu synchronisieren.
- **Entfernter Firewall-HA-Knoten-IP:** Geben Sie die LAN-IP von Node 2 ein (z. B. `192.168.1.253`).
- **Benutzername/Passwort für entfernten Knoten:** Geben Sie die Anmeldeinformationen für Node 2 ein.
- Speichern Sie die Einstellungen.
Auf Node 2 (Secondary):
- Navigieren Sie zu **System -> Hochverfügbarkeit -> Einstellungen**.
- Aktivieren Sie **Hochverfügbarkeitssynchronisation (HA)**.
- **Synchronisierungs-Schnittstelle:** Wählen Sie Ihre SYNC/HA-Schnittstelle (z. B. `em2`).
- **Peer IP:** Geben Sie die IP-Adresse der SYNC/HA-Schnittstelle von Node 1 ein (z. B. `192.168.255.1`).
- **Synchronisierungs-Passwort:** Verwenden Sie dasselbe Passwort wie auf Node 1.
- **XMLRPC-Synchronisierung:** Aktivieren Sie diese Option.
- **Entfernter Firewall-HA-Knoten-IP:** Geben Sie die LAN-IP von Node 1 ein (z. B. `192.168.1.254`).
- **Benutzername/Passwort für entfernten Knoten:** Geben Sie die Anmeldeinformationen für Node 1 ein.
- Wählen Sie unter **HA-Synchronisierung als Slave** die Option „Aktiv”.
- Speichern Sie die Einstellungen.
Nach dem Speichern auf Node 2 sollte die Konfiguration von Node 1 auf Node 2 synchronisiert werden. Überprüfen Sie dies, indem Sie die Firewall-Regeln oder andere Einstellungen auf Node 2 ansehen.
3. CARP-Einrichtung (Virtuelle IPs)
Jetzt konfigurieren wir die virtuellen IP-Adressen, die zwischen den Nodes wechseln.
Auf Node 1 (Primary):
- Navigieren Sie zu **Schnittstellen -> Virtuelle IPs -> Einstellungen**.
- Klicken Sie auf **+ Hinzufügen**.
- Typ: **CARP**.
- Schnittstelle: Wählen Sie Ihre **LAN-Schnittstelle**.
- Virtuelle IP-Adresse: Geben Sie die gewünschte CARP-IP für Ihr LAN ein, z. B. `192.168.1.1/24`. Dies ist die IP, die Ihre Clients als Gateway verwenden werden.
- Virtuelle Host-ID (VHID): Eine eindeutige Nummer (z. B. `1`). Muss auf beiden Nodes gleich sein.
- Werbeverschiebung (Adv. Skew): `0`. Dies macht Node 1 zum bevorzugten Master.
- Speichern Sie die Einstellungen.
Für die WAN-Schnittstelle und PPPoE ist der Vorgang spezieller:
Um PPPoE im **HA-Modus** korrekt zu nutzen, muss die PPPoE-Schnittstelle eine CARP-VIP als übergeordnete Schnittstelle verwenden. Dies erlaubt der PPPoE-Sitzung, zwischen den Nodes zu schweben.
Auf Node 1 (Primary):
- Navigieren Sie erneut zu **Schnittstellen -> Virtuelle IPs -> Einstellungen**.
- Klicken Sie auf **+ Hinzufügen**.
- Typ: **CARP**.
- Schnittstelle: Wählen Sie Ihre **physische WAN-Schnittstelle** (z. B. `em0`).
- Virtuelle IP-Adresse: Geben Sie eine weitere statische IP-Adresse aus dem Subnetz Ihrer physischen WAN-Schnittstellen an, die noch nicht vergeben ist, z. B. `10.0.0.3/30`. Diese IP ist entscheidend für das CARP-Protokoll, das über die WAN-Seite agiert, und wird später als „Eltern-Schnittstelle” für PPPoE dienen.
- Virtuelle Host-ID (VHID): Eine andere eindeutige Nummer als die für LAN (z. B. `2`).
- Werbeverschiebung (Adv. Skew): `0`.
- Speichern Sie die Einstellungen.
Auf Node 2 (Secondary):
Auf Node 2 sollten die CARP-VIPs automatisch durch die XMLRPC-Synchronisierung von Node 1 übernommen werden. Überprüfen Sie dies unter **Schnittstellen -> Virtuelle IPs -> Einstellungen**. Die Adv. Skew für die CARP-VIPs auf Node 2 sollte dann auf `100` gesetzt werden (da Node 1 der primäre ist). Ist dies nicht der Fall, bearbeiten Sie sie manuell und setzen Sie sie auf `100`.
- Für die LAN-CARP-VIP (z. B. `192.168.1.1/24`): Adv. Skew `100`.
- Für die WAN-CARP-VIP (z. B. `10.0.0.3/30`): Adv. Skew `100`.
- Speichern Sie alle Änderungen.
4. PPPoE-Einrichtung mit CARP
Dies ist der kritische Schritt für die **PPPoE-Einwahl** im HA-Modus.
Auf Node 1 (Primary):
- Gehen Sie zu **Schnittstellen -> Zuweisungen**.
- Klicken Sie auf **+ Hinzufügen** und wählen Sie „PPPoE” als Typ. Geben Sie einen Namen wie `WAN_PPPOE` und klicken Sie auf **Hinzufügen**.
- Navigieren Sie zu der neu erstellten Schnittstelle `WAN_PPPOE` (oder wie Sie sie benannt haben).
- Aktivieren Sie die Schnittstelle.
- Konfigurationstyp: **PPPoE**.
- Eltern-Schnittstelle: Dies ist der entscheidende Punkt! Wählen Sie hier die zuvor erstellte **WAN-CARP-VIP** aus (z. B. `CARP – VHID 2 (10.0.0.3)`), NICHT die physikalische WAN-Schnittstelle.
- Geben Sie Ihre **PPPoE-Benutzername und -Passwort** ein, die Sie von Ihrem ISP erhalten haben.
- Aktivieren Sie „Sperrregeln” und „Standard-Gateway”.
- Speichern Sie die Einstellungen und wenden Sie die Änderungen an.
Nachdem Sie dies auf Node 1 konfiguriert haben, sollte die Konfiguration automatisch auf Node 2 synchronisiert werden. Überprüfen Sie auf Node 2, ob die `WAN_PPPOE`-Schnittstelle korrekt mit der CARP-VIP als Eltern-Schnittstelle konfiguriert ist. Tun Sie dies, indem Sie die Einstellungen der `WAN_PPPOE`-Schnittstelle auf Node 2 öffnen. Es sollten keine weiteren manuellen Anpassungen erforderlich sein.
5. NAT- und Firewall-Regeln
Alle NAT- und Firewall-Regeln, die Sie auf Node 1 erstellen, werden automatisch auf Node 2 synchronisiert. Stellen Sie sicher, dass Ihre Regeln die CARP-VIPs als Quellen/Ziele verwenden, wo immer dies angebracht ist.
- Outbound-NAT: Standardmäßig sollte OPNsense bei PPPoE-Schnittstellen das automatische Outbound-NAT (Hybrid Outbound NAT) verwenden. Überprüfen Sie unter **Firewall -> NAT -> Outbound**, ob dies korrekt eingestellt ist und die PPPoE-Schnittstelle als Quelle für ausgehende Verbindungen verwendet wird.
- Firewall-Regeln: Erstellen Sie die notwendigen Regeln für den internen und externen Zugriff unter **Firewall -> Regeln -> WAN** und **Firewall -> Regeln -> LAN**.
6. Testen des Failovers
Dies ist der Moment der Wahrheit! Testen Sie Ihre Konfiguration gründlich.
- Stellen Sie sicher, dass beide OPNsense-Instanzen online sind und die PPPoE-Verbindung auf Node 1 aktiv ist (Statusanzeige im Dashboard).
- Pingen Sie kontinuierlich eine externe IP-Adresse (z. B. Google DNS 8.8.8.8) von einem Client im LAN aus.
- Simulieren Sie einen Ausfall von Node 1: Schalten Sie Node 1 physisch aus (z. B. Stromkabel ziehen) oder trennen Sie das WAN-Kabel von Node 1.
- Beobachten Sie den Ping-Verlust. Es sollten nur wenige Pings verloren gehen (typischerweise 2-5 Sekunden), während Node 2 die Rolle des Masters übernimmt und die PPPoE-Verbindung neu aufbaut.
- Überprüfen Sie das OPNsense-Dashboard von Node 2. Es sollte anzeigen, dass es jetzt der Master ist und die PPPoE-Verbindung hergestellt hat.
- Testen Sie den Failback: Schalten Sie Node 1 wieder ein. Es sollte nach dem Hochfahren wieder die Rolle des Slaves übernehmen und Node 2 bleibt Master. Wenn Sie einen präemptiven Modus wünschen, müssen Sie dies in den CARP-Einstellungen der LAN-VIP konfigurieren (Preempt aktivieren). Standardmäßig bleibt der aktuelle Master der Master, auch wenn ein Node mit höherer Priorität wieder online geht.
Best Practices und Fehlerbehebung
- Dedizierte SYNC-Schnittstelle: Sparen Sie hier nicht. Eine dedizierte Schnittstelle für PFSync und CARP-Verkehr verbessert die Stabilität und Sicherheit des Clusters erheblich.
- Identische Hardware/Firmware: Wie bereits erwähnt, minimiert dies Probleme. Stellen Sie sicher, dass auch die BIOS/UEFI-Einstellungen der physischen Maschinen identisch sind.
- Regelmäßige Backups: Sichern Sie regelmäßig die Konfiguration Ihres OPNsense-Clusters. Sie können dies unter **System -> Konfiguration -> Backups** tun.
- Protokolle überwachen: Bei Problemen sind die Systemprotokolle (System -> Protokolle) Ihre beste Informationsquelle. Achten Sie auf CARP- und PFSync-Fehlermeldungen.
- Firewall-Regeln für SYNC/HA: Standardmäßig sind auf der SYNC-Schnittstelle keine Regeln erforderlich. OPNsense erlaubt den CARP- und PFSync-Verkehr automatisch. Stellen Sie sicher, dass keine ungewollten Regeln diese Kommunikation blockieren.
- VHID-Konflikte: Stellen Sie sicher, dass jede CARP-VIP auf Ihren verschiedenen Schnittstellen eine eindeutige VHID hat. Konflikte führen zu unzuverlässigem Verhalten.
- Adv. Skew: Achten Sie darauf, dass der Primary-Node eine niedrigere Adv. Skew hat (z. B. 0) als der Secondary-Node (z. B. 100), um die Master-Auswahl zu steuern.
- PPPoE-MTU: Achten Sie auf die korrekte MTU-Einstellung für PPPoE, oft 1492. OPNsense handhabt dies normalerweise automatisch, aber bei Problemen kann dies eine Prüfoption sein.
- Monitoring: Implementieren Sie ein externes Monitoring, das die Erreichbarkeit Ihres Gateways und der Internetverbindung kontinuierlich prüft und Sie im Falle eines Ausfalls benachrichtigt.
Fazit
Die Einrichtung eines **OPNsense HA CARP Clusters mit PPPoE-Einwahl** ist eine anspruchsvolle, aber äußerst lohnende Aufgabe für jeden Profi, der die **Ausfallsicherheit** seiner Netzwerkinfrastruktur auf ein neues Niveau heben möchte. Mit den hier vorgestellten Schritten und Best Practices können Sie eine robuste und zuverlässige Lösung implementieren, die Ausfallzeiten minimiert und die Geschäftskontinuität sicherstellt. Durch die geschickte Nutzung von CARP als übergeordnete Schnittstelle für PPPoE meistert OPNsense die Herausforderung der dynamischen IP-Zuweisung in einem Hochverfügbarkeits-Szenario elegant. Nehmen Sie sich die Zeit für eine sorgfältige Planung und testen Sie Ihre Konfiguration gründlich, um das volle Potenzial Ihrer **redundanten Firewall-Lösung** auszuschöpfen.