Probleme mit Portweiterleitung auf einer pfSense über CARP VIP

Malaclypse17

Lt. Commander
Registriert
Nov. 2017
Beiträge
1.208
Hallo liebe Community.

ich habe mir testweise ein pfSense HA Cluster aufgesetzt, welches auf einem Proxmox Host läuft.
Es sind zwei pfSense VMs aufgesetzt, von welcher jeweils zwei Ethernetports von einem 4 Port NIC durchgeschleift werden (jeweils zwei Ports in einer IOMMU Gruppe).
Vor der pfSense hängt eine Fritzbox 7530, welche eigentlich nur noch als Modem dient, die pfSense ist als Exposed Host eingerichtet.
Die Grundeinrichtung hat wunderbar geklappt, auch die VIPs der lokalen Netzwerke funktionieren, NAT nach außen funktioniert ebenso problemlos.
Das Problem tritt erst auf, wenn ich die Portweiterleitung auf meinen Webserver auf Port 443 von "WAN Net" auf die CARP WAN VIP umstelle, dann ist der Webserver von außen nicht mehr zu erreichen, stelle ich es wieder auf "WAN Net" funktioniert sie wieder.

In der Firewall fällt mir auf, dass Anfragen auf den Webserver ankommen, aber geblockt werden, da scheinbar die Anfragen auf der Firewall WAN Adresse landen, nicht auf der WAN CARP VIP, wovon ich dann ausgehe, dass die Regel zur Portweiterleitung nicht matcht.

Ich habe viel recherchiert, aber im Endeffekt konnte ich zu keiner Erkenntnis gelangen, dass irgendetwas an meiner Konfiguration nicht passt, ich habe mittlerweile eher die Fritzbox im Verdacht, welche ja den Verkehr über Exposed Host an die Firewall weiterleitet.
Leider bin ich hierzu zu wenig in der Thematik was CARP betrifft, aber ich kann mir vorstellen, dass Verkehr von außen nur direkt an die WAN IP weitergeleitet wird.

Ich weiß nicht, ob ich es genügend verständlich rübergebracht habe, aber in Bezug auf Fritzbox gibt es für pfSense wenig Nachschlagewerk und Bridge Mode wird ja nun leider schon seit längerem nicht mehr unterstützt.
Ich werde heute noch ein Netzwerkdiagram anfertigen, welches die Gegebenheiten klarer darstellt.

Bin für jede Anregung offen und dankbar!

Edit: hier noch ein grobes Diagramm zum besseren Verständnis:
pfSense-HA.drawio.png
 
Zuletzt bearbeitet:
Also was mir bei meiner OPNsense aufgefallen ist, ist dass eingehender Traffic zwar über die CARP geht, ausgehend läuft der Traffic aber über die tatsächliche IP der Firewall.

Das würde evtl. erklären wieso das NATing funktioniert wenn du das komplette Netz hinterlegst und nicht mehr funktioniert, sobald die VIP hinterlegt ist

Ob's aber wirklich daran liegt kann ich dir nicht sagen, aber vielleicht ist ein ein Denkanstoß :-)
 
  • Gefällt mir
Reaktionen: Malaclypse17
d4nY schrieb:
Also was mir bei meiner OPNsense aufgefallen ist, ist dass eingehender Traffic zwar über die CARP geht, ausgehend läuft der Traffic aber über die tatsächliche IP der Firewall.
Screenshot 2022-05-06 203226.png

Evtl. verstehe ich da auch etwas falsch, aber sollte das nicht auf der CARP VIP landen, also auf der 192.168.178.4? Sonst würde ja die Regel gar nicht greifen da das Ziel nicht passt.

Edit: Vielleicht bin ich etwas dumm, aber irgendwie konnte ich gedanklich erst jetzt zu dem Schluss kommen, dass natürlich über den Exposed Host durch die Fritte direkt an die Firewall WAN IP weitergeleitet wird, was logischerweise die 192.168.178.2 ist.
Für mich würde es heißen, ich muss in der Fritzbox den Exposed Host nun auf die CARP VIP legen, also die 192.168.178.4, bitte steinigt mich nicht :D liege ich mit der Annahme falsch?

