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; };
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 service bind9 restart
Per maggiori informazioni su come eseguire test su un server cache DNS, consultare 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
Edit the new zone file /etc/bind/db.example.com change localhost. to the FQDN of your server, leaving the additional "." at the end. Change 127.0.0.1 to the nameserver's IP Address and root.localhost to a valid email address, but with a "." instead of the usual "@" symbol, again leaving the "." at the end. Change the comment to indicate the domain that this file is for.
Create an A record for the base domain, example.com. Also, create an A record for ns.example.com, the name server in this example:
; ; BIND data file for example.com ; $TTL 604800 @ IN SOA example.com. root.example.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL IN A 192.168.1.10 ; @ IN NS ns.example.com. @ IN A 192.168.1.10 @ 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 Tipi di record comuni.
Many admins like to use the last date edited as the serial of a zone, such as 2012010100 which is yyyymmddss (where ss is the Serial Number)
Once you have made changes to the zone file BIND9 needs to be restarted for the changes to take effect:
sudo service 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; 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 192.168.1.XXX net ; $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, that is for a different address, you need to create a PTR record in /etc/bind/db.192.
Dopo aver creato il file zona "reverse", riavviare BIND9:
sudo service 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; 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.
Restart BIND9 on the Primary Master:
sudo service bind9 restart
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 service bind9 restart
In /var/log/syslog you should see something similar to (some lines have been split to fit the format of this document):
client 192.168.1.10#39448: received notify for zone '1.168.192.in-addr.arpa' zone 1.168.192.in-addr.arpa/IN: Transfer started. transfer of '100.18.172.in-addr.arpa/IN' from 192.168.1.10#53: connected using 192.168.1.11#37531 zone 1.168.192.in-addr.arpa/IN: transferred serial 5 transfer of '100.18.172.in-addr.arpa/IN' from 192.168.1.10#53: Transfer completed: 1 messages, 6 records, 212 bytes, 0.002 secs (106000 bytes/sec) zone 1.168.192.in-addr.arpa/IN: sending notifies (serial 5) client 192.168.1.10#20329: received notify for zone 'example.com' zone example.com/IN: Transfer started. transfer of 'example.com/IN' from 192.168.1.10#53: connected using 192.168.1.11#38577 zone example.com/IN: transferred serial 5 transfer of 'example.com/IN' from 192.168.1.10#53: Transfer completed: 1 messages, 8 records, 225 bytes, 0.002 secs (112500 bytes/sec)
Note: A zone is only transferred if the Serial Number on the Primary is larger than the one on the Secondary. If you want to have your Primary Master DNS notifying Secondary DNS Servers of zone changes, you can add also-notify { ipaddress; }; in to /etc/bind/named.conf.local as shown in the example below:
zone "example.com" { type master; file "/etc/bind/db.example.com"; allow-transfer { 192.168.1.11; }; also-notify { 192.168.1.11; }; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192"; allow-transfer { 192.168.1.11; }; also-notify { 192.168.1.11; }; };
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 AppArmor.