Site to Site IPSec VPN bei gleichen Netzen

VPN mit NAT

Wer häufiger mit Site to Site VPN Verbindungen zu tun hat, kennt das Problem. Haben zwei Standorte die gleichen Subnetze, wird der Traffic niemals in das VPN geschickt. Der Grund ist einfach erklärt: Wenn ein Client zu einer Zieladresse im gleichen Netzwerk sprechen will, schickt er das Paket gar nicht erst an das Standard-Gateway, sondern direkt in sein lokales Netzwerk. Das ursprünglich Ziel im Remote Netz wird nie erreicht.

Für diesen Fall gibt es aber Lösungsmöglichkeiten. Eine davon ist NAT (Network Address Translation). Beim NAT werden eine oder mehrere IP-Adressen in eine oder mehrere IP-Adressen übersetzt. Da auf beiden Seiten das Problem mit dem lokalen Versenden von Paketen auftreten würde, muss auf beiden Seiten ein NAT im VPN eingeführt werden.

Beispiel mit kompletten Netz im NAT

Standort 1 würde sein lokales Netz 192.168.0.0/24 hinter dem Netz 192.168.1.0/24 verstecken.
Standort 2 würde sein lokales Netz 192.168.0.0/24 hinter dem Netz 192.168.2.0/24 verstecken.

Immer wenn also eine Anfrage aus dem LAN über das IPSec VPN raus gehen soll, wird das Paket mit einer veränderten Quell IP versendet. Wenn ein Paket im VPN eingeht, wird die Zieladresse verändert. So sieht es für Standort 1 aus, als wäre beim Standort 2 das Netz 192.168.2.0. Für Standort 2 entsprechend umgekehrt.

Natürlich muss die Kommunikation entsprechend angepasst werden. Es kann z. B. der Webserver an Standort 2, welcher tatsächlich die IP-Adresse 192.168.0.60 hat nur über die 192.168.2.60 erreicht werden.

Im folgenden Schaubild soll das deutlich gemacht werden.

  1. Das Gerät mit der 192.168.0.50 (S1) spricht 192.168.2.60 an.
  2. Firewall an Standort 1 übersetzt die Quell IP
  3. Firewall an Standort 2 übersetzt die Ziel IP
  4. Das Gerät mit der 192.168.0.60 (S2) erhält das Paket.

Zurück passiert natürlich das Gleiche. Das Antwortpaket kommt bei dem Absender mit der Quell IP 192.168.2.60 an.

Umsetzung unter pfSense

Um das NAT in pfSense einzurichten, muss in den Phase 2 Tunneln die NAT/BINAT Funktion aktiviert werden.

Standort 1

Standort 2

Es ist zu beachten, dass die Netzgröße gleich bleiben muss. Es kann nicht von einem /16 Netz in ein /24 Netz übersetzt werden. Für solche Fälle am besten einzelne Phase 2 Tunnel für die gewünschten gleichgroßen Bereiche anlegen.

Alternative – Netzwerk zu Adress-NAT

Wenn nur eine Seite auf das andere Netz zugreifen muss, kann man auch sein ganzes LAN in nur 1 Adresse NATen. Das spart auf der Gegenseite IP-Adressen ein. Gerade, wenn man sehr viele IPSec VPN Verbindungen betreibt, kann es schon sehr aufwendig sein, jedes Netz per NAT anzubinden. Daher ist man froh über möglichst wenige Überschneidungen. Wie das umgesetzt wird, kann man sich aus dem Artikel über Mobile VPN ableiten, welcher hier zu finden ist.