Edit2: Habe das mal ausprobiert, wenn ich testweise eine Portweiterleitung in der Fritzbox auf 192.168.178.4 für Port 443 mache, dann erreiche ich den Webserver wieder.
Leider funktioniert das nicht für den Exposed Host, da springt die IP von alleine wieder auf die 192.168.178.2 ...
Bedeutet wohl, dass ich nun doch doppeltes NAT machen darf, wollte ich eigentlich umgehen, aber es scheint nicht anders zu funktionieren.
 
Zuletzt bearbeitet:
Moin,

natürlich müssen alle Anfragen auf die virtuelle IP geschickt werden, damit es gescheit funktioniert. Um asymmetrisches Routing zu vermeiden muss dann noch ein Masquerading in der pfSense aktiviert und konfiguriert werden. So steht es zumindest in der Netgate Doku. Sofern man das nicht macht sendet die jeweils aktive pfSense mit ihrer lokalen IP und somit nicht über die VIP.
Den exposed Host wird die FritzBox bestimmt über Layer2 finden, somit ist deine VIP außen vor. Die MAC-Adressen der CARP Interface sind nach einem bestimmten Schema aufgebaut. Vielleicht kannst du den exposed Host in der FritzBox anhand der MAC definieren?

Grüße
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Malaclypse17
nosti schrieb:
Um asymmetrisches Routing zu vermeiden muss dann noch ein Masquerading in der pfSense aktiviert und konfiguriert werden.
Ist eingerichtet und funktioniert.
nosti schrieb:
Die MAC-Adressen der CARP Interface sind nach einem bestimmten Schema aufgebaut. Vielleicht kannst du den exposed Host in der FritzBox anhand der MAC definieren?
Auf die Idee kam ich kurz darauf auch, in der Fritzbox zeichnet sich die VIP als zweiter Client mit der gleichen IP wie die aktive Firewall aus, aus diesen beiden IPs habe ich versucht anhand der MAC die VIP herauszufiltern und auf diese den Exposed Host zu legen, leider springt es kurz danach wieder auf die physikalische IP/MAC ...
Die Fritzbox ist dafür glaube ich einfach nicht gedacht :D
Das einzige was funktioniert, ist, die VIP in der Fritzbox manuell anzulegen und dort die Portweiterleitungen einzeln einzurichten, das funktioniert, allerdings auch nur, wenn man diese zuerst in der Fritzbox anlegt und erst danach in der Firewall, sonst wird die IP als bereits bestehend bemängelt, obwohl sie nicht angezegit wird.
Insgesamt verwirrt das ganze VIP System die Fritzbox recht stark, es werden oft falsche Informationen angezeigt, auch wenn ich den Exposed Host auf die VIP lege, wird diese beim übernehmen direkt wieder auf die Firewall gelegt, aber auf der Startseite wird der Exposed Host auf der VIP angezeigt ...

Aber im Grunde, habe ich kein Problem damit, die Portweiterleitungen auch in der Fritzbox anzulegen, es sind nicht so viele und es kommt auch nichts groß hinzu.
 
Exposed host ist letztendlich ja nichts anderes als eine Portweiterleitung mit TCP/UDP 1-65535. Entweder man repliziert das so im Router als jeweils eine TCP- und eine UDP-Regel oder man
nimmt tatsächlich nur die Ports, die man auch benötigt. Letzteres hat den Vorteil, dass man durch den Internetrouter noch etwas zusätzlichen Schutz für die unbenutzten Ports bekommt, hat jedoch andersherum den Nachteil, dass man eben doch noch regelmäßig im Internetrouter rumfummeln muss, wenn man eigentlich nur in der nachgelagerten pfSense die Portweiterleitungen einrichten möchte.
 
  • Gefällt mir
Reaktionen: Malaclypse17
Raijin schrieb:
Exposed host ist letztendlich ja nichts anderes als eine Portweiterleitung mit TCP/UDP 1-65535. Entweder man repliziert das so im Router als jeweils eine TCP- und eine UDP-Regel
Leider bei der Fritzbox nicht möglich, der Abstand darf nicht größer sein als 255 :D
Ist für mich keine Tragik, WLAN muss auch noch meine Fritzbox regeln, da ich leider keinen AP hinter der Firewall habe, ebenso Telefonie.
 
Malaclypse17 schrieb:
Leider bei der Fritzbox nicht möglich, der Abstand darf nicht größer sein als 255 :D
Ja und? Dann eben 256 256er Blöcke an Weiterleitungen erstellen, mal 2 für TCP und UDP. :lol:
 
  • Gefällt mir
Reaktionen: Bob.Dig
Zurück
Oben