This is an old revision of the document!
Table of Contents
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
Il server DNS (bind9) deve essere configurato per accettare le modifiche alla zona tramite chiave di autenticazione TSIG. Anzitutto si crea una chiave TSIG dandole il nome della zona (il nome serve solo a identificare successivamente la chiave):
tsig-keygen -a hmac-md5 lan.rigacci.org > /etc/bind/lan.rigacci.org.key chmod 640 /etc/bind/lan.rigacci.org.key
La chiave avrà un contenuto random codificato base64:
key "lan.rigacci.org" { algorithm hmac-md5; secret "ZJu34t3AgaWXfmRSkjpqhA=="; };
Il file con la chiave deve essere incluso nella configurazione di bind e nella sezione relativa alla zona si dichiara che sono consentite le modifiche a chi è in possesso della chiave:
include "/etc/bind/lan.rigacci.org.key"; zone "lan.rigacci.org" { type master; file "lan.rigacci.org"; allow-transfer { 192.168.3.1; }; allow-update { key "lan.rigacci.org"; }; 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.3.1 > key rndc-key ZJu34t3AgaWXfmRSkjpqhA== > zone lan.rigacci.org > update add test.lan.rigacci.org. 3600 a 192.168.3.123 > send