Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Linux Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

DNSmasq puede utilizarse para almacenar en caché las peticiones DNS de las distribuciones Linux. sin embargo, puede resultar un poco complicado.

La caché DNS funciona para acelerar el procedimiento de búsqueda DNS que convierte el nombre de dominio de un sitio web en su dirección IP asociada. Cuando varios usuarios de su red visitan la misma dirección web, la utilización del servidor caché DNS local puede reducir el tiempo que tarda en cargarse la web.

Veamos primero qué es el Caché DNS.

¿Qué es el almacenamiento en caché DNS?

El DNS es utilizado por Internet para realizar un seguimiento de todos los sitios en línea de acceso público y sus direcciones IP relacionadas. Puede compararse con una guía telefónica. El uso del DNS evita que tengamos que memorizar la IP de cada sitio, lo que es necesario para que la infraestructura de red interactúe con los sitios de Internet.

Cada vez que solicita al motor de búsqueda que le muestre una página web, esto es lo que realmente ocurre entre bastidores.

Aunque su sistema tenga acceso a un gran número de servidores DNS externos, la cuestión es que disponer de una réplica central del DNS sigue acelerando la transmisión y la resolución. Aquí es cuando entra en juego el almacenamiento en caché del DNS.

dnscache

Antes de enviar la solicitud a la web, la caché DNS se encarga de la resolución de identidades para los dominios a los que se ha accedido recientemente y con frecuencia, en un esfuerzo por agilizar mucho más el procedimiento.

Se accede al servidor DN S cada vez que es necesario resolver una dirección IP a un nombre de dominio. Esto puede suponer una carga adicional para el servidor DNS, sobre todo si el sitio web recibe muchas solicitudes simultáneamente.

Se utiliza una caché DNS para disminuir las solicitudes DNS y los tiempos de respuesta. Las direcciones IP resueltas junto con los detalles del host se guardan localmente. En lugar de iniciar una nueva consulta DNS, el resultado se recupera de la memoria caché DNS la próxima vez que haya que resolver la IP o el nombre de dominio.

¿Cómo ayuda la memoria caché DNS a solucionar los problemas intermitentes de resolución DNS en las instancias de Amazon EC2?

La mayoría de los sistemas Linux no utilizan una memoria caché DNS local. Esto implica que todas las solicitudes DNS se envían directamente a la resolución DNS autoritativa proporcionada por Amazon, que tiene una limitación en cuanto al número de solicitudes que puede procesar a la vez. Los problemas de resolución DNS se producen cuando hay muchas solicitudes.

El despliegue de una caché DNS local en el sistema le ayudará a reducir la utilización de la CPU y de la red a la vez que evita errores de resolución DNS. Una caché DNS local responde a las consultas realizadas a recursos DNS externos como Amazon RDS y S3.

El protocolo DHCP es utilizado durante el lanzamiento por las instancias de Amazon EC2 conectadas a Amazon VPC para solicitar una dirección de servidor DNS.

dnsaws

Cuando emplea Amazon VPC para construir una nube privada virtual, Route 53 DNS Resolver utiliza de forma efectiva un resolver en la VPC para responder a las solicitudes de DNS de las instancias EC2 que se ejecutan bajo direcciones web locales de Amazon VPC y entradas en zonas administradas de forma privada. El resolvedor realiza búsquedas recurrentes en los servidores DNS públicos para todas las direcciones web adicionales.

Una caché DNS sirve como registro transitorio de consultas DNS anteriores que nuestro sistema puede examinar rápidamente al intentar acceder a un sitio web en línea. Mantiene un registro de todas las sesiones existentes y posteriores. Esta caché DNS facilita la resolución de dominios y evita errores con las instancias Linux de Amazon EC2.

Muchos usuarios suelen utilizar el servicio Route 53 de Amazon para DNS cuando acceden a AWS. Es realmente fácil de usar y casi gratuito. Pero hay una serie de razones que podrían influir en la decisión del usuario de utilizar un servidor DNS local.

Aunque bind9 sigue siendo una gran opción para configurar un servidor DNS caché local, dnsmasq es mucho más sencillo de instalar y configurar tanto en instancias EC2 como en una máquina local.

