Accueil Technologie
Comment afficher et vider le cache DNS sous Linux

Comment afficher et vider le cache DNS sous Linux

Lorsque vous accédez à un site web en utilisant son nom de domaine, votre système envoie une requête à un serveur DNS pour obtenir l’adresse IP de ce domaine. Cette paire domaine/adresse IP est enregistrée dans le cache DNS pour une utilisation ultérieure, de sorte que vous n’ayez pas à envoyer des requêtes au serveur DNS à chaque fois que vous établissez une connexion.


Mais il arrive que le cache DNS local soit corrompu et provoque des erreurs HTTP. Heureusement, il est facile de vider et de reconstruire le cache DNS sur un ordinateur Linux. Voici comment procéder.

Pourquoi vider le cache DNS sous Linux ?

Il y a plusieurs raisons pour lesquelles vous pourriez vouloir reconstruire le cache DNS stocké sur votre système. Vous avez peut-être un enregistrement DNS obsolète pour un site web et vous voulez le récupérer sur le serveur DNS. Ou encore, votre système a été compromis et vous voulez vous assurer que le cache DNS n’a pas été altéré, ce qui est également connu sous le nom de DNS spoofing (usurpation de nom).

Lorsque vous videz votre cache DNS, le système doit à nouveau interroger le serveur DNS et obtenir le nouvel enregistrement d’adresse IP du domaine, en supprimant les données obsolètes ou compromises au cours du processus.

Comment voir le cache DNS local sous Linux

Avant systemd, la plupart des distributions Linux ne disposaient pas de cache DNS à l’échelle du système, à moins qu’un programme comme dnsmasq ou nscd ne soit configuré manuellement. systemd est livré avec systemd-resolved, un service qui résout les noms de domaine en adresses IP et met en cache les entrées DNS.

Les sections suivantes vous expliquent comment visualiser le contenu du cache DNS généré par systemd-resolved, nscd et dnsmasq, afin que vous puissiez comprendre les données mises en cache avant de décider de les vider.

Afficher le cache DNS pour systemd-resolved

Pour afficher les enregistrements de cache résolus par systemd, vous devez d’abord arrêter temporairement le service, puis exporter ses journaux dans un fichier.

Commencez par envoyer un signal SIGUSR1 pour arrêter le service systemd-resolved :

 sudo killall -USR1 systemd-resolved 

Utilisez la commande journalctl et l’opérateur de sortie standard pour enregistrer la sortie dans un fichier texte :

 sudo journalctl -u systemd-resolved > ~/cache.txt 

Vous pouvez ensuite visualiser le contenu du fichier à l’aide d’un éditeur de texte tel que Vim :

 vim ~/cache.txt 
view systemd-resolved dns cache

Dans le fichier, recherchez « CACHE : » en appuyant sur Echap, en tapant « /CACHE :« , et en appuyant sur Entrer. Tous les enregistrements DNS listés sous CACHE : font partie du cache DNS local. Appuyer sur n pour passer au jeu d’entrées DNS suivant si vous utilisez Vim.

Voir le cache DNS local pour nscd

Pour visualiser le cache local généré par nscd, vous devez lire le contenu de la base de données des hôtes nscd à l’aide de la commande strings.

Sur les distributions basées sur Debian et Ubuntu, ce fichier est situé à l’emplacement suivant /var/cache/nscd/hosts. Exécutez la commande suivante pour afficher le fichier :

 sudo strings /var/cache/nscd/hosts | uniq 
view nscd local dns cache contents

Pour afficher des statistiques générales sur le cache DNS nscd, utilisez la commande -g drapeau :

 sudo nscd -g 

Afficher le cache DNS généré par dnsmasq

dnsmasq stocke le cache DNS en mémoire, il n’est donc pas facile d’obtenir les enregistrements exacts. Mais vous pouvez envoyer un signal kill à dnsmasq et enregistrer sa sortie pour obtenir le nombre de requêtes DNS traitées.

Pour ce faire, il faut d’abord s’assurer que dnsmasq fonctionne en utilisant la commande systemctl :

 sudo systemctl status dnsmasq 

Si l’état indique ActifExécutez la commande suivante pour tuer le service :

 sudo pkill -USR1 dnsmasq 

