IPsec Tunnel - NAT oder nicht!?

KillerCow

Lt. Commander
Registriert
Jan. 2012
Beiträge
1.619
Moin

Ich beschäftige mich derzeit ein bisschen mit IPsec via OPNsense. Aktuell habe ich ein (wohl nicht ganz so abwägiges) Szenario auf dem Tisch, bei dem ich mir einen Denkanstoß bzw. (hoffentlich) eine Bestätigung meines Gedankengangs von anwesenden Wissenden erhoffe :)

Angenommen:
Remote Server: 1.1.1.1
Local Server: 9.9.9.9

Remote Net: 10.10.10.0/24
Local Net: 90.90.90.0/24

Soweit, so klar. Das würde bei den Phase 1 respektive Phase 2 Einstellungen 1:1 eingetragen und alles wäre schick.
Jetzt kommt aber die Anforderung des Remote-Betreibers, nicht mit meinem lokalen Netz 90.90.90.0/24 reden zu wollen, sondern mit dem von ihm definierten Netz 200.200.200.0/29.

Effektiv reden nur zwei Hosts über das VPN miteinander (sagen wir: 10.10.10.99 auf Remoteseite und 90.90.90.11/200.200.200.1 auf meiner Seite), daher muss ich nach meinem Verständnis jetzt ein BiNAT auf dem IPSEC Interface einrichten, um zwischen dem nicht existierenden Netz 200.200.200.0/29 und meinem echten Netz 90.90.90.0/24 umzusetzen.

Weil nur zwei Hosts involviert sind, wäre ein 1:1 NAT für 200.200.200.1 <-> 90.90.90.11 hier mein Ansatz. Heißt, wenn mein Host 90.90.90.11 mit der 10.10.10.99 redet, wird meine IP auf 200.200.200.1 umgeschrieben (SNAT) und wenn von der 10.10.10.99 ein Paket an die 200.200.200.1 bei mir ankommt, wird die ZielIP auf die 90.90.90.11 umgeschrieben (DNAT)

Hab ich da jetzt total den Überblick verloren oder passt das so? Muss ich das 200.200.200.0/29 Netz auf meiner Seite irgendwo konfigurieren? Hab da gerade eine totale Denkblockade und kann es leider derzeit spontan nicht ausprobieren...
Falls gerade im Kontext einer OPNsense oder IPsec hier noch was spezielles zu beachten ist, nehme ich auch dafür gerne Ratschläge an.

Ich danke allen interessierten Lesern und besonders denen, die etwas sinnvolles beizutragen wissen :)
 
Möchte der Betreiber des "Remote Net" mit dem fiktiven Netz 200.200.200.0/29 "sprechen"
oder wirklich nur mit genau einer enzigen IP-Adresse, nämlich der 200.200.200.1!?

Bei einer Angabe des Remote-Netzes von 200.200.200.0/29 könnte er insgesamt nicht genau einen Host,
sondern insgesamt 6 Hosts ansprechen/adressieren.

32 - 29 = 3 Host-Bits
3 ^ 2 = 8 adressierbare Hosts

Von diesen 8 adressierbaren IP-Adressen müssen 2 abgezogen werden (Netzadresse, Broadcastadresse), so dass am Ende 6 adressierbare Hosts übrig bleiben.

Wenn wirklich nur mit der 200.200.200.1 kommuniziert werden soll,
dann würde es ausreichen diese IP-Adresse mit einer "/32"-Netzmaske in die Konfiguration
des IPsec-Tunnels aufzunehmen.

Bei einem 1:1-NAT werden ganze Netze 1:1 gemapped,
ohne, dass sich der Host-Anteil der IP-Adressen verändert.

Bezogen auf dein Beispiel:

Die 200.200.200.1/24 würde also bei einem 1:1-NAT nicht auf 90.90.90.11/24 genattet,
sondern auf die 90.90.90.1/24.

Wenn aber wirklich nur mit genau einer einzigen IP-Adresse (mit der 200.200.200.1)
gesprochen werden soll, dann würde das mit einer "normalen" DNAT-Regel funktionieren
(also kein 1:1-NAT, wo ganze Netze gemapped werden). Mit einer "normalen" DNAT-Regel
kannst du dann also wie gewünscht die 200.200.200.1 auf die 90.90.90.11 übersetzen.

Für den Rückweg muss dann entsprechend die Quell-IP 90.90.90.11 per SNAT-Regel auf die
200.200.200.1 übersetzt werden.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Raijin und KillerCow
@Datax
Ergibt Sinn, Danke. Aber mit einem 1:1 NAT kann ich doch theoretisch auch nur einzelne IPs NATen und damit ein SNAT und ein DNAT zusammenfassen oder nicht? Homeoffice macht mich langsam mürbe im Kopf... ich glaub, ich schlaf da erstmal drüber ;)
 
KillerCow schrieb:
@Datax
Ergibt Sinn, Danke. Aber mit einem 1:1 NAT kann ich doch theoretisch auch nur einzelne IPs NATen und damit ein SNAT und ein DNAT zusammenfassen oder nicht? Homeoffice macht mich langsam mürbe im Kopf... ich glaub, ich schlaf da erstmal drüber ;)

Wie meinst du das?

1:1-NAT gibt es als SNAT- als auch als DNAT-Variante,
nur zum Verständnis.
 
Ich interpretiere die Begriffe offenbar eigenwillig. Da steht bei mir in den nächsten Tagen ein bisschen Recherche an, was 1:1-/S-/DNAT für gewöhnlich bedeutet (und was nicht) und dann wird das sicherlich klarer. Danke dir @Datax, du hast mich auf die richtige Spur geschickt, glaube ich.
 
Ja, nichts zu danken ;).

In aller Regel sind professionelle Firewalls aber gut dokumentiert.

1:1-NAT gibt es aber auch kombiniert, wo SNAT + DNAT gemacht wird.

Bei WatchGuard-Firewalls gibt es das zumindest in dieser Form:
https://docs.netgate.com/pfsense/en/latest/nat/1-1-nat.html

"1:1 NAT, aka one-to-one NAT or binat, binds a specific internal address (or subnet) to a specific external address (or subnet). Incoming traffic from the Internet to the specified IP will be directed toward the associated internal IP. Outgoing traffic to the Internet from the specified internal IP will originate from the associated external IP. "

Damit könntest du deinen Anwendungsfall auf jeden Fall auch umsetzen können.

Wie gesagt, einfach mal in der Dokumentation nachlesen.
 
Nochmal eine Rückmeldung. Klappt alles jetzt. Ich habe das aktuell mit einer SNAT und einer DNAT Regel gebaut, werde mich nach deinem Kommenar @Datax auch nochmal mit der 1:1 Variante beschäftigen. Macht die Sache ggf. einfacher.
Für das "Transfernetz" war die Lösung auch einfach. Im IPsec Tunnel als lokales Netz musste das "Transfernetz" rein (das es ja bei mir eigentlich garnicht gibt, weshalb ich verwirrt war) und als "Manual SPD Entry" mein echtes lokales Netz.

Danke nochmal für den Moment ist alles geklärt :daumen:
 
  • Gefällt mir
Reaktionen: Datax
Zurück
Oben