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.