Cómo configurar un servidor DNS / DHCP usando dnsmasq en CentOS / RHEL 8/7

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 CentOSInstalar 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 dnsmasqIniciar 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-addressopción se usa para configurar la dirección IP, donde dnsmasq escuchará. Para usar su servidor CentOS / RHEL para escuchar &ltstrong&gtlas&lt/strong&gt solicitudes de DHCP y DNS en la LAN , configure la listen-addressopció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-hostsopció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 dnsmasqCompruebe 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.confEstablecer 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 archivoEstablecer 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 DNSAgregar 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 &ltstrong&gtDNS&lt/strong&gt 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 localConsultar 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 consultaDNS 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 IPConsulta de búsqueda inversa de IP

Habilitar el servidor DHCP mediante dnsmasq

19. Puede habilitar el servidor DHCP descomentando la dhcp-rangeopció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

Leave a Comment

Your email address will not be published. Required fields are marked *

Hazlo Linux