Aller au contenu
Réseaux high

Module 4 — Le routage : comment les paquets trouvent leur chemin

15 min de lecture

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.

  • 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 machine
  • traceroute : visualiser le chemin d’un paquet
  • ip route | grep default me montre ma passerelle
  • traceroute google.com affiche des sauts (même avec des * * *)
  • Je comprends que mon PC envoie à la passerelle, pas directement à la destination
Fenêtre de terminal
# 1. Voir la table de routage
ip route
# 2. Voir la passerelle par défaut
ip route | grep default
# 3. Tracer le chemin vers une destination
traceroute -n google.com

Pour suivre ce module, vous devez maîtriser :

  • 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

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 ?

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.

Principe du routage : le PC envoie à la passerelle, qui route vers Internet, jusqu'à GitHub

Quand votre PC veut envoyer un paquet, il se pose une seule question :

“La destination est-elle sur mon réseau local ?”

RéponseAction
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 (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 :

  1. Côté LAN : elle a une IP sur votre réseau local (ex: 192.168.1.1)
  2. Côté WAN : elle a une IP publique fournie par votre FAI (ex: 86.45.12.78)

Pour connaître l’adresse de votre passerelle :

Fenêtre de terminal
ip route | grep default

Sortie typique :

default via 192.168.1.1 dev eth0

Cette ligne signifie : “Pour toute destination inconnue, envoyer au routeur 192.168.1.1”.

Alternative :

Fenêtre de terminal
ip route show default

Avant de chercher plus loin, vérifiez toujours que votre passerelle est joignable :

Fenêtre de terminal
ping -c 3 192.168.1.1

Si ça ne répond pas, vous avez un problème local (câble, Wi-Fi, configuration).

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.”

Fenêtre de terminal
ip route show

Sortie typique sur un PC :

default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.45

Décryptons ces deux lignes :

LigneSignification
default via 192.168.1.1 dev eth0Route 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.45Route locale : le réseau 192.168.1.0/24 est accessible directement sur eth0

Quand un paquet doit partir, la machine parcourt sa table de routage et cherche la route la plus spécifique qui correspond à la destination :

  1. Chercher une route exacte

    Si la table contient une route vers 140.82.121.0/24 et que la destination est 140.82.121.4, c’est match !

  2. Chercher une route qui englobe la destination

    Sinon, chercher un réseau plus large qui contient l’IP de destination.

  3. Utiliser la route par défaut

    Si aucune route spécifique ne correspond, utiliser default (aussi appelée 0.0.0.0/0).

Votre table de routage :

default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 scope link
10.10.0.0/16 via 192.168.1.254 dev eth0
DestinationRoute utiliséeExplication
192.168.1.100192.168.1.0/24Même réseau → direct
10.10.5.6710.10.0.0/16Match le réseau 10.10.x.x → via 192.168.1.254
8.8.8.8defaultPas de route spécifique → passerelle par défaut
140.82.121.4defaultPas de route spécifique → passerelle par défaut

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).

Traceroute vers GitHub : visualisation des sauts avec le temps de réponse à chaque étape

Fenêtre de terminal
traceroute github.com

Sortie 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 ms
ColonneSignification
1, 2, etc.Numéro du saut (routeur)
192.168.1.1Adresse IP du routeur
1.234 msTemps de réponse (3 mesures)
* * *Routeur qui ne répond pas (filtré par pare-feu)
ObservationDiagnostic
Saut 1 lent (> 10 ms)Problème sur votre réseau local (Wi-Fi ?)
* * * sur plusieurs sautsRouteurs qui filtrent ICMP (normal)
Temps qui augmente brutalementGoulot d’étranglement à ce saut
Traceroute s’arrête sans atteindre la cibleRoute bloquée ou destination injoignable
Boucle (mêmes IP qui reviennent)Problème de configuration de routage
Fenêtre de terminal
# 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.com

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 :

Fenêtre de terminal
sudo ip route add 10.20.0.0/16 via 192.168.1.254

Vérification :

Fenêtre de terminal
ip route | grep 10.20
Fenêtre de terminal
sudo ip route del 10.20.0.0/16

Si vous devez changer votre passerelle (rare, mais utile pour des tests) :

Fenêtre de terminal
# Supprimer l'ancienne
sudo ip route del default
# Ajouter la nouvelle
sudo ip route add default via 192.168.1.254

Symptôme : impossible de joindre une destination, message “Network is unreachable”.

Diagnostic :

Fenêtre de terminal
# Vérifier la route par défaut
ip route | grep default

Cause probable : pas de route par défaut configurée.

Solution :

Fenêtre de terminal
# Ajouter une passerelle
sudo ip route add default via 192.168.1.1

Symptôme : ping échoue avec “No route to host”.

Causes possibles :

VérificationCommande
Passerelle joignable ?ping 192.168.1.1
Interface UP ?ip link show eth0
IP configurée ?ip addr show eth0

Symptôme : traceroute affiche quelques sauts puis uniquement * * *.

Causes possibles :

  1. Pare-feu : le routeur bloque ICMP (normal, pas un problème)
  2. ACL : une access-list bloque le trafic
  3. 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 :

Fenêtre de terminal
traceroute -T -p 443 github.com

Problè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 :

Fenêtre de terminal
# Dans le conteneur
ip route

Si vous ne voyez pas de route default, le réseau Docker n’est pas configuré correctement.

Vérification depuis l’hôte :

Fenêtre de terminal
# Vérifier que le forwarding IP est activé
cat /proc/sys/net/ipv4/ip_forward
# Doit afficher : 1

Mettons en pratique ce que nous avons appris.

  1. Affichez votre table de routage

    Fenêtre de terminal
    ip route show

    Identifiez :

    • Votre passerelle par défaut
    • Votre réseau local
  2. Testez la connectivité par étapes

    Fenêtre de terminal
    # 1. Passerelle locale
    ping -c 2 $(ip route | grep default | awk '{print $3}')
    # 2. DNS Google (Internet)
    ping -c 2 8.8.8.8
    # 3. GitHub
    ping -c 2 github.com

    Si une étape échoue, le problème est entre cette étape et la précédente.

  3. Tracez le chemin vers GitHub

    Fenêtre de terminal
    traceroute github.com

    Notez :

    • Combien de sauts ?
    • Temps de réponse du dernier saut ?
    • Y a-t-il des * * * ?
  4. Comparez avec un autre site

    Fenêtre de terminal
    traceroute google.com

    Le chemin est-il différent ? À quel saut diverge-t-il ?

  5. Testez avec mtr (si installé)

    Fenêtre de terminal
    mtr -c 10 github.com

    Observez la perte de paquets et la latence sur chaque saut.

  1. Routage = processus qui permet aux paquets de traverser plusieurs réseaux
  2. Passerelle (gateway) = routeur qui connecte votre réseau local à Internet
  3. Table de routage = liste des “directions” pour atteindre chaque réseau
  4. Route par défaut (default) = où envoyer tout ce qui n’a pas de route spécifique
  5. Règle du plus spécifique : entre plusieurs routes, le masque le plus grand gagne
  6. ip route : afficher et manipuler la table de routage
  7. traceroute : voir tous les routeurs traversés (les “sauts”)
  8. mtr : traceroute interactif avec statistiques en temps réel

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

10 questions
10 min.
80% requis

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