2 votes

Utiliser le netfilter de Linux pour refléter les paquets.

J'ai une paire d'hôtes avec un très mauvais routage entre les deux, mais j'ai un troisième hôte qui a un très bon ping vers chacun. Pour contourner le mauvais routage, je configure le troisième hôte pour faire rebondir les paquets entre les deux.

Ce troisième hôte a une adresse IP qui n'est utilisée pour rien d'autre. Ma configuration idéale serait la suivante : lorsque l'hôte 1 envoie un paquet à l'hôte 3, l'hôte 3 NAT automatiquement les adresses de source et de destination, en remplaçant source=hôte 3 et destination=hôte 2, puis transmet le paquet.

L'inverse devrait être vrai : si l'hôte 2 essaie de répondre, le paquet devrait retourner à l'hôte 3, qui le NATera de nouveau en source=hôte 3, destination=hôte 1. Aucun suivi de connexion n'est nécessaire - ceci peut être fait entièrement sans état.

Là où je suis bloqué, c'est que je n'arrive pas à faire fonctionner DNAT et SNAT en même temps. Il semble que, si un paquet est traité par DNAT, il est automatiquement marqué pour ignorer les règles SNAT : le DNAT fonctionne bien, mais l'adresse source n'est pas traduite.

Quelle est la bonne configuration d'iptables pour y parvenir ?

0voto

CFSworks Points 21

Le comportement étrange était dû à CONNTRACK. SNAT et DNAT fonctionnent en effet très bien ensemble si rien d'autre ne s'y oppose.

De plus, je n'ai configuré le SNAT et le DNAT que dans un seul sens. Comme il y a constamment du trafic de transit, la traduction inverse automatique de SNAT et DNAT s'occupe de la voie de retour pour moi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X