Búsqueda de sitios web

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


Un servidor 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 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 solicitudes recursivas de los clientes para que la consulta de DNS pueda resolverse más rápido, mejorando así las velocidades de búsqueda de DNS en sitios visitados anteriormente.

dnsmasq es un reenviador de DNS, un software de servidor DHCP y un subsistema de publicidad de enrutadores 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 publicidad del enrutador admite la configuración automática básica para hosts IPv6.

En este artículo, le guiaremos a través de las instrucciones sobre cómo instalar y configurar el servidor DNS/DHCP usando dnsmasq en CentOS/RHEL 8/7 . distribuciones.

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 utilizando el administrador de paquetes YUM como se muestra.

yum install dnsmasq

2. Una vez que se completa la instalación del paquete dnsmasq, debe iniciar el servicio dnsmasq por ahora y permitir que se inicie automáticamente al iniciar el sistema. Además, verifique su estado para asegurarse de que esté en funcionamiento utilizando los siguientes comandos systemctl.

systemctl start dnsmasq
systemctl enable dnsmasq
systemctl status dnsmasq

Configuración del servidor dnsmasq en CentOS y RHEL Linux

3. El servidor dnsmasq se puede configurar mediante el archivo /etc/dnsmasq.conf (que contiene opciones bien comentadas y explicadas), y el usuario Los archivos de configuración definidos también se pueden agregar en el directorio /etc/dnsmasq.d.

DNS está habilitado de forma predeterminada, por lo que antes de realizar cambios, 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 opción listen-address se utiliza para configurar la dirección IP donde dnsmasq escuchará. Para utilizar su servidor CentOS/RHEL para escuchar solicitudes DHCP y DNS en la LAN, configure el listen-address a 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 dnsmasq escucha 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 el expand- opción hosts.

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 establecido coincida, y establece el “dominio ” Opción DHCP para todos los clientes.

domain=tecmint.lan

7. A continuación, defina también el servidor DNS ascendente para dominios no locales usando la opción servidor (en el formato servidor=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 dirección IP usando la opción dirección como se muestra.

address=/tecmint.lan/127.0.0.1 
address=/tecmint.lan/192.168.56.10

9. Guarde el archivo y verifique la sintaxis del archivo de configuración para ver si hay errores como se muestra.

dnsmasq --test

Configurando dnsmasq con el archivo /etc/resolv.conf

10. En este paso, debe realizar todas las consultas que se enviarán a dnsmasq agregando las direcciones de host local como los únicos servidores de nombres en el archivo /etc/resolv.conf.

vi /etc/resolv.conf

11. El archivo /etc/resolv.conf lo mantiene un demonio local, especialmente el NetworkManager, por lo que cualquier cambio realizado por el usuario se sobrescribirá. 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

Definición de nombres y hosts DNS

12. El Dnsmasq lee todos los hosts DNS y 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.100	maas-controller 
192.168.56.20 	nagios
192.168.56.25 	webserver1

Importante: Los nombres DNS locales también se pueden definir importando nombres desde el subsistema DHCP o mediante la configuración de 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 tienes el servicio firewalld ejecutándose, necesitas abrir los servicios DNS 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 lo haya instalado, puede ejecutar una consulta simple en su dominio local como se muestra.

dig tecmint.lan
OR
nslookup tecmint.lan

17. También puedes intentar consultar el FQDN de uno de los servidores.

dig webserver1.tecmint.lan
OR
nslookup webserver1.tecmint.lan

18. Para probar una búsqueda inversa de IP, ejecute un comando similar.

dig -x 192.168.56.25
OR
nslookup 192.168.56.25

Habilite el servidor DHCP usando dnsmasq

19. Puede habilitar el servidor DHCP descomentando la opción dhcp-range 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 guardará 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 poner el servidor DHCP en modo autoritativo, 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 si tiene alguna pregunta o idea que desee compartir sobre esta guía, utilice el formulario de comentarios a continuación.