Note que o Ubuntu usa systemd-resolve a partir de 17.04 e assim esta resposta não se aplica mais a versões recentes do Ubuntu. Veja " esvaziar o cache DNS no Ubuntu 17.04 e superior (18.04) "
Por padrão, o DNS não é armazenado em cache no Ubuntu < 17.04 (mas pode estar em cache na rede ou na aplicação)
Para confirmar de uma forma ou de outra se dnsmasq
está armazenando em cache, execute ps ax | grep dnsmasq
e observe o comando em execução. Aqui está um detalhamento da minha máquina padrão 13.10:
/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á vazio por padrão. Portanto, não há substituições chegando lá e apenas para verificar --cache-size=0
significa o que achamos que significa (em vez de um cache ilimitado ), man dnsmasq
mostra:
-c, --cache-size=<cachesize>
Set the size of dnsmasq's cache. The default is 150 names.
Setting the cache size to zero disables caching.
Então, enquanto dnsmasq
pode armazenar em cache o DNS, não é feito o cache da caixa. Você pode verificar sua máquina e vários diretórios de configuração para verificar se você está na mesma página.
Se você está vendo problemas de cache, isso provavelmente está acontecendo em um dos poucos locais:
- Upstream do seu computador. Alguns roteadores armazenam em cache. Muitas redes corporativas armazenam em cache o DNS. Muitos servidores DNS executados pelo ISP e usarão seus próprios caches. A única maneira de garantir um cache de rede é usar um cache que você pode atualizar manualmente. É por isso que gosto do OpenDNS.
- No aplicativo cliente (principalmente navegadores). As aplicações podem fazer todo o tipo de cache que o Ubuntu não tem efeito. Como o Firefox armazena o DNS . Como limpar o cache DNS do Chrome . Outros navegadores (e aplicativos) podem ter seus próprios mecanismos.
-
Estou raspando o barril aqui, mas talvez você tenha instalado um servidor DNS não padrão no Ubuntu, em vez de transformar o cache em dnsmasq
. Existem muitos: nscd
, DJBDNS dnscache
(também conhecido como TinyDNS), pdns
, pdnsd
, Bind9 (e suas variantes), e mais eu nem consigo lembrar. Estes serão provavelmente evidenciados em /etc/resolv.conf
(com config em / etc / resolvconf / 'para autogerir esse arquivo). A seguir, é mostrada uma consulta DNS interceptada localmente:
$ 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
Se você não estiver acessando 8.8.8.8 (ou o que você espera que seja seu servidor DNS), verifique o que você está pressionando. No meu caso, posso ver que isso é apenas dnsmasq
configurado para espelhar as consultas DNS de volta para o LXC, mas no seu caso pode estar fazendo coisas ruins em cache.
Se você tiver feito os caches listados, o processo de limpeza de cada um varia:
sudo /etc/init.d/nscd reload # nscd
sudo /etc/init.d/named restart # bind9
Em uma nota ligeiramente relacionada, veja isso para ativar o armazenamento em cache em dnsmasq
.