dnsmasq
Si tratta di un DNS server forwarder e DHCP server.
Il funzionamento congiunto di resolvconf
e dnsmasq
segue questa sequenza durante il boot:
/etc/rcS.d/S38resolvconf
Sostituisce/etc/resolv.conf
con il link/etc/resolvconf/run/resolv.conf
./etc/rcS.d/S40networking
Lo script/etc/network/if-up.d/000resolvconf
, se trova la direttivadns-nameservers
in una istanza di interfaccia di/etc/network/interfaces
, aggiunge le relative informazioni DNS a/etc/resolvconf/run/resolv.conf
./etc/rc2.d/S15dnsmasq
Se resolvconf è installato, viene registrato 127.0.0.1 come server DNS, associato all'interfaccia lo.
Lo script/etc/resolvconf/update.d/dnsmasq
scrive tutti i DNS registrati presso resolvconf in/var/run/dnsmasq/resolv.conf
, ad eccezione di 127.0.0.1 associato a lo. Il demone dnsmasq userà questi come forwarders.
Il demone resolvconf, trovando registrato il nameserver 127.0.0.1, non aggiungerà altri nameserver in resolv.conf.
Configurazione
In pratica quindi basta dichiarare i DNS forwarders con la direttiva dns-nameservers
nell'opportuna istanza di /etc/network/interfaces
, al termine del boot tutto dovrebbe essere configurato automaticamente:
- dnsmasq utilizza come forwarders i DNS dichiarati in
/etc/network/interfaces
, che sono stati copiati in/var/run/dnsmasq/resolv.conf
. - resolvconf imposta il solo
nameserver 127.0.0.1
in/etc/resolv.conf
.
In caso di nuove registrazioni presso resolvconf di altri server DNS (ad esempio quando viene attivata una connessione PPP), il file /var/run/dnsmasq/resolv.conf
viene aggiornato opportunamente, in modo che dnsmasq
utilizzi gli opportuni forwarders.
Se si vuole che il DHCP server setti anche la direttiva search
nel resolv.conf
dei client, bisogna che il server abbia il nome di dominio corretto (si verifica con hostname -f
, se è il caso si corregge in /etc/hosts
), quindi in /etc/default/dnsmasq
si decommenta:
DOMAIN_SUFFIX=`dnsdomainname`