CARP, VLANs und LAGG - beide Firewalls sind Master

Started by Felix., July 27, 2020, 03:24:35 PM

Previous topic - Next topic
July 27, 2020, 03:24:35 PM Last Edit: July 27, 2020, 03:30:27 PM by Felix.
Hallo zusammen!

Ich zermarter mir seit Wochen den Grips an einem HA-Konstrukt, welches ich gerne irgendwann produktiv nehmen möchte.

Ich beschreibe zunächst mal die Umgebung. Folgende Hardware wurde für die beiden FW's angeschafft:
https://www.servershop-bayern.de/de/supermicro-1u-up-xeon-d-server-vmware-ready
Ausgewählt wurde der Prozessor Intel Xeon D-1518 6MB / 4x 2.2GHz / 8 Threads / 35W und 32GB RAM im Konfigurator.

Dazu wurden noch identische Intel SSDs verbaut, welche noch im Büro rum flogen.
Die Hardware ist also 1:1 die Gleiche.

Die Firewalls haben 2 1G und 2 10G RJ-45 Schnittstellen - igb0 & 1 und ix0 & 1.
EDIT: igb0 ist auf beiden FWs das HA-Interface für pfsync und XMLRPC - die FWs sind hier direkt durch ein Kabel verbunden.

Angeschlossen sind die Firewalls an 2 baugleiche Netgear M4300 8X8F mit jeweils identischer Config.
ix0 ist an dem einem Switch angeschlossen und ix1 an dem Anderen.
Die Switche haben eine zusätzliche Verbindung untereinander für Spanning Tree (Variante RSTP).
Einer der beiden 10G Switche wurde als Root-Bridge konfiguriert.
Die Ports an denen die ix0/1 Schnittstellen hängen sind jeweils als VLAN Trunks konfiguriert.

Dann gibt es noch 2 weitere Switche: Netgear GC752X 52-Port Switche (50x 1G, 2x 10G).
Die 10G Ports der GC752er sind an beiden M4300ern angeschlossen und es wurde ebenfalls RSTP erfolgreich konfiguriert.

An 3 Ports auf den GC752ern sind die WAN Ports konfiguriert als Access Ports mit VLAN 666 (untagged) und entsprechender PVID 666. Dort hängen die WAN Schnittstellen der FWs (jeweils igb1) dran, sowie der Uplink vom Rechenzentrum.

Soviel zur Hardware. Ich hänge auch ein Diagramm an um das etwas zu veranschaulichen.

Software-seitig ist auf beiden Maschinen OPNsense installiert und aktualisiert worden auf folgende Version:
OPNsense 20.1.9-amd64
FreeBSD 11.2-RELEASE-p20-HBSD
OpenSSL 1.1.1g 21 Apr 2020

