Betrachten wir folgendes Szenario:
- Ihr VPS verfügt über eine einzige Ethernet-Schnittstelle, die mit der IP-Adresse 4.3.2.1/24 konfiguriert ist.
- Ihr VPS kann über ein Standard-Gateway 4.3.2.254 auf das Internet zugreifen
- Ihr VPS hat nicht jede OpenVPN - Verbindung noch aktiviert; Daher ist keine Tun-Schnittstelle aktiv
In einem solchen Szenario können Sie von Ihrem Computer aus (nehmen wir an, Ihr Computer ist 9.8.7.6/24 mit def-gw 9.8.7.254) erfolgreich eine SSH-Verbindung zu 4.3.2.1 herstellen. Somit können sich beide Hosts 4.3.2.1 und 9.8.7.6 erfolgreich gegenseitig erreichen.
Nehmen wir nun an, mit einer solchen SSH-Verbindung:
- Sie starten eine OpenVPN-Verbindung von Ihrem VPS 4.3.2.1 aus.
- Als solches wird eine neue tun0-Schnittstelle dynamisch konfiguriert (nehmen wir an, dass ihr eine 10.10.10.2-IP mit einem 10.10.10.1-PTP zugewiesen wird).
In diesem Stadium:
WENN keine Route vom Remote-OpenVPN-Server zu Ihrem lokalen VPS übertragen wird, ändert sich nichts in Bezug auf das Routing, und Ihre SSH-Verbindung überlebt ohne Probleme. In diesem Fall ist der einzige Datenverkehr, der das VPN durchläuft, der Datenverkehr, der an den Remote-OpenVPN-Server (10.10.10.1) gerichtet ist.
WENN der Remote-OpenVPN-Server eine Route zurückschiebt und insbesondere wenn das VPS-Standardgateway durch 10.10.10.1 (Remote-OpenVPN-Endpunkt) ersetzt wird, DANN treten Probleme auf. In diesem Fall tunneln Sie den gesamten ausgehenden IP-Verkehr (mit Ausnahme von OpenVPN selbst) innerhalb des VPN.
In diesem zweiten Fall (Ersetzen von def-gw direkt nach dem Herstellen der VPN-Verbindung) "hängt" Ihre vorherige SSH-Verbindung aufgrund von asymmetrischem Routing:
- Der Datenverkehr von Ihrem Computer (9.8.7.6) zu VPS (4.3.2.1) fließt über den vorherigen, nie geänderten Pfad.
- Datenverkehr von VPS (4.3.2.1) zu Ihrem Computer (9.8.7.6):
- ohne das VPN (also zunächst) wurde über das Gateway 4.3.2.254 geroutet;
- nach dem aufbau der vpn-verbindung wird mit zugehörigem def-gw-ersatz über das vpn geroutet (10.10.10.1).
Mit anderen Worten: Sobald die VPN-Verbindung hergestellt ist, ändert sich Ihre Rückroute von VPS zu Ihrem Computer und ... dies ist keine gute Sache (mehrere Netzwerkgeräte auf dem Rückweg erkennen möglicherweise eine solche Asymmetrie Pfad und einfach Pakete fallen lassen).
Darüber hinaus ist die Wahrscheinlichkeit groß, dass Ihr Remote-OpenVPN-Server als NAT-Box fungiert: Der gesamte vom VPN kommende Datenverkehr wird mit der öffentlichen IP-Adresse des Remote-OpenVPN-Servers NAT-zertifiziert. Wenn dies wahr ist , als die Dinge sind nicht mehr ... „nicht gut“, aber auf jeden Fall „schlecht“, wie für Ihren SSH - Verbindung: Rückholverkehr, zusätzlich entlang einer anderen Route zurück zu bekommen, wird immer wieder auf Ihre Maschine mit eine andere Quell-IP (die der öffentlichen Schnittstelle des VPN-Servers).
Wie kann man dieses Problem lösen?
Ganz leicht.
Weisen Sie Ihren VPS-Server einfach an, den Datenverkehr nicht über das VPN an Ihren Computer weiterzuleiten, sondern sich auf die vorherige Route zu verlassen . Es sollte so einfach wie das Hinzufügen sein, bevor Sie OpenVPN starten:
route add -host 9.8.7.6 gw 4.3.2.254
wo:
- 9.8.7.6 ist die öffentliche IP-Adresse Ihres Computers
- 4.3.2.254 ist das ursprüngliche Standard-Gateway Ihres VPS.
PS: Wenn Sie eine viel ausführlichere Frage gestellt hätten, hätten Sie eine viel schnellere Antwort erhalten :-)