¿Cómo configurar un servidor de almacenamiento en caché de DNS local en Linux?

Las búsquedas de DNS normalmente no son algo de lo que deba preocuparse. A veces deberías!


Si el ISP de su hogar u oficina tiene servidores de nombres lentos o su servidor está realizando muchas búsquedas, entonces necesita un servidor DNS de almacenamiento en caché local.

¿Cómo me ayudará un servidor DNS de almacenamiento en caché??

Un servidor DNS de almacenamiento en caché funciona realizando todas las consultas DNS que realiza su sistema y luego guardando o almacenando en caché los resultados en la memoria. Una vez que los resultados se almacenan en la memoria caché cada vez que realiza una solicitud duplicada de un dominio, el resultado se publicará casi instantáneamente desde la memoria.

Esto puede no parecer demasiado importante, pero si los servidores DNS de su ISP se toman su tiempo para responder, ralentizará considerablemente su navegación por Internet. Por ejemplo, la página de inicio del canal de noticias de EE. UU. MSNBC necesita ponerse en contacto con más de 100 nombres de dominios únicos para cargar correctamente. Si los servidores de nombres de su ISP tardan incluso una décima de segundo más de lo normal en responder, eso significa que la página tardará 10 segundos más en terminar de cargarse.

Un servidor DNS de almacenamiento en caché local no solo ayudará en su hogar u oficina, sino también en su servidor. Si tiene una aplicación que realiza muchas búsquedas de DNS, por ejemplo, un servidor de correo electrónico ocupado que ejecuta software anti-spam, recibirá un aumento de velocidad de un servidor DNS de almacenamiento en caché local.

Finalmente, systemd-resolve admite los estándares DNS más recientes y seguros DNSSEC y DNSoverTLS o Punto. Estos ayudan a mantenerlo seguro y a mantener su privacidad en línea.

Qué DNS de almacenamiento en caché local usaremos?

El servidor DNS de almacenamiento en caché local que habilitaremos y configuraremos en esta guía es resuelto por el sistema. Esta herramienta es parte de systemd conjunto de herramientas de gestión del sistema. Si su sistema está usando systemd, y casi todas las principales distribuciones de Linux lo están, entonces ya tendrá instalado systemd-resolve pero no se está ejecutando. La mayoría de las distribuciones no usan systemd-resolve aunque esté presente.

systemd-resolve funciona ejecutando un pequeño servidor DNS de almacenamiento en caché local que configuraremos para comenzar en el arranque. Luego reconfiguraremos el resto del sistema para dirigir sus consultas DNS al sistema de almacenamiento en caché local DNS resuelto d.

Cómo verificar si ya está usando systemd-resolve?

Algunas distribuciones de Linux ya usan systemd-resolve por defecto, como Ubuntu 19.04.

Si ya está ejecutando systemd-resolve, entonces no necesita habilitarlo o configurar su sistema para usarlo. Sin embargo, es posible que deba asegurarse de que las herramientas de administración de red como NetworkManager estén configuradas correctamente, ya que pueden ignorar la configuración de red del sistema.

Antes de continuar con la siguiente sección, ejecute el siguiente comando para verificar si ya está ejecutando systemd-resolve:

Estado $ resolvectl

Si recibes el mensaje:

Estado $ resolvectl
Error al obtener datos globales: Unidad dbus-org.freedesktop.resolve1.service no encontrada.

Usted está no ejecutando systemd-resolve y debería pasar a la siguiente sección. Si, en cambio, ve una salida que comienza con algo como lo siguiente:

Global
Configuración de LLMNR: sí
Configuración de multidifusión DNS: sí
Configuración DNSOverTLS: oportunista
Configuración DNSSEC: permitir rebajar
DNSSEC compatible: no
Servidor DNS actual: 1.1.1.1
Servidores DNS: 1.1.1.1
1.0.0.1

Entonces ya está ejecutando systemd-resolve y no necesita habilitarlo.

Habilitar y configurar systemd-resolve

