Le routage
Ce que ce chapitre apporte
- Décrire ce qu'un routeur fait d'un paquet, étape par étape.
- Lire une table de routage et nommer l'origine de chaque route.
- Appliquer la règle du préfixe le plus long, et dire ce qu'elle ignore.
- Distinguer le rôle de la distance administrative de celui du préfixe.
- Expliquer ce que fait une route par défaut, et ce qu'elle ne fait pas.
- Interpréter les retours de ping et de traceroute.
Un commutateur travaille dans un seul réseau et sait où sont les machines parce qu'il les a entendues parler. Un routeur travaille entre des réseaux qu'il ne connaît pas et dont il n'entendra jamais les machines. Il ne peut donc pas apprendre de la même façon, et il ne décide pas de la même façon : il ne cherche pas une adresse, il cherche le réseau le plus précis qui la contienne.
Cette différence explique tout le chapitre, y compris la règle qui surprend le plus : une route apprise par un protocole peu fiable peut l'emporter sur une route configurée à la main, et c'est normal.
Ce qu'un routeur fait d'un paquet
Le traitement est toujours le même, et il ne comporte aucune recherche de machine.
- La trame arrive ; le routeur vérifie son contrôle d'erreur et la défait pour en extraire le paquet.
- Il lit l'adresse de destination du paquet, et cherche dans sa table la route la plus précise qui la contient.
- Il décrémente la durée de vie du paquet. Si elle tombe à zéro, il détruit le paquet et prévient l'émetteur.
- Il fabrique une nouvelle trame, avec ses propres adresses MAC de source et de destination, et l'émet sur l'interface choisie.
Les adresses MAC changent à chaque routeur, les adresses IP ne changent jamais. C'est la conséquence la plus utile du chapitre. Une capture prise à deux endroits différents du chemin montre les mêmes adresses IP et des adresses MAC entièrement différentes. Chercher l'adresse MAC de la machine d'origine sur un réseau distant est donc sans objet : elle a disparu au premier routeur.
La durée de vie mérite un mot. Ce n'est pas un temps mais un compteur de routeurs traversés, décrémenté à chaque passage. Il existe pour qu'un paquet pris dans une boucle de routage finisse par disparaître au lieu de tourner indéfiniment, et c'est aussi ce qui rend traceroute possible.
La table de routage
Une table de routage associe des réseaux à des moyens de les atteindre. Elle ne contient jamais d'adresses de machines, seulement des préfixes.
Chaque route vient de l'une de quatre sources, et la source détermine la confiance qu'on lui accorde.
| Origine | Distance | Comment elle arrive dans la table |
|---|---|---|
| Réseau directement relié | 0 | Le routeur a une interface dessus ; rien à configurer |
| Route statique | 1 | Écrite à la main |
| OSPF | 110 | Apprise d'un protocole de routage, par calcul de chemin |
| RIP | 120 | Apprise d'un protocole plus ancien, par comptage de sauts |
Cette distance administrative sert à une seule chose : départager deux routes qui annoncent le même réseau avec le même préfixe. Elle décide de ce qui entre dans la table, et son rôle s'arrête là.
Le préfixe le plus long
Une fois la table constituée, le choix d'une route pour un paquet obéit à une règle unique, et cette règle ne regarde plus du tout la distance.
Parmi toutes les routes dont le réseau contient l'adresse de destination, le routeur retient celle dont le préfixe est le plus long, c'est-à-dire la plus précise.
relayéLe paquet vers 10.1.5.20 part par 10.1.5.0/24, vers 10.1.0.6 : préfixe le plus long parmi les 4 routes qui correspondent.
- 4 routes sur 4 correspondent à cette destination, et la plus précise l'emporte : /24 contre /16, alors même que la perdante vient d'une source plus sûre.
- La route par défaut correspond aux 4 destinations de la figure et n'en achemine que 1 : elle n'est pas un choix, elle est ce qui reste.
Quatre destinations, quatre issues différentes, et une seule règle appliquée.
10.1.5.20 est couverte par les quatre routes à la fois. Celle qui l'emporte est la /24, apprise par OSPF, c'est-à-dire la source la moins sûre de la table. La distance administrative n'intervient pas ici, et une route statique moins précise ne la sauverait pas.
10.1.9.4 tombe dans le réseau directement relié : le routeur n'a personne à qui passer le paquet, il le remet lui-même.
10.200.0.1 n'est couverte que par la /8 et par la route par défaut. La /8 est plus précise, elle gagne.
172.20.0.9 n'est couverte que par la route par défaut, qui l'achemine faute de mieux.
La route par défaut correspond à toutes les destinations, et n'en achemine presque aucune. Elle est écrite 0.0.0.0/0, c'est-à-dire zéro bit exigé, donc une coïncidence de longueur nulle. N'importe quelle autre route qui correspond la bat. Ce n'est pas un choix du routeur, c'est ce qui reste quand rien de plus précis n'existe.
Quand deux routes annoncent le même réseau
C'est le seul cas où la distance administrative parle. Deux protocoles, ou un protocole et une configuration manuelle, annoncent exactement le même préfixe : une seule des deux routes entre dans la table.
relayéLe paquet vers 10.5.7.9 part par 10.5.7.0/24, vers 10.0.0.3 : préfixe le plus long parmi les 3 routes qui correspondent.
- 10.5.0.0/16 par ospf (110) n'entre pas dans la table : le même réseau y est déjà par statique (1), jugé plus sûr. La distance ne sert qu'ici, à préfixe égal, et jamais au moment d'acheminer.
- 3 routes sur 3 correspondent à cette destination, et la plus précise l'emporte : /24 contre /16, alors même que la perdante vient d'une source plus sûre.
- La route par défaut correspond aux 2 destinations de la figure et n'en achemine aucune : elle n'est pas un choix, elle est ce qui reste.
La figure met les deux règles en scène ensemble, et c'est ce qui les rend distinctes. La route OSPF vers 10.5.0.0/16 n'entre pas dans la table, écartée par la route statique de même préfixe. Mais la route RIP vers 10.5.7.0/24, issue de la source la moins fiable de toutes, achemine bel et bien le paquet vers 10.5.7.9, parce qu'elle est plus précise.
Retenir la formule : la distance choisit ce qu'on écrit dans la table, le préfixe choisit ce qu'on en fait.
Le paquet qui ne va nulle part
Quand aucune route ne correspond et qu'il n'y a pas de route par défaut, le routeur détruit le paquet et prévient l'émetteur. C'est le message Destination host unreachable, et il est précieux : il indique un routeur qui a pris une décision, et non un silence.
Quatre retours reviennent constamment, et chacun désigne un endroit différent du chemin.
| Retour | Ce qu'il signifie | Où chercher |
|---|---|---|
Destination host unreachable | Un routeur n'a pas de route vers ce réseau | La table du routeur qui répond |
Request timed out | Rien n'est revenu dans le délai | Le chemin de retour, ou un filtrage silencieux |
TTL expired in transit | Le compteur de sauts est tombé à zéro | Une boucle de routage |
Unknown host | Le nom n'a pas pu être traduit en adresse | La résolution de noms, pas le routage |
La distinction entre les deux premiers est celle qui fait gagner le plus de temps. Une destination inaccessible est une réponse : quelqu'un a répondu, et son adresse dit où s'est arrêtée la recherche. Un délai dépassé n'est pas une réponse : le paquet est peut-être arrivé, et c'est le retour qui manque.
Un ping qui échoue ne prouve pas qu'un chemin est coupé. Il prouve qu'un aller-retour n'a pas abouti. Le chemin aller et le chemin retour peuvent être différents, et de nombreux équipements sont configurés pour ignorer les demandes d'écho sans que rien ne soit en panne.
Suivre un chemin
traceroute exploite exactement le mécanisme de la durée de vie. Il envoie un paquet avec une durée de vie de 1 : le premier routeur la décrémente, tombe à zéro, détruit le paquet et se signale. Puis un paquet avec une durée de vie de 2, qui fait se signaler le deuxième routeur, et ainsi de suite.
Chaque ligne d'un traceroute est donc un paquet mort quelque part, et le nom du tueur. Deux conséquences pratiques en découlent. Une ligne sans réponse ne signifie pas que le chemin s'arrête là : le routeur concerné ne se signale simplement pas. Et le chemin affiché est celui de l'aller uniquement, ce qui ne renseigne en rien sur le retour.
Exercices type
Exercice 1 : une table contient 10.0.0.0/8 via A en statique et 10.4.0.0/16 via B apprise par RIP. Vers où part un paquet pour 10.4.7.1 ?
Afficher la solution
Vers B, par la route RIP.
Les deux routes couvrent l'adresse, mais la /16 est plus précise que la /8. La règle du préfixe le plus long tranche, et elle ne consulte pas la distance administrative.
La distance n'aurait servi que si les deux routes avaient annoncé exactement le même préfixe. Ce n'est pas le cas ici, et les deux coexistent sans conflit dans la table.
Exercice 2 : un poste joint son serveur local mais aucun site sur Internet. Le ping vers la passerelle fonctionne. Que chercher ?
Afficher la solution
Le poste communique donc dans son propre réseau et atteint son routeur : la carte, le câble, l'adresse et le masque sont corrects.
Ce qui manque est au-delà. Deux hypothèses, dans cet ordre.
La route par défaut du routeur : sans elle, tout paquet vers un réseau inconnu est détruit, et le routeur répond Destination host unreachable. Ce retour, s'il apparaît, confirme immédiatement l'hypothèse.
La résolution de noms : si les adresses numériques passent et pas les noms, le routage est intact et le problème est ailleurs, dans le service de traduction des noms que traite le chapitre 9.
Un ping vers une adresse numérique connue sépare les deux cas en une seule commande.
Exercice 3 : un traceroute affiche trois lignes sans réponse au milieu, puis reprend et atteint la destination. Y a-t-il une panne ?
Afficher la solution
Non. La destination est atteinte, donc le chemin fonctionne de bout en bout.
Les lignes sans réponse signifient seulement que trois routeurs n'ont pas signalé la destruction du paquet, ce qui est un choix de configuration très courant chez les opérateurs. Un routeur qui ne se signale pas fait tout de même suivre le trafic.
L'erreur à éviter est de conclure d'une ligne muette que le chemin s'arrête là. Seule une absence de réponse jusqu'à la fin est un signal.
Exercice 4 : un ping répond TTL expired in transit de façon répétée. Qu'est-ce que cela dit du réseau ?
Afficher la solution
Que le paquet a traversé assez de routeurs pour épuiser son compteur sans arriver : il tourne en rond.
C'est une boucle de routage. Deux routeurs se renvoient mutuellement le paquet, chacun croyant que l'autre sait où est la destination. La cause la plus fréquente est une paire de routes statiques qui se pointent l'une l'autre, ou une route par défaut sur un routeur qui est lui-même la sortie.
Le diagnostic passe par traceroute : la boucle y apparaît en clair sous forme de deux adresses qui alternent jusqu'à épuisement du compteur.
Le compteur de durée de vie n'est donc pas la cause de la panne, mais ce qui l'empêche de saturer le réseau.
1.Que contient une table de routage ?
2.Deux routes couvrent la destination : une /8 statique et une /24 apprise par RIP. Laquelle sert ?
3.À quoi sert la distance administrative ?
4.Que se passe-t-il pour les adresses MAC lors d'un routage ?
5.Que signifie une route 0.0.0.0/0 ?
6.Quelle différence entre « destination host unreachable » et « request timed out » ?
7.Sur quoi repose traceroute ?
La méthode
- Chercher le préfixe le plus long avant tout, et ne consulter la distance qu'à préfixes égaux.
- Vérifier l'existence d'une route par défaut dès qu'un réseau distant est inaccessible.
- Distinguer une réponse d'une absence de réponse dans les retours de
ping. - Lire l'adresse du routeur qui répond : elle dit où la recherche s'est arrêtée.
- Ne jamais conclure d'une ligne muette de
tracerouteque le chemin s'y arrête. - Soupçonner une boucle devant un compteur de durée de vie épuisé, et la confirmer par
traceroute.
Synthèse
- Un routeur défait et refait la trame à chaque saut : les adresses MAC changent, les adresses IP restent.
- La durée de vie est un compteur de routeurs, qui empêche les boucles de durer et rend
traceroutepossible. - Une table de routage contient des réseaux, venus de quatre origines de fiabilité inégale.
- La distance administrative départage deux routes de même préfixe, au moment de construire la table.
- Le préfixe le plus long décide de l'acheminement, sans jamais regarder l'origine de la route.
- La route par défaut correspond à tout et ne gagne jamais contre une autre correspondance.
Destination host unreachableest une réponse qui localise le problème ;Request timed outn'en est pas une.