258 votes

Comment puis-je effacer le cache DNS ?

Je viens de mettre à jour l'enregistrement DNS ( ns1 , ns2 , ns3.myhostingcompany.com ) pour un site que j'ai hébergé, mais je reçois toujours la page de stationnement du bureau d'enregistrement du domaine.

J'aimerais voir si le problème vient des enregistrements DNS mis en cache par Ubuntu. Existe-t-il un moyen de vider le cache DNS d'Ubuntu ? (si une telle chose existe ?)

15voto

Rex M Points 80372

sudo /etc/init.d/nscd restart

http://www.ubuntugeek.com/howto-clearflush-dns-cache-in-ubuntu.html

Vous pouvez également vérifier si vos changements de DNS se sont propagés en utilisant dig et en effectuant une recherche sur un autre serveur que vos serveurs DNS par défaut. Dans ce cas, il s'agit de google DNS.

dig @8.8.8.8 example.com

11voto

Mufaka Points 54

Personnellement, je utiliser OpenDNS et utiliser leurs Fonction de vérification du cache pour forcer un rafraîchissement juste pour être sûr que les changements fonctionnent mais vous ne pouvez pas garantie ils seront actualisés pour vos utilisateurs dans les 48 heures.

Le DNS est une bête lente. La patience vous permettra de rester sain d'esprit.

7voto

Mint Points 349

Si vous utilisez nscd :

sudo /etc/init.d/nscd restart

Il convient de mentionner que ce n'est peut-être pas le système d'exploitation qui le met en cache. Tout le monde aime mettre en cache les DNS... Quelques tests :

Vérifiez si c'est la nouvelle ou l'ancienne IP. La plupart des navigateurs mettent également les DNS en cache, donc si vous n'avez pas redémarré Chromium ou autre, il se peut que vous ne voyiez pas la dernière adresse IP.

ping yourdomain.com

Changez votre serveur de noms local dans le fichier /etc/resolv.conf pour un autre fournisseur, google ou autre, par exemple :

nameserver 8.8.8.8
nameserver 4.2.2.2

Et puis recommencez.

Vérifiez que votre routeur ne met pas en cache les DNS sous quelque forme que ce soit. (Varie selon le routeur/firmware/etc)

Enfin, la patience. Les DNS peuvent prendre un peu de temps pour se propager sur Internet.

5voto

Benoit Points 7337

Toutes les réponses ci-dessus oublient une chose importante dans la résolution de nom : généralement, les serveurs DNS auxquels vous demandez la résolution de nom ne sont pas ceux qui détiennent les enregistrements eux-mêmes (le serveur faisant autorité). Comme chaque enregistrement DNS est accompagné d'une valeur de Time To Live qui obligera chaque serveur DNS dans la chaîne de résolution à faire du cache pendant le nombre de secondes mentionné par cette valeur. Ainsi, non seulement vous pouvez mettre en cache votre machine, mais le résultat de la recherche du nom sera CERTAINEMENT mis en cache quelque part sur un serveur que vous ne contrôlez pas.

La seule solution pour être immédiatement informé d'un changement d'enregistrement de nom est d'utiliser une valeur TTL de 0 lors de la création/mise à jour de l'entrée dans le serveur de nom faisant autorité. Mais cela signifie que pour chaque résolution de nom, le serveur sera touché, ce qui n'est généralement pas autorisé par les bureaux d'enregistrement. Par exemple, ils peuvent fournir une liste de valeurs TTL prédéfinies parmi lesquelles vous pouvez choisir.

Je gère différents noms de domaine et pour m'assurer que les changements sont bien appliqués dans les serveurs de noms faisant autorité, j'utilise un outil appelé dnstracer qui peut montrer le résultat de la recherche sur chaque serveur à partir de la racine du DNS.

En conclusion, même sans solution de mise en cache des DNS, il y aura toujours un délai entre le moment où vous modifiez les enregistrements DNS et celui où le changement est visible sur un PC. Ce délai dépend fortement de la TTL des enregistrements et du nombre de serveurs DNS entre votre PC et le serveur de noms faisant autorité.

2voto

j0inty Points 31

J'ai utilisé la commande suivante pour vider le cache DNS sur ma boîte ubuntu 12.10 et cela a fonctionné de manière fantastique.

sudo kill -HUP $(pgrep dnsmasq)

Un autre signal utile est le SIGUSR1 qui transmet une petite statistique à syslog ou, comme on l'indique, à la note de man dnsmasq :

En mode --no-daemon ou lorsque la journalisation complète est activée (-q), un vidage complet du contenu du cache est effectué. complet du contenu du cache est effectué.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X