spécifier une adresse sortante

Le
yamo'
Bonjour,

J'ai un serveur avec deux adresses IP sur le WAN.

Pour certaines commandes, j'aurai besoin d'être sûr de sortir par la
bonne adresse IP et forcément c'est l'autre qui est utilisée


J'ai cherché et je suis tombé sur cette commande mais je ne connait pas
l'impact de cette commande, c'est juste un besoin ponctuel, si l'impact
est limité à une session screen ce serait l'idéal


ip route replace to default via ip_passerelle dev eth0 src
ip_sortante_desiree

<http://forum.ovh.com/showthread.php?pA8679#post418679>


--
Stéphane

<http://pasdenom.info/fortune/>

Quelque bien qu'on nous dise de nous, on ne nous apprend rien de
nouveau.
-+- François de La Rochefoucauld (1613-1680), Maximes 303 -+-
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric Belhomme
Le #23131171
Le Wed, 16 Feb 2011 12:24:00 +0100, yamo' a écrit :

Pour certaines commandes, j'aurai besoin d'être sûr de sortir par la
bonne adresse IP et forcément c'est l'autre qui est utilisée...


J'ai cherché et je suis tombé sur cette commande mais je ne connait pas
l'impact de cette commande, c'est juste un besoin ponctuel, si l'impact
est limité à une session screen ce serait l'idéal...


ip route replace to default via ip_passerelle dev eth0 src
ip_sortante_desiree



Ce que tu souhaites faire, c'est du "routage policé" (ou policy routing
en bon anglais). A la lecture de ta prose, tu es sous Linux. Donc bonne
nouvelle, c'est possible. Par contre, mauvaise nouvelle, c'est complexe,
ça impacte tou le système, et c'est définitif (enfin, jusqu'à la
prochaine reconfiguration de ton système quoi).
Bref, si tu poses la question, c'est sans doute que tu es loin de
maitriser ces sujets, et j'ai peur que tu galères fort pour mettre cela
en place...

Après, il y a peut-être moyen de biaiser : selon les "commandes" que tu
veux utiliser, tu peux peut-être forcer l'adresse source, et dans ce cas,
tu peux déterminer la passerelle via laquelle tu sortira. C'est le cas
par exemple de la plupart des outils comme ping ou arping

Donc pour résumer :

1°) tu veux bidouiller ou tester ton réseau, et tes outils permettent de
spécifier une adresse source, dans ce cas il n'y a rien d'autre à faire
que de spécifier la bonne adresse source,

2°) ta "commande" ne permet pas une telle sélection, et dans ce cas il te
faut mettre en place toute une usine à gaz pour faire du policy routing.
C'est un vaste sujet, et google sera ton ami, (cherches le LARTC how-to)

Bon courage...

--
Rico
Le bonheur et le malheur des hommes ne dépend
pas moins de leur humeur que de la fortune.
-+- François de La Rochefoucauld (1613-1680), Maximes 61 -+-
Pascal Hambourg
Le #23131161
Salut,

yamo' a écrit :

J'ai un serveur avec deux adresses IP sur le WAN.

Pour certaines commandes, j'aurai besoin d'être sûr de sortir par la
bonne adresse IP et forcément c'est l'autre qui est utilisée...

J'ai cherché et je suis tombé sur cette commande mais je ne connait pas
l'impact de cette commande, c'est juste un besoin ponctuel, si l'impact
est limité à une session screen ce serait l'idéal...

ip route replace to default via ip_passerelle dev eth0 src
ip_sortante_desiree



Cette commande modifie l'adresse source par défaut associée à la route
par défaut, et affecte donc toute communication de la machine vers une
destination joignable par la route par défaut.

Il est possible d'en limiter la portée à des destinations particulières
et connues :

ip route add <destination> [via <passerelle> [dev <interface>]
src <adresse_source>

Pour info je suis tombé sur ça récemment (pas testé) :

http://freshmeat.net/projects/fixsrcip

fixsrcip is a tool for binding outgoing TCP and UDP client sockets
(IPv4) to specific source IP addresses on multi-homed hosts

http://freshmeat.net/projects/force_bind

force_bind allows you to force binding on a specific IP and/or port.
It works with both IPv4 and IPv6.
Pascal Hambourg
Le #23131151
Eric Belhomme a écrit :

Ce que tu souhaites faire, c'est du "routage policé" (ou policy routing
en bon anglais). A la lecture de ta prose, tu es sous Linux. Donc bonne
nouvelle, c'est possible.



Pas toujours, hélas. Il faut un critère qui fasse partie de la clé de
routage (destination, TOS - mais pas le marquage par iptables qui vient
trop tard), or ce n'est toujours possible. Sinon, dans certains cas il
reste la solution boeuf : NAT source par iptables.
yamo'
Le #23131681
Salut,


Le 16/02/2011 13:09, Eric Belhomme a écrit:
>
> ip route replace to default via ip_passerelle dev eth0 src
> ip_sortante_desiree


Ce que tu souhaites faire, c'est du "routage policé" (ou policy routing
en bon anglais). A la lecture de ta prose, tu es sous Linux. Donc bonne
nouvelle, c'est possible. Par contre, mauvaise nouvelle, c'est complexe,
ça impacte tou le système, et c'est définitif (enfin, jusqu'à la
prochaine reconfiguration de ton système quoi).
Bref, si tu poses la question, c'est sans doute que tu es loin de
maitriser ces sujets, et j'ai peur que tu galères fort pour mettre cela
en place...



