CARP konfigurieren
Überblick
Eine der leistungsstärksten Funktionen des Schulrouter Plus ist die Einrichtung einer redundanten Firewall mit automatischer Failover-Option. In diesem Kapitel wird Schritt für Schritt beschrieben, wie Sie eine Einrichtung auf Basis von zwei Netzwerken erstellen. Die 192.168.1.0/24 wird für das interne Netzwerk verwendet und 172.18.0.0/24 wird verwendet, um unseren Datenverkehr ins Internet zu leiten.
Bei Verwendung von CARP ( FreeBSD-Handbuch zu CARP ) sollten alle ausfallsicheren Schnittstellen eine dedizierte IP-Adresse haben, die mit einer gemeinsamen virtuellen IP-Adresse kombiniert wird, um mit beiden Netzwerken zu kommunizieren. Im obigen Bild werden die gestrichelten Linien zur Markierung der virtuellen Adressen verwendet.
Die Konfigurationsdatei (XML) für beide Firewalls kann aus dem Wiki heruntergeladen werden.
Terminologie
Bei der Einrichtung eines CARP-Clusters gibt es einige Fachbegriffe, die wir zunächst kurz erklären:
CARP
Das Common Address Redundancy Protocol verwendet das IP-Protokoll 112, ist von OpenBSD abgeleitet und verwendet Multicast-Pakete, um seinen Nachbarn seinen Status zu signalisieren. Stellen Sie immer sicher, dass jede Schnittstelle CARP-Pakete empfangen kann. Jede virtuelle Schnittstelle muss eine eindeutige Virtual Host ID (vhid) haben, die von den physischen Maschinen gemeinsam genutzt wird. Um festzustellen, welche physische Maschine eine höhere Priorität hat, wird der angekündigte Skew verwendet. Ein niedriger Skew bedeutet eine höhere Punktzahl. (unsere Master-Firewall verwendet 0).
pfSync
Zusammen mit CARP können wir pfSync verwenden, um den Zustand unserer Firewalls zu replizieren. Beim Failover müssen Sie sicherstellen, dass beide Maschinen über alle Verbindungen Bescheid wissen, damit die Migration nahtlos verläuft. Es ist sehr ratsam, eine dedizierte Schnittstelle für pfSync-Pakete zwischen den Hosts zu verwenden, sowohl aus Sicherheitsgründen (State Injection) als auch aus Performance-Gründen.
Wenn auf beiden Maschinen unterschiedliche Netzwerktreiber verwendet werden, wie bei einem HA-Setup mit einer physischen Maschine als Master und einer virtuellen Maschine als Slave, können die Zustände nicht synchronisiert werden, da die Schnittstellennamen unterschiedlich sind. Die einzige Abhilfe wäre das Einrichten einer LAGG.
XMLRPC-Synchronisation
Schulrouter Plus enthält einen Mechanismus, um die Konfiguration des Backup-Servers mit dem Master zu synchronisieren. Dieser Mechanismus wird XMLRPC-Sync genannt und ist unter System ‣ Hochverfügbarkeit ‣ Einstellungen zu finden.
Schnittstellen und grundlegende Firewall-Regeln einrichten
Stellen Sie sicher, dass die Schnittstellenbelegung auf beiden Systemen identisch ist! Über Schnittstellen ‣ Überblick können Sie prüfen, ob z. B. DMZ auf beiden Rechnern opt1 ist. Wenn die Zuordnungen unterschiedlich sind, haben Sie auf beiden Rechnern gemischte Master- und Backup-IPs.
In unserem Beispiel werden drei Schnittstellen verwendet, die alle einen recht einfachen Aufbau haben.
Master
Gehen Sie zu Schnittstellen, stellen Sie sicher, dass Sie alle drei Schnittstellen zugewiesen haben und richten Sie die folgenden Adressen und Subnetze ein:
LAN 192.168.1.10/24 |
WAN 172.18.0.101/24 |
PFSYNC 10.0.0.1 |
Als nächstes müssen wir sicherstellen, dass die entsprechenden Protokolle auf den verschiedenen Schnittstellen verwendet werden können. Gehen Sie dazu auf Firewall ‣ Regeln und stellen Sie sicher, dass sowohl LAN als auch WAN mindestens CARP-Pakete akzeptieren (siehe Protokollauswahl). Da wir beide Firewalls über eine direkte Kabelverbindung verbinden, fügen wir eine einzelne Regel hinzu, die den gesamten Verkehr auf allen Protokollen für diese spezielle Schnittstelle akzeptiert. Eine andere Möglichkeit ist, nur Verkehr zum GUI-Port und zum pfSync-Protokoll zu akzeptieren.
Sicherung
Der Backup-Server benötigt eigene dedizierte Adressen, wir werden diese verwenden:
LAN | 192.168.1.20/24 |
WAN | 172.18.0.102/24 |
PFSYNC | 10.0.0.2 |
Standardmäßig passt das Dropdown-Menü für die Subnetzmaske nur für IPv4-Adressen (bis zu 32). Wenn Sie eine IPv6-CARP-Adresse hinzufügen möchten, schreiben Sie Ihre v6-Adresse und die Dropdown-Liste aktualisiert sich automatisch auf bis zu 128.
Da wir die Firewall-Einstellungen zwischen beiden Hosts synchronisieren werden, müssen wir nur für die Ersteinrichtung sicherstellen, dass die pfSync-Schnittstelle Daten vom Master annehmen kann. Verwenden Sie für diese Schnittstelle die gleiche Regel wie für den Master.
Virtuelle IPs einrichten
Auf dem Master-Knoten werden wir unsere virtuellen IP-Adressen einrichten, die nach der Synchronisierung auch dem Backup-Knoten mit einer höheren Schräglage hinzugefügt werden. Gehen Sie zu Firewall ‣ Virtuelle IPs und fügen Sie eine neue mit den folgenden Eigenschaften hinzu:
Typ | Karpfen |
Schnittstelle | WAN |
IP-Adressen | 172.18.0.100 / 24 |
Virtuelles Passwort | Secret (das Beispiel verwendet dies) |
VHID Gruppe | 1 |
Advertising-Frequenz | Basis 1 / Schräglage 0 |
Beschreibung | VIP-WAN |
Und eine weitere mit dem folgenden:
Typ | Karpfen |
Schnittstelle | LAN |
IP-Adressen | 192.168.1.1 / 24 |
Virtuelles Passwort | Secret (das Beispiel verwendet dies) |
VHID Gruppe | 3 |
Advertising-Frequenz | Basis 1 / Schräglage 0 |
Beschreibung | VIP-LAN |
Ausgehendes NAT einrichten
Wenn der Verkehr aus der Firewall herausgeht, sollte er auch die virtuelle IP-Adresse verwenden, um eine nahtlose Migration zu ermöglichen. Der Standard für den Schulrouter Plus ist die Verwendung der Schnittstellen-IP-Adresse, was in unserem Fall die falsche ist.
Gehen Sie auf Firewall ‣ NAT ‣ Ausgehend. Wählen Sie auf dieser Seite die Option Manuelles ausgehendes nat und ändern Sie die Regeln, die vom Netzwerk 192.168.1.0/24 ausgehen, um die virtuelle CARP-Schnittstelle (172.18.0.100) zu verwenden.
(optional) DHCP-Server einrichten
Wenn Sie DHCP für das lokale Netzwerk verwenden, gibt es einige Dinge zu beachten. Alle Clients sollten die virtuelle Adresse anstelle der physikalischen Adresse verwenden, die normalerweise propagiert wird. Als nächstes ist zu beachten, dass zwei Server gleichzeitig aktiv sein werden, die von den Pools des jeweils anderen wissen sollten. Wenn DNS-Anfragen auch vom Schulrouter Plus weitergeleitet werden, stellen Sie sicher, dass der DHCP-Server die richtige IP-Adresse sendet. Dies sind die Einstellungen, die in unserem Beispiel (auf dem Master-Server) verwendet werden:
DNS-Server | 192.168.1.1 |
Gateway | 192.168.1.1 |
Failover peer IP | 192.168.1.20 |
Einrichtung von pfSync und HA-Sync (xmlrpc)
Zunächst sollten wir pfSync für die Synchronisierung der Verbindungszustandstabellen und HA-Sync (xmlrpc) auf der Master-Firewall konfigurieren. Gehen Sie auf System ‣ Hochverfügbarkeit ‣ Einstellungen und aktivieren Sie pfSync, indem Sie das Kontrollkästchen Synchronize States aktivieren, PFSYNC für die Synchronize Interface auswählen und die Peer-IP (10.0.0.2) in das Feld Synchronize Peer IP eintragen.
Um die Konfigurationseinstellungen von der Master- zur Backup-Firewall zu synchronisieren, richten wir den XMLRPC-Sync ein. Im Feld Synchronize Config to IP geben wir wieder die Peer-IP (10.0.0.2) der PFSYNC-Schnittstelle ein, damit dieser Verkehr auf der direkten Verbindung zwischen den beiden Firewalls bleibt. Nun müssen wir den Remote-Benutzernamen und das Passwort eingeben und die Einstellungen konfigurieren, die wir auf den Backup-Server duplizieren möchten. Für unsere Einrichtung werden wir Folgendes aktivieren:
Regeln synchronisieren |
NAT synchronisieren |
DHCPD synchronisieren |
Virtuelle IPs synchronisieren |
Danach konfigurieren wir pfSync auf der Backup-Firewall. Gehen Sie auf System ‣ Hochverfügbarkeit ‣ Einstellungen und aktivieren Sie pfSync, indem Sie das Kontrollkästchen Synchronize States aktivieren, PFSYNC für die Synchronize Interface auswählen und die Master-IP (10.0.0.1) in das Feld Synchronize Peer IP eintragen. Konfigurieren Sie XMLRPC-Sync nicht auf der Backup-Firewall.
Einrichtung abschließen
Um sicherzugehen, dass alle Einstellungen korrekt übernommen werden, starten Sie beide Firewalls vor dem Test neu.
Testaufbau
Gehen Sie zunächst im Webinterface des Schulrouter Plus auf System ‣ High availability ‣ Status und überprüfen Sie, ob beide Geräte korrekt initialisiert sind.
Um unser Setup zu testen, werden wir einen Client mit dem lokalen Netzwerk verbinden und eine ssh-Verbindung zu einem Host hinter beiden Firewalls öffnen. Wenn Sie nun verbunden sind, sollten Sie sich die Statustabelle auf beiden Schulrouter Plus-Firewalls ansehen können (Firewall ‣ Diagnose ‣ Status-Dump) und sie sollten beide die gleiche Verbindung anzeigen. Versuchen Sie nun, den Netzwerkstecker von der Master-Firewall zu ziehen, und sie sollte auf die Backup-Firewall übergehen, ohne dass die ssh-Verbindung verloren geht (oder einfriert).
Hinzufügen mehrerer CARP-IPs
Wenn Ihr Provider Ihnen ein Subnetz mit öffentlichen IP-Adressen anbietet und Sie diese für NAT oder verschiedene Dienste, die auf Ihrer Firewall laufen, freilegen möchten, müssen Sie diese ebenfalls zu Ihrem HA-Setup hinzufügen. Da das Hinzufügen einer VHID für jede IP den CARP-Verkehr sehr unruhig machen würde, können Sie auch einen neuen IP-Alias hinzufügen und die richtige VHID wählen, wo die erste CARP-IP konfiguriert ist.
IP-Alias wird nicht mit dem Slave synchronisiert, fügen Sie ihn unbedingt auch auf dem zweiten Gerät hinzu.
Beispiel: Aktualisieren eines CARP HA-Clusters
Der Betrieb eines redundanten Active/Passive-Clusters führt zu der Erwartung, dass es keine Ausfallzeiten gibt. Führen Sie die folgenden Schritte aus, um die Ausfallzeit beim Ausführen von Updates auf ein Minimum zu reduzieren:
-
Aktualisieren Sie Ihr Zweitgerät und warten Sie, bis es wieder online ist
-
Gehen Sie auf Ihrem Hauptgerät auf Firewall ‣ Virtuelle IPs ‣ Status und klicken Sie auf Permanenten CARP-Wartungsmodus aktivieren.
-
Ihr sekundäres Gerät ist nun MASTER, prüfen Sie, ob alle Dienste wie DHCP, VPN, NAT korrekt funktionieren
-
Wenn Sie sichergestellt haben, dass die Aktualisierung in Ordnung war, aktualisieren Sie Ihr Primärgerät und drücken Sie Persistenten CARP-Wartungsmodus verlassen.
Mit diesen Schritten verlieren Sie nicht zu viele Pakete und Ihre bestehende Verbindung wird mit übertragen. Beachten Sie auch, dass der Eintritt in den persistenten Modus einen Neustart überlebt.
Ressourcen
-
Konfiguration für Master-Server ( Carp_example_master.xml )
-
Konfiguration für Backup-Server ( Carp_example_backup.xml )