Prenons le scénario suivant:
- votre VPS possède une interface Ethernet unique, configurée avec l'adresse IP 4.3.2.1/24;
- votre VPS peut accéder à Internet via une passerelle par défaut 4.3.2.254
- votre VPS n'a pas encore activé de connexion OpenVPN; il n'y a donc pas d' interface tun active
Dans un tel scénario, à partir de votre machine (supposons que votre machine soit 9.8.7.6/24 avec def-gw 9.8.7.254), vous pouvez réussir à établir une connexion SSH vers 4.3.2.1. Par conséquent, les deux hôtes 4.3.2.1 et 9.8.7.6 peuvent réussir à se rejoindre.
Maintenant, avec une telle connexion SSH établie, supposons:
- vous lancez une connexion OpenVPN depuis votre VPS 4.3.2.1;
- en tant que telle, une nouvelle interface tun0 sera configurée de façon dynamique (supposons qu'elle se verra attribuer une IP 10.10.10.2, avec un PTP 10.10.10.1).
À ce stade:
SI aucun itinéraire ne sera poussé du serveur OpenVPN distant vers votre VPS local, alors rien ne changera en termes de routage, et votre connexion SSH survivra sans aucun problème. Dans ce cas, le seul trafic traversant le VPN est celui dirigé vers le serveur OpenVPN distant (10.10.10.1);
SI le serveur OpenVPN distant repoussera une route, et surtout si la passerelle par défaut VPS sera remplacée par 10.10.10.1 (point de terminaison OpenVPN distant), ALORS vous rencontrez des problèmes. Dans ce cas, vous tunnelisez TOUT le trafic IP sortant (à l'exception d'OpenVPN lui-même) dans le VPN.
Dans ce deuxième cas (en remplaçant def-gw juste après avoir établi la connexion VPN), votre précédente connexion SSH "se bloquera", en raison du routage asymétrique:
- Le trafic de votre machine (9.8.7.6) vers VPS (4.3.2.1) passera par le chemin précédent, jamais modifié;
- Trafic de VPS (4.3.2.1) vers votre machine (9.8.7.6):
- sans VPN (donc, initialement) a été acheminé via la passerelle 4.3.2.254;
- après l'établissement de la liaison VPN, avec le remplacement def-gw associé, est acheminé via le VPN (10.10.10.1).
En d'autres termes: dès que la liaison VPN est établie, votre itinéraire de retour de VPS à votre machine va changer et ... ce n'est pas une bonne chose (plusieurs périphériques réseau, le long du chemin de retour, pourraient reconnaître une telle asymétrie chemin et simplement déposer des paquets).
En outre, il est fort probable que votre serveur OpenVPN distant agisse comme une boîte NAT: tout le trafic provenant du VPN sera NATté avec l'adresse IP publique du serveur OpenVPN distant. Si cela est vrai, les choses ne sont plus ... "pas bonnes", mais certainement "mauvaises", comme pour votre connexion SSH: le trafic de retour, en plus de reprendre un itinéraire différent, revient sur votre machine avec une IP source différente (celle de l'interface publique du serveur VPN).
Comment résoudre ce problème?
Assez facilement, en effet.
Demander simplement à votre serveur VPS de ne pas acheminer le trafic vers votre machine via le VPN, mais plutôt de s'appuyer sur l'itinéraire précédent . Cela devrait être aussi simple que d'ajouter, avant de démarrer OpenVPN:
route add -host 9.8.7.6 gw 4.3.2.254
où:
- 9.8.7.6 est l'adresse IP publique de votre machine
- 4.3.2.254 est la passerelle par défaut d'origine de votre VPS.
PS: en fournissant une question beaucoup plus détaillée, vous auriez obtenu une réponse beaucoup plus rapide :-)