Aggiornamento dinamico dei DNS

Mer, 26/11/2008 - 12:17

Aggiornamento dinamico dei DNS

Inviato da Incubus 2 commenti

Questa guida è stata copiata da http://wiki.incubus.homelinux.net/Dynamic_DNS_update dove potete trovare la versione originale dell\'autore (che sono sempre io).

Scopo

Lo scopo di questa guida è quello di insegnarvi a configurare il vostro server dns basato su bind9 per fare si che al rilascio di una nuova lease da parte del server dhcp, il server dns venga aggiornato inserendo una nuova voce che renda accessibile il pc appena collegato alla rete tramite il suo hostname oltre che tramite il suo ip.

ESEMPIO:
Rete: valhalla.lan
IP-Pool: 192.168.1.100-192.168.1.200

Laptop: caspar (hostname)

caspar richiede ip -> dhcp assegna 192.168.1.130 -> dhcp informa bind di aggiornare la zona valhalla.lan con il nuovo hostname -> bind crea caspar.valhalla.lan associandolo all'ip 192.168.1.130=> caspar.valhalla.lan viene risolto da ogni macchina che utilizza quel server dns in 192.168.1.130.

Chiavi per l'aggiornamento delle zone

L'aggiornamento della zona definita nel dns richiede la presenza di una chiave comune che autorizza il dhcp a fornire gli hostname con cui aggiornare la zona (o le zone) del dns server. La creazione di tale chiave avviene con il seguente comando:

$ dnssec-keygen -a HMAC-MD5 -b 512 -n HOST 

è il nome della chiave (può essere casuale).

Tale comando genera 2 file: quello contenente la chiave avrà il nome costruito nel seguente modo:

K<keyname>+157+<keyid>.private

Questi file NON sono indispensabili e possono essere eliminati una volta copiata la chiave e l'algoritmo usato.
Configurazione DHCP

Il file di configurazione che modificheremo per primo è /etc/dhcp/dhcpd.conf . Di seguito è riportato un esempio commentato (per la mia lan) con le modifiche da fare

# Abilitiamo l'update dinamico
ddns-updates on;
# Definiamo il metodo di aggiornamento
ddns-update-style interim;
# Definiamo la zona di aggiornamento 
ddns-domainname "valhalla.lan";
# Chiave per l'update delle zone: DEVE essere la stessa definita in named.conf
# E' quella generata in precedenza con dnssec-keygen
key dns_update {
        algorithm HMAC-MD5;
        secret "TbZzkAx5ybh5YIzEMgg/UGE_SECRET_XWLS0KOj4hXlobOcGTqCycma1tqdIjd7tbGwCxg3RZhTjZtDAy6KQ==";
};
# Nomi delle zone da aggiornare:
# primary definisce il server su cui effettuare gli aggiornamenti
# key definisce la chiave da usare per gli aggiornamenti
# Le seguenti zones aggiornato nomi->indirizzi e indirizzi-nomi
# I nomi vanno adattati a quelli della vostra lan
zone valhalla.lan. {
        primary 127.0.0.1;
        key dns_update;
}
 
zone 1.168.192.in-addr.arpa. {
        primary 127.0.0.1;
        key dns_update;
}

Configurazione Bind9

Modifichiamo ora il file di configurazione di bind (/etc/bind/named.conf ) indicandogli se e quale chiave usare per aggiornare le zone. Di seguito riporto un file di esempio (per la mia lan) con i commenti necessari per capire la configurazione:

# Chiave per l'update delle zone: il valore immediatamente seguente a
# "key" definisce il nome della chiave, valori di algorithm e secret sono
# entrambi contenuti nel file generato in precedenza.
# Fate un copia-incolla per evitare inutili problemi.
key dns_update {
        algorithm HMAC-MD5;
        secret "TbZzkAx5ybh5YIzEMgg/UGE_SECRET_XWLS0KOj4hXlobOcGTqCycma1tqdIjd7tbGwCxg3RZhTjZtDAy6KQ==";
};
# Nelle zone che volete aggiornare dinamicamente (che devono già essere presenti
# da una configurazione precedente), aggiungiamo la riga allow-update
# specificando il nome della chiave tramite la quale può essere effettuato
# l'aggiornamento della zona:
zone "valhalla.lan" {
        type master;
        file "lan/valhalla.lan.hosts";
        allow-update {key dns_update;};
};
 
zone "1.168.192.in-addr.arpa" {
         type master;
         file "lan/192.168.1.rev";
         allow-update {key dns_update;};
};

A questo punto basterà eseguire un restart dei due demoni e se tutto è stato fatto correttamente, ad ogni assegnazione di un ip, se il client invia il proprio hostname, corrisponderà un nuovo nome nel vostro dns.
I nomi vengono ovviamente eliminati alla scadenza della lease.

Nel caso ottenete l'errore "Unable to add forward map from" assicuratevi che bind possa scrivere nella cartella della zona di cui volete eseguire l'aggiornamento dinamico.





Commenti

Ritratto di Incubus
#1

Inviato da Incubus il Gio, 27/11/2008 - 19:29.

Correzione Guida

LA formattazione si è mangiata un pezzo: dove scrivo
"Tale comando genera 2 file: quello contenente la chiave avrà il nome costruito nel seguente modo:
K+157+.private"
il nome del file generato in realtà è
K<keyname>+157+<keyid>.private



Ritratto di ntropia
#2

Inviato da ntropia il Sab, 29/11/2008 - 21:13.

Re: Correzione Guida

Glie l'ho fatto risputare.
Controlla se ora va bene.

eNjoy

Chi ha intendimento conti il numero della Bestia, perché è un numero d'uomo; e il suo numero è... rw-rw-rw-