No necesitamos instalar systemd-resolve ya que ya forma parte de systemd. Todo lo que tenemos que hacer es iniciarlo para que el servidor de almacenamiento en caché DNS se ejecute y luego habilitarlo para que se inicie en el arranque.

Ejecute el siguiente comando desde un indicador de comandos de shell ya que un sudo habilitó a un usuario no root para iniciar systemd-resolve:

$ sudo systemctl start systemd-resolve.service

A continuación, ejecute el siguiente comando para iniciar systemd-resolve en el arranque del sistema:

$ sudo systemctl enable systemd-resolve.service

El último elemento de configuración que queda es establecer los servidores DNS que systemd-resolve consultará a los dominios resueltos. Aquí hay muchas opciones, pero cualquiera de los siguientes pares es gratuito, rápido y ambos admiten DNSSEC y DoT:

DNS público de Google

  • 8.8.8.8
  • 8.8.4.4

DNS público de Cloudflare

  • 1.1.1.1
  • 1.0.0.1

Abra el archivo de configuración resuelto systemd principal con su editor de texto favorito, aquí he usado nano:

$ sudo nano /etc/systemd/resolved.conf

Editar la línea comienza

# DNS =

Para que se enumeren un par de direcciones IP. Aquí se muestran los servidores DNS de Cloudflare:

DNS = 1.1.1.1 1.0.0.1

Guarde y salga del editor de texto. Ahora necesitamos reiniciar systemd-resolve para que comience a usar los servidores de nombres:

$ sudo systemctl restart systemd-resolve.service

systemd-resolve ahora se está ejecutando y está listo para comenzar a acelerar y proteger las consultas DNS tan pronto como configuremos el sistema para comenzar a usarlo.

Configuración del sistema para usar systemd-resolve

Su sistema se puede configurar de varias maneras para usar systemd-resolve, pero veremos dos configuraciones que cubren la mayoría de los casos de uso. La primera es la configuración recomendada y la segunda es la configuración de compatibilidad. La diferencia entre los dos es cómo se gestiona el archivo /etc/resolv.conf.

El archivo /etc/resolv.conf contiene las direcciones IP de los servidores de nombres que los programas del sistema deberían consultar. Los programas que necesitan realizar consultas DNS consultarán este archivo para averiguar con qué servidores deben comunicarse para realizar esas consultas..

Los dos modos de systemd resuelto se centran en cómo se gestionan los contenidos de este archivo. En el modo recomendado, /etc/resolv.conf se convierte en un enlace simbólico a /run/systemd/resolve/stub-resolv.conf. Este archivo es administrado por systemd-resolve y por lo tanto systemd-resolve administra la información de configuración de DNS para todos los demás programas en el sistema.

Esto puede causar problemas cuando otros programas intentan administrar el contenido de /etc/resolv.conf. El modo de compatibilidad deja /etc/resolv.conf en su lugar permitiendo que otros programas lo administren mientras el sistema resuelto utiliza esa información DNS. En este modo, los otros programas que administran /etc/resolv.conf deben configurarse para establecer 127.0.0.53 como el servidor de nombres del sistema en /etc/resolv.conf.

Configurar el modo recomendado

Cuando configuramos este modo, systemd-resolve administrará /etc/resolv.conf convirtiéndolo en un enlace simbólico a /run/systemd/resolve/stub-resolv.conf. Tendremos que hacer esto a mano, ya que no se configura automáticamente.

Primero, elimine o cambie el nombre del archivo /etc/resolv.conf existente. Cambiar el nombre es una mejor opción para eliminarlo, ya que tendrá el mismo efecto, pero siempre puede consultar el original si necesita la información que contiene. Aquí, cambiamos el nombre de /etc/resolv.conf usando el comando mv:

$ sudo mv /etc/resolv.conf /etc/resolv.conf.original

A continuación, cree el enlace simbólico:

$ sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Finalmente, reinicie systemd-resolve:

$ sudo systemctl restart systemd-resolve.service

Configurar el modo de compatibilidad

