Como ler o conteúdo do cache DNS local?

31

Eu sei que no Windows eu posso emitir ipconfig /displaydnse vejo o conteúdo do cache do DNS local.

Como posso listar o conteúdo do cache do DNS no Linux?

Gostaria de obter o máximo possível da solução entre distros.

Hanan N.
fonte
4
Pelo que sei, não há cache DNS mantido no cliente no Linux (resolvedor), a menos que o sistema esteja usando o cache local apenas no serviço DNS no cliente.
Nikhil Mulley
Você sempre tem o /etc/hostsarquivo que pode conter entradas geradas pelos serviços de lista negra do DNS.

Respostas:

15

Antes systemd, não havia quase nenhum cache de DNS no nível do sistema operacional

Antes systemdnão havia cache DNS no nível do sistema operacional em Linux (e provavelmente o mais Unix), a menos que nscdou dnsmasqfoi instalado e funcionando.

Mesmo assim, o recurso de cache do DNS nscdfoi desativado por padrão no Debian, pelo menos, simplesmente porque está quebrado .

Quanto ao dnsmasq, o cache parece ocorrer na RAM por padrão.

Serge Stroobandt
fonte
2
Atualmente, muitos sistemas usam dnsmasqpor padrão, portanto, o unix.stackexchange.com/q/162973/79839 pode ser útil.
pintainhos
1
E estes dias, qualquer coisa usando systemdprovavelmente vai ter systemd-resolvedem execução por padrão, que faz resultados DNS de cache com base no seu TTL
de Drew
9

nscdé o daemon de armazenamento em cache do serviço de nomes. Esse é o utilitário que Linux, Solaris e outros usam para armazenar em cache as pesquisas do serviço de nomes. O serviço de nomes, nesse caso, é um termo genérico, não estritamente limitado à resolução do host, mas também usuários, grupos etc.

Não conheço uma maneira de ver o conteúdo real do cache, embora você possa exibir estatísticas com /usr/sbin/nscd -g.

Isso pode pelo menos mostrar a eficiência do seu cache, embora não seja exatamente o que ele está resolvendo.

Você pode ter outras opções se estiver usando uma ferramenta de cache alternativa, como DNSMASQ.

Tim Kennedy
fonte
3

Se você estiver usando nscd, poderá visualizar o conteúdo (e possivelmente outro lixo), mostrando as seqüências ASCII do arquivo de cache binário. No Debian / Ubuntu, esse arquivo é /var/cache/nscd/hostspara o cache de hosts / DNS, para que você possa executarstrings /var/cache/nscd/hosts para ver os hosts no cache.

Observe que esse é um hack total, pois aparentemente não há uma maneira adequada de inspecionar o nscdcache sem decodificar o formato binário.

SteveK
fonte