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.confcon il link/etc/resolvconf/run/resolv.conf./etc/rcS.d/S40networking
Lo script/etc/network/if-up.d/000resolvconf, se trova la direttivadns-nameserversin 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/dnsmasqscrive 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.1in/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`