En este modo, debe asegurarse de que los servicios del sistema consulten el servidor de nombres local que se inició systemd-resolve. Abra /etc/resolv.conf en un editor de texto, aquí se usa el editor nano:

$ sudo nano /etc/resolv.conf

Elimine las líneas que encuentre que comiencen con el “servidor de nombres” y agregue esta línea:

servidor de nombres 127.0.0.53

Esta edición puede ser modificada por cualquier otro programa que esté administrando /etc/resolv.conf. Si este es el caso, deberá configurar esos programas para usar este servidor de nombres para que la edición sea permanente.

Sistema de depuración resuelto d

Descubrir exactamente cómo su sistema realiza consultas DNS después de que haya realizado estos cambios puede ser difícil. La forma más efectiva de observar lo que está sucediendo es poner systemd-resolve en modo de depuración y ver el archivo de registro.

systemd-resolve es un servicio systemd, lo que significa que se puede poner fácilmente en modo de depuración creando un archivo de servicio que contiene la configuración de depuración. El siguiente comando creará el archivo correcto en la ubicación correcta:

$ sudo systemctl edit systemd-resolve.service

Pegue las siguientes líneas en el editor, luego guarde y salga:

[Servicio]
Entorno = SYSTEMD_LOG_LEVEL = depurar

El servicio resuelto por systemd se volverá a cargar automáticamente al guardar y salir correctamente.

Abra una segunda terminal en el mismo servidor y siga el registro de journald para el servicio resuelto systemd:

$ sudo journalctl -f -u systemd-resolve

Una línea que comienza “Usando el servidor DNS” por ejemplo:

Usando el servidor DNS 1.1.1.1 para la transacción 19995.

Le informa exactamente qué servidor DNS se está utilizando para las consultas DNS. En este caso, se consultó el servidor DNS de Cloudflare en 1.1.1.1.

Las líneas que son “Falta caché” indican que el nombre de dominio no se ha almacenado en caché. P.ej.:

Cache miss por ejemplo.com EN SOA

Líneas que comienzan con “Impacto positivo de caché”, por ejemplo:

Impacto positivo en caché para example.com EN A

Indique que systemd-resolve ha consultado este dominio anteriormente y que la respuesta se sirvió desde el caché en la memoria local.

Debe deshabilitar el modo de depuración cuando haya terminado de trabajar systemd-resolve ya que creará un archivo de registro muy grande en un sistema ocupado. Puede deshabilitar el registro de depuración ejecutando:

$ sudo systemctl edit systemd-resolve.service

y eliminando las dos líneas, agregaste y luego guardaste y saliste del editor.

Usar consultas DNS seguras

systemd-resolve es uno de los pocos servidores DNS actualmente disponibles que admiten DNSSEC y DNSoverTLS. Ambos ayudan a garantizar que esté recibiendo información genuina de DNS (DNSSEC) y que nadie pueda espiar su tráfico DNS a medida que pasa por Internet. (Punto).

Estas opciones se habilitan fácilmente abriendo el archivo de configuración principal de systemd-resolve con un editor de texto:

$ sudo nano /etc/systemd/resolved.conf

Y editando el archivo para que se establezcan las siguientes dos líneas:

DNSSEC = permitir downgrade
DNSOverTLS = oportunista

Guarde y salga del editor y luego vuelva a cargar systemd-resolve:

$ sudo systemctl restart systemd-resolve.service

Mientras el servidor DNS que haya configurado admita DNSSEC y DoT, sus consultas DNS estarán protegidas. Los servidores DNS públicos de Google y Cloudflare son compatibles con estos protocolos.

Conclusión

Su sistema ahora está configurado para realizar consultas DNS de manera rápida y eficiente, incluso cuando el servidor DNS de su ISP no responde tan rápido como debería. Además, su vida digital es más segura ya que está utilizando los protocolos DNS más recientes y seguros para proteger sus consultas DNS.

Si eres un entusiasta de Linux y quieres aprender más, echa un vistazo a este fantástico curso por Internet.

TAGS:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map