![]() |
|
Teoria
Se avete seguito le parti precedenti della guida, avete una rete con un server ed un client collegati fisicamente tra loro mediante apparati appositi, probabilemente switch.
Quando collegate un qualsiasi device, sia esso server o client, che sia configurato per ottenere automaticamente un indirizzo IP, questo potrà scambiare dati con gli altri device presenti sulla rete. Allo stato attuale qualsiasi attività dobbiate fare dovete far riferimento agli oggetti tramite il loro indirizzo IP. Fino a qui tutto bene, il server è uno solo, ma quando i device saranno molti, come fare a tenere il passo con la distribuzione degli indirizzi? Ad ogni riavvio un server potrebbe aver cambiato indirizzo, se per qualsiasi motivo un client facesse accesso ad una risorsa presente sul server, dovreste cambiare la configurazione di detto client.
Per ovviare a questa problematica, andremo oggi ad installare e configurare il servizio DNS.
L'acronimo per esteso equivale a "Domain Name System".
Questo servizio, che si basa sul protocollo omonimo, di fatto è un database che tiene traccia dell'associazione Nome Dispositivo - Indirizzo IP e permette di reperire, tramite il protocollo DNS, le informazioni in esso contenute.
Ad esempio nel nostro caso nel database ci sarà l'accoppiata ServerUno - 192.168.1.1, Client di prova - 192.168.1.100.
Configurando opportunamente i dispositivi in modo che facciano riferimento al server DNS, sarà possibile accedere ai vari dispositivi utilizzando il loro nome host.
Vedremo in seguito come configurare il dhcp server in modo che assegni automaticamente anche l'indirizzo del DNS server insieme all'indirizzo dinamico.
Pratica
Dopo una veloce infarinatura, procediamo con l'installazione del servizio DNS server. Per praticità e convenienza economica procederemo con l'installazione sullo stesso server ove risiede il DHCP. Questi servizi, infatti, hanno poche pretese in termini di occupazione di spazio, di occupazione di memoria, di occupazione processore, pertanto possono convivere tranquillamente senza pestarsi i piedi.
Se partissimo da zero con l'installazione di un server ubuntu, potremmo scegliere direttamente in fase di installazione il ruolo "DNS Server". Avendo invece saltato quella configurazione sul nostro ServerUno, andremo a fare gli stessi passi in modalità amanuense.
Cominciamo lanciando il seguente comando (ovviamente dopo aver fatto logon con l'utenza creata durante l'installazione, chevvelodicoaffà!):
tasksel --list-tasks
che vi permetterà di controllare quali ruoli sono installati per questo server.
Proseguiamo eseguendo:
tasksel --task-packages dns-server
che vi mostrerà l'elenco dei pacchetti che sarebbero stati installati automaticamente se avessimo selezionato il ruolo DNS Server
Procediamo ora con l'installazione vera e propria eseguendo:
sudo tasksel install dns-server
inserite la vostra password ed attendete che sia ultimato il procedimento.
Digitando il comando:
netstat -tanp
vedrete che il vostro server è in ascolto sulla porta 53, indicante che il vostro servizio è attivo. Questa, infatti, è la porta tcp attraverso la quale viaggia il protocollo per interrogare il DNS.
Procediamo ora con la configurazione.
Innanzitutto dobbiamo configurare la zona dns primaria - quella che diventerà di fatto la zona autoritativa per il nostro dominio -, in fase di installazione del server avevo scelto come nome di dominio mioDominio (che fantasia!).
Bind9 usa il file named.conf per le configurazioni basilari del servizio ed include in fondo ad esso il file named.conf.local appositamente pensato per ospitare le configurazioni individuali.
Andiamo quindi a modificare questo file digitando:
sudo vi /etc/bind/named.conf.local
oppure
sudo nano /etc/bind/named.conf.local
ed inserendo le seguenti righe in fondo ad esso:
zone “mioDominio” IN {
type master;
file “/var/lib/bind/db.mioDominio”;
};
Così facendo abbiamo definito la zona associata al nostro dominio specificando in quale file devono essere contenute le informazioni del db del DNS.
Oltre a fare la ricerca dei nomi, il servizio DNS effettua le ricerche dette di reverse lookup ovvero partendo da un indirizzo IP segnala quale sia il nome host. Per far sì che funzioni anche questa parte del servizio bisogna aggiungere la zona di reverse sempre all'interno del file named.conf.local.
Aggiungiamo quindi in fondo al file le seguenti righe:
zone “1.168.192.in-addr.arpa” {
type master;
file “/var/lib/bind/db.1-168-192.in-addr.arpa”;
};
Così facendo abbiamo creato la zona di reverse lookup per la nostra subnet 192.168.1.0/24.
Definite le zone andiamo a popolare i database; digitiamo:
sudo vi /var/lib/bind/db.mioDominio
oppure
sudo nano /var/lib/bind/db.mioDominio
ed inseriamo le seguenti righe:
mioDominio. IN SOA serverUno.mioDominio. administrator.mioDominio. (
2009062501 ; numero di serie
12H ; refresh
4H ; retry
4W ; expire
1D ; minimum
)
Abbiamo appena inserito il record principale (State Of Authority) della zona, che indica quale sia il dns di riferimento per la zona (serverUno.mioDominio), quale la mail di riferimento (nel mio caso administrator@mioDominio) e quali i parametri di aggiornamento dei record all'interno del db.
Importante: il numero di serie per praticità equivale alla data di ultima modifica e viene inserito nel formato "AAAAMMGGnn", dove nn e' un progressivo numerico a due cifre che permette di differenziare le variazioni avvenute nella stessa giornata.
Questo dato va modificato ogni qual volta viene aggiornato manualmente il file db del DNS. Altra considerazione importante: ogni FQN (Fully qualified name), ovvero ogni nome nella forma nome.dominio deve essere terminato da un punto, quindi ogni qual volta faremo riferimento ad esempio al server dns della nostra zona DNS all'interno dei file di configurazione dovremo scrivere: dns.mioDominio. e non dns.mioDominio (ora metto il punto di fine frase, non di fine FQN).
Procediamo con l'inserimento dopo il record SOA degli altri record, inserendo:
mioDominio. IN NS serverUno.mioDominio.
mioDominio. IN MX 10 serverDue.mioDominio.
mioDominio. IN MX 20 serverTre.mioDominio.
serverUno IN A 192.168.1.1
serverDue IN A 192.168.1.2
serverTre IN A 192.168.1.3
dns IN CNAME serverUno.mioDominio.
mail IN CNAME serverDue.mioDominio.
smtp IN CNAME serverDue.mioDominio.
Così facendo abbiamo inserito il record NS (Name Server) che identifica il domain server autoritativo, cioè il DNS che stiamo configurando, i record MX (Mail eXchange) usati per identificare i server di posta con la relativa priorità (il principale è quello col numero più basso), i record A (Address) che identificano delle associazioni Nome - Indirizzo e dei record CNAME (Canonical NAME) che aggiungono degli alias ai server già inseriti. Nel nostro caso il server dns risponderà sia al nome dns.mioDominio, sia a ServerUno.mioDominio.
Adesso proseguiamo configurando il file della zona di reverse digitando:
sudo vi /var/lib/bind/db.1-168-192.in-addr.arpa
oppure
sudo nano /etc/bind/db.1-168-192.in-addr.arpa
ed inserendo le seguenti righe di configurazione:
1.168.192.in-addr.arpa. IN SOA serverUno.mioDominio. administrator.mioDominio. (
2009062501 ; numero di serie
12H ; refresh
4H ; retry
4W ; expire
1D ; minimum
)
1.168.192.in-addr.arpa. IN NS serverUno.mioDominio.
1 IN PTR serverUno.mioDominio.
2 IN PTR serverDue.mioDominio.
Così facendo abbiamo inserito i record PTR (PoinTeR) di reverse.
Ora possiamo verificare che quanto fatto fino ad ora funzioni realmente.
Riavviamo il servizio BIND9 eseguendo il comando:
sudo /etc/init.d/bind9 restart
Se tutto va come dovrebbe, dovremmo avere "OK" in risposta allo start del servizio. In caso contrario consiglio di controllare i log sotto /var/log/syslog, molto probabilmente avete commesso qualche piccolo errore o svista nella configurazione.
Accertiamoci che il server DNS del nostro server sia impostato su sè stesso eseguendo:
cat /etc/resolv.conf
se il nameserver impostato è corretto (192.168.1.1) allora possiamo proseguire digitando:
nslookup serverUno
se tutto fila liscio dovremmo ottenere di risposta l'indirizzo ovvero 192.168.1.1
Ora andiamo a testare il reverse lookup eseguendo:
nslookup 192.168.1.2
dovremmo avere in risposta 2.1.168.192.in-addr.arpa name serverDue.mioDominio
Come da figura qui sotto.
Termina qui l'installazione base del secondo servizio della nostra rete fai-da-te.
Vi lascio con qualche link e qualche suggerimento di ricerca per ulteriori approfondimenti o per eventuali errori non previsti.
Per approfondire:
Errori di configurazione DNS (EN)
Il servizio bind9 non parte (EN)
Il servizio dns non risolve i nomi (EN)