Choisir ip de sortie

Bonjour,
est-il possible de choisir l’ip que l’on veut montrer lorsque l’on se connecte à un serveur ?
Je vous explique :

J’ai une machine avec sur l’interface eth0, l’adresse ip 192.168.0.1
je souhaite créer plusieurs ips virtuelles que j’ai fait en faisant un ifconfig eth0:0, eth0:1, etc … avec comme ip 192.168.0.2, 192.168.0.3, etc …

Lorsque je me connecte à une machine sur le lan, l’adresse ip qui est vu par cette machine est l’adresse ip de eth0 , 192.168.0.1.
Y-a t’il donc une possibilité de choisir l’adresse ip de sortie ?
par exemple, une des adresses ips virtuelles que j’ai crée ?
Merci

Tu as essayé avec un nat :
iptables -t nat -A POSTROUTING bla-bla-bla -j SNAT --to-source Ip_début-Ip_Fin[:port_debut-port_fin]
?
L’IP source pour chaque flux que nous ouvrons sera allouée aléatoirement, et un flux utilisera toujours la même adresse IP pour tous les paquets transitants dans ce flux (linux-france.org/prj/inetdoc … arget.html)
:006

Mais il faut intercaler une machine qui fait ce nat, je ne vois pas trop comment tu peux faire avec une seule machine et une seule interface, car le snat, tu peux le faire que dans la chaine nat pas dans la chaine output, et toi, tes paquets, il vont passer par la chaine Output, pas nat, puisque les paquets viennent de la machine elle même.
Je me gourre peut être complètement, c’est une idée comme cà…

Tu peux aussi ajouter une route pour l’IP que tu cherches à atteindre en précisant l’interface :

J’ai pas testé, fait nous un retour :wink:

[quote=“dric64”]Mais il faut intercaler une machine qui fait ce nat, je ne vois pas trop comment tu peux faire avec une seule machine et une seule interface, car le snat, tu peux le faire que dans la chaine nat pas dans la chaine output, et toi, tes paquets, il vont passer par la chaine Output, pas nat, puisque les paquets viennent de la machine elle même.
Je me gourre peut être complètement, c’est une idée comme cà…[/quote]
Oui tu te gourres, on peut très bien faire du NAT sortant sur la machine même où les paquets sont générés. :wink:
Un petit diagramme TRÈS utile (pour ne pas dire indispensable) dès qu’on touche à autre chose que la table FILTER dans iptables : upload.wikimedia.org/wikipedia/c … t-flow.svg

[quote=“BBT1”]Tu peux aussi ajouter une route pour l’IP que tu cherches à atteindre en précisant l’interface :

Ça ne suffira pas : route ne reconnaît pas les interfaces virtuelles (d’ailleurs, à part ifconfig, je n’ai pas encore rencontré d’outil qui les reconnaisse) et par conséquent est incapable de faire la distinction. Cela dit ça fonctionnerait sûrement avec deux interfaces physiques distinctes.

[quote=“BBT1”]Tu peux aussi ajouter une route pour l’IP que tu cherches à atteindre en précisant l’interface :

J’ai pas testé, fait nous un retour :wink:[/quote]

Je teste ta proposition demain :slightly_smiling:

[quote=“syam”][quote=“dric64”]Mais il faut intercaler une machine qui fait ce nat, je ne vois pas trop comment tu peux faire avec une seule machine et une seule interface, car le snat, tu peux le faire que dans la chaine nat pas dans la chaine output, et toi, tes paquets, il vont passer par la chaine Output, pas nat, puisque les paquets viennent de la machine elle même.
Je me gourre peut être complètement, c’est une idée comme cà…[/quote]
Oui tu te gourres, on peut très bien faire du NAT sortant sur la machine même où les paquets sont générés. :wink:
Un petit diagramme TRÈS utile (pour ne pas dire indispensable) dès qu’on touche à autre chose que la table FILTER dans iptables : upload.wikimedia.org/wikipedia/c … t-flow.svg[/quote]

Merci pour le diagramme, très instructif et très bien fait surtout
Avec un nat en output en précisant le port de sortie, je pourrais lui indiquer l’interface par laquelle je veux qu’il passe et ainsi l’ip ???

[quote=“aureliensm”][quote=“BBT1”]route add <IP> <ethn>
J’ai pas testé, fait nous un retour :wink:[/quote]

Je teste ta proposition demain :slightly_smiling: [/quote]
Si tu veux tester, utilise la bonne syntaxe :

Mais “” doit être de la forme ethX, pas ethX:Y (enfin route accepte les deux formes, mais ignore superbement la partie “:Y”), donc c’est probablement de la perte de temps dans ton cas (les interfaces “virtuelles” eth0:n n’existent que pour ifconfig, pour tout le reste de la couche réseau il s’agit simplement de l’interface eth0 quelle que soit l’IP).

Le choix de l’interface se fait par routage, mais c’est inutile ici vu que tu as une seule interface physique. Par contre, l’IP source est modifiable en utilisant les fonctionnalités NAT d’iptables, c’est ce qui t’intéresse. Inutile de NATer également le numéro de port, à moins que tu aies des besoins spécifiques.

# iptables -t NAT -A POSTROUTING -d 192.168.0.200 -j SNAT --to-source 192.168.0.3Ceci utilisera l’IP 192.168.0.3 (qui doit être configurée sur ta machine) pour toutes les communications à destination de 192.168.0.200.

Encore une fois, cette manière de procéder est spécifique au fait que tu aies plusieurs IPs mais une seule interface physique.

Ok donc le route ne marchera pas avec les interfaces virtuelles. Je vais donc faire par nat en choisissant lip que je veux. Je teste ça demain et je ferai un retour

[quote=“syam”]Si tu veux tester, utilise la bonne syntaxe :

[/quote]
Extrait de man route :
If dev If est la dernière option de la ligne de commande, le mot dev peut être omis, puisque c’est la valeur par défaut.
Autrement l’ordre des modificateurs de route (metric - netmask - gw - dev) n’a pas d’importance.

merci, ça marche niquel avec le nat :smiley:

Merci pour le schéma, je vais le potasser. J’aurais juré avoir lu le contraire dans une des nombreuses doc sur netfilter que j’ai consultées et comme je n’ai jms testé… :075 Mais à ma décharge, j’avais pas complètement tout faux, le nat semble avoir fait son affaire :005
:006

[quote=“BBT1”]Extrait de man route :
If dev If est la dernière option de la ligne de commande, le mot dev peut être omis, puisque c’est la valeur par défaut.
Autrement l’ordre des modificateurs de route (metric - netmask - gw - dev) n’a pas d’importance.[/quote]
Au temps pour moi… je me coucherai moins bête ce soir. :wink:

[quote=“dric64”][quote=“syam”]
Un petit diagramme TRÈS utile (pour ne pas dire indispensable) dès qu’on touche à autre chose que la table FILTER dans iptables : upload.wikimedia.org/wikipedia/c … t-flow.svg
[/quote]
Merci pour le schéma, je vais le potasser. J’aurais juré avoir lu le contraire dans une des nombreuses doc sur netfilter que j’ai consultées et comme je n’ai jms testé… :075 Mais à ma décharge, j’avais pas complètement tout faux, le nat semble avoir fait son affaire :005
:006[/quote]

Oui, tout marche comme je le souhaitais :smiley: