GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo vaciar la caché de DNS en Linux

DNS, abreviatura de Sistema de nombres de dominio se utiliza en sistemas Linux para recuperar direcciones IP asociadas con nombres.

Por ejemplo, cuando realiza una solicitud de ping, es muy probable que esté utilizando el protocolo DNS para recuperar la IP del servidor.

En la mayoría de los casos, las solicitudes de DNS que realiza se almacenan en un caché local en su sistema operativo.

Sin embargo, en algunos casos, es posible que desee vaciar la caché de DNS de su servidor .

Puede deberse a que cambió la IP de un servidor en su red y desea que los cambios se reflejen de inmediato.

En este tutorial, aprenderá cómo puede vaciar fácilmente el caché de DNS en Linux , ya sea que esté usando systemd o dnsmasq.

Requisitos

Para poder vaciar su caché de DNS, debe saber cómo funciona la resolución de DNS en su sistema Linux .

Dependiendo de su distribución, es posible que se enfrente a diferentes servicios de Linux que actúan como un resolutor de DNS .

Antes de comenzar, es muy importante que sepa cómo ocurrirá realmente la resolución de DNS en su sistema operativo.

Si está leyendo este artículo, está buscando vaciar la memoria caché de su sistema de resolución de DNS local . Pero como puede ver, hay muchos cachés diferentes desde su aplicación local hasta los servidores DNS reales de Internet.

En este tutorial, nos vamos a centrar en el cuadro amarillo que significa que el sistema de resolución de stubs local está implementado en todos los sistemas Linux.

Encontrar su sistema de resolución de DNS local

En la mayoría de los sistemas Linux, el sistema de resolución de DNS es "systemd-resolved" o dnsmasq. Para saber si se trata de uno u otro, puede ejecutar el siguiente comando

$ sudo lsof -i :53 -S

Nota :entonces, ¿por qué estamos ejecutando este comando? Como el DNS se ejecuta en el puerto 53, estamos buscando los comandos asociados con el servicio que se ejecuta en el puerto 53, que es su resolución de DNS local o "stub".

Como puede ver, en una distribución reciente de Ubuntu 20.04, el servicio que escucha en el puerto 53 está resuelto por systemd. Sin embargo, si ejecutara este comando en Ubuntu 14.04, obtendría un resultado diferente.

En este caso, el DNS local usado en dnsmasq y los comandos son obviamente diferentes.

Al conocer esta información, puede ir al capítulo que le interese. Si tuviera una salida diferente en su servidor, asegúrese de dejar un comentario para que actualicemos este artículo.

Vaciar DNS utilizando systemd-resolved

La forma más fácil de vaciar el DNS en Linux, si usa systemd-resolved, es usar el comando "systemd-resolve" seguido de "–flush-caches".

Como alternativa, puede usar el comando "resolvectl" seguido de la opción "flush-caches".

$ sudo systemd-resolve --flush-caches

$ sudo resolvectl flush-caches

Para verificar que su caché de DNS de Linux se vació realmente, puede usar las “–estadísticas ” que resaltará el “Tamaño de caché actual” en la sección “Caché”.

$ sudo systemd-resolve --statistics

¡Felicitaciones, has vaciado con éxito tu caché de DNS en Linux!

Vaciar caché de DNS usando señales

Se puede lograr otra forma de vaciar la caché de DNS enviando una señal "USR2" al servicio "resuelto por el sistema" que le indicará que vacíe su caché de DNS.

$ sudo killall -USR2 systemd-resolved

Para comprobar que la caché de DNS se vació realmente, puede enviar un "USR1 ” señal al servicio resuelto por systemd. De esta manera, volcará su estado actual en el diario systemd.

$ sudo killall -USR1 systemd-resolved

$ sudo journalctl -r -u systemd-resolved

¡Impresionante, tu caché de DNS se vació correctamente usando señales!

Vaciar DNS usando dnsmasq

La forma más fácil de vaciar su resolución de DNS, cuando usa dnsmasq, es enviar una señal "SIGHUP" al proceso "dnsmasq" con el comando "killall".

$ sudo killall -HUP dnsmasq

De manera similar a systemd-resolved, puede enviar un "USR1 ” al proceso para que imprima sus estadísticas en el archivo de registro “syslog”. Usando un simple comando de "cola", podemos verificar que el caché de DNS realmente se vació.

¿Y si tuviera que ejecutar dnsmasq como un servicio?

Dnsmasq ejecutando un servicio

En algunos casos, puede ejecutar "dnsmasq" como un servicio en su servidor. Para verificar si este es el caso o no, puede ejecutar el comando "systemctl" o el "servicio" si está en un sistema SysVinit.

$ sudo systemctl is-active dnsmasq

# On SysVinit systems
$ sudo service dnsmasq status

Si nota que dnsmasq se está ejecutando como un servicio, puede reiniciarlo usando el habitual "systemctl ” o “servicio ” comandos.

$ sudo systemctl restart dnsmasq

# On SysVinit systems
$ sudo service dnsmasq restart

Después de ejecutar esos comandos, asegúrese siempre de que sus servicios se reiniciaron correctamente.

$ sudo systemctl status dnsmasq

# On SysVinit systems
$ sudo service dnsmasq status

Conclusión

En este tutorial, aprendió cómo puede vaciar rápida y fácilmente su caché de DNS en Linux.

Usando este artículo, puede borrar fácilmente el caché para los resolutores locales systemd y dnsmasq. Sin embargo, debes saber que existe otro DNS común, llamado bind , que se omite deliberadamente en este artículo.

Próximamente se publicará otro artículo sobre la configuración de un servidor de caché DNS local mediante BIND.

Si está interesado en las consultas de DNS y cómo se realizan, puede usar este artículo muy útil de "zwischenzugs" llamado Anatomía de una consulta de DNS . El artículo es particularmente útil si desea depurar consultas de DNS y se pregunta cómo se realizan.

También si está interesado en Administración del sistema Linux , tenemos una sección completa al respecto en el sitio web, así que asegúrese de consultarla.


Linux
  1. Cómo borrar la caché de memoria en Linux

  2. Cómo vaciar la caché de DNS en Ubuntu y LinuxMint

  3. Linux:¿cómo anular un servidor Vm Dns?

  4. Almacenamiento en caché de DNS en Linux

  5. ¿Cómo vaciar la memoria caché de la CPU para una región de espacio de direcciones en Linux?

Cómo vaciar la caché de DNS en Ubuntu 20.04

Cómo vaciar la caché de DNS en Ubuntu

Cómo borrar la caché de DNS en Ubuntu

¿Cómo vaciar la caché de DNS en Linux?

Cómo vaciar la caché de DNS en Ubuntu

Cómo instalar y configurar el servidor DNS en Linux