(Auszug aus dem OPNsense Dashboard - auf beiden FW's identisch.)

Die folgenden Schritte sind auf beiden FWs identisch ausgeführt worden, abgesehen von ggfs. IPs:

Ich habe dann erstmal ein LAGG Interface aus ix0 und ix1 gebildet im Round-Robin Modus.
Auf dem resultierenden lagg0 Interface habe ich meine VLANs angelegt, auszugsweise 10,12 und 15.

Ich habe die WAN Schnittstelle und das Upstream Gateway konfiguriert auf Schnittstelle igb1 und erfolgreich eine Internet-Verbindung herstellen können. Hinweis: die WAN Ports liegen am Switch untagged auf, daher keine extra Konfiguration bzgl. VLANs notwendig hier.

Auf den einzelnen lagg0_vlanXY Interfaces habe ich die entsprechenden Subnetze hinterlegt.
FW 1 hat stets die .2 als IP und FW 2 die .3 - bspw. 10.254.10.2 / 10.254.10.3.

Nachdem das erledigt war habe ich nach dieser Anleitung versucht das HA-Konstrukt aufzubauen:
https://www.thomas-krenn.com/de/wiki/OPNsense_HA_Cluster_einrichten

Die CARP Virtual IPs habe ich für WAN, VLAN 10,12 und 15 angelegt, jeweils auf die .1 des entsprechenden Subnetzes. (Mit Ausnahme WAN, da wurde es .6, da .1 des Public Subnets vom Rechenzentrums Provider als Upstream Gateway zur Verfügung gestellt wurde.)

Ich habe ebenfalls darauf geachtet auf allen Switchen Multicast / IGMP Snooping zu aktivieren, soweit ich konnte.

Nun zur Problematik... die FW1 ist MASTER für die WAN VIP und die FW2 BACKUP - perfekt.
Ich kann auch zwischen den beiden umschalten soweit. Hin und zurück, ohne Probleme.

Allerdings versagt das Konstrukt bei den VLAN Interfaces vollständig. Beide Firewalls sind permanent MASTER.
Wenn ich die VIPs anspreche, lande ich stets beim Master und wenn ich diesen bspw. herunterfahre oder sonst irgendwie einen Failover provoziere, ist die VIP nicht länger erreichbar.

Ich habe massig Lesestoff zu Problemen mit CARP im Zusammenspiel mit LAGGs und VLANs gefunden.
Die Hardware-Anordnung der Interfaces (OPTx) ist auf beiden Kisten identisch, das habe ich mehrfach überprüft.
Auch habe ich mal die komplette Config gezogen, bearbeitet und drüben eingespielt um ganz sicher zu gehen. Kein Erfolg.

Ich habe auf beiden Kisten die Tunables "net.inet.carp.senderr_demotion_factor = 0" und "net.inet.carp.ifdown_demotion_factor = 0" konfiguriert und mit sysctl überprüft. Auch mit Reboots etc. um sicher zu gehen. Ebenfalls kein Erfolg.
Ich kann sogar in den CARP Maintenance Mode gehen oder CARP abschalten - außer der WAN VHID rührt sich gefühlt nichts. Natürlich steht da dann "disabled" wenn ich CARP abschalte, aber beim Enablen sofort wieder MASTER. Beim Maintenance Mode tut sich gar nichts.

Aktuell habe ich die LAGG Interfaces komplett aufgelöst und die VLANs auf ix1 umzogen auf beiden FWs.
Wieder mit Config Import/Export um Probleme bei der Anordnung etc. zu vermeiden. Die Tunables noch immer gesetzt. Leider noch immer kein Erfolg.

Mein nächster Schritt wird sein aus den Trunks an den Switchen untagged Ports in einem Test-VLAN zu machen und die FWs daran zu hängen um auch VLANs aus der Gleichung zu entfernen.
Wenn das klappt, super! Problem ist, ich kann und will auf die VLANs nicht verzichten.

Drum bitte ich euch um Hilfe bei diesem Problem - was kann ich tun um das Konstrukt mit den VLAN Interfaces (und falls möglich, mit dem LAGG Interface) ans Laufen zu bekommen?

Aus den Posts die ich gelesen habe geht hervor, dass es wohl technisch möglichst ist bzw. ein paar Leute das funktional im Betrieb haben, ich habe also noch Hoffnung!

Wenn ich noch irgendwelche Infos bereitstellen kann die zur Lösung des Problems beitragen, sagt es bitte.  :)

Ansonsten danke ich euch schon mal für eure Zeit und freue mich auf die Antworten!  :D

Viele Grüße
Felix

Erster Schritt muss sein beide Firewalls mit LAGG und VLANs auf einem Switch zu betreiben. Wenn das geht ist OPN fein raus, wenns nicht geht liegts an OPN.

Eigentlich muss man ja igmp snooping deaktivieren und nicht aktivieren ;)

Quote from: mimugmail on July 27, 2020, 03:47:25 PM
Erster Schritt muss sein beide Firewalls mit LAGG und VLANs auf einem Switch zu betreiben.
Hm. Im Rechenzentrum wäre ich erst gegen Ende der Woche, da kann ich das hart so verkabeln, aber aktuell sollte es sogar so aufgebaut sein - theoretisch.
Auf ix1 hängen aktuell alle VLANs und ix1 hängt bei beiden FWs am gleichen Switch dran.