À l’aide de la commande journalctl, extrayez les journaux dnsmasq et sauvegardez-les dans un fichier texte :

 sudo journalctl -u dnsmasq > ~/cache.txt 

Enfin, affichez le contenu du fichier à l’aide d’un utilitaire de visualisation de fichiers tel que cat ou less :

 cat ~/cache.txt 

Comment vider le cache DNS sous Linux

Vider le cache DNS signifie supprimer les enregistrements DNS mis en cache de votre ordinateur. Cela l’oblige à envoyer une requête au serveur DNS pour récupérer les nouvelles entrées DNS.

Voici comment vider le cache DNS sous Linux :

Utilisation de systemd-resolved

Vous pouvez utiliser la commande resolvectl pour vider le cache DNS stocké par systemd-resolved :

 sudo resolvectl flush-caches 

Si vous utilisez Ubuntu 17.04 ou 18.04, utilisez la commande systemd-resolved pour vider le cache :

 sudo systemd-resolved --flush-caches 

Vider le cache DNS nscd sous Linux

La façon la plus pratique de supprimer le cache DNS de nscd est de redémarrer le service. Vous pouvez le faire en exécutant :

 sudo /etc/init.d/nscd restart 

Si cela ne fonctionne pas, vérifiez d’abord si le cache local stocké sur votre PC est persistant. Vous pouvez utiliser la commande -g pour le vérifier :

 sudo nscd -g 

Si c’est le cas, utilisez l’option -i avec la commande nscd pour effacer les enregistrements (i signifie invalider) :

 sudo nscd -i hosts 

Supprimer le cache DNS dnsmasq

La suppression du cache DNS généré par dnsmasq est simple. Comme le cache est stocké en mémoire, le redémarrage du service supprime toutes les entrées stockées.

Pour redémarrer dnsmasq, exécutez la commande systemctl suivante :

 sudo systemctl restart dnsmasq 

Ou lancez la commande suivante :

 service dnsmasq restart 

Entrez le mot de passe de l’administrateur si on vous le demande. dnsmasq va maintenant redémarrer et toutes vos entrées DNS existantes seront supprimées du cache.

Après avoir vidé le cache DNS, il est préférable d’afficher les entrées du cache local et de vérifier si les données ont été supprimées avec succès. Vous pouvez utiliser dig, l’une des nombreuses commandes Linux de dépannage réseau, et vérifier la valeur Query time dans la sortie. Si elle est supérieure à 0 msec, le cache a été effacé avec succès (0 msec signifie que l’enregistrement de domaine est toujours dans le cache).

 dig google.com 

Vider le cache DNS de Google Chrome

Le navigateur web que vous utilisez fréquemment met également en cache les enregistrements DNS. Lorsque vous saisissez une URL, le système recherche une entrée dans le cache du navigateur local. S’il n’en trouve pas, il recherche les enregistrements dans le cache du système local. Il est essentiel d’effacer le cache DNS de votre navigateur web, car il a une priorité plus élevée que le cache du système.

Pour la démonstration, nous allons vider le cache DNS dans Google Chrome. Il existe des moyens de le faire avec d’autres navigateurs, il est donc préférable que vous cherchiez sur Google comment le faire pour le navigateur que vous utilisez.

Pour commencer, tapez « chrome://net-internals/#dns« dans la barre d’URL et appuyez sur Entrer:

effacer le cache dns de google chrome

Cliquez Effacer le cache de l’hôte pour effacer les entrées DNS stockées dans Google Chrome.

Linux est le meilleur système d’exploitation pour apprendre à travailler en réseau

Linux peut sembler compliqué au premier abord, mais si vous consacrez un peu de temps à l’apprentissage de son fonctionnement, vous vous rendrez rapidement compte qu’il est fantastique, et peut-être même meilleur que Windows ou macOS.

La plupart des serveurs en ligne fonctionnent sous Linux, et c’est l’une des raisons pour lesquelles Linux est idéal si vous voulez apprendre à travailler en réseau, ou si vous souhaitez savoir comment fonctionnent les ordinateurs en général.

Leave your vote

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires

Log In

Forgot password?

Don't have an account? Register

Forgot password?

Enter your account data and we will send you a link to reset your password.

Your password reset link appears to be invalid or expired.

Log in

Privacy Policy

Add to Collection

No Collections

Here you'll find all collections you've created before.

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x