Notez qu'Ubuntu utilise systemd-resolve à partir de la version 17.04. Cette réponse ne s'applique donc plus aux versions récentes d'Ubuntu. Voir " Vider le cache DNS dans Ubuntu 17.04 et supérieur (18.04) "
Par défaut, le DNS n'est pas mis en cache dans Ubuntu < 17.04 (mais il peut l'être dans le réseau ou l'application).
Pour confirmer dans un sens ou dans l'autre si dnsmasq
est mis en cache, exécutez ps ax | grep dnsmasq
et regardez la commande en cours. Voici une répartition de ma machine 13.10 par défaut :
/usr/sbin/dnsmasq \\
--no-resolv \\
--keep-in-foreground \\
--no-hosts \\
--bind-interfaces \\
--pid-file=/var/run/NetworkManager/dnsmasq.pid \\
--listen-address=127.0.1.1 \\
--conf-file=/var/run/NetworkManager/dnsmasq.conf \\
**\--cache-size=0** \\
--proxy-dnssec \\
--enable-dbus=org.freedesktop.NetworkManager.dnsmasq \\
--conf-dir=/etc/NetworkManager/dnsmasq.d
/etc/NetworkManager/dnsmasq.d
est vide par défaut. Donc il n'y a pas de surcharge qui arrive ici et juste pour vérifier --cache-size=0
signifie ce que nous pensons qu'il signifie (au lieu d'une illimité cache), man dnsmasq
montre :
-c, --cache-size=<cachesize>
Set the size of dnsmasq's cache. The default is 150 names.
Setting the cache size to zero disables caching.
Alors que dnsmasq
缶 cache DNS, il n'y a pas de cache dans la boîte. Vous pouvez vérifier votre machine et les différents répertoires de configuration pour vérifier que vous êtes sur la même page.
Si vous rencontrez des problèmes de cache, cela peut se produire à plusieurs endroits :
- En amont de votre ordinateur. Certains routeurs mettent en cache. De nombreux réseaux d'entreprise mettent les DNS en cache. De nombreux fournisseurs d'accès Internet gèrent des serveurs DNS et utilisent leurs propres caches. La seule façon de se prémunir contre un cache réseau est d'utiliser un cache que vous pouvez rafraîchir manuellement. C'est pourquoi j'aime OpenDNS.
- Dans l'application cliente (notamment les navigateurs). Les applications peuvent faire toutes sortes de mises en cache qui leur sont propres et sur lesquelles Ubuntu n'a aucun effet. Comment Firefox met en cache les DNS . Comment vider le cache DNS de Chrome . D'autres navigateurs (et applications) peuvent avoir leurs propres mécanismes.
-
Je gratte le tonneau ici, mais peut-être avez-vous installé un serveur DNS non standard dans Ubuntu au lieu d'activer la mise en cache dans la page d'accueil. dnsmasq
. Il y en a beaucoup : nscd
, DJBDNS dnscache
(alias TinyDNS), pdns
, pdnsd
Bind9 (et ses variantes), et d'autres dont je ne me souviens même pas. Ceux-ci vont probablement se manifestent dans /etc/resolv.conf
(avec une configuration dans /etc/resolvconf/` pour autogénérer ce fichier). L'image suivante montre une requête DNS interceptée localement :
$ nslookup askubuntu.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Non-authoritative answer:
Name: askubuntu.com
Address: 198.252.206.24
Si vous ne tombez pas sur 8.8.8.8 (ou sur ce que vous pensez être votre serveur DNS), vérifiez ce que vous tombez à la place. Dans mon cas, je peux voir que c'est juste dnsmasq
configuré pour renvoyer les requêtes DNS pour LXC, mais dans votre cas, il pourrait faire de mauvaises choses en cache.
Si vous avez fait l'un des caches listés, la procédure pour les vider varie :
sudo /etc/init.d/nscd reload # nscd
sudo /etc/init.d/named restart # bind9
Sur une note légèrement connexe, voir ceci pour activer la mise en cache dans dnsmasq
.