Debian logo [inetdoc.LINUX]

8. Table de routage locale

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.

8.1. Commande route

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         Flags1 Metric Ref    Use Iface2
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

1

Indicateurs d'état :

  • U : Up ; l'interface est active.

  • H : Host ; désigne un hôte.

  • G : Gateway ; C'est l'interface à partir de laquelle on atteint les autres hôtes/réseaux.

2

Interface Ethernet baptisée eth0 sur les systèmes GNU/Linux.

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 :Pages de manuels UnixSection 8 Administration systèmeroute.

8.2. Commande traceroute

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 :Pages de manuels UnixSection 8 Administration systèmetraceroute.

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.

8.3. Travaux pratiques

1.

Comment repérer les paramètres de la passerelle par défaut dans la table de routage de votre station ?

Relever l'indicateur de passerelle puis l'adresse IP et le masque réseau.

2.

La passerelle par défaut peut-elle appartenir à un autre réseau que celui de la station ?

La fonction d'une passerelle par défaut est de fournir une voie de communication vers tous les autres réseaux. Compléter le raisonnement à partir du cas où cette voie de communication n'appartient pas au réseau local.

3.

Quel est le rôle de la première entrée de la table de routage ?

Normalement, la détermination du chemin de communication vers les hôtes du réseau local ne doit pas passer par la passerelle par défaut. Compléter le raisonnement sur le mode de communication avec les hôtes du réseau local.

4.

Reconstituer les étapes décrites lors de l'exécution de la commande traceroute ?

Identifier la station, la passerelle par défaut et les éventuels routeurs en notant les équipements d'interconnexion traversés. Compléter un schéma sous la forme indiquée ci-dessous :

  |.....  ---[TTL=1]-->|@IP:           |@IP:           |@IP:           |@IP:
.------,~ ---[TTL=2]   | ---[TTL= ]    |               |               |
| PC   |' ---[TTL=3]   | ---[TTL= ]    | ---[TTL= ]    |               |
|Client|| ---[TTL= ]   | ---[TTL= ]    | ---[TTL= ]    | ---[TTL= ]    |
\------ / ---[TTL= ]   | ---[TTL= ]    | ---[TTL= ]    | ---[TTL= ]    | ---[TTL= ]
 ======/  ...

5.

Relativement à la question précédente, quelle est la signification des différents champs de chaque ligne affichée par la commande traceroute ?

Utiliser les pages de manuels de la commande pour identifier les champs.

6.

Dans quelles conditions peut-on obtenir des caractères '*' à la place des champs usuels ?

Toujours à partir des pages de manuels de la commande, identifier les limites de l'utilisation de cette commande.