¿Qué es dnsmasq?

DNSmasq es una herramienta relacionada con Linux que soporta DNS, DHCP, TFTP y caché DNS. Está hecha para ser compacta y ligera, lo que la hace ideal para redes y cortafuegos con menos limitaciones de recursos.

Es increíblemente sencillo de instalar y configurar. Para configurar DNS y DHCP para subredes, dnsmasq es una solución flexible y práctica.

Es posible configurar estos identificadores asignados por DHCP y las instrucciones asociadas para cada servidor o para un controlador subyacente. Tanto las opciones dinámicas como las estáticas de DHCP son compatibles con dnsmasq. Es portátil y tiene capacidad para gestionar DNS y DHCP para al menos 1.000 clientes.

Cuando se recibe una consulta DNS, dnsmasq responde desde una caché local o la transmite a un servidor DNS autoritativo. Además de responder a las solicitudes DNS de direcciones con configuración DHCP, comprueba el contenido del archivo /etc/hosts para identificar los nombres de host locales que no figuran en el DNS público.

Utilizar la herramienta dnsmasq en lugar de la caché DNS integrada del navegador mejora enormemente el rendimiento de la navegación por Internet. Es ideal para un entorno integrado con recursos limitados porque es muy sencillo de configurar y necesita muy poco espacio en disco.

Características de dnsmasq

  • Es sencillo integrar servidores DNS internos utilizando dnsmasq configurándolo para que transmita determinadas consultas de resolución de nombres de dominio a determinados servidores autoritativos.
  • Se reduce la carga de trabajo del servidor y se mejora la fiabilidad utilizando el servidor DNS local configurado.
  • La configuración de DNS para puntos finales habilitados para cortafuegos es bastante sencilla e independiente del DNS empleado por el ISP.
  • Si el puerto conectado a Internet está inaccesible mientras se realiza una comprobación DNS en el ordenador, la operación de búsqueda se suspenderá instantáneamente.
  • A través de consultas PPP (protocolo punto a punto) o DHCP, dnsmasq puede configurarse realmente para recopilar periódicamente datos directamente del servidor de resolución de dominios subyacente.

Instalación

El servicio systemd-resolved debe apagarse antes de instalar y configurar la utilidad dnsmasq .

systemctl stop systemd-resolved

También puede ocultarlo utilizando el atributo mask para que no se inicie automáticamente al reiniciar.

 systemctl mask systemd-resolved

Instalar dnsmasq es la acción inicial que debe realizar tras desactivar systemd-resolved. DNSmasq viene preinstalado en casi todas las distribuciones de Linux. Si no es así, puede instalarlo manualmente. Inicie un terminal de comandos y escriba el siguiente comando para hacerlo.

sudo apt-get install dnsmasq

Utilice el siguiente comando si es usuario de yum:

sudo yum install -y dnsmasq

Este comando instala automáticamente la herramienta e inicia dnsmasq en segundo plano.

dnsmapinstall

Tras una instalación correcta, puede comprobar el estado de dnsmasq utilizando el siguiente comando.

systemctl status dnsmasq

Si muestra su estado como “activo (en ejecución)”, significa que la instalación se ha realizado y está configurado en el puerto 53. Si muestra su estado como “inactivo (muerto)”, entonces necesita reiniciar tanto la máquina Ubuntu como dnsmasq de nuevo. Esto solucionará el error.

dnsmasqstatus

Configuración

Dnsmasq está ahora listo para ser configurado en su máquina como el servidor DNS de caché local. El archivo de configuración por defecto se encuentra en /etc/dnsmasq.conf. Este archivo de configuración debe ser modificado para poder configurar la utilidad dnsmasq en el sistema.

Utilice este comando para abrir y editar el archivo de configuración.

nano /etc/dnsmasq.conf

El archivo config debe ser editado sólo con privilegios de root. Simplemente borre todo en el archivo incluyendo los comentarios y simplemente copie-pegue y guarde esta configuración.

