Come installare e configurare un server DNS
Il servizio DNS (Domain Name System) e’ uno dei sistemi piu’ importanti per il funzionamento di Internet stessa. Tutte le macchine che fanno parte della rete sono connesse tra di loro e sono in grado di comunicare poiche’ ad ognuna di essa e’ associato un indirizzo IP univoco. Questi indirizzi sono del tipo 212.25.170.148 ed immaginate quanto sarebbe difficile ricordare il nome di un sito in questo modo, tralasciando il fatto che poi ogni dominio puo’ aver associato piu’ di un indirizzo IP. www.google.it e’ 209.85.229.103, ma anche 209.85.229.104, 209.85.229.105, 209.85.229.106 e 209.85.229.147. Il DNS consente di poter utilizzare nomi mnemonici (di gran lunga piu’ facili da gestire) occupandosi quindi della conversione da nome macchina ad indirizzo IP. Per incrementare la visibilita’ (in caso quindi in cui un dns non funzionasse correttamente) ogni sito puo’ disporre di 3,4, o piu’ DNS distinti ognuno situato in localita’ geografiche differenti. Ogni sito deve avere almeno 2 DNS. La classica configurazione e’ quella che prevede l’utilizzo di un DNS Master (primario) ed un DNS Slave (secondario). I termini “Master/primario” e “Slave/secondario” non stanno ad indicare la priorita’ con il quale vengono interrogati, entrambi forniscono risposte autorevoli ed accettano le richieste con ordine casuale. Il dns master ha le informazioni relative ad un dominio scritte su file locali ed aggiorna quelle degli slave ogni qualvolta viene effettuata una modifica (ad esempio se viene creato un terzo livello del tipo segreteria.lucaercoli.it) oppure quando scade il tempo di vita (chiamato TTL) della zona. Possono coesistere piu’ master ma ogni volta che viene editata una zona (ad esempio per modificare l’indirizzo ip del record www di un sito), dovra’ essere modificata manualmente anche la zona presente sugli altri master (gli slave di aggiorneranno automaticamente). Possono esserci comunque molte configurazioni difatti i DNS possono essere di 5 tipi:
- Master;
- Slave;
- Caching (Ottengono informazioni dai DNS autorevoli, quindi master e slave, memorizzando le informazioni localmente fino allo scadere del TTL. Nel frattempo se ricevono altre query per uno stesso sito, in risposta vengono comunicati i dati presenti in cache);
-Forwarding (Sistemi che “smistano” le query ad un altro DNS, mantenendo in cache i risultati);
- Stealth (Particolari name server il cui nome non viene visualizzato pubblicamente, utilizzati ad esempio per risolvere i nomi delle macchine interne di una societa’ ed evitare che possano essere comunicati all’esterno);
Vediamo adesso come installare e configurare il due server DNS BIND, uno master e l’altro slave. Nell’esempio verranno utilizzate le distribuzioni linux debian e centos:
Debian Linux
Tutti i comandi (se non diversamente specificato) dovranno essere processati sia sul server master che sullo slave.
Installiamo il servizio con
apt-get install bind9 bind9-host dnsutils
N.B. Basterebbe installare bind9 e bind9-host ma in dnsutils ci sono una serie di pacchetti che ci serviranno per fare dei test post installazione
Aggiungere la direttiva
recursion no;
nel gruppo “options” presente nel file /etc/bind/named.conf.options
Creiamo la directory che conterra tutte le zone per cui il nostro dns sara’ autorevole
mkdir /var/named
Configurazione per il Master
in /etc/bind/named.conf.local
zone “lucaercoli.it” {
type master;
file “/var/named/lucaercoli.it.named”;
allow-transfer {212.25.170.147;};
allow-update {212.25.170.147;};
};
N.B. Assegniate alla zona e al persorso del “file” quello del vostro sito e cambiate l’indirizzo ip 212.25.170.147 con quello del vostro server slave per consentire l’aggiornamento della zona quando viene modificata quella sul master
in /var/named/lucaercoli.it.named
$TTL 30m
@ IN SOA dns.lucaercoli.it. dns2.lucaercoli.it. (
2009100200 ;Serial
86400 ;refresh
7200 ;retry
2592000 ;expire
86400 ) ;minimumIN NS dns.lucaercoli.it.
IN NS dns2.lucaercoli.it.IN MX 10 mail
;in house subnet
www IN A 212.25.170.148
ftp IN CNAME www
mail IN A 212.25.170.148dns IN A 212.25.170.146
dns2 IN A 212.25.170.147
N.B. Modificate l’indirizzo ip impostando quello del vostro sito e cambiando ovviamente il nome/ip dei due dns. Fate attenzione ad indentare corrattamente il file. Gli spazi sono importanti difatti bind potrebbe non leggere correttamente la zona. Dare quindi almeno uno spazio ad inizio riga di “IN NS”
Riavviare il servizio
/etc/init.d/bind9 restart
Configurazione per il server Slave:
in /etc/bind/named.conf.local
zone “lucaercoli.it” {
type slave;
file “/var/named/lucaercoli.it.named”;
masters {
212.25.170.146;
};
};
N.B. Cambiate l’indirizzo ip 212.25.170.146 con quello del vostro server master e assegnate sia al nome della zona che al “file” quella associata al vostro sito
Riavviare il servizio
/etc/init.d/bind9 restart
CentOS GNU/Linux
Tutti i comandi (se non diversamente specificato) dovranno essere processati sia sul server master che sullo slave.
Installiamo il servizio con
yum install bind bind-libs bind-chroot bind-utils
Creiamo il file /var/named/chroot/etc/named.conf con questo contenuto
options {
directory “/var/named”;
pid-file “/var/run/named/named.pid”;recursion no;
listen-on {
127.0.0.1;
212.25.170.148;
};};
N.B. In “listen-on” impostate l’indirizzo ip su cui il dns deve rispondere.
Configurazione per il Master
in /var/named/chroot/etc/named.conf aggiungere
zone “lucaercoli.it” IN {
type master;
file “data/lucaercoli.it.named”;allow-transfer {212.25.170.147;};
allow-update {212.25.170.147;};};
N.B. Assegniate alla zona e al persorso del “file” quello del vostro sito e cambiate l’indirizzo ip 212.25.170.147 con quello del vostro server slave per consentire l’aggiornamento della zona quando viene modificata quella sul master
in /var/named/chroot/var/named/data/lucaercoli.it.named
$TTL 30m
@ IN SOA dns.lucaercoli.it. dns2.lucaercoli.it. (
2009100200 ;Serial
86400 ;refresh
7200 ;retry
2592000 ;expire
86400 ) ;minimumIN NS dns.lucaercoli.it.
IN NS dns2.lucaercoli.it.IN MX 10 mail
;in house subnet
www IN A 212.25.170.148
ftp IN CNAME www
mail IN A 212.25.170.148dns IN A 212.25.170.146
dns2 IN A 212.25.170.147
N.B. Modificate l’indirizzo ip impostando quello del vostro sito e cambiando ovviamente il nome/ip dei due dns. Fate attenzione ad indentare corrattamente il file. Gli spazi sono importanti difatti bind potrebbe non leggere correttamente la zona. Dare quindi almeno uno spazio ad inizio riga di “IN NS”
Riavviare il servizio
/etc/init.d/named restart
Configurazione per lo Slave
in /var/named/chroot/etc/named.conf aggiungere
zone “lucaercoli.it” {
type slave;
file “data/lucaercoli.it.named”;
masters {
212.25.170.146;
};
};
N.B. Cambiate l’indirizzo ip 212.25.170.146 con quello del vostro server master e assegnate sia al nome della zona che al “file” quella associata al vostro sito
Riavviare il servizio
/etc/init.d/named restart


