Dnsmasq viene utilizzato sia come DHCP per tutte le reti comunali che come DNS perimetrale.
NB. Dnsmasq NON è sufficientemente evoluto per poter essere utilizzato come server DNS in alternativa al DNS di AD, è comunque possibile utilizzarlo come server DHCP e gestire l’aggiornamento dinamico dei record DNS di AD.
Si è scelto di utilizzare tale metodo per gestire in modo centralizzato un unico server DHCP installato direttamente sui gateway comunali.
Sui gw comunali (sede centrale e servizio tecnico):
– è stato configurato dnsmasq per l’esecuzione di uno script esterno che viene eseguito da dnsmasq ad ogni aggiunta/modifica/cancellazione di un record dhcp
Da notare che dnsmasq gira con un proprio utente “dnsmasq” e di conseguenza devono essere gestiti i relativi permessi, eseguire un copia e incolla per preparare l’ambiente:
echo " # zona del dominio predefinita in cui posizionare i record dns \$ZONA = 'esterna.dominio.locale'; # server DNS M$ \$SERVER1 = '192.168.1.1'; " > /etc/default/updatedns.cfg chown dnsmasq /etc/default/updatedns.cfg mkdir /var/lib/updatens || true mkdir /var/lib/updatens/delete || true mkdir /var/lib/updatens/update || true chown -R dnsmasq /var/lib/updatens chown dnsmasq /opt/localbin/updatedns.pl chmod 550 updatedns.pl touch /var/lib/updatens/updatedns.txt chown dnsmasq /var/lib/updatens/updatedns.txt apt-get install dnsutils
comandi utili per verificare il corretto funzionamento di updatedns.pl
aggiunta di un nuovo record /opt/localbin/updatedns.pl add 00:00:00:00:00:00:00:00 192.168.132.50 test rimozione di record esistente /opt/localbin/updatedns.pl del 00:00:00:00:00:00:00:00 192.168.132.50 test
configurazione di /etc/dnsmasq.conf
# questo script viene eseguito ogni volta che viene aggiunto rimosso o modificato un lease dhcp-script=/opt/localbin/updatedns.pl
configurare il contenuto del file /etc/default/updatedns.cfg in questo modo
# zona del dominio predefinita in cui posizionare i record dns $ZONA = 'esterna.dominio.locale'; # server DNS M$ $SERVER1 = '192.168.1.1';
dnsmasq, in fase di esecuzione dello script imposta alcune variabili d’ambiente, di seguito riporto un esempio di cosa viene impostato durante un rilascio di dhcp:
DNSMASQ_DOMAIN=esterna.dominio.locale DNSMASQ_TIME_REMAINING=64800 DNSMASQ_CLIENT_ID=01:16:e5:b1:ff:53:8d DNSMASQ_LEASE_EXPIRES=1375925620 DNSMASQ_SUPPLIED_HOSTNAME=winxp-proxmox DNSMASQ_TAGS=eth9 DNSMASQ_INTERFACE=eth9 DNSMASQ_VENDOR_CLASS=MSFT 5.0