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.
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.
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».
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).
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
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 |
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
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. |