Installazione e configurazione Bind9
Installare un server dns per uso “casalingo” usando una debian 4.0 e Bind9.
Lo scopo di questo post è aiutare chi come me ha bisogno solamente di un server dns interno alla propria rete che gestisca i nomi degli host collegati, oltre ad aumentare drasticamente il tempo di risoluzione dei domini su internet.
Si inizia naturalmente con l’installazione del software necessario al nostro scopo, quindi:
# apt-get install bind9 bind9-host dnsutils
Fatto questo non ci resta che addentrarci nella configurazione del tutto.
N.B. I file di configurazione di bind9 hanno una sintassi un pò ostica. Per tutti le opzioni possibili rimando alle pagine di man. Di seguito verrà solamente illustrata e commentata la mia configurazione!!
Il server dns può funzionare in 3 modi diversi:
- Forward First: la richiesta di un certo nome viene prima inviata al nostro server “casalingo”, che se non riesce a trovare la giusta corrispondenza inoltra la richiesta ai server del nostro provider.
- Forward Only: la richiesta viene direttamente inoltrata ai server del nostro provider; se questi non riescono a trovare il nome il nostro server restituisce un errore.
- Root Only: la richiesta viene inoltrata ai server di zona principali (root server), i quali sono sempre conosciuti.
Per il mio scopo utilizzerò il primo!!!
Aggiungo che i commenti iniziano con ; nei file di configurazione di bind9 e che ogni riga deve terminare anch’essa con ;
Rechiamoci quindi nella dir /etc/bind/ e iniziamo col modificare il file named.conf.options :
# cd /etc/bind/
# vi named.conf.option
options {
directory “/var/cache/bind”;
forward first;
forwarders {
208.67.222.222;
208.67.220.220;
};
auth-nxdomain no;
};
Spieghiamo cosa c’è scritto… La terza riga indica il funzionamento: Forward First. Successivamente sono impostati i due server dns a cui il mio deve inoltrare le richieste (sono gli indirizzi ip di OpenDns, i quali sono vivamente consigliati).
A questo punto sempre nella dir /etc/bind/ andiamo a modificare named.conf :
# vi named.conf
zone "." {
type hint;
file “/etc/bind/db.root”;
};
zone “localhost” {
type master;
file “/etc/bind/db.local”;
};
zone “127.in-addr.arpa” {
type master;
file “/etc/bind/db.127″;
};
zone “0.in-addr.arpa” {
type master;
file “/etc/bind/db.0″;
};
zone “255.in-addr.arpa” {
type master;
file “/etc/bind/db.255″;
};
include “/etc/bind/named.conf.local”;
include “/etc/bind/named.conf.options”;
Quello che più ci interessa di questo file sono le ultime due righe: includono la configurazione dei due file citati.
Andiamo a vedere invece named.conf.local :
# vi named.conf.local
zone "mioserver.esempio.com" in {
type master;
file “/etc/bind/db.local”;
};
zone “0.0.10.in-addr.arpa” in {
type master;
file “/etc/bind/0.0.10″;
};
Questo è il file più importante; qui vengono create le zone di azione (locali) del nostro server dns. Come si vede nel mio caso sono definite due zone, etanoox.wordpress.org e la zona per il reverse DNS (cioè risolvere da indirizzo a nome) 0.0.10.in-addr.arpa ; il type è master e file è seguito dal percorso del file di zona necessario al corretto funzionamento.
Vediamo ora quindi questi file di zona appena citati:
# vi db.local
$TTL 3h
@ IN SOA mioserver.esempio.com. etanoox.mioserver.esempio.com (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS localhost.
@ IN A 127.0.0.1
client1 A 10.0.0.3
server posta A 10.0.0.2
router A 10.0.0.1
mioserver A 10.0.0.5
# vi 0.0.10
$TTL 3h
@ IN SOA mioserver.esempio.com etanoox.mioserver.esempio.com (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
IN NS mioserver.esempio.com.
1 IN PTR router.esempio.com.
2 IN PTR serverposta.esempio.com.
3 IN PTR client1.esempio.com.
5 IN PTR mioserver.esempio.com.
Per completare listo il contenuo completo di /etc/bind/ :
# ls /etc/bind/
0.0.10 db.127 db.empty db.root named.conf.local rndc.key
db.0 db.255 db.local named.conf named.conf.options zones.rfc1918
Non ci resta che riavviare bind9 e testare il tutto
# /etc/init.d/bind9 restart
Consiglio: Per testare i file di zona usare il comando named-checkzone seguito dal nome della zona e dal file.
# named-checkzone local db.local
zone local/IN: loaded serial 1
OK
Postato in: Install & Config













