====== Dynamic DNS con DHCP ====== La presente configurazione funziona su una Debian Squeeze con **isc-dhcp-server 4.1.1**. In **''/etc/dhcp/dhcpd.conf''**, sezione principale, si aggiunge tutto il necessario riguardo al DDNS: ddns-updates on; ddns-update-style interim; ddns-domainname "my.rigacci.org"; update-static-leases on; update-optimization false; Nel caso specifico si vuole annunciare al DNS anche gli host che hanno un indirizzo IP fisso (''update-static-leases''). Il parametro ''update-optimization'' - se impostato a //true// - evita che venga chiesto un aggiornamento della zona per ogni rinnovo del lease DHCP. Nella sezione **''subnet''** dello stesso file - oltre alle normali configurazioni - si aggiunge il necessario per comunicare con il server DNS. La password è una stringa codificata in base64. subnet 192.168.3.0 netmask 255.255.255.0 { key rndc-key { algorithm hmac-md5; secret "TXlWZXJ5U2VjcmV0Cg=="; }; zone my.rigacci.org. { primary 192.168.2.2; key rndc-key; } zone 3.168.192.in-addr.arpa. { primary 192.168.2.2; key rndc-key; } } Infine nella sezione **''group''** si dichiara quale nome registrare al momento del lease. Questo è un esempio per un host con IP fisso: group { host squeeze { hardware ethernet 52:54:00:00:03:70; fixed-address 192.168.3.70; ddns-hostname "squeeze"; } } **NOTA**: Togliere dai file di zona eventuali record inseriti manualmente che devono invece essere gestiti dinamicamente. ===== Configurazione del server DNS ===== L'unica aggiunta da fare al server DNS è la definizione della chiave e l'autorizzare alle modifiche dinamiche della zona: key rndc-key { algorithm hmac-md5; secret "TXlWZXJ5U2VjcmV0Cg=="; }; zone "my.rigacci.org" { type master; file "my.rigacci.org"; allow-transfer { 192.168.3.1; }; allow-update { key "rndc-key"; }; max-journal-size 150k; }; ===== Modificare manualmente il file di zona ===== :!: **ATTENZIONE:** Non si deve modificare manualmente un file di zona mentre è soggetto ad aggiornamenti dinamici. Prima si deve bloccare gli aggiornamenti con il comando **''rndc freeze''**. In questo esempio //private// è il nome della view in cui si trova la zona: rndc freeze my.rigacci.org IN private Dopo aver modificato manualmente il file (e aggiornato il numero seriale), non è necessario fare il reload di BIND, basta "scongelare" la zona: rndc unfreeze my.rigacci.org IN private ===== Test modifica dinamica ===== Con il comando **''nsupdate''** è possibile inviare una richiesta di aggiornamento: nsupdate > server 192.168.2.2 > key rndc-key TXlWZXJ5U2VjcmV0Cg== > zone 3.168.192.in-addr.arpa > update add 36.3.168.192.in-addr.arpa 600 IN PTR lacie2.my.rigacci.org. > send