Dies ist eine kanonische Frage zum Lösen von IPv4-Subnetzkonflikten zwischen dem lokalen Netzwerk eines VPN-Clients und einem über die VPN-Verbindung verbundenen Netzwerk.
Nach dem Herstellen einer Verbindung zu einem Remotestandort über OpenVPN versuchen Clients, auf einen Server in einem Netzwerk zuzugreifen, das in einem Subnetz wie 192.0.2.0/24 vorhanden ist. Manchmal hat das Netzwerk im LAN des Clients jedoch dieselbe Subnetzadresse: 192.0.2.0/24. Clients können aufgrund dieses Konflikts keine Verbindung zum Remote-Server herstellen, indem sie dessen IP eingeben. Sie können nicht einmal auf das öffentliche Internet zugreifen, während sie mit dem VPN verbunden sind.
Das Problem ist, dass dieses Subnetz 192.0.2.0/24 vom VPN geroutet werden muss, aber es muss auch als LAN des Clients geroutet werden.
Weiß jemand, wie man dieses Problem mildert? Ich habe Zugriff auf den OpenVPN-Server.
Antworten:
Es ist möglich, dies mit NAT zu lösen. es ist einfach nicht sehr elegant.
Unter der Annahme, dass Sie dieses Problem nicht lösen können, indem Sie interne Netze verwenden, deren Netzwerknummern so ungewöhnlich sind, dass sie nie in Konflikt geraten, gilt das folgende Prinzip:
Da sowohl das lokale als auch das entfernte Subnetz identische Netzwerknummern haben, wird der Datenverkehr von Ihrem Client niemals erkennen, dass er das Tunnel-Gateway passieren muss, um sein Ziel zu erreichen. Und selbst wenn wir uns das vorstellen könnten, wäre die Situation für den Remote-Host dieselbe, da er eine Antwort senden wird.
Bleiben Sie also bei mir und tun Sie so, als ob es bis jetzt keine Nebenprobleme gibt, da ich schreibe, dass Sie für eine vollständige Konnektivität beide Enden innerhalb des Tunnels NAT benötigen würden, um die Hosts zu unterscheiden und das Routing zuzulassen.
Hier ein paar Netze basteln:
Innerhalb des VPN-Tunnels sind die Office-Hosts jetzt 198.51.100.x und die Remote-Office-Hosts 203.0.113.x. Nehmen wir weiterhin an, alle Hosts sind 1: 1 im NAT ihrer jeweiligen VPN-Gateways zugeordnet. Ein Beispiel:
Wenn der Host 192.0.2.5/24 im Remote-Büro eine Verbindung zum Host mit derselben IP im Office-Netzwerk herstellen möchte, muss er die Adresse 198.51.100.5/24 als Ziel verwenden. Folgendes passiert:
Während es also eine Lösung gibt, gibt es eine Reihe von Problemen, die angegangen werden müssen, damit dies in der Praxis funktioniert:
Um dies zu lösen, ist sorgfältiges Design erforderlich. Wenn Ihr Remote-Büro wirklich aus Straßenkämpfern besteht, fügen Sie eine Reihe von Problemen hinzu:
Abhängig von Ihrem VPN-Client können Sie abhängig von der Netzwerkadresse des lokalen Segments möglicherweise automatisch das eine oder das andere VPN auswählen.
Beachten Sie, dass jede Erwähnung von NAT in diesem Zusammenhang eine NAT-Funktion bedeutet, die sozusagen in der Tunnelperspektive stattfindet. Die statische NAT-Zuordnung muss prozessbedingt erfolgen, bevor das Paket in den Tunnel "eintritt", dh bevor es in das Transportpaket eingekapselt wird, das es über das Internet zum anderen VPN-Gateway bringen soll.
Dies bedeutet, dass man die öffentlichen IP-Adressen der VPN-Gateways (und die in der Praxis auch NAT-Adressen sein können, aber dann ganz außerhalb der Perspektive des Transports zum Remote-Standort über VPN) nicht mit den eindeutigen privaten Adressen verwechseln darf, die als Maskeraden verwendet werden für die doppelten privaten Adressen. Wenn sich diese Abstraktion nur schwer vorstellen lässt, wird hier veranschaulicht, wie NAT zu diesem Zweck physisch vom VPN-Gateway getrennt sein kann:
Verwenden von NAT in überlappenden Netzwerken .
Das gleiche Bild auf eine logische Trennung innerhalb eines Computers zu komprimieren, auf dem sowohl die NAT- als auch die VPN-Gateway-Funktionalität ausgeführt werden kann, führt dasselbe Beispiel lediglich einen Schritt weiter, wobei jedoch die Fähigkeiten der jeweiligen Software stärker betont werden. Es wäre eine Herausforderung, es zusammen mit OpenVPN und iptables zu hacken und die Lösung hier zu veröffentlichen.
Softwaremäßig ist es sicherlich möglich:
PIX / ASA 7.x und höher: LAN-zu-LAN-IPsec-VPN mit überlappenden Netzwerken Konfigurationsbeispiel
und:
Konfiguration eines IPSec-Tunnels zwischen Routern mit doppelten LAN-Subnetzen
Die tatsächliche Implementierung hängt daher nicht zuletzt von vielen Faktoren, den beteiligten Betriebssystemen, der zugehörigen Software und deren Möglichkeiten ab. Aber es ist durchaus machbar. Sie müssten ein bisschen nachdenken und experimentieren.
Ich habe das von Cisco gelernt, wie die Links zeigen.
quelle
Wenn Sie eine temporäre fehlerhafte Problemumgehung für einen einzelnen oder eine Handvoll bekannter Server-IPS benötigen, sollte die einfachste Lösung die Option für statisches clientseitiges Routing sein.
In meinem Fall habe ich meinen gewünschten Zielserver (192.168.1.100) zu meiner Routing-Tabelle auf meinem Linux-Client hinzugefügt:
Entfernen Sie anschließend diese statische Route mit dem Befehl route delete.
quelle
dev tun0
Sie es brauchen-interface tun0
yup das ist das schlimmste. für mich passierte es die ganze zeit von hotelzimmern, bevor vpn admins erkannten, dass sie dunkelere ip-bereiche verwenden sollten. 10.0.0.0/24 und 10.1.1.1/24 sind die schlechtesten. Wenn Sie helfen können, ipen Sie niemals ein drahtloses Netzwerk wie dieses.
die antwort lautet also "fix" the wap, um ein anderes internes netzwerk zu verwenden (dh 10.255.255.0/24) und dann eine diff lease zu geben (dh ip in einem bereich, der zurück zur corp vpn leiten kann), oder wenn sie keine haben Ich kann den Admin nicht auf Wap kriegen, gehe einfach zu Starbucks. oder 20 Minuten Wardriving :)
Wenn dies nur in einer Laborumgebung geschieht, verwenden Sie einfach andere Bereiche.
quelle
Ich bin auf einem Mac mit El Capitan. Obwohl die obigen Vorschläge für mich nicht funktionierten, führten sie mich zu einer funktionierenden Lösung:
ifconfig
Starten Sie das VPN,
ifconfig
und notieren Sie sich, welches die neue Schnittstelle ist. In meinem Fall war es ppp0 mit einer IP-Adresse von 192.168.42.74eintippen:
Ich habe zuerst mit a getestet
ping
und dann bewiesen, dass es funktioniert, indem ich auf den Git-Server zugegriffen habe.Als ich versuchte, dev ppp0 wie oben erwähnt für das Ende des Routenbefehls zu verwenden, beschwerte es sich.
quelle
192.168.1.79
kommt aus diesem Austausch?Ich habe eine einfache Lösung, die ich in einem Arbeitsbereich verwende, in dem ein IP-Bereich in Konflikt steht (10.x).
Ich habe mit meinem Handy eine Verbindung zum Netzwerk hergestellt und dann die Netzwerkverbindung über Bluetooth mit meinem Laptop geteilt. Ich kann das VPN jetzt für meinen entfernten Arbeitgeber verwenden.
Ich bin sicher, dass dies auch über USB funktioniert, wenn Sie eine schnellere Verbindung benötigen.
quelle
Wenn Sie nur ein paar IP-Adressen eingeben müssen, fügen Sie der ovpn-Konfigurationsdatei die folgende route-Anweisung hinzu:
route 192.168.1.10 255.255.255.255
route 192.168.1.11 255.255.255.255
Es wird eine Route für nur diese IPs hinzugefügt, wenn Sie Ihren VPN verbinden, und diese Route wird entfernt, wenn der VPN getrennt wird.
Arbeitete für mich auf jeden Fall unter Windows.
quelle
Die Antwort von Aydin K. ist für Linux. Wenn Sie die gleiche Funktionalität für Windows wünschen, können Sie eingeben
oder
Sie können die Schnittstellen-ID mit dem folgenden Befehl abrufen:
quelle
Zur Erinnerung: Dieses gesamte Problem ist auf die jahrelange Verknappung von IPv4-Adressen und die umfassende Nutzung des privaten IP-Bereichs hinter NAT zurückzuführen, um diesen Mangel zu beheben.
Die ideale und endgültige Lösung für dieses Problem ist recht unkompliziert (obwohl die globale Einführung einige Zeit in Anspruch nehmen kann und wird): IPv6 ...
In einer IPv6-Welt gibt es keinen öffentlichen IP-Mangel (und es wird kein Ereignis in ein paar Jahrzehnten geben). Es gibt also keinen Grund, nicht auf jedem Gerät jedes Netzwerks eine öffentliche IP zu haben. Und wenn Sie eine Netzwerkisolation benötigen, filtern Sie weiter mit einer Firewall, aber ohne hässliches NAT ...
quelle