Un servidor de Protocolo de configuración dinámica de host ( DHCP ) asigna dinámicamente direcciones IP y otros parámetros de configuración de red a cada dispositivo en una red. Un reenviador de DNS en una LAN reenvía las consultas de DNS para nombres de dominio no locales a servidores DNS ascendentes (fuera de esa red). Un servidor de almacenamiento en caché de DNS responde a las solicitudes recursivas de los clientes para que la consulta de DNS se pueda resolver más rápido, mejorando así la velocidad de búsqueda de DNS en los sitios visitados anteriormente.
dnsmasq es un reenviador de DNS, software de servidor DHCP y subsistema de anuncios de enrutador liviano y fácil de configurar para redes pequeñas. Dnsmasq es compatible con Linux, * BSD, Mac OS X y Android.
Cuenta con un subsistema DNS que proporciona un servidor DNS local para la red, con reenvío de todos los tipos de consultas a servidores DNS recursivos ascendentes y almacenamiento en caché de tipos de registros comunes. El subsistema DHCP admite DHCPv4, DHCPv6, BOOTP, PXE y un servidor TFTP. Y el subsistema de anuncios del enrutador admite la autoconfiguración básica para hosts IPv6.
En este artículo, lo guiaremos a través de las instrucciones sobre cómo instalar y configurar el servidor DNS / DHCP usando dnsmasq en distribuciones CentOS / RHEL 8/7 .
Instalación de dnsmasq en CentOS y RHEL Linux
1. El paquete dnsmasq está disponible en los repositorios predeterminados y se puede instalar fácilmente usando el administrador de paquetes YUM como se muestra.
# yum install dnsmasq
Instalar dnsmasq en CentOS
2. Una vez completada la instalación del paquete dnsmasq , debe iniciar el servicio dnsmasq por ahora y habilitarlo para que se inicie automáticamente al arrancar el sistema. Además, verifique su estado para asegurarse de que esté funcionando usando los siguientes comandos systemctl.
# systemctl start dnsmasq # systemctl enable dnsmasq # systemctl status dnsmasq
Iniciar y verificar el estado de dnsmasq
Configuración del servidor dnsmasq en CentOS y RHEL Linux
3. El servidor dnsmasq se puede configurar a través del archivo /etc/dnsmasq.conf (que contiene opciones bien comentadas y explicadas), y los archivos de configuración definidos por el usuario también se pueden agregar en el directorio /etc/dnsmasq.d .
El DNS está habilitado de forma predeterminada, por lo que antes de realizar cualquier cambio, asegúrese de crear una copia de seguridad del archivo /etc/dnsmasq.conf .
# cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
4. Ahora abra el archivo /etc/dnsmasq.conf usando su editor de texto favorito y realice los siguientes ajustes de configuración sugeridos.
# vi /etc/dnsmasq.conf
La listen-address
opción se usa para configurar la dirección IP, donde dnsmasq escuchará. Para usar su servidor CentOS / RHEL para escuchar <strong>las</strong> solicitudes de DHCP y DNS en la LAN , configure la listen-address
opción en sus direcciones IP de LAN (recuerde incluir 127.0.0.1 ) como se muestra. Tenga en cuenta que la IP del servidor debe ser estática.
listen-address=::1,127.0.0.1,192.168.56.10
En relación con lo anterior, puede restringir la interfaz en la que escucha dnsmasq usando la opción de interfaz (agregue más líneas para más de una interfaz).
interface=eth0
5. Si desea que un dominio (que puede configurar como se muestra a continuación) se agregue automáticamente a nombres simples en un archivo de hosts, descomente la expand-hosts
opción.
expand-hosts
6. Para configurar el dominio para dnsmasq, lo que significa que los clientes DHCP tendrán nombres de dominio completos siempre que el dominio configurado coincida, y configura la opción DHCP de ” dominio ” para todos los clientes.
domain=tecmint.lan
7. A continuación, defina también el servidor DNS ascendente para dominios no locales utilizando la opción de servidor (en la forma server = dns_server_ip ) como se muestra.
# Google's nameservers server=8.8.8.8 server=8.8.4.4
8. Luego, puede forzar su dominio local a una (s) dirección (es) IP usando la opción de dirección como se muestra.
address=/tecmint.lan/127.0.0.1 address=/tecmint.lan/192.168.56.10
9. Guarde el archivo y compruebe la sintaxis del archivo de configuración en busca de errores como se muestra.
# dnsmasq --test
Compruebe la configuración de dnsmasq
Configuración de dnsmasq con el archivo /etc/resolv.conf
10. En este paso, debe hacer que todas las consultas se envíen a dnsmasq agregando las direcciones de localhost como los únicos servidores de nombres en el archivo /etc/resolv.conf .
# vi /etc/resolv.conf
Establecer la dirección de localhost en el archivo /etc/resolv.conf
11. El archivo /etc/resolv.conf es mantenido por un demonio local, especialmente el NetworkManager, por lo tanto, cualquier cambio realizado por el usuario será sobrescrito. Para evitar esto, protéjalo contra escritura configurando el atributo de archivo inmutable (deshabilitando el acceso de escritura al archivo) usando el comando chattr como se muestra.
# chattr +i /etc/resolv.conf # lsattr /etc/resolv.conf
Establecer atributo de archivo
Definición de nombres y hosts DNS
12. El Dnsmasq lee todos los hosts DNS y los nombres del archivo / etc / hosts , así que agregue las direcciones IP y los pares de nombres de sus hosts DNS como se muestra.
127.0.0.1 dnsmasq 192.168.56.10 dnsmasq 192.168.56.1 gateway 192.168.56.100maas-controller 192.168.56.20 nagios 192.168.56.25 webserver1
Agregar direcciones IP de hosts DNS
Importante : Los nombres de DNS locales también se pueden definir importando nombres del subsistema DHCP o configurando una amplia gama de tipos de registros útiles.
13. Para aplicar los cambios anteriores, reinicie el servicio dnsmasq como se muestra.
# systemctl restart dnsmasq
14. Si tiene el servicio firewalld en ejecución, debe abrir los servicios <strong>DNS</strong> y DHCP en la configuración del firewall para permitir que las solicitudes de los hosts de su LAN pasen al servidor dnsmasq.
# firewall-cmd --add-service=dns --permanent # firewall-cmd --add-service=dhcp --permanent # firewall-cmd --reload
Prueba de DNS local
15. Para probar si el servidor DNS local o el reenvío funcionan bien, debe utilizar herramientas como dig o nslookup para realizar consultas DNS. Estas herramientas las proporciona el paquete bind-utils que puede no venir preinstalado en CentOS / RHEL 8 , pero puede instalarlo como se muestra.
# yum install bind-utils
16. Una vez que haya instalado, puede ejecutar una consulta simple en su dominio local como se muestra.
# dig tecmint.lan OR # nslookup tecmint.lan
Consultar dominio local
17. También puede intentar consultar el FQDN de uno de los servidores.
# dig webserver1.tecmint.lan OR # nslookup webserver1.tecmint.lan
DNS de dominio de consulta
18. Para probar una búsqueda de IP inversa, ejecute un comando similar.
# dig -x 192.168.56.25 OR # nslookup 192.168.56.25
Consulta de búsqueda inversa de IP
Habilitar el servidor DHCP mediante dnsmasq
19. Puede habilitar el servidor DHCP descomentando la dhcp-range
opción y proporcionando el rango de direcciones disponibles para arrendamiento y, opcionalmente, un tiempo de arrendamiento, por ejemplo (repetir para más de una red).
dhcp-range=192.168.0.50,192.168.0.150,12h
20. La siguiente opción define dónde el servidor DHCP mantendrá su base de datos de arrendamiento, esto le ayudará a verificar fácilmente las direcciones IP que ha asignado.
dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases
21. Para hacer que el servidor DHCP pase al modo autorizado, descomente la opción.
dhcp-authoritative
22. Guarde el archivo y reinicie el servicio dnsmasq para aplicar los cambios recientes.
# systemctl restart dnsmasq
Eso nos lleva al final de esta guía. Para comunicarse con nosotros para cualquier pregunta o pensamiento que desee compartir sobre esta guía, utilice el formulario de comentarios a continuación.
CentOS , DHCP , DNS , RedHat