« 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
| Mot | Ce que ça veut dire |
|---|---|
| Symptôme | ce que l'utilisateur voit mal tourner |
| Route par défaut | le chemin qu'une machine prend quand aucune autre route ne convient |
| Inaccessible | aucune 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 |
| Traceroute | un 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
| Étape | La question | Une commande |
|---|---|---|
| 1 Adresse | Cette machine a-t-elle une adresse ? | ip -br -4 addr |
| 2 Passerelle | Peut-elle joindre sa passerelle ? | ping de la passerelle |
| 3 Route | Connaît-elle un chemin vers la cible ? | ip route get |
| 4 Chemin | Où les paquets s'arrêtent-ils ? | traceroute -n |
| 5 Nom | Le nom donne-t-il une adresse ? | dig, getent hosts |
| 6 Port | Quelque 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
sudo ip netns exec lan ip -br -4 addrAffiché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
sudo ip netns exec lan ping -c 1 -W 1 10.0.0.1Affiché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
sudo ip netns exec lan ip route get 203.0.113.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.
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
sudo ip netns exec lan ip route del defaultAffiché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
sudo ip netns exec lan ping -c 1 -W 1 10.0.0.1 | tail -n 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.
Étape 3 de nouveau : demander le serveur extérieur
sudo ip netns exec lan ip route get 203.0.113.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.
Ce que dit la requête web maintenant
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
sudo ip netns exec lan ip route add default via 10.0.0.1Affiché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
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
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
sudo ip netns exec lan traceroute -n -q 1 -w 1 -m 3 203.0.113.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.
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 voyez | Ce que cela veut dire | Où regarder ensuite |
|---|---|---|
| Network is unreachable, tout de suite | Aucune route vers ce réseau | La table de routage et la route par défaut |
| Could not resolve host | Le nom n'a donné aucune adresse | Le fichier hosts et le serveur DNS |
| Connection refused, vite | La machine est en marche et rien n'écoute | Le programme, son port et une règle reject |
| Timed out, lentement | Aucune réponse n'est revenue | Une 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.