Quote from: mimugmail on July 27, 2020, 03:47:25 PM
Eigentlich muss man ja igmp snooping deaktivieren und nicht aktivieren ;)
Oh, dann habe ich das falsch verstanden.
Ich watschel nochmal durch die Switche und deaktiviere es überall. Gilt das auch für MLD Snooping?

Ich habe jetzt auf allen 4 Switchen IGMP Snooping (inkl. Querier) deaktiviert, aber die MLD Snooping Settings noch unangetastet gelassen.
Großartige Ergebnisse bis jetzt! Die FW2 ist auf BACKUP gesprungen überall.

Ich teste jetzt noch ein wenig umher, ob das bloß "Glück" ist oder wirklich was positives passiert ist.

Auf jeden Fall schon mal ein großes Dankeschön, mimugmail!
Nach Tagen(!) ist das endlich wieder ein Hoffnungsschimmer.  ;D

igmp snooping leitet die Pakete nur auf den ports weiter die sich dafür abonniert haben (grob gesagt) .. die Firewall macht das nicht, also deaktivieren und der multicast geht auf allen ports raus.
Für CARP ist das OK, bei IPTV wäre das der Killer .. also kein IPTV auf dem VLAN :)

Gut zu wissen, hab mir IGMP Snooping nie angeschaut - selten mit konfrontiert worden.  ;D

Als nächsten Schritt probiere ich wieder das LAGG Interface aufzubauen, mal sehen wie es wird. :)

Firewall 1 hat nun wieder LAGG konfiguriert.

Wenn FW1 im CARP Maintenance Mode ist, springt FW2 wie gedacht ein.
Wenn FW1 aber wieder aktiv geschalten wird, switched nur WAN zu MASTER um - die VLAN Interfaces bleiben im Zustand BACKUP auf der FW1 UND schalten sich in den Zustand BACKUP auf FW2.

Mal schauen wie das aussieht, wenn ich auf FW2 auch wieder das LAGG Interface aufbaue...

Nun haben beide FWs wieder lagg0 als Interface konfiguriert (Round-Robin über ix0 und ix1).

Die FW1 bleibt noch immer WAN MASTER und BACKUP in allen anderen VHIDs.
Die FW2 ist überall im BACKUP Zustand.

Wo kann denn da der Hase im Pfeffer liegen wieder?  :o



Ich habe auch grade probiert die zuvor eingefügten Tunables wieder zu entfernen, da sich diese zuvor scheinbar auch nicht ausgewirkt haben. Leider ohne Veränderung. Reboot wurde gemacht.

"net.inet.carp.ifdown_demotion_factor = 0" und "net.inet.carp.senderr_demotion_factor = 0" waren die Tunables.
Beide sind wieder 240 - geprüft durch sysctl.

Oh und noch weitere evtl. hilfreiche Bilder.

Nochmal die Frage, LaGg und VLAN mit beiden Firewalls an einem Switch, geht das?

Mit beiden LAGG Interfaces an einem Switch kann ich erst Ende der Woche testen, wenn ich vor Ort bin.
Ich kann aber versuchen nur ix1 (hängen jeweils am gleichen Switch) im LAGG zu behalten, also ix0 rauszuwerfen.
Sollte* ja den gleichen Effekt haben.

Also jetzt sind jeweils nur ix1 im LAGG Interface, welche beide auf dem gleichen Switch aufliegen... und voila!
Der Master hat sich die MASTER Rollen alle geholt, die 2. FW sitzt überall als BACKUP rum.
Failover und Failback (CARP Maintenance Mode & Reboot FW-1) funktioniert sauber und flott.

Ich würde LAGG nur mit LACP machen und auch nur auf EINEN Switch und die Backup Unit auf den ZWEITEN Switch, nicht kreuzen und kein Failover.
Das einzige LAGG was wirklich stabil läuft ist LACP, alles andere ist Müll. Das macht VMware vielleicht ganz gut, aber bitte nicht bei der Firewall. Und Überkreuzt stecken sollte man nur bei MLAG oder proprietäre Varianten