Résolution des Problèmes de Connectivité Réseau

LinuxBeginner
Pratiquer maintenant

Introduction

La connectivité réseau est un aspect fondamental de tout environnement informatique moderne. Bien que de nombreuses choses puissent mal tourner, l'un des problèmes les plus courants est l'échec de la résolution du système de noms de domaine (DNS). Le DNS est le service qui traduit les noms de domaine conviviaux (comme www.google.com) en adresses IP que les ordinateurs utilisent pour se connecter les uns aux autres. Si le DNS ne fonctionne pas, vous pourriez être connecté à Internet mais toujours incapable d'atteindre des sites Web.

Ce laboratoire propose une approche structurée et pratique pour diagnostiquer et résoudre un problème réseau lié au DNS. Vous apprendrez une séquence de commandes pour tester votre connexion, identifier le problème DNS, corriger la configuration et confirmer que votre connexion est entièrement rétablie.

À la fin de ce laboratoire, vous disposerez d'une liste de contrôle fiable des étapes initiales de dépannage pour aborder les problèmes de connectivité DNS sur un système Linux.

Confirmer le Problème en Pingant un Nom de Domaine

Lors du dépannage, la première étape consiste toujours à confirmer le problème. Une manière courante de tester la connectivité Internet est d'utiliser la commande ping. Essayons de pinger un domaine bien connu, google.com. Nous utiliserons l'option -c 4 pour n'envoyer que quatre paquets.

Exécutez la commande suivante dans votre terminal :

ping -c 4 google.com

Vous verrez un message d'erreur indiquant un échec de résolution de nom.

ping: google.com: Temporary failure in name resolution

Cette erreur nous indique que le système n'a pas réussi à traduire le nom de domaine google.com en une adresse IP. Cela suggère fortement un problème avec le DNS.

Isoler le Problème en Pingant une Adresse IP

Nous suspectons un problème de DNS, mais nous devons confirmer que notre connexion Internet de base fonctionne toujours. Nous pouvons le faire en pingant directement une adresse IP publique, ce qui contourne le processus de résolution de nom DNS. Nous utiliserons l'adresse IP du serveur DNS public de Google, 8.8.8.8.

Exécutez la commande suivante :

ping -c 4 8.8.8.8

Cette fois, le ping devrait réussir. Vous verrez des réponses du serveur.

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=1.23 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=1.28 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=116 time=1.30 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=116 time=1.25 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.230/1.265/1.301/0.026 ms

Puisque nous pouvons pinger une adresse IP mais pas un nom de domaine, nous avons maintenant confirmé que le problème réside dans la résolution DNS.

Inspecter et Corriger les Paramètres DNS

Maintenant que nous savons que le DNS est le problème, examinons le fichier de configuration DNS. Sous Linux, il s'agit généralement de /etc/resolv.conf. Ce fichier indique au système quels serveurs DNS utiliser.

Visualisons son contenu :

cat /etc/resolv.conf

La sortie affichera le nameserver qui a été configuré par notre script d'installation.

nameserver 192.0.2.1

L'adresse IP 192.0.2.1 est réservée à des fins de documentation et de test ; elle ne pointe vers aucun serveur DNS réel. C'est la cause de notre problème.

Pour corriger cela, nous devons remplacer le nameserver incorrect par un serveur valide. Nous utiliserons le serveur DNS public de Google, 8.8.8.8. Nous pouvons écraser le fichier en utilisant les commandes echo et tee. Cela nécessite des privilèges sudo.

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

Maintenant, visualisez à nouveau le fichier pour confirmer la modification.

cat /etc/resolv.conf

La sortie devrait maintenant afficher le nameserver correct.

nameserver 8.8.8.8

Avec un nameserver valide configuré, nous sommes un pas de plus vers la résolution du problème.

Vider le Cache DNS Local

Votre système conserve un cache temporaire des noms de domaine récemment consultés pour accélérer les requêtes futures. Après avoir modifié les paramètres DNS, il est conseillé de vider ce cache pour s'assurer que le système utilise immédiatement les nouveaux paramètres et ne se fie pas à des données mises en cache anciennes et potentiellement incorrectes.

Sur les systèmes Linux modernes, vous pouvez utiliser la commande resolvectl, qui fait partie de systemd-resolved, pour gérer le cache DNS. Pour vider les caches, exécutez la commande suivante. Elle nécessite des privilèges sudo.

sudo resolvectl flush-caches

Cette commande ne produira aucune sortie si elle réussit. Pour vérifier que le cache a été vidé, vous pouvez consulter les statistiques du cache en utilisant la commande statistics.

resolvectl statistics

Recherchez la ligne Current Cache Size dans la sortie. Après avoir vidé le cache, cette valeur devrait être 0, confirmant que le cache a été effacé. Notez que d'autres statistiques comme les succès (Hits) et les échecs (Misses) conserveront leurs valeurs précédentes.

...
Cache
  Current Cache Size: 0
          Cache Hits: 24
        Cache Misses: 67
...

Vider le cache DNS est une étape importante pour garantir que votre système n'utilise pas d'enregistrements DNS obsolètes.

Confirmer la Résolution DNS et la Connectivité

Maintenant que nous avons corrigé la configuration du serveur DNS et vidé le cache local, il est temps de vérifier la correction. Nous allons répéter la même commande que celle de l'Étape 1 qui avait échoué précédemment.

Essayons de pinger à nouveau google.com.

ping -c 4 google.com

Cette fois, la commande devrait réussir. Vous verrez le nom de domaine être résolu en une adresse IP, et vous recevrez des réponses du serveur. (Note : L'adresse IP exacte de google.com peut varier).

PING google.com (142.250.189.238) 56(84) bytes of data.
64 bytes from nuq04s39-in-f14.1e100.net (142.250.189.238): icmp_seq=1 ttl=119 time=4.43 ms
64 bytes from nuq04s39-in-f14.1e100.net (142.250.189.238): icmp_seq=2 ttl=119 time=4.43 ms
64 bytes from nuq04s39-in-f14.1e100.net (142.250.189.238): icmp_seq=3 ttl=119 time=4.40 ms
64 bytes from nuq04s39-in-f14.1e100.net (142.250.189.238): icmp_seq=4 ttl=119 time=4.43 ms

--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 4.400/4.421/4.434/0.012 ms

Succès ! Vous avez maintenant diagnostiqué et résolu avec succès un problème de connectivité DNS.

Résumé

Félicitations pour avoir terminé ce laboratoire ! Vous avez réussi à parcourir une procédure standard pour diagnostiquer et résoudre un problème réseau courant lié au DNS sur un système Linux.

Dans ce laboratoire, vous avez appris à :

  • Utiliser ping pour tester la connectivité et différencier une panne réseau générale d'un problème spécifique au DNS.
  • Inspecter la configuration du serveur DNS de votre système dans /etc/resolv.conf.
  • Corriger une configuration DNS invalide pour restaurer la résolution de noms.
  • Vider le cache DNS local en utilisant resolvectl flush-caches pour effacer les entrées obsolètes.
  • Confirmer que la correction fonctionne en pingant avec succès un nom de domaine.

Ces compétences fondamentales constituent une base solide pour aborder de nombreux problèmes réseau courants. Vous pouvez désormais appliquer ce processus logique, étape par étape, chaque fois que vous suspectez des problèmes de DNS à l'avenir.