Installazione e configurazione di DNSMasq

Da Faber Libertatis.

Dnsmasq integra i server DNS DHCP e consente, attraverso un unico file (/etc/dnsmasq.conf), di configurare entrambi i servizi. Dnsmasq è disponibile come pacchetto Debian, per cui la sua installazione risulta molto semplice.

Indice della pagina

Installazione

Installare il programma con il comando:

# apt-get install dnsmasq

Al termine dell'operazione il server Dnsmasq sarà già funzionante. Possiamo verificarlo visualizzando, con il comando

# tail -f /var/syslog

il file di log. L'output del comando dovrebbe essere simile a questo:

dnsmasq[742]: started, version 2.5 cachesize 150
dnsmasq[742]: read /etc/hosts - 12 addresses
dnsmasq[742]: reading /etc/resolv.conf
dnsmasq[742]: using nameserver 193.70.152.25#53
dnsmasq[742]: using nameserver 193.70.192.25#53


La prima riga segnala che il server dnsmasq è stato avviato. La seconda che è stato letto il file /etc/hosts, che verra' utilizzato per servire i nomi host a tutti i client dns. La terza che è stato letto il file /etc/resolv.conf e sono stati trovati due nameserver, che verranno usati per risolvere i nomi host non presenti nel file hosts.


Configurazione

Procediamo adesso alla modifica del file di configurazione /etc/dnsmasq.conf aprendolo con un editor.

Il file è commentato. E' facile osservare che le possibilità di configurazione sono molteplici, anche se per ora procederemo solo a piccole modifiche.

Intervallo di indirizzi IP per DHCP

Indicare l'intervallo di indirizzi IP da riservare ai client che si connettono occasionalmente alla rete, come ad esempio i portatili. Per fare questo togliamo il commento a questa riga:

dhcp-range=192.168.0.200,192.168.0.250,6h

Naturalmente, l'intervallo di indirizzi deve essere quello che avete scelto per la vostra rete! Nel caso mostrato gli indirizzi della rete 192.16.0.0, dal 200 al 250, sono riservati al DHCP. L'ultimo valore, "6h" indica il tempo di mantenimento dell'indirizzo IP ad un determinato client quando questo non è connesso.

Associazione MAC Address-Indirizzo IP

Possiamo associare in modo permanente un Mac Address, cioè l'indirzzo hardware di una scheda ethernet, ad un indirizzo IP. In questo modo non dovremo più configuare manualmente i parametri di rete. Nel caso venisse sostituita la scheda di rete, dobbiamo ricordarci di modificare il valore del Mac Address! Per ricavare il Mac Address di un'interfaccia di rete possiamo utilizzare il comando

$ ifconfig | grep HWaddr

L'indirizzo sarà del tipo: "HWaddr 00:0A:CD:03:3F:FA". Per apportare questa modifica, togliamo il commento alla riga:

dhcp-host=00:0A:CD:03:3F:FA,192.168.0.21

Ovviamente dovrete sostituire i valori dell'esempio con quelli della vostra rete!

Parametri passati via DHCP

Vanno specificati i parametri passati dal server DHCP ai client.

La maschera di rete non è necessario modificarla in quanto è già impostata per una rete di classe C del tipo "192.168.0.0"

# La subnet mask (opz. 1)
dhcp-option=1,255.255.255.0

L'indirizzo di brodcast, cioè quello a cui vengono spediti i messaggi rivolti a tutti gli host della rete, dovra' essere modificato sostituendo i valori dell'esempio con quelli della vostra rete.

# Indirizzo di broadcast (opz. 28)
dhcp-option=28,192.168.0.255

L'indirizzo del router dovrà essere modificato inserendo i valori scelti per la vostra rete.

# Indirizzo del router(opz. 3)
dhcp-option=3,192.168.0.1

L'indirizzo del server DNS dovrà essere modificato inserendo i valori scelti per la vostra rete.

# Indirizzo del server DNS (opz. 6)
dhcp-option=6,192.168.0.2

L'indirizzo del time-server dovrà essere modificato inserendo i valori scelti per la vostra rete.

# Indirizzo del time-server (opz. 42)
dhcp-option=42,192.168.0.2


Riavvio del servizio

Per rendere operative le modifiche apportate al file di configurazione dobbiamo riavviare Dnsmasq utilizzando il comando:

# /etc/init.d/dnsmasq restart

Con il comando

# tail -f /var/log/syslog 

possiamo visualizzare che nel file di log segnalano il riavvio del servizio. L'output del comando dovrebbe essere simile a questo:

dnsmasq[1300]: read /etc/hosts - 11 addresses
dnsmasq[1300]: reading /etc/resolv.conf
dnsmasq[1300]: using nameserver 193.70.152.25#53
dnsmasq[1300]: using nameserver 193.70.192.25#53
dnsmasq[1304]: started, version 2.5 cachesize 150
dnsmasq[1304]: DHCP, IP range 192.168.0.200 -- 192.168.0.250

Configurazione dei client

Adesso dobbiamo configurare i client della rete affiché siano in grado di utilizzare i server DNS e DHCP. Naturalmente ci occuperemo unicamente di quelli che rientrano nelle modifiche apportate nel file di configurazione: portatili e computer sono stati configurati in modo da associare un Mac Address ad un indirizzo IP ed eventualmente ad un nome.

Editiamo il file /etc/network/interfaces e modifichiamo il file in questo modo:

auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp

L'esempio si riferisce ad un client con una sola interfaccia di rete: eth0

Fermiamo e riavviamo l'interfaccia di rete con i comandi:

# ifdown -a (ferma le interfacce di rete)
# ifup - a (avvia le interfacce di rete)

Al riavvio ci verrà mostrato l'indirizzo di rete assegnato dal DHCP. Per esempio: "bound to 192.168.0.201".

Se editiamo il file /etc/resolv.conf potremo notare come Dnsmasq abbia assegnato il name server impostato nel file di configurazione.