¿Cómo leer el contenido de la caché de DNS local?

31

Sé que en Windows puedo emitir ipconfig /displaydnsy veo el contenido de caché del DNS local.

¿Cómo puedo enumerar el contenido de caché del DNS en Linux?

Me gustaría obtener la mayor cantidad de solución de distribución cruzada posible.

Hanan N.
fuente
44
Hasta donde yo sé, no hay una caché de DNS mantenida en el cliente en Linux (resolver) a menos que el sistema esté usando el servicio de almacenamiento en caché local solo en el cliente.
Nikhil Mulley
Siempre tiene el /etc/hostsarchivo que puede contener entradas generadas por los servicios de listas negras de DNS.

Respuestas:

15

Antes de systemd, casi no había almacenamiento en caché de DNS a nivel del sistema operativo

Antes systemdno había almacenamiento en caché de DNS a nivel del sistema operativo en Linux (y probablemente en la mayoría de Unix), a menos que se haya instalado nscdo dnsmasqse esté ejecutando.

Incluso entonces, la función de almacenamiento en caché de DNS nscdse deshabilitó de forma predeterminada en Debian al menos, simplemente porque está rota .

En cuanto a dnsmasq, el almacenamiento en caché parece ocurrir en la RAM de forma predeterminada.

Serge Stroobandt
fuente
2
En la actualidad, muchos sistemas se usan dnsmasqde manera predeterminada, por lo que unix.stackexchange.com/q/162973/79839 podría ser útil.
pollitos
1
Y en estos días, todo systemdlo que esté usando probablemente se systemd-resolvedejecutará de manera predeterminada, lo que almacena en caché los resultados de DNS en función de su TTL
Drew
9

nscdes el servicio de nombres de almacenamiento en caché de demonio. Esta es la utilidad que Linux, Solaris y otros utilizan para almacenar en caché las búsquedas de servicios de nombres. Servicio de nombres en este caso es un término genérico, no estrictamente limitado a la resolución del host, sino también a usuarios, grupos, etc.

No conozco una forma de ver el contenido real de la memoria caché, aunque puede mostrar estadísticas con /usr/sbin/nscd -g .

Eso al menos puede mostrarle qué tan eficiente es su caché, aunque no exactamente lo que está resolviendo.

Es posible que tenga otras opciones si está utilizando una herramienta de almacenamiento en caché alternativa, como DNSMASQ.

Tim Kennedy
fuente
3

Si está utilizando nscd, puede ver el contenido (y posiblemente alguna otra basura), mostrando las cadenas ASCII del archivo de caché binario. En Debian / Ubuntu, ese archivo es /var/cache/nscd/hostspara el host / caché DNS, por lo que puede ejecutarstrings /var/cache/nscd/hosts para ver los hosts en caché.

Tenga en cuenta que este es un truco total ya que aparentemente no hay una forma adecuada de inspeccionar el nscdcaché sin decodificar el formato binario.

SteveK
fuente