dnsmasq (Español)
dnsmasq proporciona un servidor DNS, un servidor DHCP con soporte para DHCPv6 y PXE, y un servidor TFTP. Está diseñado para ser liviano y consumir poco, adecuado para enrutadores y cortafuegos con recursos limitados. dnsmasq también se puede configurar para almacenar en caché las consultas a DNS con el fin mejorar las velocidades de búsqueda de DNS de los sitios visitados con anterioridad.
Iniciar el demonio
Inicie/active el servicio dnsmasq.service
.
Para ver si dnsmasq se inició correctamente, consulte el «journal» de systemd:
# journalctl -u dnsmasq.service
La red también deberá reiniciarse para que el cliente DHCP pueda crear un nuevo archivo /etc/resolv.conf
.
Configuración
Para configurar dnsmasq, necesita editar /etc/dnsmasq.conf
. El archivo contiene extensos comentarios que explican sus opciones. Para todas las opciones disponibles, consulte dnsmasq(8).
0
:
port=0
Servidor DNS
Para configurar dnsmasq como un demonio para el almacenamiento de DNS en un solo equipo, especifique una directiva , añadiendo la dirección IP del equipo local:
listen-address=::1,127.0.0.1
Para utilizar este equipo con el fin de que su dirección IP de LAN escuche otros equipos en la red. Se recomienda utilizar una IP LAN estática en este caso. Por ejemplo:
listen-address=::1,127.0.0.1,192.168.1.1
Establezca el número de nombres de dominio almacenables en caché con la opción (el valor predeterminado es ):
cache-size=1000
Para validar con DNSSEC cargue los anclajes de confianza de DNSSEC proporcionados por el paquete dnsmasq y configure la opción dnssec
:
conf-file=/usr/share/dnsmasq/trust-anchors.conf dnssec
Consulte dnsmasq(8) para ver más opciones que quizás pueda querer usar.
Archivo de direcciones DNS y de reenvío
Después de configurar dnsmasq, necesita añadir las direcciones del equipo local como los únicos servidores de nombres en /etc/resolv.conf
. Esto hace que todas las consultas se envíen a dnsmasq.
Como dnsmasq no es un servidor DNS recursivo, debe configurar el reenvío a un servidor DNS externo. Esto se puede hacer automáticamente usando openresolv o especificando manualmente la dirección del servidor DNS en la configuración de dnsmasq.
openresolv
Si su administrador de red admite resolvconf, en lugar de modificar directamente /etc/resolv.conf
, puede utilizar openresolv para generar archivos de configuración para dnsmasq.
Edite /etc/resolvconf.conf
y añada las direcciones de loopback como servidores de nombres, y configure openresolv para escribir la configuración de dnsmasq:
Ejecute para que se creen los archivos de configuración. Si los archivos no existen dnsmasq.service
no podrá iniciarse.
Edite el archivo de configuración de dnsmasq para usar la configuración generada de openresolv:
# Leer la configuración generada por openresolv conf-file=/etc/dnsmasq-openresolv.conf resolv-file=/etc/dnsmasq-resolv.conf
Reenvío manual
Primero debe establecer las direcciones del servidor local como los únicos servidores de nombres en /etc/resolv.conf
:
Consulte Domain name resolution#Overwriting of /etc/resolv.conf sobre cómo proteger el archivo /etc/resolv.conf
de ser modificado.
Las direcciones del servidor DNS ascendente deben especificarse en el archivo de configuración de dnsmasq como . También añada para que dnsmasq no lea innecesariamente /etc/resolv.conf
, que solo contiene las direcciones del equipo local.
Ahora las consultas DNS se resolverán con dnsmasq, solo se verificará si los servidores externos no pueden responder a la consulta desde su caché.
Añadir un dominio personalizado
Es posible agregar un dominio personalizado a los equipos de nuestra red (local):
local=/lan/ domain=lan
En este ejemplo, es posible enviar un ping a un servidor/dispositivo (por ejemplo, definido en el archivo como .
Descomente para añadir el dominio personalizado a las entradas del equipo:
expand-hosts
Sin esta configuración, deberá añadir el dominio a las entradas de .
Prueba
Para realizar una prueba de velocidad de búsqueda, elija un sitio web que no se haya visitado desde que se inició dnsmasq (drill es parte del paquete ldns):
$ drill archlinux.org | grep "Query time"
Al ejecutar nuevamente la orden, se usará la IP del DNS almacenada en la caché y se obtendrá un tiempo de búsqueda más rápido si dnsmasq está configurado correctamente:
$ drill archlinux.org | grep "Query time"
;; Query time: 18 msec
Para comprobar si la validación de DNSSEC funciona, consulte DNSSEC#Testing.
Servidor DHCP
De manera predeterminada, dnsmasq tiene la funcionalidad DHCP desactivada; si desea usarla, debe activarla. Aquí están las configuraciones importantes:
Consulte dnsmasq(8) para conocer más detalles.
Prueba
Desde un equipo que está conectado al que tiene dnsmasq, configúrelo para utilizar DHCP para la asignación automática de direcciones IP, luego intente iniciar sesión normalmente en la red.
Si inspecciona el archivo en el servidor, debería poder ver su asignación.
Servidor TFTP
dnsmasq tiene un servidor TFTP incorporado.
Para utilizarlo, cree un directorio para la raíz de TFTP (por ejemplo ) para colocar los archivos transferibles.
Para mayor seguridad, se recomienda utilizar el modo seguro TFTP de dnsmasq. En modo seguro, solo los archivos propiedad del usuario pasarán a través de TFTP. Necesitará hacer chown a la raís de TFTP y a todos los archivos para que pertenezcan al usuario a fin de que pueda usar esta característica.
Active TFTP:
enable-tftp tftp-root=/srv/tftp tftp-secure
Consulte dnsmasq(8) para más opciones.
Servidor PXE
PXE requiere servidores DHCP y TFTP, ambas funciones pueden ser provistas por dnsmasq.
- configurar #Servidor TFTP y #Servidor DHCP;
- copiar y configurar un gestor de arranque compatible con PXE (por ejemplo, PXELINUX) sobre la raíz TFTP;
- active PXE en
/etc/dnsmasq.conf
:
Para enviar simplemente un archivo:
dhcp-boot=lpxelinux.0
Para enviar un archivo dependiendo de la arquitectura del cliente:
pxe-service=x86PC, "PXELINUX (BIOS)", "bios/lpxelinux" pxe-service=X86-64_EFI, "PXELINUX (EFI)", "efi64/syslinux.efi"
dhcp-match=set:efi-x86_64,option:client-arch,7 dhcp-match=set:efi-x86_64,option:client-arch,9 dhcp-match=set:efi-x86,option:client-arch,6 dhcp-match=set:bios,option:client-arch,0 dhcp-boot=tag:efi-x86_64,"efi64/syslinux.efi" dhcp-boot=tag:efi-x86,"efi32/syslinux.efi" dhcp-boot=tag:bios,"bios/lpxelinux.0"
Consulte dnsmasq(8) para conocer más opciones.
El resto depende del gestor de arranque.
Consejos y trucos
Impedir que OpenDNS redirija las consultas de Google
Para evitar que OpenDNS redirija todas las consultas de Google a su propio servidor de búsqueda, añada a /etc/dnsmasq.conf
:
Anular direcciones
En algunos casos, como cuando esté operando un portal cautivo, puede ser útil resolver nombres de dominios específicos en un conjunto de direcciones codificadas. Esto se hace con la configuración address
:
address=/example.com/1.2.3.4
Además, es posible devolver una dirección específica para todos los nombres de dominio que no son contestados desde o DHCP utilizando un comodín especial:
address=/#/1.2.3.4
Tener más de una instancia
Si queremos que dos o más servidores dnsmasq funcionen por interfaz(ces).
Estático
Para hacer esto de forma estática, servidor por interfaz, utilice las opciones y . Esto obliga a dnsmasq a iniciarse en segundo lugar.
Dinámico
En este caso, podemos excluir por interfaz y enlazar cualquier otra:
except-interface=lo bind-dynamic
Lista negra de dominios
Para poner en la lista negra dominios, es decir, responder consultas para ellos con NXDOMAIN, utilice la opción address
sin especificar la dirección IP:
address=/blacklisted.example/ address=/another.blacklisted.example/
Para facilitar su uso, coloque la lista negra en un archivo separado, por ejemplo /etc/dnsmasq.d/blacklist.conf
y cárguelo desde /etc/dnsmasq.conf
con o .