## Configurazione

Ci sono diversi metodi per configurare BIND9. Alcune delle configurazioni più comuni consistono in un server dei nomi cache, un server primario e un server 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 un server dei nomi come server cache, server primario o secondario. Un server può essere lo "Start of Authority" (SOA) per una zona, fornendo al tempo stesso servizi di server secondario per un'altra e servizi di cache per gli host nella rete locale.

### 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;
               };

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. (
                                  1         ; Serial
                             604800         ; Refresh
                              86400         ; Retry
                            2419200         ; Expire
                             604800 )       ; Negative Cache TTL
    ;
    @       IN      NS      ns.example.com.
    @       IN      A       192.168.1.10
    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».

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

Una volta apportate le modifiche al file zona, è necessario riavviare BIND9 affinché i cambiamenti abbiano effetto:

    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";
    };

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.

È necessario incrementare il valore Serial ogni volta che vengono apportate modifiche. Per ogni voce A che viene configurata in `/etc/bind/db.example.com`, è necessario creare una voce PTR 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; };
    };

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; };
    };

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)

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

Installazione |  | Risoluzione problemi