port=53
domain-needed
bogus-priv
listen-address=127.0.0.1
expand-hosts
domain=geek-demo.com
cache-size=1000

Permítame describir brevemente lo que significa cada uno de los parámetros.

  • Puerto – Para especificar o vincular el puerto que Dnsmasq utilizará para recibir peticiones DNS.
  • domain-needed – Transmite sólo los nombres de dominio al servidor DNS ascendente.
  • bogus-priv – Impide el reenvío de dominios y puertos
  • listen-address – Para definir la dirección del servidor de nombres. Normalmente, se utiliza localhost por defecto, para configurar un servidor DNS local.
  • domain – Para configurar los dominios que dnsmasq anexa a los identificadores cortos.
  • cache-size – El tamaño máximo de caché DNS permitido en el almacenamiento.
dnsmasqhost

Después de realizar todos los cambios necesarios, guarde y cierre el archivo config. Y el siguiente paso es editar el archivo /etc/resolv.conf para añadir la dirección de resolución del host local. Utilice el siguiente comando para abrirlo con el editor nano.

nano /etc/resolv.conf

Aquí encontrará todos los servidores de nombres que utiliza su sistema para la resolución de direcciones. En esa lista, añada también la dirección loopback. Añada“nameserver 127.0.0.1” y manténgalo en la primera línea.

dnsresolve

Guarde y salga del archivo de configuración. Para que la configuración actualizada surta efecto, reinicie la utilidad dnsmasq.

systemctl restart dnsmasq

Prueba del servidor de caché DNS local

Es fácil probar el servidor DNS local. Abra una línea de comandos y utilice el comando dig para comprobar el almacenamiento en caché DNS. Cuando ejecute el comando dig por primera vez, el resultado debería ser bastante común.

┌──(root💀kali)-[/home/escritor]
└─# dig geekflare.com 1 ⚙

; <<>> DiG 9.18.0-2-Debian <<>> geekflare.com
;; opciones globales: cmd
;; Obtuvo respuesta:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 623
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; SECCIÓN DE PREGUNTAS:
;geekflare.com.                 IN A

;; SECCIÓN DE RESPUESTA:
geekflare.com.          227 IN A 172.66.43.163
geekflare.com.          227 IN A 172.66.40.93

;; Tiempo de consulta: 31 mseg
;; SERVIDOR: 127.0.0.1#53(127.0.0.1) (UDP)
;; CUANDO: Sat Oct 15 07:52:49 EDT 2022
;; MSG SIZE rcvd: 74

Tenga en cuenta que el tiempo de consulta es de unos 31 mseg para consultar los detalles del servidor de nombres upstream. Ejecute el mismo comando dig una vez más y notará una disminución significativa en el tiempo de consulta.

┌──(root💀kali)-[/home/writer]
└─# dig geekflare.com 1 ⚙

; <<>> DiG 9.18.0-2-Debian <<>> geekflare.com
;; global options: cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21942
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; SECCIÓN DE PREGUNTAS:
;geekflare.com.                 IN A

;; SECCIÓN DE RESPUESTA:
geekflare.com.          281 IN A 172.66.40.93
geekflare.com.          281 IN A 172.66.43.163

;; Tiempo de consulta: 0 mseg
;; SERVIDOR: 127.0.0.1#53(127.0.0.1) (UDP)
;; CUANDO: Sat Oct 15 07:58:10 EDT 2022
;; MSG SIZE rcvd: 74

Aquí, el tiempo de consulta es de 0 mseg. Esto se debe a que tras realizar la búsqueda inicial, dnsmasq almacenó los datos, y todas las búsquedas realizadas posteriormente fueron instantáneas debido a la utilización de la caché almacenada. Es necesario reiniciar dnsmasq si desea eliminar la caché DNS almacenada.

Para terminar

En este artículo, hemos visto cómo instalar y configurar dnsmasq para que funcione como un servidor DNS local. Puede que también le interese saber cómo cambiar los servidores DNS para una navegación más rápida en diferentes sistemas operativos.

  • Ashlin Jenifa
    Autor
Gracias a nuestros patrocinadores
Más lecturas sobre Linux
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder