pfSense zum Routen zwischen mehreren Subnetzen in demselben LAN

45931
user149408

Ich habe mit einem ziemlich standardmäßigen pfSense-Setup angefangen: Eine WAN- und eine LAN-Schnittstelle, LAN-zu-WAN-Zugriff über NAT.

Nun brauchte ich ein zweites logisches Subnetz im LAN, das ich folgendermaßen eingerichtet habe:

  • ein VIP aus dem zweiten Subnetz auf der LAN-Schnittstelle von pfSense konfiguriert
  • schaltete das ausgehende NAT von automatisch auf manuell um
  • erstellt eine Kopie der automatisch generierten NAT-Regel, wobei der IP-Bereich auf den des neuen Subnetzes gesetzt wird
  • eine neue LAN-Regel hinzugefügt, die den Datenverkehr aus dem neuen Subnetz zulässt

Was den Internetzugang betrifft, scheint alles in Ordnung zu sein. Hosts aus beiden Subnetzen können auf externe Ressourcen zugreifen.

Ich möchte jedoch auch, dass der pfSense den Verkehr zwischen den beiden Teilnetzen routet. Und hier wird es knifflig: Ich kann zwischen Subnetzen pingen, aber bei Versuchen, eine TCP-Verbindung von einem Host in Subnetz A zu einem Ziel in Subnetz B herzustellen, wird es zu einem Timeout kommen.

Bei einigen Paketerfassungen wurde Folgendes festgestellt:

  • Trotz Routing-Tabelleneinträgen, nach denen Host B remote ist und das Standard-Gateway pfSense ist, routet Host A nicht durch pfSense, sondern löst die MAC-Adresse von Host B über ARP auf. Daher geht der TCP-SYN direkt von Host A zu Host B, ohne dass der pfSense es jemals sieht.
  • Host B empfängt die SYN und antwortet mit SYN-ACK. Diesmal durchläuft die Kommunikation jedoch wieder pfSense.
  • Der pfSense sieht also einen SYN-ACK, ohne jemals auf den entsprechenden SYN gestoßen zu sein, und verwirft ihn, wobei er davon ausgeht, dass es sich um schädlichen Datenverkehr handelt. (Aufzeichnungen zeigen deutlich den SYN-ACK auf pfSense, aber nicht auf Host A, und die Protokolle zeigen an, dass er gefiltert wird.)

Ich weiß nicht genau, warum Host A die Routeneinstellungen ignoriert und das Standardgateway umgeht. Dies wäre jedoch kein Problem, wenn ich nur einen einfachen Router hätte. Ich möchte mich nicht auf ein bestimmtes Verhalten eines Betriebssystems verlassen, sondern die Infrastruktur tolerant aufbauen. Daher möchte ich, dass das Routing zwischen den beiden Netzwerken funktioniert, auch wenn der pfSense nur eine Richtung des Datenverkehrs sieht. Da beide LAN-Subnetze dieselbe Vertrauensstufe aufweisen, ist keine Filterung zwischen ihnen erforderlich.

Wie kann ich die Filterung zwischen den beiden Subnetzen auf dem pfSense deaktivieren? Ich habe versucht, "State Type" auf "None" zu setzen, aber ohne Erfolg ...

5
Da ich keine Antwort gefunden habe, habe ich die beiden Subnetze getrennt und einen dedizierten Router hinzugefügt. Da sich alles in VMs befand, konzentrierte ich die VMs für Subnetz B auf einen Host und verlegte sie in ein VM-Netzwerk. Ich habe dann eine BSDRP-VM zwischen den beiden Netzwerken platziert und zum Standard-Gateway gemacht. Die BSDRP-Box verfügt über Routen zu einem der Subnetze und eine Standardroute zum pfSense, sodass kein interner Datenverkehr durch den pfSense geleitet wird. Das Trennen der Netzwerke ist wahrscheinlich nicht erforderlich, da BSDRP eher die Art von "One-Way" -Routing toleriert, das pfSense ablehnt. user149408 vor 9 Jahren 0

1 Antwort auf die Frage

4
user149408

Wie oben erwähnt, ist es für mich kein Problem mehr, aber ich habe eine mögliche Lösung gefunden:

Ab Version 2.1.5 (nicht sicher bei früheren Versionen) gibt es eine Option in System: Erweitert: Firewall und NAT, die als statische Routenfilterung bezeichnet wird - Firewallregeln für den Datenverkehr auf derselben Schnittstelle umgehen . Wenn Sie diese Option aktivieren, wird die Filterung von Datenverkehr deaktiviert, der in die gleiche Benutzeroberfläche ein- und ausgeht. Dies gilt insbesondere für ein Szenario mit mehreren Teilmengen auf derselben Benutzeroberfläche.

Ich habe es nicht getestet (da die Laborumgebung, in der ich dies brauchte, inzwischen demontiert wurde), aber vielleicht hilft es jemand anderem ...