Dnsmasq viene utilizzato sia come DHCP per tutte le reti comunali che come DNS perimetrale.
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