Configurazione

BIND9 può essere configurato in diversi modi tra cui: come cache per server dei nomi, master principale e master secondario.

  • Quando configurato come un server dei nomi cache, BIND9 troverà la risposta alle interrogazioni sui nomi e la archivierà.

  • Come server primario, BIND9 legge i dati per una zona da un file ed è autoritativo per quella zona.

  • Nella configurazione come server secondario, BIN9 ottiene i dati della zona da un altro server dei nomi per quella zona.

Panoramica

I file di configurazione di DNS sono archiviati nella directory /etc/bind, il file di configurazione principale è /etc/bind/named.conf.

La riga include specifica il nome del file contenente le opzioni DNS, la riga directory nel file /etc/bind/named.conf.options indica a DNS dove cercare i file. Tutti i file usati da BIND sono presenti in questa directory.

Il file /etc/bind/db.root descrive i server dei nomi "radice" nel mondo. Questi server cambiano col tempo, quindi il file /etc/bind/db.root deve essere aggiornato ogni tanto, procedura che viene svolta, solitamente, con gli aggiornamenti al pacchetto bind9. La sezione zone definisce un server principale ed è archiviata in un file indicato dall'opzione file.

È possibile configurare lo stesso server sia come server dei nomi cache, master primario e secondario. Un server può ricoprire il ruolo di "Start of Authority" (SOA) per una zona, fornendo allo stesso tempo servizi di server secondario per un'altra zona e di cache per gli host della LAN.

Server dei nomi cache

La configurazione predefinita comporta l'utilizzo come server di cache. È necessario solamente aggiungere gli indirizzi IP dei server DNS del proprio ISP. De-commentare e modificare quanto segue nel file /etc/bind/named.conf.options:

forwarders {
                1.2.3.4;
                5.6.7.8;
           };
[Nota]

Sostituire 1.2.3.4 e 5.6.7.8 con gli indirizzi IP del server di nomi attuale.

Per abilitare la nuova configurazione è necessario riavviare il server DNS. Da un terminale, digitare:

sudo /etc/init.d/bind9 restart

Per maggiori informazioni su come eseguire test su un server cache DNS, consultare la sezione chiamata «dig».

Server primario

In questa sezione, BIND9 viene configurato come server primario per il dominio example.com. Basta sostituire example.com con il proprio FQDN (Fully Qualified Domain Name).

File zona forward

Per aggiungere una zona DNS a BIND9, trasformando BIND9 in un server primario, la prima cosa da fare è modificare il file /etc/bind/named.conf.local:

zone "example.com" {
	type master;
        file "/etc/bind/db.example.com";
};

Prendere un file zona esistente come modello per creare il file /etc/bind/db.example.com:

sudo cp /etc/bind/db.local /etc/bind/db.example.com

Modificare il file /etc/bind/db.example.com cambiando localhost. nel FQDN del proprio server, lasciando il "." alla fine. Modificare 127.0.0.1 con l'indirizzo IP del server di nomi e root.localhost con un indirizzo email valido, ma con un "." al posto del simbolo "@", anche in questo caso lasciando il "." alla fine.

Inoltre, creare una voce A per ns.example.com. Il server dei nomi in questo esempio:

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.example.com. root.example.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.example.com.
@       IN      A       127.0.0.1
@       IN      AAAA    ::1
ns      IN      A       192.168.1.10

È necessario incrementare il numero Serial ogni volta che vengono apportate modifiche al file zona. Se vengono eseguite molteplici modifiche prima di riavviare BIND, incrementare il valore solo una volta.

Ora è possibile aggiungere voci DNS alla fine del file zona. Per maggiori informazioni, consultare la la sezione chiamata «Tipi di record comuni».

[Nota]

Molti amministratori usano come valore per "Serial" la data dell'ultima modifica, come 2007010100 in cui si ha AAAAMMGGSS (dove SS è il valore "Serial").

Modificato il file zona, è necessario riavviare BIND9 affinché le modiche vengano applicate.

sudo /etc/init.d/bind9 restart

File zona reverse

Una volta configurata la zona e la risoluzione dei nomi con un indirizzo IP, è necessaria anche una zona Reverse. Una zona "Reverse" consente a DNS di trasformare un indirizzo in un nome.

Modificare il file /etc/bind/named.conf.local aggiungendo quanto segue:

zone "1.168.192.in-addr.arpa" {
        type master;
        notify no;
        file "/etc/bind/db.192";
};
[Nota]

Sostituire 1.168.192 con i primi tre valori dell'indirizzo della rete che si sta usando. Inoltre, chiamare il file zona /etc/bind/db.192 in modo appropriato, in modo tale che rispecchi il primo ottetto della propria rete.

Creare il file /etc/bind/db.192:

sudo cp /etc/bind/db.127 /etc/bind/db.192

Quindi modificare /etc/bind/db.192 cambiando le stesse opzioni di /etc/bind/db.example.com:

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.example.com. root.example.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.
10      IN      PTR     ns.example.com.

The Serial Number in the Reverse zone needs to be incremented on each change as well. For each A record you configure in /etc/bind/db.example.com you need to create a PTR record in /etc/bind/db.192.

Dopo aver creato il file zona "reverse", riavviare BIND9:

sudo /etc/init.d/bind9 restart

Server secondario

Una volta configurato un server primario, un server secondario è necessario per mantenere la disponibilità del dominio nel caso in cui quello primario non fosse più disponibile.

Per prima cosa, nel server primario ("Primary Master"), deve essere consentita la zona "transfer". Aggiungere l'opzione allow-transfer alle definizioni delle zone "Forward" e "Reverse" in /etc/bind/named.conf.local:

zone "example.com" {
        type master;
	file "/etc/bind/db.example.com";
        allow-transfer { 192.168.1.11; };
};

zone "1.168.192.in-addr.arpa" {
        type master;
        notify no;
        file "/etc/bind/db.192";
	allow-transfer { 192.168.1.11; };
};
[Nota]

Sostituire 192.168.1.11 con l'indirizzo IP del server di nomi secondario.

Quindi, in quello secondario ("Secondary Master"), installare il pacchetto bind9 come fatto per il server primario, quindi modificare il file /etc/bind/named.conf.local e aggiungere le seguetni dichiarazioni per le zone "Forward" e "Reverse":

zone "example.com" {
	type slave;
        file "db.example.com";
        masters { 192.168.1.10; };
};        
      
zone "1.168.192.in-addr.arpa" {
	type slave;
        file "db.192";
        masters { 192.168.1.10; };
};
[Nota]

Sostituire 192.168.1.10 con l'indirizzo IP del server dei nomi primario.

Riavviare BIND9 nel server secondario:

sudo /etc/init.d/bind9 restart

In /var/log/syslog si dovrebbe vedere qualche cosa:

slave zone "example.com" (IN) loaded (serial 6)
slave zone "100.18.172.in-addr.arpa" (IN) loaded (serial 3)
[Nota]

Una zona è trasferita solamente se Serial Number del server primario è maggiore di quello del server secondario.

[Nota]

The default directory for non-authoritative zone files is /var/cache/bind/. This directory is also configured in AppArmor to allow the named daemon to write to it. For more information on AppArmor see la sezione chiamata «AppArmor».