Comment votre PC sait-il envoyer un paquet vers GitHub, qui est physiquement à des milliers de kilomètres ? La réponse tient en un mot : routage. Ce module vous explique comment les paquets trouvent leur chemin sur le réseau, comment lire une table de routage, et comment utiliser traceroute pour diagnostiquer les problèmes.
TL;DR, L'essentiel en 30 secondes
Section intitulée « TL;DR, L'essentiel en 30 secondes »- Routage = comment un paquet traverse plusieurs réseaux pour atteindre sa destination
- Passerelle (gateway) = la "porte de sortie" vers d'autres réseaux
ip route: voir la table de routage de votre machinetraceroute: visualiser le chemin d'un paquet
Je sais que c'est bon si...
Section intitulée « Je sais que c'est bon si... »-
ip route | grep defaultme montre ma passerelle -
traceroute google.comaffiche des sauts (même avec des * * *) - Je comprends que mon PC envoie à la passerelle, pas directement à la destination
Commandes minimales à retenir
Section intitulée « Commandes minimales à retenir »# 1. Voir la table de routageip route
# 2. Voir la passerelle par défautip route | grep default
# 3. Tracer le chemin vers une destinationtraceroute -n google.comPrérequis
Section intitulée « Prérequis »Pour suivre ce module, vous devez maîtriser :
- Module 3 : les adresses IP, les sous-réseaux et la notation CIDR → Revoir les IP et sous-réseaux
- Module 2 : les commandes
ip addr,ip route→ Revoir la boîte à outils
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Le principe du routage : comment un paquet traverse plusieurs réseaux
- La passerelle (gateway) : la "porte de sortie" de votre réseau
- La table de routage : la "carte routière" de votre machine
- Traceroute : visualiser le chemin des paquets
- Dépannage : identifier une route manquante ou incorrecte
Qu'est-ce que le routage ?
Section intitulée « Qu'est-ce que le routage ? »Le problème à résoudre
Section intitulée « Le problème à résoudre »Imaginons que vous voulez accéder à GitHub (140.82.121.4) depuis votre PC (192.168.1.45).
Le problème : ces deux machines ne sont pas sur le même réseau !
- Votre PC est sur
192.168.1.0/24(réseau local) - GitHub est sur un réseau complètement différent, à des milliers de kilomètres
Comment le paquet va-t-il arriver à destination ?
La solution : le routage
Section intitulée « La solution : le routage »Le routage est le processus qui permet aux paquets de traverser plusieurs réseaux pour atteindre leur destination.
Analogie : c'est comme le système postal. Quand vous envoyez une lettre à Tokyo, vous ne la déposez pas directement dans la boîte aux lettres du destinataire. Vous la donnez à La Poste, qui la transmet à d'autres centres de tri, jusqu'à ce qu'elle arrive.
Comment votre PC prend sa décision
Section intitulée « Comment votre PC prend sa décision »Quand votre PC veut envoyer un paquet, il se pose une seule question :
"La destination est-elle sur mon réseau local ?"
| Réponse | Action |
|---|---|
| Oui (même sous-réseau) | Envoyer directement à la machine |
| Non (réseau différent) | Envoyer à la passerelle par défaut |
C'est aussi simple que ça. Votre PC ne connaît pas le chemin vers GitHub, il sait juste que GitHub n'est pas local, donc il confie le paquet à quelqu'un qui saura le router : la passerelle.
La passerelle (gateway) : votre porte de sortie
Section intitulée « La passerelle (gateway) : votre porte de sortie »Qu'est-ce qu'une passerelle ?
Section intitulée « Qu'est-ce qu'une passerelle ? »La passerelle (ou gateway) est le routeur qui connecte votre réseau local au reste du monde.
Chez vous, c'est votre box Internet (Freebox, Livebox, etc.). Elle a deux rôles :
- Côté LAN : elle a une IP sur votre réseau local (ex:
192.168.1.1) - Côté WAN : elle a une IP publique fournie par votre FAI (ex:
86.45.12.78)
Trouver votre passerelle
Section intitulée « Trouver votre passerelle »Pour connaître l'adresse de votre passerelle :
ip route | grep defaultSortie typique :
default via 192.168.1.1 dev eth0Cette ligne signifie : "Pour toute destination inconnue, envoyer au routeur 192.168.1.1".
Alternative :
ip route show defaultTester que la passerelle répond
Section intitulée « Tester que la passerelle répond »Avant de chercher plus loin, vérifiez toujours que votre passerelle est joignable :
ping -c 3 192.168.1.1Si ça ne répond pas, vous avez un problème local (câble, Wi-Fi, configuration).
La table de routage : la carte de votre machine
Section intitulée « La table de routage : la carte de votre machine »Qu'est-ce qu'une table de routage ?
Section intitulée « Qu'est-ce qu'une table de routage ? »Chaque machine (PC, serveur, routeur) possède une table de routage : une liste de règles qui indiquent où envoyer les paquets selon leur destination.
C'est comme un GPS qui dit : "Pour aller à Paris, prendre l'autoroute A6. Pour le reste, suivre les panneaux."
Afficher votre table de routage
Section intitulée « Afficher votre table de routage »ip route showSortie typique sur un PC :
default via 192.168.1.1 dev eth0192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.45Lire la table de routage
Section intitulée « Lire la table de routage »Décryptons ces deux lignes :
| Ligne | Signification |
|---|---|
default via 192.168.1.1 dev eth0 | Route par défaut : tout ce qui n'est pas local va vers 192.168.1.1 via l'interface eth0 |
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.45 | Route locale : le réseau 192.168.1.0/24 est accessible directement sur eth0 |
Comment la machine choisit une route
Section intitulée « Comment la machine choisit une route »Quand un paquet doit partir, la machine parcourt sa table de routage et cherche la route la plus spécifique qui correspond à la destination :
-
Chercher une route exacte
Si la table contient une route vers
140.82.121.0/24et que la destination est140.82.121.4, c'est match ! -
Chercher une route qui englobe la destination
Sinon, chercher un réseau plus large qui contient l'IP de destination.
-
Utiliser la route par défaut
Si aucune route spécifique ne correspond, utiliser
default(aussi appelée0.0.0.0/0).
Exemple de décision de routage
Section intitulée « Exemple de décision de routage »Votre table de routage :
default via 192.168.1.1 dev eth0192.168.1.0/24 dev eth0 scope link10.10.0.0/16 via 192.168.1.254 dev eth0| Destination | Route utilisée | Explication |
|---|---|---|
192.168.1.100 | 192.168.1.0/24 | Même réseau → direct |
10.10.5.67 | 10.10.0.0/16 | Match le réseau 10.10.x.x → via 192.168.1.254 |
8.8.8.8 | default | Pas de route spécifique → passerelle par défaut |
140.82.121.4 | default | Pas de route spécifique → passerelle par défaut |
Traceroute : visualiser le chemin des paquets
Section intitulée « Traceroute : visualiser le chemin des paquets »Qu'est-ce que traceroute ?
Section intitulée « Qu'est-ce que traceroute ? »traceroute est un outil qui affiche tous les routeurs traversés par un paquet pour atteindre sa destination. Chaque routeur intermédiaire s'appelle un saut (hop).
Utiliser traceroute
Section intitulée « Utiliser traceroute »traceroute github.comSortie typique :
traceroute to github.com (140.82.121.4), 30 hops max, 60 byte packets 1 192.168.1.1 (192.168.1.1) 1.234 ms 1.123 ms 1.089 ms 2 10.45.0.1 (10.45.0.1) 8.456 ms 7.890 ms 8.234 ms 3 * * * 4 ae1.cr1.par.fr.as12322.net (91.121.131.136) 12.345 ms 11.987 ms 12.123 ms ...12 140.82.121.4 (140.82.121.4) 25.678 ms 24.890 ms 25.123 msInterpréter la sortie
Section intitulée « Interpréter la sortie »| Colonne | Signification |
|---|---|
1, 2, etc. | Numéro du saut (routeur) |
192.168.1.1 | Adresse IP du routeur |
1.234 ms | Temps de réponse (3 mesures) |
* * * | Routeur qui ne répond pas (filtré par pare-feu) |
Ce que traceroute révèle
Section intitulée « Ce que traceroute révèle »| Observation | Diagnostic |
|---|---|
| Saut 1 lent (> 10 ms) | Problème sur votre réseau local (Wi-Fi ?) |
* * * sur plusieurs sauts | Routeurs qui filtrent ICMP (normal) |
| Temps qui augmente brutalement | Goulot d'étranglement à ce saut |
| Traceroute s'arrête sans atteindre la cible | Route bloquée ou destination injoignable |
| Boucle (mêmes IP qui reviennent) | Problème de configuration de routage |
Variantes de traceroute
Section intitulée « Variantes de traceroute »# Classique (UDP)traceroute github.com
# Avec ICMP (comme Windows)traceroute -I github.com
# Avec TCP sur port 443 (passe mieux les pare-feux)traceroute -T -p 443 github.commtr combine ping et traceroute en temps réel :
# Installationsudo apt install mtr
# Utilisationmtr github.comAffiche en continu les statistiques de chaque saut : perte de paquets, latence moyenne, etc.
Manipuler la table de routage
Section intitulée « Manipuler la table de routage »Ajouter une route (temporaire)
Section intitulée « Ajouter une route (temporaire) »Parfois, vous devez ajouter une route manuellement. Par exemple, pour atteindre un réseau 10.20.0.0/16 via un routeur 192.168.1.254 :
sudo ip route add 10.20.0.0/16 via 192.168.1.254Vérification :
ip route | grep 10.20Supprimer une route
Section intitulée « Supprimer une route »sudo ip route del 10.20.0.0/16Changer la passerelle par défaut
Section intitulée « Changer la passerelle par défaut »Si vous devez changer votre passerelle (rare, mais utile pour des tests) :
# Supprimer l'anciennesudo ip route del default
# Ajouter la nouvellesudo ip route add default via 192.168.1.254Problèmes courants et dépannage
Section intitulée « Problèmes courants et dépannage »Problème 1 : "Network is unreachable"
Section intitulée « Problème 1 : "Network is unreachable" »Symptôme : impossible de joindre une destination, message "Network is unreachable".
Diagnostic :
# Vérifier la route par défautip route | grep defaultCause probable : pas de route par défaut configurée.
Solution :
# Ajouter une passerellesudo ip route add default via 192.168.1.1Problème 2 : "No route to host"
Section intitulée « Problème 2 : "No route to host" »Symptôme : ping échoue avec "No route to host".
Causes possibles :
| Vérification | Commande |
|---|---|
| Passerelle joignable ? | ping 192.168.1.1 |
| Interface UP ? | ip link show eth0 |
| IP configurée ? | ip addr show eth0 |
Problème 3 : Traceroute s'arrête en chemin
Section intitulée « Problème 3 : Traceroute s'arrête en chemin »Symptôme : traceroute affiche quelques sauts puis uniquement * * *.
Causes possibles :
- Pare-feu : le routeur bloque ICMP (normal, pas un problème)
- ACL : une access-list bloque le trafic
- Route de retour : le paquet arrive mais la réponse ne peut pas revenir (routage asymétrique)
Test : essayez avec TCP sur le port de destination :
traceroute -T -p 443 github.comProblème 4 : Conteneur Docker sans accès Internet
Section intitulée « Problème 4 : Conteneur Docker sans accès Internet »Symptôme : un conteneur ne peut pas atteindre Internet.
Diagnostic :
# Dans le conteneurip routeSi vous ne voyez pas de route default, le réseau Docker n'est pas configuré correctement.
Vérification depuis l'hôte :
# Vérifier que le forwarding IP est activécat /proc/sys/net/ipv4/ip_forward# Doit afficher : 1TP : diagnostiquer un chemin réseau
Section intitulée « TP : diagnostiquer un chemin réseau »Mettons en pratique ce que nous avons appris.
-
Affichez votre table de routage
Fenêtre de terminal ip route showIdentifiez :
- Votre passerelle par défaut
- Votre réseau local
-
Testez la connectivité par étapes
Fenêtre de terminal # 1. Passerelle localeping -c 2 $(ip route | grep default | awk '{print $3}')# 2. DNS Google (Internet)ping -c 2 8.8.8.8# 3. GitHubping -c 2 github.comSi une étape échoue, le problème est entre cette étape et la précédente.
-
Tracez le chemin vers GitHub
Fenêtre de terminal traceroute github.comNotez :
- Combien de sauts ?
- Temps de réponse du dernier saut ?
- Y a-t-il des
* * *?
-
Comparez avec un autre site
Fenêtre de terminal traceroute google.comLe chemin est-il différent ? À quel saut diverge-t-il ?
-
Testez avec mtr (si installé)
Fenêtre de terminal mtr -c 10 github.comObservez la perte de paquets et la latence sur chaque saut.
À retenir
Section intitulée « À retenir »- Routage = processus qui permet aux paquets de traverser plusieurs réseaux
- Passerelle (gateway) = routeur qui connecte votre réseau local à Internet
- Table de routage = liste des "directions" pour atteindre chaque réseau
- Route par défaut (
default) = où envoyer tout ce qui n'a pas de route spécifique - Règle du plus spécifique : entre plusieurs routes, le masque le plus grand gagne
ip route: afficher et manipuler la table de routagetraceroute: voir tous les routeurs traversés (les "sauts")mtr: traceroute interactif avec statistiques en temps réel
Testez vos connaissances
Section intitulée « Testez vos connaissances »Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
FAQ : questions fréquentes sur le routage
Section intitulée « FAQ : questions fréquentes sur le routage »ip route
ip route
# default via 192.168.1.1 dev eth0
# 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.42
Lecture :default via 192.168.1.1: la passerelle par défaut, sortie vers tout ce qui n'est pas local.- Les lignes avec
scope link: les réseaux directement joignables sur une interface.
ip route (alias ip r) remplace les anciennes route -n et netstat -r de net-tools (déprécié, souvent absent par défaut).La porte de sortie
La passerelle par défaut est le routeur (souvent votre box) qui reçoit tous les paquets dont la destination n'est pas sur le réseau local.ip route | grep default
# default via 192.168.1.1 dev eth0
Le mécanisme :- Destination dans le sous-réseau : livraison directe (via ARP).
- Destination ailleurs : envoi à la passerelle, qui route vers le saut suivant.
ip route add
# Joindre le reseau 10.0.0.0/24 via un routeur precis
sudo ip route add 10.0.0.0/24 via 192.168.1.254
# Supprimer la route
sudo ip route del 10.0.0.0/24
Une route ajoutée ainsi est temporaire : elle disparaît au redémarrage. Pour la rendre persistante, on la déclare dans la configuration réseau de la distribution (netplan sous Ubuntu, NetworkManager, ou /etc/network/interfaces). Vérifiez toujours le résultat avec ip route.ip route get
ip route get 8.8.8.8
# 8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.42 uid 0
Cette commande applique les règles de routage réelles du noyau et révèle, pour une destination donnée :- la passerelle utilisée (
via), - l'interface de sortie (
dev), - l'adresse source choisie (
src).
Activer le forwarding IP
Par défaut, Linux ne route pas les paquets entre ses interfaces : il ignore ceux qui ne lui sont pas destinés. Pour en faire un routeur/passerelle, on active le forwarding IP :# Temporaire
sudo sysctl -w net.ipv4.ip_forward=1
# Persistant
echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-routing.conf
sudo sysctl -p /etc/sysctl.d/99-routing.conf
C'est l'oubli numéro un quand on configure une passerelle, un partage de connexion, ou un exit node VPN : la machine reçoit les paquets mais ne les relaie pas tant que ip_forward vaut 0.Le chemin saut par saut
traceroute (ou mtr en continu) révèle les routeurs successifs traversés par un paquet jusqu'à sa destination, avec la latence de chacun.traceroute -n google.com
Le piège d'interprétation
Un saut qui affiche des astérisques (* * *) n'est pas forcément en panne : beaucoup de routeurs dépriorisent ou bloquent l'ICMP par configuration. Seule une perte qui persiste jusqu'au dernier saut est significative. De plus, le routage peut être asymétrique (aller et retour par des chemins différents), donc traceroute ne montre que le chemin aller.