DNS facile con dnsmasq
Per gestire i nomi in una rete domestica di solito è sufficiente
configurare manualmente il file /etc/hosts
sulle varie
macchine. Questo va bene in una rete con 3 o 4 host; ma ultimamente
fra server, postazioni fisse, laptop, player multimediali e smartphone
la mia rete inizia a superare le 15 unità, per cui modificare il file
dei nomi su ogni singolo host è diventato impraticabile. Così ho
deciso di configurare un servizio di DNS e DHCP con dnsmasq.
L’installazione su sistemi Debian e Ubuntu è semplicissima:
sudo apt-get install dnsmasq
La configurazione di default è già ampiamente funzionale: si ottiene
un server DNS che prima tenta di risolvere i nomi guardando nel suo
file /etc/hosts
, altrimenti inoltra la richiesta ai server elencati
in /etc/resolv.conf
(di solito il vostro router/modem). Così è
sufficiente tenere aggiornato l’elenco degli host della propria rete
locale solo sulla macchina server su cui è installato dnsmasq. Ma
non è tutto.
Nel file degli host è possibile elencare solo le postazioni con ip
statico. Come fare con tutti quei dispositivi (laptop, smartphone,
ecc.) che ottengono l’indirizzo dinamicamente dal router/modem? Per
fortuna dnsmasq ha un server DHCP integrato: quando un dispositivo
ottiene l’ip, dnsmasq lo aggiunge all’elenco degli host noti di cui è
in grado di risolvere il nome. Per attivare il DHCP per prima cosa
occorre disattivare la stessa funzionalità sul router/modem per
evitare conflitti, quindi basta aggiungere un paio di righe al file di
configurazione /etc/dnsmasq.conf
:
dhcp-range=10.0.0.101,10.0.0.120,72h
dhcp-option=option:router,10.0.0.1
La prima definisce il range degli indirizzi assegnabili, con un “lease time” di 72 ore; la seconda indica l’indirizzo del gateway (di solito il proprio router/modem). Come server DNS viene inviato automaticamente quello sui cui gira dnsmasq.