Le trajet d’un colis vendu en ligne
Tu vends un vieux jeu en ligne. Le colis part de ton point relais avec une seule adresse dessus.
Aucun livreur ne connaît tout le trajet. Chaque dépôt sait seulement dans quel camion mettre le colis ensuite.
Étape par étape, il arrive. Les paquets traversent internet de la même façon.
À la fin de cette leçon
Remarque
Je peux suivre un paquet à travers des routeurs.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Routeur | un appareil qui fait passer les paquets d’un réseau à un autre | |
| Table de routage | la liste des réseaux connus et de la direction pour chacun | |
| Saut suivant | le prochain routeur à qui on confie le paquet | |
| Route par défaut | la ligne utilisée quand aucune autre ne convient | default via 10.0.1.1 |
| Réseau connecté | un réseau sur lequel le routeur a un câble | |
| Saut | un pas d’un appareil au suivant |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une table de routage liste des réseaux
Chaque appareil qui a une adresse a une table de routage. Chaque ligne nomme un réseau et dit où envoyer ses paquets.
La table d’un ordinateur est courte. Elle connaît son propre réseau, plus une route par défaut : tout le reste part au routeur.
La table d’un routeur est plus longue. Elle connaît chaque réseau où il a un câble.
Lis la table de routage de h1
sudo ip netns exec h1 ip routeAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Lis la table de routage de r1
sudo ip netns exec r1 ip routeAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Ce que disent les deux tables
h1 a deux lignes. default via 10.0.1.1 envoie tout vers r1. 10.0.1.0/24 dev to-r1 est le réseau de h1 lui-même.
r1 a aussi deux lignes, 10.0.1.0/24 et 10.0.12.0/24. Ce sont deux réseaux connectés. r1 n’a aucune ligne pour le réseau de h2, 10.0.3.0/24, et pas de route par défaut.
La ligne la plus précise gagne
Un paquet peut convenir à plusieurs lignes. La route par défaut, par exemple, convient à tout.
Le routeur choisit la ligne au préfixe le plus long, le plus grand nombre après la barre. C’est la plus précise.
Si rien ne convient et qu’il n’y a pas de route par défaut, le paquet est jeté. Le routeur prévient l’expéditeur : réseau injoignable.
Exemple travaillé : le routeur d’un lycée choisit
| Paquet pour | Lignes qui conviennent | Gagnante | Saut suivant |
|---|---|---|---|
| 172.16.4.9 | 172.16.0.0/16, 172.16.4.0/24, défaut | 172.16.4.0/24 | routeur du labo |
| 172.16.9.9 | 172.16.0.0/16, défaut | 172.16.0.0/16 | routeur du CDI |
| 8.8.8.8 | défaut | défaut | box internet |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Envoie un ping de h1 vers h2
sudo ip netns exec h1 ping -c 2 -W 1 10.0.3.2Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Suis les sauts du paquet
sudo ip netns exec h1 traceroute -n -m 4 -w 1 10.0.3.2Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Demande à r1 où il l’enverrait
sudo ip netns exec r1 ip route get 10.0.3.2Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Là où le paquet s’arrête
Le ping affiche deux fois From 10.0.1.1 ... Destination Net Unreachable. Le message vient de r1, pas de h2.
Le traceroute montre un seul saut, 10.0.1.1, suivi de !N : réseau injoignable.
r1 répond RTNETLINK answers: Network is unreachable. Sa table n’a pas de ligne pour 10.0.3.0/24. La réparer, c’est le lab.
Lis la table de routage de r2
sudo ip netns exec r2 ip routeAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Et pour la réponse ?
r2 a trois lignes : 10.0.3.0/24, 10.0.12.0/24 et 10.0.99.0/24. Toutes sont des réseaux connectés.
Aucune ligne ne mène à 10.0.1.0/24, le réseau de h1. Même si le ping arrivait à h2, la réponse resterait bloquée chez r2.
Une erreur fréquente
Attention
Beaucoup pensent qu’un routeur connaît tout le trajet jusqu’au bout. Il ne connaît que le saut suivant. Chaque routeur du chemin a besoin de sa propre ligne, et l’autre côté a besoin d’une ligne retour pour la réponse.
Pour aller plus loin : ta propre ligne
Quand ton lab marche, relance sudo ip netns exec r1 ip route.
Quelle nouvelle ligne permet à r1 de joindre h2 ? Écris-la au format du devoir, ajoute-la à une table et teste-la avec ta fonction prochain_saut.