User Tools

Site Tools


doc:appunti:linux:sa:dhcp

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
doc/appunti/linux/sa/dhcp.txt · Last modified: 2012/09/15 15:28 by niccolo