Principes du routage
Introduction
Quand votre navigateur demande une page hébergée à l'autre bout du monde, le paquet qui sort de votre machine ne contient pas le chemin complet à suivre. Il contient seulement l'adresse de destination, comme une lettre postale ne contient que l'adresse du destinataire — pas l'itinéraire du facteur. Le voyage du paquet est décidé localement, à chaque étape, par des machines spécialisées : les routeurs. Chacun lit l'adresse de destination, consulte sa table de routage, et transmet au prochain saut. C'est tout. Cette mécanique, qui semble trop simple pour fonctionner à l'échelle d'Internet, est pourtant ce qui fait tenir le réseau. L'item demande de la maîtriser.
Saut par saut
Un routeur est une machine qui possède plusieurs interfaces réseau — chacune reliée à un sous-réseau différent. Quand un paquet entre par une interface, le routeur fait quatre choses :
- Lire l'adresse IP de destination dans l'en-tête du paquet.
- Chercher cette adresse (ou plutôt son réseau) dans sa table de routage.
- Identifier l'interface de sortie et le prochain saut (next hop) à utiliser.
- Émettre le paquet sur l'interface de sortie, vers le routeur suivant.
Le routeur ne connaît pas le trajet complet. Il sait seulement « pour aller vers le réseau X, passe par mon voisin Y ». La somme de ces décisions locales, prises de routeur en routeur, finit par mener le paquet à destination. C'est la même logique qu'un GPS qui recalcule à chaque carrefour : il ne planifie pas l'itinéraire entier une fois pour toutes, il choisit la prochaine direction en fonction du contexte courant.
La table de routage
Une table de routage est une table au sens informatique : des lignes, chacune décrivant un réseau de destination et la route à suivre. Voici un exemple simplifié pour un routeur fictif :
| Destination (réseau) | Masque | Prochain saut | Interface de sortie | Coût |
|---|---|---|---|---|
10.0.0.0 | /24 | direct | eth0 | 0 |
10.0.1.0 | /24 | 10.0.0.2 | eth0 | 1 |
192.168.5.0 | /24 | 10.0.0.3 | eth0 | 2 |
0.0.0.0 | /0 | 10.0.0.1 | eth0 | — |
La dernière ligne 0.0.0.0/0 est la route par défaut : tout paquet dont la
destination ne correspond à aucune entrée précédente passe par là. C'est ainsi
qu'un routeur peut « sortir » du réseau local sans connaître l'Internet
entier.
Un paquet dont la destination ne correspond à aucune entrée précise est…
Suivre un paquet de bout en bout
Considérons trois routeurs , , et un hôte cible sur le réseau de . Un paquet émis par un hôte du réseau de vers parcourt :
À chaque étape, le routeur courant lit l'IP de destination, regarde sa table et choisit le prochain saut. Ces décisions sont locales et indépendantes les unes des autres. Pourtant, si toutes les tables sont cohérentes, le paquet finit toujours par arriver.
D'où viennent les entrées de la table ?
Les premières lignes d'une table — les réseaux directement connectés — sont remplies automatiquement par le routeur : il sait à quoi il est branché. Mais les autres entrées (réseaux à plusieurs sauts) doivent être apprises. Deux méthodes coexistent :
- Routage statique : l'administrateur écrit les routes à la main. Simple pour un petit réseau, infaisable à l'échelle d'Internet.
- Routage dynamique : les routeurs se parlent entre eux via un protocole de routage et construisent leurs tables automatiquement. Les deux protocoles emblématiques sont RIP et OSPF, étudiés au cours suivant.
La route par défaut dans une table de routage sert à…
Activité débranchée
Pour aller plus loin
Quand plusieurs entrées de la table correspondent à la même destination (par
exemple 10.0.0.0/24 et 10.0.0.0/16), le routeur applique la règle du
préfixe le plus long : la route la plus précise gagne. C'est ce qui permet
de définir des exceptions au sein d'un sous-réseau plus large. Le cours
suivant entre dans le détail des protocoles qui construisent ces tables.