Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Trouver où une connexion échoue

Après cette leçon: Je peux trouver où une connexion échoue en testant une étape à la fois.

Leçon de 55 min11 commandesLab de passerelle NAT : masquerade et redirection de port avec nftables dans le navigateur

« Internet est en panne »

Le lundi matin, une responsable appelle l'assistance. Internet est en panne. Dix minutes plus tard, on découvre qu'une seule imprimante était hors ligne.

Un bon technicien ne devine pas. Il teste une étape à la fois, de la machine vers l'extérieur, et s'arrête à la première qui échoue.

Cette leçon enseigne cet ordre, puis casse une étape pour que vous la retrouviez.

À la fin de cette leçon

Remarque

Je peux trouver où une connexion échoue en testant une étape à la fois.

Mots clés

MotCe que ça veut dire
Symptômece que l'utilisateur voit mal tourner
Route par défautle chemin qu'une machine prend quand aucune autre route ne convient
Inaccessibleaucune route n'existe vers ce réseau
Délai dépasséaucune réponse n'est revenue à temps
Refuséla machine a répondu et dit non
Tracerouteun outil qui liste chaque routeur du trajet

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Testez une étape à la fois

Une connexion demande plusieurs choses à la suite : une adresse, un accès à la passerelle, une route, un chemin, un nom et un port ouvert. Une panne à une étape cache tout ce qui suit.

Testez donc dans cet ordre. La première étape qui échoue est là où regarder, et rien après elle ne vaut encore un test.

Exemple : les six étapes

ÉtapeLa questionUne commande
1 AdresseCette machine a-t-elle une adresse ?ip -br -4 addr
2 PasserellePeut-elle joindre sa passerelle ?ping de la passerelle
3 RouteConnaît-elle un chemin vers la cible ?ip route get
4 CheminOù les paquets s'arrêtent-ils ?traceroute -n
5 NomLe nom donne-t-il une adresse ?dig, getent hosts
6 PortQuelque chose répond-il sur le port ?nc -zv, curl

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Étape 1 : lire l'adresse de la machine LAN

Commande
sudo ip netns exec lan ip -br -4 addr

Affiché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.

Étape 2 : faire un ping vers la passerelle

Commande
sudo ip netns exec lan ping -c 1 -W 1 10.0.0.1

Affiché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.

Étape 3 : demander la route

Commande
sudo ip netns exec lan ip route get 203.0.113.2

Affiché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.

Casser une étape, puis la trouver

Maintenant vous retirez vous-même la route par défaut de la machine LAN. Puis vous testez les étapes dans l'ordre, et voyez laquelle échoue la première.

Le dernier Run de cette partie remet la route. Lancez-les donc tous, dans l'ordre.

Retirer la route par défaut

Commande
sudo ip netns exec lan ip route del default

Affiché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.

Étape 2 de nouveau : la passerelle répond encore

Commande
sudo ip netns exec lan ping -c 1 -W 1 10.0.0.1 | tail -n 2

Affiché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.

Étape 3 de nouveau : demander le serveur extérieur

Commande
sudo ip netns exec lan ip route get 203.0.113.2

Affiché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 dit la requête web maintenant

Commande
sudo ip netns exec lan curl --noproxy '*' -sS -m 3 http://203.0.113.2:8000/; echo "code de sortie curl $?"

Affiché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.

Remettre la route par défaut

Commande
sudo ip netns exec lan ip route add default via 10.0.0.1

Affiché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.

Chaque mot d'échec dit autre chose

Inaccessible arrive tout de suite et veut dire qu'il n'y a pas de route. Refusé arrive vite et veut dire que la machine a répondu et dit non.

Un délai dépassé arrive lentement et veut dire le silence : un drop, ou une réponse qui ne retrouve pas son chemin. Les trois Run suivants montrent les deux derniers.

Un refus : la machine a répondu

Commande
sudo ip netns exec gw nc -zv -w 2 10.0.0.2 9999; echo "code de sortie nc $?"

Affiché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.

Un délai : personne ne répond au LAN

Commande
sudo ip netns exec lan curl --noproxy '*' -sS -m 3 http://203.0.113.2:8000/; echo "code de sortie curl $?"

Affiché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.

Étape 4 : voir où les paquets s'arrêtent

Commande
sudo ip netns exec lan traceroute -n -q 1 -w 1 -m 3 203.0.113.2

Affiché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.

Une erreur fréquente

Attention

On croit souvent que si le ping marche, la connexion va bien. Le ping ne prouve qu'une étape. La requête web a encore besoin d'une route de retour, d'un nom et d'un port ouvert. Ici la passerelle répond au ping, et la requête web dépasse quand même le délai.

Exemple : du symptôme à l'étape suivante

Ce que vous voyezCe que cela veut direOù regarder ensuite
Network is unreachable, tout de suiteAucune route vers ce réseauLa table de routage et la route par défaut
Could not resolve hostLe nom n'a donné aucune adresseLe fichier hosts et le serveur DNS
Connection refused, viteLa machine est en marche et rien n'écouteLe programme, son port et une règle reject
Timed out, lentementAucune réponse n'est revenueUne règle drop, ou le chemin du retour

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Pour aller plus loin : votre propre ordre

Écrivez les six étapes de cette leçon avec vos mots, avec une commande pour chacune.

Puis choisissez une panne que vous avez rencontrée, au travail ou chez vous, et dites quelle étape l'aurait trouvée en premier. Gardez la page : c'est le début de votre propre liste de contrôle.

À propos de ce labo et de sa source: Lab de passerelle NAT : masquerade et redirection de port avec nftables dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.