OPNsense HA KIT: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
−
=Plan=
+
*[[OPNsense HA Erklärung]]
−
{{#drawio:ha-opnsense-kit}}
+
*[[OPNsense HA Umsetzung]]
−
=Wichtig=
 
−
*Auf den lan und wan Interfaces muss der Promiscuos-Modus eingestellt sein.
 
−
*Sowohl als Master als auch auf der Backup
 
−
 
 
−
;Begründung
 
−
*CARP verwendet virtuelle MAC-Adressen für die gemeinsame VIP. In virtualisierten Umgebungen werden Frames mit diesen MAC-Adressen vom Hypervisor standardmäßig verworfen, da sie nicht der echten VM-NIC zugeordnet sind. Ohne aktivierten Promiscuous-Modus erreichen CARP-Advertisements den Partner nicht, was zu Fehldetektion, unerwünschtem Failover und HA-Inkonsistenzen führt.
 
−
 
 
−
= Vorbereitung =
 
−
* Zwei OPNsense-Installationen mit jeweils mind. 3 Netzwerkkarten
 
−
* Die Anzahl der Netzwerkkarten muss auf beiden Maschinen gleich sein
 
−
; Die Reihenfolge und Anzahl der Netzwerkschnittstellen muss gleich sein!
 
−
* Empfehlung für beide Maschinen:
 
−
** WAN
 
−
** SYN
 
−
** LAN
 
−
* Am Anfang sollten so wenige Dienst wie möglich laufen
 
−
 
 
−
== IP Adressen der Master Firewall ==
 
−
* em0 (LAN): 192.168.1.1/24
 
−
* em1 (WAN): 192.168.4.X+40/24
 
−
* em2 (SYN): 100.64.64.1/30
 
−
 
 
−
== IP Adressen der Backup Firewall ==
 
−
 
 
−
* em0 (LAN): 192.168.1.2/24
 
−
* em1 (WAN): 192.168.4.X+60/24
 
−
* em2 (SYN): 100.64.64.2/30
 
−
 
 
−
= Firewall Regeln (beide Firewalls) =
 
−
 
 
−
* Auf allen Schnittstellen '''außer''' dem SYN-Interface muss das Protokoll CARP akzeptiert werden
 
−
* Dazu muss im Menü '''Firewall => Rules => {WAN, LAN}''' Allow-Regeln erstellt werden, die auf das CARP-Protokoll matchen
 
−
* Für das SYN-Interface kann man eine Standard-Allow-Regel erstellen, die alles erlaubt
 
−
 
 
−
= Virtuelle IPs (Master Firewall) =
 
−
 
 
−
* Die virtuellen IPs werden von den Knoten des HA-Clusters geteilt, sobald ein Ausfall erkannt wird
 
−
* Somit wird dafür gesorgt, dass die virtuelle IP immer erreichbar ist
 
−
* Die virtuelle IP wird '''nur''' auf der Master Firewall eingestellt und an die Backups mitgeteilt
 
−
* Dazu muss man im Menü '''Interfaces => Virtual IPs => Settings''' wieder an allen bis auf das SYN-Interface, die eigentlich gewünschten IPs vergeben
 
−
* Über das '''[+]''' auf der rechten Seite muss man folgende Einträge machen:
 
−
 
 
−
== virtuelle WAN IP ==
 
−
{| class="wikitable"
 
−
! Parameter !! Wert
 
−
|-
 
−
| Mode || CARP
 
−
|-
 
−
| Interface || WAN
 
−
|-
 
−
| Address || 192.168.4.213/24
 
−
|-
 
−
| Virtual Password || radler
 
−
|-
 
−
| VHID Group || 213
 
−
|-
 
−
| Advertising Frequency || 1
 
−
|-
 
−
| Description || Virtual WAN IP
 
−
|}
 
−
 
 
−
== virtuelle LAN IP ==
 
−
{| class="wikitable"
 
−
! Parameter !! Wert
 
−
|-
 
−
| Mode || CARP
 
−
|-
 
−
| Interface || LAN
 
−
|-
 
−
| Address || 192.168.1.3/24
 
−
|-
 
−
| Virtual Password || radler
 
−
|-
 
−
| VHID Group || 2
 
−
|-
 
−
| Advertising Frequency || 1
 
−
|-
 
−
| Description || Virtual LAN IP
 
−
|}
 
−
 
 
−
= Source NAT (Master Firewall) =
 
−
 
 
−
* Da die virtuelle IP für ausgehende Verbindungen benutzt werden soll, muss die automatische Regelgeneration ausgeschaltet werden
 
−
* Im Menü '''Firewall => NAT => Outbound''' muss die Option "Manual outbound NAT rule genereation" ausgewählt werden
 
−
* Dann die folgenden Regeln erstellen:
 
−
** Interface: WAN
 
−
** Source address: LAN net
 
−
** Translation / target: 192.168.4.213/24 (Virtual WAN IP)
 
−
 
 
−
= High Availability Konfiguration (Master Firewall) =
 
−
 
 
−
* Die eigentliche HA Einstellung erfolgt über das Menü '''System => High Availability => Settings''':
 
−
{| class="wikitable"
 
−
! Parameter !! Wert
 
−
|-
 
−
| Synchronize all states via || SYN
 
−
|-
 
−
| Sync compatibility || OPNsense 24.7 or above
 
−
|-
 
−
| Synchronize Peer IP || 100.64.64.2
 
−
|-
 
−
| Synchronize Config || 100.64.64.2
 
−
|-
 
−
| Verify peer || deaktiviert
 
−
|-
 
−
| Remote System Username || root
 
−
|-
 
−
| Remote System Password || 123Start$
 
−
|-
 
−
| Services || Aliases, Firewall Rules, NAT, Virtual IPs
 
−
|}
 
−
 
 
−
= High Availability Konfiguration (Backup Firewall) =
 
−
 
 
−
* Hier darf im Menü '''System => High Availability => Settings''' nur folgendes eingestellt werden:
 
−
{| class="wikitable"
 
−
! Parameter !! Wert
 
−
|-
 
−
| Synchronize all states via || SYN
 
−
|-
 
−
| Sync compatibility || OPNsense 24.7 or above
 
−
|-
 
−
| Synchronize Peer IP || 100.64.64.1
 
−
|-
 
−
| Synchronize Config || leer
 
−
|-
 
−
| Verify peer || deaktiviert
 
−
|-
 
−
| Remote System Username || leer
 
−
|-
 
−
| Remote System Password || leer
 
−
|-
 
−
| Services || Nothing selected
 
−
|}
 
−
 
 
−
= Endergebnis =
 
−
==Master==
 
−
*System
 
−
**High Availability:
 
−
***Status
 
−
 
 
−
{| class="wikitable"
 
−
! Service !! Description
 
−
|-
 
−
| configd || System Configuration Daemon
 
−
|-
 
−
| cron || Cron
 
−
|-
 
−
| hostwatch || Host discovery service
 
−
|-
 
−
| login || Users and Groups
 
−
|-
 
−
| ntpd || Network Time Daemon
 
−
|-
 
−
| openssh || Secure Shell Daemon
 
−
|-
 
−
| pf || Packet Filter
 
−
|-
 
−
| routing || System routing
 
−
|-
 
−
| sysctl || System tunables
 
−
|-
 
−
| syslog-ng || Syslog-ng Daemon
 
−
|-
 
−
| unbound || Unbound DNS
 
−
|-
 
−
| webgui || Web GUI
 
−
|}
 
−
 
 
−
==Slave==
 
−
*System
 
−
**High Availability:
 
−
***Status
 
−
Die Meldung auf der Backup-Firewall kann ignoriert werden, da diese nur passiv empfängt und die leeren XMLRPC-Felder daher fälschlicherweise als "unvollständig" markiert werden. Solange die Master-Firewall auf Version 24.7 eingestellt ist und die Daten erfolgreich überträgt, arbeitet der Cluster technisch einwandfrei.
 
−
=Debugging=
 
−
==XLLRPC==
 
−
*Um den erfolgreichen Sync auf der Master-Firewall zu prüfen, gehst du so vor:
 
−
*System
 
−
**Log Files
 
−
****General.
 
−
*Gib oben im Filter-Feld den Begriff '''xmlrpc''' ein.
 
−
Suche nach einem Eintrag wie: [OK] Configuration synchronized to '''https://100.64.64.2:443.'''
 
−
==Netzwerkschnittstellen==
 
−
===em0===
 
−
;Master
 
−
em0: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
 
−
description: LAN (lan)
 
−
options=48500b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER,VLAN_HWTSO,HWSTATS,MEXTPG>
 
−
ether 08:00:27:c4:a2:6f
 
−
inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
 
−
'''inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255 vhid 2'''
 
−
'''carp: MASTER vhid 2 advbase 1 advskew 0'''
 
−
      '''peer 224.0.0.18 peer6 ff02::12'''
 
−
media: Ethernet autoselect (1000baseT <full-duplex>)
 
−
status: active
 
−
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
 
−
 
 
−
em1: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
 
−
description: WAN (wan)
 
−
options=48500b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER,VLAN_HWTSO,HWSTATS,MEXTPG>
 
−
ether 08:00:27:61:6f:6d
 
−
inet 192.168.4.53 netmask 0xffffff00 broadcast 192.168.4.255
 
−
'''inet 192.168.4.213 netmask 0xffffff00 broadcast 192.168.4.255 vhid 213'''
 
−
'''carp: MASTER vhid 213 advbase 1 advskew 0'''
 
−
      '''peer 224.0.0.18 peer6 ff02::12'''
 
−
media: Ethernet autoselect (1000baseT <full-duplex>)
 
−
status: active
 
−
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
 

Aktuelle Version vom 20. Februar 2026, 15:23 Uhr