GNU/Linux >> Tutoriales Linux >  >> Linux

Almacenamiento en caché de DNS en Linux

Aquí hay otros dos paquetes de software que se pueden usar para el almacenamiento en caché de DNS en Linux:

  • dnsmasq
  • enlazar

Después de configurar el software para el reenvío y el almacenamiento en caché de DNS, configure la resolución de DNS del sistema en 127.0.0.1 en /etc/resolv.conf.

Si su sistema usa NetworkManager, puede intentar usar el dns=dnsmasq opción en /etc/NetworkManager/NetworkManager.conf o puede cambiar la configuración de su conexión a Automática (solo dirección) y luego usar un script en el /etc/NetworkManager/dispatcher.d directorio para obtener el servidor de nombres DHCP, configúrelo como el servidor de reenvío de DNS en su software de caché de DNS y luego active una recarga de configuración.


En Linux (y probablemente en la mayoría de Unix), no hay almacenamiento en caché de DNS a nivel de sistema operativo a menos que nscd esté instalado y ejecutándose. Incluso entonces, la función de almacenamiento en caché de DNS de nscd está deshabilitada de forma predeterminada al menos en Debian porque está rota. El resultado práctico es que su sistema Linux muy probablemente no realiza ningún almacenamiento en caché de DNS a nivel del sistema operativo.

Podría implementar su propio caché en su aplicación (como lo hicieron con Squid, según el comentario de diegows), pero recomendaría no hacerlo. Es mucho trabajo, es fácil equivocarse (¡¡nscd se equivocó!!!), probablemente no se pueda ajustar tan fácilmente como un caché de DNS dedicado y duplica la funcionalidad que ya existe fuera de su aplicación.

Si un usuario final que usa su software necesita tener almacenamiento en caché de DNS porque la carga de consultas de DNS es lo suficientemente grande como para ser un problema o el RTT al servidor DNS externo es lo suficientemente largo como para ser un problema, puede instalar un servidor DNS de almacenamiento en caché como Unbound en la misma máquina que su aplicación, configurado para almacenar en caché las respuestas y reenviar errores a los solucionadores de DNS normales.


Aquí tienes un ejemplo de almacenamiento en caché de DNS en Debian usando dnsmasq:Almacenamiento en caché de DNS local, artículo en ManageaCloud.

Resumen de configuración:

/etc/predeterminado/dnsmasq

# Ensure you add this line
DNSMASQ_OPTS="-r /etc/resolv.dnsmasq"

/etc/resolv.dnsmasq

# Your preferred servers
nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 2001:4860:4860::8888

/etc/resolv.conf

nameserver 127.0.0.1

Luego simplemente reinicie dnsmasq.

Prueba comparativa con DNS 1.1.1.1:

for i in {1..100}; do time dig slashdot.org @1.1.1.1; done 2>&1 | grep ^real | sed -e s/.*m// | awk '{sum += $1} END {print sum / NR}'

Prueba comparativa con el reenviador DNS de almacenamiento en caché local (dnsmasq):

for i in {1..100}; do time dig slashdot.org; done 2>&1 | grep ^real | sed -e s/.*m// | awk '{sum += $1} END {print sum / NR}'

Linux
  1. Configuración del servidor DNS solo de caché independiente en RHEL 7 Linux

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

  3. comando linux mv

  4. Linux du comando

  5. Reenvío de DNS condicional con named en Linux

Cómo borrar o vaciar la caché de DNS en Linux

Cómo vaciar la caché de DNS en Linux

Linux frente a Unix

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

Cómo instalar y configurar el servidor DNS en Linux

Cambiador de archivos de hosts en linux