Ricerca nel sito web

Come configurare un server DNS/DHCP utilizzando dnsmasq su CentOS/RHEL 8/7


Un server Dynamic Host Configuration Protocol (DHCP) assegna dinamicamente indirizzi IP e altri parametri di configurazione di rete a ciascun dispositivo su una rete. Un server d'inoltro DNS su una LAN inoltra le query DNS per nomi di dominio non locali ai server DNS upstream (fuori dalla rete). Un server di caching DNS risponde alle richieste ricorsive dei client in modo che la query DNS possa essere risolta più rapidamente, migliorando così la velocità di ricerca DNS sui siti visitati in precedenza.

dnsmasq è un forwarder DNS leggero e facile da configurare, un software server DHCP e un sottosistema di pubblicità del router per reti di piccole dimensioni. Dnsmasq supporta Linux, *BSD, Mac OS X e Android.

È dotato di un sottosistema DNS che fornisce un server DNS locale per la rete, con inoltro di tutti i tipi di query ai server DNS ricorsivi upstream e memorizzazione nella cache dei tipi di record comuni. Il sottosistema DHCP supporta DHCPv4, DHCPv6, BOOTP, PXE e un server TFTP. Inoltre, il sottosistema di pubblicità del router supporta la configurazione automatica di base per gli host IPv6.

In questo articolo, ti guideremo attraverso le istruzioni su come installare e configurare il server DNS/DHCP utilizzando dnsmasq su CentOS/RHEL 8/7 distribuzioni.

Installazione di dnsmasq in CentOS e RHEL Linux

1. Il pacchetto dnsmasq è disponibile nei repository predefiniti e può essere facilmente installato utilizzando il gestore pacchetti YUM come mostrato.

yum install dnsmasq

2. Una volta completata l'installazione del pacchetto dnsmasq, per ora è necessario avviare il servizio dnsmasq e abilitarlo all'avvio automatico all'avvio del sistema. Inoltre, controlla il suo stato per assicurarti che sia attivo e funzionante utilizzando i seguenti comandi systemctl.

systemctl start dnsmasq
systemctl enable dnsmasq
systemctl status dnsmasq

Configurazione del server dnsmasq in CentOS e RHEL Linux

3. Il server dnsmasq può essere configurato tramite il file /etc/dnsmasq.conf (che contiene opzioni ben commentate e spiegate) e l'utente I file di configurazione definiti possono anche essere aggiunti nella directory /etc/dnsmasq.d.

Il DNS è abilitato per impostazione predefinita, quindi prima di apportare qualsiasi modifica, assicurati di creare un backup del file /etc/dnsmasq.conf.

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

4. Ora apri il file /etc/dnsmasq.conf utilizzando il tuo editor di testo preferito ed effettua le seguenti impostazioni di configurazione suggerite.

vi /etc/dnsmasq.conf 

L'opzione listen-address viene utilizzata per impostare l'indirizzo IP su cui dnsmasq sarà in ascolto. Per utilizzare il tuo server CentOS/RHEL per ascoltare le richieste DHCP e DNS sulla LAN, imposta il listen-address ai suoi indirizzi IP LAN (ricordati di includere 127.0.0.1) come mostrato. Tieni presente che l'IP del server deve essere statico.

listen-address=::1,127.0.0.1,192.168.56.10

In relazione a quanto sopra, puoi limitare l'interfaccia su cui dnsmasq è in ascolto utilizzando l'opzione interfaccia (aggiungi più righe per più di un'interfaccia).

interface=eth0

5. Se desideri che un dominio (che puoi impostare come mostrato di seguito) venga aggiunto automaticamente ai nomi semplici in un file host, decommenta il expand- host opzione.

expand-hosts

6. Per impostare il dominio per dnsmasq, il che significa che i client DHCP avranno nomi di dominio completamente qualificati purché il dominio impostato corrisponda e imposta il "dominio ” Opzione DHCP per tutti i client.

domain=tecmint.lan

7. Successivamente, definisci anche il server DNS upstream per i domini non locali utilizzando l'opzione server (nella forma server=dns_server_ip) come mostrato .

Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. Quindi puoi forzare il tuo dominio locale a uno o più indirizzi IP utilizzando l'opzione indirizzo come mostrato.

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

9. Salva il file e controlla la presenza di errori nella sintassi del file di configurazione, come mostrato.

dnsmasq --test

Configurazione di dnsmasq con il file /etc/resolv.conf

10. In questo passaggio, devi effettuare tutte le query da inviare a dnsmasq aggiungendo gli indirizzi localhost come unici nameserver nel file /etc/resolv.conf.

vi /etc/resolv.conf

11. Il file /etc/resolv.conf è mantenuto da un demone locale, in particolare NetworkManager, pertanto qualsiasi modifica apportata dall'utente verrà sovrascritta. Per evitare ciò, proteggilo da scrittura impostando l'attributo file immutabile (disabilitando l'accesso in scrittura al file) utilizzando il comando chattr come mostrato.

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

Definizione di host e nomi DNS

12. Dnsmasq legge tutti gli host e i nomi DNS dal file /etc/hosts, quindi aggiungi gli indirizzi IP e le coppie di nomi degli host DNS come mostrato.

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: i nomi DNS locali possono essere definiti anche importando nomi dal sottosistema DHCP o configurando un'ampia gamma di tipi di record utili.

13. Per applicare le modifiche di cui sopra, riavviare il servizio dnsmasq come mostrato.

systemctl restart dnsmasq

14. Se hai il servizio firewalld in esecuzione, devi aprire i servizi DNS e DHCP nella configurazione del firewall , per consentire alle richieste degli host sulla tua LAN di passare al server dnsmasq.

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

Test del DNS locale

15. Per verificare se il server DNS locale o l'inoltro funziona correttamente, è necessario utilizzare strumenti come dig o nslookup per eseguire query DNS. Questi strumenti sono forniti dal pacchetto bind-utils che potrebbe non essere preinstallato su CentOS/RHEL 8, ma puoi installarlo come mostrato.

yum install bind-utils

16. Dopo l'installazione, puoi eseguire una semplice query sul tuo dominio locale come mostrato.

dig tecmint.lan
OR
nslookup tecmint.lan

17. Puoi anche provare a interrogare l'FQDN di uno dei server.

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

18. Per testare una ricerca IP inversa, esegui un comando simile.

dig -x 192.168.56.25
OR
nslookup 192.168.56.25

Abilita il server DHCP utilizzando dnsmasq

19. Puoi abilitare il server DHCP rimuovendo il commento dall'opzione dhcp-range e fornendo l'intervallo di indirizzi disponibili per il lease e facoltativamente un tempo di lease ad esempio (ripetere per più di una rete).

dhcp-range=192.168.0.50,192.168.0.150,12h

20. La seguente opzione definisce dove il server DHCP manterrà il suo database di lease, questo ti aiuterà a controllare facilmente gli indirizzi IP che ha assegnato.

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

21. Per impostare il server DHCP in modalità autorevole, rimuovere il commento dall'opzione.

dhcp-authoritative

22. Salva il file e riavvia il servizio dnsmasq per applicare le modifiche recenti.

systemctl restart dnsmasq

Questo ci porta alla fine di questa guida. Per contattarci per qualsiasi domanda o pensiero che desideri condividere su questa guida, utilizza il modulo di feedback riportato di seguito.