Votre expérience de navigation sur Internet est-elle lente sur votre appareil Linux, ou les sites Web que vous visitez sont dépassés ou sur le mauvais site Web? Discutons de Flushing the DNS Cache sur Linux et comment savoir si vous en avez vraiment besoin.
Que sont les caches DNS?
Votre ordinateur utilise-t-il un cache DNS local?
Examiner votre cache DNS
Comment effacer le cache DNS sur Linux
Comment rincer le cache dnsmasq sur Linux
Rincé, avec succès
Que sont les caches DNS?
Le service de noms de domaine est le peu de magie qui convertit les noms en nombres. Il prend des noms de réseau d'appareils et des noms de sites Web et recherche leurs adresses IP. Le réseau peut ensuite utiliser l'adresse IP pour acheminer correctement le trafic vers ces appareils ou sites.
Ces recherches, connues sous le nom demandes , N'arrive pas instantanément . Il y a une petite période de temps finie impliquée. Les demandes DNS Internet peuvent nécessiter une question de serveurs DNS précurseurs, de serveurs de noms racine, de serveurs de domaine de niveau supérieur et de serveurs de noms faisant autorité. Les demandes DNS sont rapides, mais pour les rendre encore plus rapidement, les réponses aux demandes DNS récentes sont mises en cache sur les serveurs précurseurs DNS.
Si la réponse à une demande DNS se trouve dans le cache du serveur précurseur, aucun autre serveur ne doit être contacté. La réponse est renvoyée à partir du cache du serveur précurseur. De même, un petit cache est maintenu par votre routeur à large bande à la maison. Si vous demandez un périphérique réseau local à l'aide de son nom de périphérique réseau, votre routeur fournit l'adresse IP. Il peut également mettre en cache les réponses qu'il a reçues des serveurs DNS externes.
Habituellement, les réseaux et les ordinateurs Linux sont configurés pour utiliser les services DNS externes, fournis par votre fournisseur de services Internet ou par un service gratuit tel que Opendns ou Google DNS . Il y a de bonnes raisons pour lesquelles Certaines personnes exécutent leur propre serveur DNS , mais la plupart d'entre nous ne le font pas. Cependant, votre ordinateur Linux - même s'il n'exécute pas de serveur DNS - peut éventuellement mettre en cache les résultats de la demande DNS.
Le problème avec l'utilisation de données en cache est le tout est fondé sur l'hypothèse qu'aucun des détails mis en cache n'a changé depuis qu'ils ont été mis en cache. Si les détails ont changé, les informations que vous recevez seront obsolètes.
Si une entrée de cache ou le cache entier devient corrompu, vous recevrez au mieux des performances squameuses et au pire des vulnérabilités de sécurité. C’est à ce moment-là que vous voudrez consulter «rinçage» ou effacer le cache DNS.
Votre ordinateur utilise-t-il un cache DNS local?
Certains de nos ordinateurs de test ont fait allumer les caches DNS locaux, et d'autres l'ont désactivé. C'était sur notre Manjaro 21 ordinateur, mais il a été activé par défaut sur Fedora 37 et Ubuntu 22.10 .
Pour déterminer si votre ordinateur Linux cache les demandes DNS, utilisez le
c'est actif
option du
systemctl
commande. Le démon qui gère le cache DNS est le gestionnaire de résolution du nom de réseau Systemd, connu sous le nom
résolu
.
Si la réponse est «active», la mise en cache DNS a lieu. Si la réponse est «inactive», ce n'est pas le cas. Sur cet ordinateur particulier, il est actif. Nous pouvons utiliser le
résoudre
Commande avec l'option statistique pour voir combien d'enregistrements sont dans le cache.
Nous pouvons voir qu'il y a 330 entrées dans le cache DNS de cet ordinateur.
Examiner votre cache DNS
La révision des entrées de cache DNS n'est pas une condition préalable pour vider le cache, et si vous n'avez aucun intérêt à le faire, vous pouvez sauter toute cette étape . Parfois, cependant, cela peut être informatif. Vous pouvez voir des entrées brouillées qui indiquent la corruption, ou vous pouvez voir des messages d'erreur liés aux problèmes de résolution de l'appareil sur votre réseau.
Maintenant, il n'y a pas de moyen simple de voir ces entrées. Nous pouvons le faire mais devons être un peu créatifs.
USR1
, ou
Signal défini par l'utilisateur numéro un
, est un
signal
qui peut être envoyé par le
tuer
et
tuer tous
Commandes. Ce signal n'a pas de sens prédéfini. Les applications sont libres d'ignorer ce signal ou de réagir de toutes les manières implémentées.
Le
résolu
le démon réagit à
USR1
En écrivant son cache dans les journaux système. Nous pouvons alors utiliser le
journalctl
commande de filtrer les entrées DNS.
Nous utiliserons le
tuer tous
commander avec
USR1
Pour envoyer le signal au
résolu
démon. Notez que même si nous utilisons le
tuer tous
commande, le
résolu
Daemon continue de courir. Ce n'est pas un signal de terminaison que nous envoyons.
Maintenant, nous allons utiliser le
journalctl
commande avec le
-U
(filtrer par
systemd
unité) Option pour extraire les entrées de journal générées par
résolu
. Nous redirigerons cette sortie en fichiers texte appelés «dns.txt».
Nous utiliserons
le
moins
Vue de fichiers
Pour afficher le contenu du fichier.
Vous pourrez trouver les mappages en cache entre les noms de domaine et Adresses IP En faisant défiler et en recherchant le texte.
Nous pouvons voir une entrée pour Google qui a une adresse IP du 216.58.212.196. Vous pouvez vérifier cela en mettant l'adresse IP dans un navigateur Web. Vous devriez voir la page d'accueil de Google Search.
Comment effacer le cache DNS sur Linux
Le rinçage du cache supprime toutes les entrées et recommence le processus de collecte. S'il y en a, cela supprime de force les entrées incorrectes et corrompues du cache.
La commande est simple; nous utilisons
résoudre
avec le
cache-caches
option.
Nous sommes remis en silence à la ligne de commande. Pour confirmer que quelque chose s'est réellement passé, nous vérifierons à nouveau les statistiques du cache DNS.
Nous pouvons voir que la taille du cache est tombée à zéro. Il augmentera avec le temps car il accumulera de nouvelles entrées.
Comment rincer le cache dnsmasq sur Linux
Le
dnsmasq
L'application fournit un cache DNS et un serveur DHCP. Il est populaire auprès des utilisateurs qui souhaitent exécuter leur propre serveur DNS, en particulier sur
Installations non-système
.
Rincer le
dnsmasq
Le cache DNS est facile. Nous devons envoyer le
Faire un coup de pouce
signal, qui indique le
dnsmasq
démon pour réinitialiser efficacement. Cela efface son cache DNS. Pour envoyer le signal, nous utilisons le
tuer tous
commande avec le
-Hup
Flag et le nom de l'application.
Rincé, avec succès
Bien sûr, si votre ordinateur ne cache pas du tout, vous n'avez rien à vérifier.
S'il cache les demandes DNS mais que tout fonctionne très bien, vous pouvez également l'ignorer. Mais si vous vivez des mises à jour lentes ou sporadiques lorsque vous parcourez le Web, ou voyez complètement les mauvaises pages Web, c'est probablement le bon moment pour effacer votre cache DNS.