Oui, je sens que c'est que c'est pas une commande innocente et j'ai pas
envie de tout péter et effectivement mes connaissances en réseau se
limitent à des souvenirs de la fac et de ce que j'utilise de manière
basique couramment.



Comme c'est un besoin ponctuel je vais faire autrement, si le routage a
été fait comme ça c'est qu'il y a une raison et donc je ne vais pas y
toucher.


2°) ta "commande" ne permet pas une telle sélection, et dans ce cas il te
faut mettre en place toute une usine à gaz pour faire du policy routing.
C'est un vaste sujet, et google sera ton ami, (cherches le LARTC how-to)




Je vais regarder pour ma culture générale!

--
Stéphane
yamo'
Le #23131671
Le 16/02/2011 13:11, Pascal Hambourg a écrit:
Cette commande modifie l'adresse source par défaut associée à la route
par défaut, et affecte donc toute communication de la machine vers une
destination joignable par la route par défaut.



C'est pas ce que je veut faire, pour le reste j'ai trouvé les bons
paramètres pour mettre la bonne adresse en écoute et en émission.



Il est possible d'en limiter la portée à des destinations particulières
et connues :

ip route add <destination> [via <passerelle> [dev <interface>]
src <adresse_source>



Si je ne dis pas de bêtise tout passe par la même interface.

De mémoire eth0 et eth0:0





Pour info je suis tombé sur ça récemment (pas testé) :

http://freshmeat.net/projects/fixsrcip



Je vais jeter un ½il à tes liens.

Mais je vais éviter de tout péter déjà mon message-id ne devrait pas
être celui ci!

--
Stéphane
yamo'
Le #23133851
Salut,

Pascal Hambourg a tapoté, le 16/02/2011 13:11:
> ip route replace to default via ip_passerelle dev eth0 src
> ip_sortante_desiree


Cette commande modifie l'adresse source par défaut associée à la route
par défaut, et affecte donc toute communication de la machine vers une
destination joignable par la route par défaut.



Logiquement cette commande doit répondre à mes besoins mais, je n'aime
pas utiliser des choses que je ne maîtrise pas.

Je voudrais savoir sur quels fichier de conf cette commande a des
impacts, je voudrais savoir si ses effets sont permanents après un
reboot (si j'ai fait une connerie que mon serveur est inaccessible, ce
serait bien que je puisse y accéder simplement après un reboot ou alors
savoir quoi modifier).

C'est une Debian 5.0.

Il me semble avoir vu sur ce newsgroup qu'on peut faire une bidouille
avec iptables pour ne sortir que sur une adresse IP mais je n'ai pas
trouvé ici comment faire cette horreur, est-ce comme ça?


iptables -t nat -A POSTROUTING -t nat -s <IPsource>/<masque> -o
<intSortie> -j MASQUERADE




Pour info je suis tombé sur ça récemment (pas testé) :

http://freshmeat.net/projects/fixsrcip



Ça fonctionnait hier* pour des choses simples style w3m (aujourd'hui je
n'arrive plus à le faire fonctionner) mais bien sur, pas pour ce que je
veut!

Et vu mon niveau en C, je suis incapable de le débugger et de l'adapter
à mes besoins.

* je ne vois pas pourquoi ça ne fonctionne plus aujourd'hui.

--
Stéphane


À la bonne et sincère amour est crainte perpétuellement annexée.
-+- François Rabelais (1494?-1553), Quart livre (chap. 3) -+-
Pascal Hambourg
Le #23134051
yamo' a écrit :

Pascal Hambourg a tapoté, le 16/02/2011 13:11:
ip route replace to default via ip_passerelle dev eth0 src
ip_sortante_desiree




Cette commande modifie l'adresse source par défaut associée à la route
par défaut, et affecte donc toute communication de la machine vers une
destination joignable par la route par défaut.



Logiquement cette commande doit répondre à mes besoins mais, je n'aime
pas utiliser des choses que je ne maîtrise pas.



Faut voir quel est ton besoin précis. Sinon, il y a des chances que
l'adresse source par défaut soit la première configurée sur l'interface.
Donc simplement en intervertissant l'ordre d'affectation des deux
adresses, il y a des chances que ce soit l'autre qui soit utilisée.

Je voudrais savoir sur quels fichier de conf cette commande a des
impacts,



Aucun, du moins pas directement. Elle n'affecte que la pile IP du noyau,
comme ifconfig, route, iptables... Ensuite si un autre programme
enregistre les routes ou règles actives dans un fichier, c'est une autre
histoire.

je voudrais savoir si ses effets sont permanents après un
reboot



Non, ses effets sont volatils comme ifconfig, route...

Il me semble avoir vu sur ce newsgroup qu'on peut faire une bidouille
avec iptables pour ne sortir que sur une adresse IP mais je n'ai pas
trouvé ici comment faire cette horreur, est-ce comme ça?

iptables -t nat -A POSTROUTING -t nat -s <IPsource>/<masque> -o
<intSortie> -j MASQUERADE



Plutôt SNAT que MASQUERADE afin de pouvoir spécifier la nouvelle adresse
source. C'est la solution boeuf que j'évoquais. Le NAT ne marche pas
forcément avec tous les protocoles, mais s'en tire plutôt bien avec
protocoles basés sur des connexions simples de type TCP. Après tout, ce
n'est jamais que ce que fait l'immense majorité des routeurs domestiques
et autres FAI-box.
Publicité
Poster une réponse
Anonyme