Com configurar un servidor DNS/DHCP mitjançant dnsmasq a CentOS/RHEL 8/7


Un servidor Dynamic Host Configuration Protocol (DHCP) assigna dinàmicament adreces IP i altres paràmetres de configuració de xarxa a cada dispositiu d'una xarxa. Un reenviador de DNS d'una LAN reenvia consultes DNS per a noms de domini no locals als servidors DNS amunt (fora d'aquesta xarxa). Un servidor de memòria cau DNS respon a les sol·licituds recursives dels clients perquè la consulta DNS es pugui resoldre més ràpidament, millorant així la velocitat de cerca de DNS als llocs visitats anteriorment.

dnsmasq és un reenviador DNS lleuger i fàcil de configurar, programari de servidor DHCP i subsistema d'anuncis d'encaminador per a xarxes petites. Dnsmasq és compatible amb Linux, *BSD, Mac OS X i Android.

Disposa d'un subsistema DNS que proporciona un servidor DNS local per a la xarxa, amb reenviament de tots els tipus de consultes a servidors DNS recursius amunt i emmagatzematge en memòria cau dels tipus de registre habituals. El subsistema DHCP admet DHCPv4, DHCPv6, BOOTP, PXE i un servidor TFTP. I el subsistema d'anuncis de l'encaminador admet la configuració automàtica bàsica per als amfitrions IPv6.

En aquest article, us guiarem a través de les instruccions sobre com instal·lar i configurar el servidor DNS/DHCP mitjançant dnsmasq a les distribucions CentOS/RHEL 8/7.

Instal·lació de dnsmasq a CentOS i RHEL Linux

1. El paquet dnsmasq està disponible als dipòsits predeterminats i es pot instal·lar fàcilment mitjançant el gestor de paquets YUM, tal com es mostra.

# yum install dnsmasq

2. Un cop finalitzada la instal·lació del paquet dnsmasq, haureu d'iniciar el servei dnsmasq de moment i habilitar-lo perquè s'iniciï automàticament a l'arrencada del sistema. A més, comproveu el seu estat per assegurar-vos que estigui en funcionament mitjançant les ordres systemctl següents.

# systemctl start dnsmasq
# systemctl enable dnsmasq
# systemctl status dnsmasq

Configuració del servidor dnsmasq a CentOS i RHEL Linux

3. El servidor dnsmasq es pot configurar mitjançant el fitxer /etc/dnsmasq.conf (que conté opcions ben comentades i explicades), i també es poden afegir fitxers de configuració definits per l'usuari al directori /etc/dnsmasq.d.

DNS està habilitat per defecte, així que abans de fer qualsevol canvi, assegureu-vos de crear una còpia de seguretat del fitxer /etc/dnsmasq.conf.

# cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

4. Ara obriu el fitxer /etc/dnsmasq.conf amb el vostre editor de text preferit i feu els paràmetres de configuració suggerits següents.

# vi /etc/dnsmasq.conf 

L'opció listen-address s'utilitza per establir l'adreça IP, on dnsmasq escoltarà. Per utilitzar el vostre servidor CentOS/RHEL per escoltar les sol·licituds de DHCP i DNS a la LAN, configureu l'opció listen-address a les adreces IP de la LAN (recordeu incloure 127.0.0.1) tal com es mostra. Tingueu en compte que l'IP del servidor ha de ser estàtica.

listen-address=::1,127.0.0.1,192.168.56.10

Relacionat amb l'anterior, podeu restringir la interfície que dnsmasq escolta mitjançant l'opció d'interfície (afegiu més línies per a més d'una interfície).

interface=eth0

5. Si voleu que un domini (que podeu configurar com es mostra a continuació) s'afegeixi automàticament a noms senzills en un fitxer hosts, descomenceu l'opció expand-hosts.

expand-hosts

6. Per establir el domini per a dnsmasq, el que significa que els clients DHCP tindran noms de domini totalment qualificats sempre que coincideixi amb el domini establert i estableix l'opció DHCP domini per a tots els clients.

domain=tecmint.lan

7. A continuació, definiu també el servidor DNS amunt per a dominis no locals mitjançant l'opció de servidor (en el format server=dns_server_ip) tal com es mostra.

# Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. A continuació, podeu forçar el vostre domini local a una o adreces IP utilitzant l'opció d'adreça tal com es mostra.

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

9. Deseu el fitxer i comproveu la sintaxi del fitxer de configuració per detectar errors, tal com es mostra.

# dnsmasq --test

10. En aquest pas, heu de fer que totes les consultes s'enviïn a dnsmasq afegint les adreces localhost com a únics servidors de noms al fitxer /etc/resolv.conf.

# vi /etc/resolv.conf

11. El fitxer /etc/resolv.conf el manté un dimoni local, especialment l'ordre chattr tal com es mostra.

# chattr +i /etc/resolv.conf
# lsattr /etc/resolv.conf

12. El Dnsmasq llegeix tots els amfitrions DNS i els noms del fitxer /etc/hosts, així que afegiu les adreces IP i els parells de noms dels vostres hosts DNS com es mostra.

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

Important: els noms DNS locals també es poden definir important noms des del subsistema DHCP o mitjançant la configuració d'una àmplia gamma de tipus de registres útils.

13. Per aplicar els canvis anteriors, reinicieu el servei dnsmasq tal com es mostra.

# systemctl restart dnsmasq

14. Si teniu el servei tallafocs en execució, heu d'obrir els serveis DNS i DHCP a la configuració del tallafoc, per permetre que les sol·licituds dels amfitrions de la vostra LAN passin al servidor dnsmasq.

# firewall-cmd --add-service=dns --permanent
# firewall-cmd --add-service=dhcp --permanent
# firewall-cmd --reload

15. Per provar si el servidor DNS local o el reenviament funciona bé, heu d'utilitzar eines com nslookup per realitzar consultes DNS. Aquestes eines les proporciona el paquet bind-utils que pot no venir preinstal·lat a CentOS/RHEL 8, però podeu instal·lar-lo tal com es mostra.

# yum install bind-utils

16. Un cop hàgiu instal·lat, podeu executar una consulta senzilla al vostre domini local tal com es mostra.

# dig tecmint.lan
OR
# nslookup tecmint.lan

17. També podeu provar de consultar el FQDN d'un dels servidors.

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

18. Per provar una cerca d'IP inversa, executeu una ordre similar.

# dig -x 192.168.56.25
OR
# nslookup 192.168.56.25

Habilita el servidor DHCP mitjançant dnsmasq

19. Podeu habilitar el servidor DHCP descomentant l'opció dhcp-range i proporcionant el rang d'adreces disponibles per a l'arrendament i opcionalment un temps d'arrendament, p. ex. (repetiu-ho per a més d'una xarxa).

dhcp-range=192.168.0.50,192.168.0.150,12h

20. La següent opció defineix on guardarà el servidor DHCP la seva base de dades d'arrendament, això us ajudarà a comprovar fàcilment les adreces IP que té assignades.

dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

21. Per fer que el servidor DHCP passi al mode autoritzat, descomenceu l'opció.

dhcp-authoritative

22. Deseu el fitxer i reinicieu el servei dnsmasq per aplicar els canvis recents.

# systemctl restart dnsmasq

Això ens porta al final d'aquesta guia. Per posar-vos en contacte amb nosaltres per a qualsevol pregunta o pensament que vulgueu compartir sobre aquesta guia, utilitzeu el formulari de comentaris que trobareu a continuació.