[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Fonctionnement du routage au niveau du noyau



Bonsoir,


j'aimerais connaître comment modifier le routage au
niveau du noyau dans un cas bien précis:

j'ai un SEUL ordinateur muni de deux cartes réseaux
(chacune a sa propre ligne d'interruption).
Chacune des deux cartes réseaux appartient au même
réseau.
Par exemple:
eth1      192.168.1.1      255.255.255.0
eth2      192.168.1.2      255.255.255.0

Je les relie par un RJ45.
Je souhaite envoyer un paquet d'une interface a une
autre.

Si je fais un ping 192.168.1.1, cela revient a
"s'autopinger" l'interface eth1: le paquet ne fait que
descendre a moitie la pile et la remonte.

Pour palier à cela, j'utilise la commande suivante:
route add 192.168.1.1 dev eth2
Cela précise au noyau, aussi loin que je comprenne,
d'envoyer tous les paquets, dont la destination est
192.168.1.1, en utilisant l'interface eth2.
Malheureusement, une capture avec tcpdump me prouve
une fois encore que le paquet n'est pas réellement
émis (couche physique)
Supprimer aussi les routes crées automatiquement lors
du démarrage des interfaces
(192.168.1.0     0.0.0.0         255.255.255.0   U    
0      0        0 eth1 par ex) ne change rien.

Je pense que le noyau se rend compte que la route la
plus courte est d'utiliser eth2 pour émettre ce
paquet(l'ip de destination est celle de l'interface).

D'apres
http://kernelnewbies.org/Documents/LinuxIPNetworking,
il semble toutefois possible de modifier ce routage,
chapitre 7.2.3. Examining a Packet in IP et notamment:
 ip_route_input() - net/ipv4/route.c (1366)
  calls rt_hash_code() to get index for routing table
  loops through routing table (starting at hash) to
find match for packet
  if it finds match:
    updates stats for route (time and usage)
    sets packet destination to routing table entry
    returns success
  else 
    checks for multicasting addresses
    returns result of ip_route_input_slow() (attempted
routing)
Maintenant en regardant les sources, je ne comprends
pas grand chose aux tables de routage, et surtout
comment interagir dessus pour avoir le résultat
escompte !

Si quelqu'un a une piste, par avance merci beaucoup!


Bonne soiree.

Debianement,



François de Beauregard


      
___________________________________________________________________________ 
Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions ! 
Profitez des connaissances, des opinions et des expériences des internautes sur Yahoo! Questions/Réponses 
http://fr.answers.yahoo.com



Reply to: