Le routage est un sujet à part entière auquel il faut consacrer beaucoup de temps pour avoir une bonne compréhension des échanges entre plusieurs réseaux. L'objectif de cette section est limité à l'observation des routes connues de l'interface de l'hôte et à la détection de pannes.
La commande route, tout comme ifconfig sert à la fois à connaître l'état de la table de routage de l'hôte et à configurer de nouvelles routes au besoin.
Cette commande n'a rien à voir avec le routage dynamique qui fonctionne sur un routeur. Elle ne sert qu'à poser des routes statiques entre interfaces.
# route -n Kernel IP routing table Destination Gateway Genmask FlagsMetric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
|
Indicateurs d'état :
|
|
|
Interface Ethernet baptisée |
Pour obtenir la syntaxe de toutes les options disponibles, il faut accéder aux pages de manuels Unix :
via la console avec la commande man
route.
via l'interface graphique avec le centre d'aide KDE : → → .
traceroute renvoie les informations sur la route suivie pour atteindre un hôte. Le résultat obtenu donne la liste des routeurs traversés.
# traceroute www.nic.fr traceroute to rigolo.nic.fr (192.134.4.20), 30 hops max, 38 byte packets 1 toulouse-50-254-gw.dial.proxad.net (212.27.50.254) 24.806 ms 21.489 ms 21.530 ms 2 paris11-2-p1.routers.proxad.net (212.27.32.225) 43.597 ms 33.325 ms 33.270 ms 3 paris11-1-p1.routers.proxad.net (212.27.32.226) 149.188 ms 129.723 ms 147.430 ms 4 sfinx.routers.proxad.net (212.27.32.167) 126.530 ms 138.881 ms 126.858 ms 5 ri-renater.gix-paris.ft.net (194.68.129.34) 107.966 ms 132.974 ms 135.544 ms 6 nio-i.cssi.renater.fr (193.51.206.57) 144.283 ms 122.517 ms 127.308 ms 7 193.51.206.146 (193.51.206.146) 132.595 ms 145.998 ms 148.399 ms 8 stlambert1.rerif.ft.net (193.48.53.102) 124.040 ms 260.685 ms 108.853 ms 9 inria-rocquencourt-atm.rerif.ft.net (193.48.53.226) 38.604 ms 167.956 ms 143.657 ms 10 rocq-gw.inria.fr (192.93.122.2) 151.084 ms 96.052 ms 100.700 ms 11 nic-gw.inria.fr (192.93.1.112) 126.699 ms 153.840 ms * 12 rigolo.nic.fr (192.134.4.20) 155.644 ms 150.290 ms 191.674 ms
Dans l'exemple ci-dessus, l'hôte recherché a été trouvé. En cas de défaut, cette commande est très utile pour repérer le routeur sur lequel se situe le problème d'interconnexion.
Les tests ICMP effectués avec la commande ping ne permettent pas de localiser le point de rupture de la communication entre deux hôtes distants. La commande traceroute identifie tous les équipements d'interconnexion réseau traversés.
Le principe de ce tracé de route est le suivant :
Émettre un premier message avec la valeur 1 dans le champ TTL de l'en-tête IP.
L'équipement d'interconnexion qui reçoit ce message décrémente la valeur du champ TTL de l'en-tête IP et obtient 0. Il jette donc le message et émet un message ICMP à destination de l'émetteur indiquant qu'il est impossible d'atteindre la destination.
Émettre un second message avec la valeur 2 dans le champ TTL de l'en-tête IP.
Cette fois-ci, c'est le second équipement d'interconnexion qui décrémentera la valeur pour obtenir 0. Ce sera donc à ce second équipement d'émettre un message ICMP à destination de l'émetteur.
Ainsi de suite avec les valeurs 3, 4, etc. Pour le champ TTL de l'en-tête IP.
L'utilisation de la commande traceroute est de plus en plus limitée par les divers systèmes de filtrage réseau et pour contrer le travail des outils automatisés dont l'objectif est de relever la topologie d'un réseau à distance.
La méthode la plus immédiate pour bloquer la commande traceroute consiste à bloquer en entrée d'un périmètre les ports UDP de la plage 33434 à 33600.
Pour autant, la fonction traceroute est très utile pour qualifier la validité d'une communication. Pour essayer de contourner les systèmes de filtrage, la commande traceroute offre de nombreuses options telles que la possibilité de fixer les numéros des ports source et destination ou la possibilité de choisir le protocole de couche transport.
Voici un exemple élémentaire permettant de caractériser la différence de fonctionnement entre les deux protocoles de couche transport.
Utilisation classique du protocole UDP :
# traceroute www.neuf.fr traceroute to www.neuf.fr (212.30.118.74), 30 hops max, 60 byte packets <snipped> 3 ge-2-1-0-0.nctou102.Toulouse.francetelecom.net (193.249.214.14) 58.498 ms 59.478 ms 60.458 ms 4 xe-3-1-3-0.nrpoi202.Poitiers.francetelecom.net (81.253.131.178) 68.446 ms 70.425 ms 73.405 ms 5 xe-0-1-0-0.ntaub102.Aubervilliers.francetelecom.net (193.251.126.202) 84.394 ms 87.372 ms 89.350 ms 6 81.253.181.158 (81.253.181.158) 91.335 ms 55.605 ms 55.921 ms 7 41-197-118-80.kaptech.net (80.118.197.41) 56.919 ms 55.929 ms 57.934 ms 8 242-193-118-80.kaptech.net (80.118.193.242) 198.938 ms 191.932 ms 190.931 ms 9 212.94.163.13 (212.94.163.13) 55.931 ms 55.923 ms 58.930 ms 10 10.5.39-62.rev.gaoland.net (62.39.5.10) 57.936 ms 57.922 ms 55.933 ms 11 Vlan4053.9velizy1-0-ro-t-3.9tel.net (213.203.124.181) 56.930 ms 56.934 ms 57.938 ms 12 * * * 13 * * * 14 * * * 15 * * * 16 * * * 17 * * * 18 * * * 19 * * * 20 * * * 21 * * * 22 * * * 23 * * * 24 * * * 25 * * * 26 * * * 27 * * * 28 * * * 29 * * * 30 * * *
Utilisation du protocole TCP :
# # traceroute -T www.neuf.fr traceroute to www.neuf.fr (212.30.118.74), 30 hops max, 60 byte packets <snipped> 3 ge-2-1-0-0.nctou102.Toulouse.francetelecom.net (193.249.214.14) 55.474 ms 58.456 ms 60.440 ms 4 xe-3-1-2-0.nrpoi202.Poitiers.francetelecom.net (81.253.130.122) 70.428 ms 72.403 ms 74.391 ms 5 xe-0-1-0-0.ntaub102.Aubervilliers.francetelecom.net (193.251.126.202) 85.373 ms 87.352 ms 90.335 ms 6 81.253.181.130 (81.253.181.130) 93.317 ms 55.676 ms 55.927 ms 7 41-197-118-80.kaptech.net (80.118.197.41) 148.936 ms 139.944 ms 137.946 ms 8 242-193-118-80.kaptech.net (80.118.193.242) 58.945 ms 164.900 ms 163.940 ms 9 212.94.163.13 (212.94.163.13) 56.941 ms 55.938 ms 57.951 ms 10 10.5.39-62.rev.gaoland.net (62.39.5.10) 55.949 ms 56.950 ms 55.942 ms 11 Vlan4053.9velizy1-0-ro-t-3.9tel.net (213.203.124.181) 56.949 ms 56.969 ms 56.937 ms 12 62.62.153.54 (62.62.153.54) 57.966 ms 56.963 ms 57.958 ms 13 ilma.finnois.isp.9tel.net (212.30.118.74) 57.924 ms 56.989 ms 56.956 ms
Pour obtenir la syntaxe de toutes les options disponibles, il faut accéder aux pages de manuels Unix :
via la console avec la commande man
traceroute.
via l'interface graphique avec le centre d'aide KDE : → → .
Il existe quantité d'outils qui permettent d'avancer plus loin dans une utilisation plus subtile des valeurs du champ TTL de l'en-tête IP. Une technique appelée firewalking a connu son heure de gloire au début des années 2000. De nos jours, les pare-feux et les serveurs mandataires (proxy) manipulent ces valeurs de façon à masquer le nombre réel de sauts pour atteindre les hôtes d'une infrastructure.
Vous êtes ici :