GNU/Linux >> Tutoriels Linux >  >> Linux

Comment vider le cache DNS sous Linux

DNS, abréviation de Domain Name System protocole, est utilisé sur les systèmes Linux afin de récupérer les adresses IP associées aux noms.

Par exemple, lorsque vous effectuez une requête ping, il est fort probable que vous utilisiez le protocole DNS pour récupérer l'IP du serveur.

Dans la plupart des cas, les requêtes DNS que vous effectuez sont stockées dans un cache local sur votre système d'exploitation.

Cependant, dans certains cas, vous souhaiterez peut-être vider le cache DNS de votre serveur .

C'est peut-être parce que vous avez changé l'adresse IP d'un serveur sur votre réseau et que vous souhaitez que les modifications soient reflétées immédiatement.

Dans ce tutoriel, vous allez apprendre comment vous pouvez facilement vider le cache DNS sous Linux , que vous utilisiez systemd ou dnsmasq.

Prérequis

Afin de pouvoir vider votre cache DNS, vous devez savoir comment la résolution DNS fonctionne sur votre système Linux .

Selon votre distribution, vous pouvez être confronté à différents services Linux qui agissent comme un résolveur DNS .

Avant de commencer, il est très important que vous sachiez comment la résolution DNS se produira réellement sur votre système d'exploitation.

Si vous lisez cet article, vous cherchez à vider le cache de votre résolveur DNS local . Mais comme vous pouvez le constater, il existe de nombreux caches différents depuis votre application locale jusqu'aux serveurs DNS Internet réels.

Dans ce tutoriel, nous allons nous concentrer sur la case jaune signifiant le résolveur de stub local implémenté sur chaque système Linux.

Trouver votre résolveur DNS local

Sur la plupart des systèmes Linux, le résolveur DNS est soit "systemd-resolved" soit dnsmasq. Afin de savoir si vous avez affaire à l'un ou à l'autre, vous pouvez exécuter la commande suivante

$ sudo lsof -i :53 -S

Remarque :alors pourquoi exécutons-nous cette commande ? Comme DNS s'exécute sur le port 53, nous recherchons les commandes associées au service exécuté sur le port 53, qui est votre résolveur DNS local ou "stub".

Comme vous pouvez le voir, sur une distribution récente d'Ubuntu 20.04, le service qui écoute sur le port 53 est résolu par systemd. Cependant, si vous deviez exécuter cette commande sur Ubuntu 14.04, vous obtiendriez une sortie différente.

Dans ce cas, le DNS local utilisé dans dnsmasq et les commandes sont évidemment différents.

Connaissant ces informations, vous pouvez vous diriger vers le chapitre qui vous intéresse. Si vous deviez avoir une sortie différente sur votre serveur, assurez-vous de laisser un commentaire pour que nous mettions à jour cet article.

Vider le DNS à l'aide de la résolution systemd

Le moyen le plus simple de vider le DNS sous Linux, si vous utilisez systemd-resolved, est d'utiliser la commande "systemd-resolve" suivie de "–flush-caches".

Vous pouvez également utiliser la commande "resolvectl" suivie de l'option "flush-caches".

$ sudo systemd-resolve --flush-caches

$ sudo resolvectl flush-caches

Afin de vérifier que votre cache DNS Linux a bien été vidé, vous pouvez utiliser les « –statistics " qui mettra en surbrillance la "Taille actuelle du cache" dans la section "Cache".

$ sudo systemd-resolve --statistics

Félicitations, vous avez réussi à vider votre cache DNS sous Linux !

Vider le cache DNS à l'aide de signaux

Une autre façon de vider le cache DNS peut être obtenue en envoyant un signal "USR2" au service "systemd-resolved" qui lui demandera de vider son cache DNS.

$ sudo killall -USR2 systemd-resolved

Afin de vérifier que le cache DNS a bien été vidé, vous pouvez envoyer un « USR1 ” signal au service résolu par systemd. De cette façon, il videra son état actuel dans le journal systemd.

$ sudo killall -USR1 systemd-resolved

$ sudo journalctl -r -u systemd-resolved

Génial, votre cache DNS a été correctement vidé à l'aide de signaux !

Vider le DNS à l'aide de dnsmasq

Le moyen le plus simple de vider votre résolveur DNS, lorsque vous utilisez dnsmasq, est d'envoyer un signal "SIGHUP" au processus "dnsmasq" avec la commande "killall".

$ sudo killall -HUP dnsmasq

Comme pour systemd-resolved, vous pouvez envoyer un "USR1 » au processus afin qu'il imprime ses statistiques dans le fichier journal « syslog ». À l'aide d'une simple commande "tail", nous sommes en mesure de vérifier que le cache DNS a bien été vidé.

Et si vous exécutiez dnsmasq en tant que service ?

Dnsmasq exécutant un service

Dans certains cas, vous pouvez exécuter "dnsmasq" en tant que service sur votre serveur. Afin de vérifier si c'est le cas ou non, vous pouvez lancer la commande « systemctl » ou celle « service » si vous êtes sur un système SysVinit.

$ sudo systemctl is-active dnsmasq

# On SysVinit systems
$ sudo service dnsmasq status

Si vous remarquez que dnsmasq s'exécute en tant que service, vous pouvez le redémarrer à l'aide de l'habituel "systemctl ” ou “service ” commandes.

$ sudo systemctl restart dnsmasq

# On SysVinit systems
$ sudo service dnsmasq restart

Après avoir exécuté ces commandes, assurez-vous toujours que vos services ont été correctement redémarrés.

$ sudo systemctl status dnsmasq

# On SysVinit systems
$ sudo service dnsmasq status

Conclusion

Dans ce didacticiel, vous avez appris comment vider rapidement et facilement votre cache DNS sous Linux.

À l'aide de cet article, vous pouvez facilement vider le cache des résolveurs locaux systemd et dnsmasq. Cependant, vous devez savoir qu'il existe un autre DNS commun, nommé bind , qui est délibérément omis dans cet article.

Un autre article sur la configuration d'un serveur de cache DNS local à l'aide de BIND devrait paraître prochainement.

Si vous êtes intéressé par les requêtes DNS et comment elles sont exécutées, vous pouvez utiliser cet article très utile de "zwischenzugs" nommé le " Anatomie d'une requête DNS " . L'article est particulièrement utile si vous souhaitez déboguer des requêtes DNS et que vous vous demandez comment elles sont effectuées.

Aussi, si vous êtes intéressé par l'administration système Linux , nous avons une section complète à ce sujet sur le site Web, alors assurez-vous de la consulter.


Linux
  1. Comment effacer le cache mémoire sous Linux

  2. Linux - Comment remplacer un serveur Vm DNS ?

  3. Comment vider le cache CPU d'une région d'espace d'adressage sous Linux ?

  4. Comment puis-je enregistrer le serveur Linux avec le serveur DNS Windows

  5. Comment vider le cache du résolveur DNS sous Linux (et FreeBSD)

Comment vider le cache DNS sur Ubuntu 20.04

Comment vider le cache DNS sur Ubuntu

Comment effacer le cache DNS sur Ubuntu

Comment vider le cache DNS sous Linux ?

Comment vider le cache DNS sur Ubuntu

Comment installer et configurer le serveur DNS sous Linux