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.

comments powered by Disqus