NAT für ein lokales Gerät auf pfSense - was fehlt mir?

822
Stilez

Ich habe ein altes und merkwürdiges Gerät aus den 1980ern (es ist Teil eines frühen Controllers, den ich seit Ewigkeiten hatte).

Es hat eine hartcodierte Adresse von 192.168.1.100 und scheint (vielleicht aufgrund seines Alters) ein Subnetz von 192.168.1.100/24 ​​zu haben, und antwortet auf nichts, es sei denn aus diesem Subnetz. Es ist mit der OPT1-NIC meines pfSense-Routers verbunden, der über die Schnittstelle 192.168.1.1/24 verfügt.

Ich würde gerne eine Art NAT-Regel oder VIP im Router einrichten, die es meinem Desktop ermöglicht, direkt mit ihm zu sprechen. Meine Desktop-IP ist 192.168.3.2 und die LAN-NIC hat die Schnittstelle 192.168.3.1/24. Zum Beispiel eines dieser Setups:

  1. Option 1 - Pakete, die auf der LAN-Schnittstelle von source = 192.168.3.2 dest = 192.168.1.100 empfangen werden, werden wie üblich über OPT1 weitergeleitet, jedoch mit dem NATed-Paket, um source = 192.168.1.1 (IPT von OPT1) dest = 192.168.1.100 - also Das Gerät "sieht" sie als aus dem erforderlichen Subnetz kommend. Seine Antworten werden dann vom Router an OPT1 abgeholt und im LAN an 192.168.3.2 weitergeleitet
  2. Option 2 - Pakete an der LAN-Schnittstelle, die an ein virtuelles LAN gesendet werden IP-Ziel = 192.168.3.100 werden vom Router akzeptiert, der sie im Hintergrund an OPT1 weiterleitet, wobei das Paket so geändert wurde, dass es die Quelle = 192.168.1.1 (die IP-Adresse von OPT1) hat ) dest = 192.168.1.100 - so "sieht" das Gerät sie aus dem erforderlichen Subnetz. Die Antworten werden dann vom Router an OPT1 abgeholt und im LAN weitergeleitet, wobei die Quelle 192.168.1.100 auf 192.168.3.100 zurückgebildet wird. Wenn sie also vom Desktop empfangen werden, scheinen sie eher von einem Gerät im LAN als von einem Gerät gekommen zu sein außerhalb davon.

Der Unterschied zwischen den beiden Optionen besteht darin, dass in der ersten Option die Originalpakete an die Nicht-LAN-IP-Adresse gesendet werden und der Router die Quelle ändert, wenn er sie an OPT1 weiterleitet. In der Sekunde werden die ursprünglichen Pakete stattdessen an eine virtuelle IP im LAN gesendet, und der Router ändert sowohl Quelle als auch Ziel, bevor er sie weiterleitet.

Beide sind ziemlich identisch mit dem, was pfSense mit virtuellen IPs und anderen NAT-Optionen macht, daher bin ich ziemlich sicher, dass dies nicht schwer ist. Aber ich kann anscheinend keine dieser Arbeiten machen - NAT ist ein ziemlich komplexer Bereich!

0

1 Antwort auf die Frage

0
Stilez

Ich habe die Antwort gefunden. Die Lösung heißt Outbound NAT, die Quell-IP oder das Paket und nicht (wie üblich) die Ziel-IP übersetzt.

Leider ist die Dokumentation etwas zweideutig und wird leicht in Outbound NAT missverstanden, daher war dies die vollständige Antwort, die ich gefunden habe:

Ich hatte angenommen, NAT würde auf ein ausgehendes Paket angewendet werden (dh den Router über eine bestimmte Schnittstelle betreten), aber es wird tatsächlich auf das Paket angewendet, da es vom Router auf der ausgehenden Schnittstelle ausgeht.

  1. Ich habe eine virtuelle IP vom Typ "IP - Alias" eingerichtet (aber vielleicht hätten auch andere Typen genauso gut funktioniert), mit der IP, von der ich wollte, dass das Paket so aussieht, als ob es von irgendetwas im Bereich 192.168.1.0/24 kam dieses Beispiel - zum Beispiel 192.168.1.5). Die IP - Alias muss auf einer Schnittstelle sein - ich die Schnittstelle verwendet wird, würde es verlassen Sie den Router an (OPT1 in diesem Beispiel), nicht derjenige es in den Router kommt zu.

  2. Ich habe Hybrid-NAT aktiviert (Manuell / AON-NAT hätte auch funktioniert) und fügte dann an derselben Schnittstelle (OPT1) eine Outbound-NAT-Regel hinzu mit source = any (oder dem IP-Bereich, aus dem das Paket tatsächlich kam) und dest = der Ziel-IP oder sein Subnetz oder was auch immer (ich habe 192.168.1.0/24 verwendet). Dann stelle ich die "Übersetzungsadresse" ein, indem ich die virtuelle IP-Adresse, die ich in Schritt 1 eingegeben hatte, aus der Dropdown-Liste auswählte.

Das macht was ich will. Das an seine Ziel-IP gesendete Paket wird aus dem LAN gesendet und von NAT abgerufen, wenn es an OPT1 (der Schnittstelle in der NAT-Regel) abhängt. Da der Quellcode des Pakets mit "any" übereinstimmt und sein Ziel mit dem in der NAT-Regel (192.168.1.0/24) eingegebenen Wert übereinstimmt, wird seine Quelle nach Bedarf in 192.168.1.5 übersetzt, bevor sie über OPT1 gesendet wird.

Packet Capture bestätigt dies - Wenn ich wie im ersten Post beschrieben ping, wird bei Packet Capture auf der OPT1-Schnittstelle ein Ping und eine Antwort von 192.168.3.2 -> 192.168.1.100 angezeigt, während bei der Paketerfassung auf der OPT2-Schnittstelle ein Ping und eine Antwort von 192.168 angezeigt wird .1.5 -> 192.168.1.100 nach Wunsch.

Dies ist nicht nur für mein Gerät nützlich, sondern auch für andere Situationen, in denen Pakete aus demselben Subnetz stammen müssen wie ein anderes Gerät.