Le send envoie vers quelle interface ?

VHSeifer Messages postés 18 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 16 mai 2008 - 27 févr. 2008 à 14:10
VHSeifer Messages postés 18 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 16 mai 2008 - 27 févr. 2008 à 16:32
Bonjour

Je possède une machine linux ayant plusieurs interfaces reseaux ( eth0, eth1 et eth2)

Je désire envoyer une requete mais malheureusement j'ai remarqué que cette requête est envoyée dans la première interface réseau (eth0) alors que je voudrais que celle-ci envoie dans la troisième (eth2).

Comment fait-on pour spécifier l'interface de sortie lors d'un send ?

J'ai trouvé une bête astuce mais elle ne me convient pas du tout : faire un ifdown des autres interfaces puis lancer le programme et après réactiver les autres interfaces, on dirait que au final l'interface du send est " enregistrée " mais bon ce n'est pas pratique. Je voudrais envoyer directement sur la bonne interface réseau.

Est-ce que c'ets possible de faire ca grâce à une instruction ou faut-il toucher à la table de routage extérieurement ?

Merci de votre aide.

4 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
27 févr. 2008 à 14:35
Salut,
En théorie, tu devrait pouvoir choisir explicitement
l'interface lorsque tu bind ton socket (en passant l'ip de l'interface
au lieu de INADDR_ANY ou 127.0.0.1).
0
VHSeifer Messages postés 18 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 16 mai 2008 1
27 févr. 2008 à 15:23
Bonjour

Merci de votre réponse, cela m'a semblé aussi logique de faire ça..

J'ai testé mais même si je me bind sur une adresse appartenant à l'interface eth2 et que j'envoie ma requête. Celle-ci est toujours envoyée via eth0...

Oups mea culpa j'ai oublié de préciser qu'il s'agit d'une requete multicast IPv6...

Voici l'exemple concret :

J'envoie ma requete à l'adresse multicast ff02::1:2.
Il existe une route de base ff00::/ 8 eth0 et ff00::/8 eth2 mais pourant lorsque j'envoie il recrée une route (flags UC) ff02::1:2 vers eth0 !

La seule combine que j'ai trouvé est d'ajouter une route de ff02::1:2 vers eth2 et là cela marche. Est-ce la seule solution lors des envois multicasts ?

Merci
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
27 févr. 2008 à 15:47
Salut,

Je connais pas bien ipv6, encore moins le multicast, donc je vais pas m'avancer sur ces points.

Le seul truc que je pourrais ajouter c'est que je trouve louche qu'un
socket bindé sur eth2 envoiée des paquets via eth0, as tu bien verifié
que le socket était bel et bien bindé sur eth2 (netstat ?) et que les
paquets sortaient bien de eth0 (ethereal ?) ?
0
VHSeifer Messages postés 18 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 16 mai 2008 1
27 févr. 2008 à 16:32
Oui tous ça est bon , j'effectue tous mes sniffage via wireshark ( le successeur de ethereal )
Je pense que ca soit etre différent avec le multicast.... enfin pour le moment ma solution de modifier la table de routage fonctionne et est acceptable donc ...

Merci
0
Rejoignez-nous