Commence par arrêter d'utiliser ifconfig et route et utilise ip addr et ip route à la place. Surtout si tu fait des confs réseaux un poil avancées.
Maintenant, ip route à une super méga fonctionnalité qui permet de savoir quel route le noyau choisi selon ta destination: ip route get. Tu verra, c'est magique.
Maintenant sur ta conf:
tu à Y.Y.Y.Y qui ouvre une session SSH vers X.X.X.X. Ensuite tu fait des bidouilles sur X.X.X.X, puis ensuite, tu rajoute, comme ça, salement, sur X.X.X.X une route vers Y.Y.Y.Y qui passe pas là ou ça passait d'habitude.
Sauf que pour router ton traffic SSH, le noyau va utiliser ta table de routage. Si quand le démon SSH veut aller renvoyer du TCP à Y.Y.Y.Y, il passe par ton tunnel, c'est mort. Je ne comprend pas comment ça à pu marcher tel quel. T'est sûr qu'il n'y avais pas du NAT entre les deux la première fois ?
Maintenant, ce genre de conf est possible avec du policy routing. Mais déjà, il va falloir jeter route aux oubliettes, il va pas suivre longtemps le pauvre.
Ensuite il va falloir savoir ce que tu veux. Déjà tu veux que quand Y.Y.Y.Y te titille sur l'IP X.X.X.X, alors tu veux répondre directement. La manière la plus simple, c'est de router en fonction de l'adresse source: si la source est X.X.X.X et la destination est Y.Y.Y.Y, alors passe directement par l'interface.
Ensuite, si tu veux que quand tu tape Y.Y.Y.Y dans un logiciel sans rien préciser d'autre (genre l'adresse de bind), ça passe par ton tunnel, ça veut dire que la route qui va vers Y.Y.Y.Y en passant par ton tunnel doit être par défaut. Celle là tu la met dans ta table de routage par défaut. Et tant qu'à faire, spécifie lui bien l'adresse source préférée comme étant Z.Z.Z.1.
Pour l'autre, c'est très simple:
ip rule add from X.X.X.X table 2
ip route add Y.Y.Y.Y via ta-gateway-habituelle dev ton-interface-habituelle table 2
Si tu à envie de mettre un nom plus explicite au lieu de 2, édite /etc/iproute2/rt_tables, rajoute une entrée à toi, du genre 2 directy, ensuite tu pourra utiliser table directy à la place de table 2
# Si tu veux pas que je trolle ...
Posté par Batchyx . En réponse au message Problème du vendredi: réseau, ssh -w, OpenVZ :-). Évalué à 3.
Commence par arrêter d'utiliser
ifconfigetrouteet utiliseip addretip routeà la place. Surtout si tu fait des confs réseaux un poil avancées.Maintenant,
ip routeà une super méga fonctionnalité qui permet de savoir quel route le noyau choisi selon ta destination:ip route get. Tu verra, c'est magique.Maintenant sur ta conf:
tu à
Y.Y.Y.Yqui ouvre une session SSH versX.X.X.X. Ensuite tu fait des bidouilles surX.X.X.X, puis ensuite, tu rajoute, comme ça, salement, surX.X.X.Xune route vers Y.Y.Y.Y qui passe pas là ou ça passait d'habitude.Sauf que pour router ton traffic SSH, le noyau va utiliser ta table de routage. Si quand le démon SSH veut aller renvoyer du TCP à
Y.Y.Y.Y, il passe par ton tunnel, c'est mort. Je ne comprend pas comment ça à pu marcher tel quel. T'est sûr qu'il n'y avais pas du NAT entre les deux la première fois ?Maintenant, ce genre de conf est possible avec du policy routing. Mais déjà, il va falloir jeter
routeaux oubliettes, il va pas suivre longtemps le pauvre.Ensuite il va falloir savoir ce que tu veux. Déjà tu veux que quand
Y.Y.Y.Yte titille sur l'IPX.X.X.X, alors tu veux répondre directement. La manière la plus simple, c'est de router en fonction de l'adresse source: si la source estX.X.X.Xet la destination estY.Y.Y.Y, alors passe directement par l'interface.Ensuite, si tu veux que quand tu tape
Y.Y.Y.Ydans un logiciel sans rien préciser d'autre (genre l'adresse de bind), ça passe par ton tunnel, ça veut dire que la route qui va versY.Y.Y.Yen passant par ton tunnel doit être par défaut. Celle là tu la met dans ta table de routage par défaut. Et tant qu'à faire, spécifie lui bien l'adresse source préférée comme étantZ.Z.Z.1.Pour l'autre, c'est très simple:
Si tu à envie de mettre un nom plus explicite au lieu de 2, édite
/etc/iproute2/rt_tables, rajoute une entrée à toi, du genre2 directy, ensuite tu pourra utilisertable directyà la place detable 2