INDIETRO SU AVANTI

Configurazione di un server DNS primario e secondario

Il server consiste in UNIX nel processo named lanciato come demone. Questo processo fa' riferimento al file di configurazione primario che si chiama /etc/named.boot.

Per un server primario un esempio di questo file puo' essere:

directory       /etc/named

cache           .                       named.ca
primary         zinkel.com              named.hosts
secondary	robur.com	168.33.34.212	robur.bak
primary         27.168.in-addr.arpa.    named.rev
primary         0.0.127.in-addr.arpa.   named.local

Si supponga che l'indirizzo del server sia 168.27.69.3 e che vi siano configurate tutte le macchine della ditta di dominio 'zinkel.com', che ha una maschera di rete corrispondente alla classe B (2 bytes per l'indirizzo host).

La linea con la direttiva directory informa che tutti i files di configurazione si trovano nella directory /etc/named.

La linea cache configura la macchina corrente come server di cache. Il singolo punto e' un segnaposto per il secondo campo. Il terzo campo, named.ca e' il nome di un file contenente la lista di server a piu' alto livello da contattare nella risoluzione di nomi non trovati nella cache locale.

La parola chiave primary configura la macchina corrente come server primario; in tal caso seguono due campi che sono l'oggetto di cui la macchina e' server primario e il file di configurazione relativo.

L'oggetto puo' essere un nome di dominio 'diritto', come p. es. 'zinkel.com' o un indirizzo 'rovesciato'.

Per risolvere il problema inverso della traduzione da indirizzi a nomi e' stato creato un dominio ad alto livello chiamato in-addr.arpa. che contiene 256 sottodomini, uno per ciascun valore del primo byte di un indirizzo IP. Ciascuno di questi contiene 256 sotto-sottodomini, uno per ciascun valore del secondo byte, e similmente per il terzo.

In tal modo un computer di indirizzo 199.213.34.56 viene anche ad appartenere, ai fini della risoluzione indirizzi a nomi, al dominio 34.56.213.199.in-addr.arpa.

Nel nostro esempio il computer corrente' e' server primario delle traduzioni indirizzi a nomi per gli ultimi due byte dell'indirizzo '168.27.x.x'.

Il particolare indirizzo 0.0.127.in-addr.arpa. corrisponde all'indirizzo 127.0.0.1 che identifica la macchina locale. Il file di configurazione e' molto corto, stranamente deve esserci in alcune implementazioni BIND, ma non e' molto utile.

La parola chiave secondary identifica la macchina corrente come server secondario di un oggetto dato. I campi seguenti sono tre: il nome dell'oggetto (diritto o rovescio), il nome o indirizzo del server primario corrispondente, il nome del file in cui i dati provenienti dal server primario devono venire copiati.

Si dice che un server primario amministra una determinata zona, e mantiene i files 'veri' per quella zona. Un server primario e' 'autorevole' per la sua zona. A intervalli piu' o meno regolari un server secondario contatta il primario ed esegue un trasferimento dati, un zone transfer di tutta o parte della zona.

Cosa debba venir trasferito e' il secondo campo della linea 'secondary', da dove e' il terzo campo, a quale file locale 'di copia' e' il quarto campo. I tempi e i modi di trasferimento sono mantenuti sul server primario in un cosiddetto Record di Autorita'.

named.ca


.		99999999	IN	NS	ns.nic.ddn.mil.
ns.nic.ddn.mil.	99999999	IN	A	26.3.0.103
.		99999999	IN	NS	ns.nasa.gov.
ns.nasa.gov.	99999999	IN	A	128.102.16.10

La lista e' quella dei computer server DNS da contattare se il server corrente non e' in grado di risolvere una richiesta. La lista puo' includere il nome del server gerarchicamente superiore o alcuni o tutti i server del Dominio Radice.

Una linea si chiama un record ed e' formata da un numero di campi. Se il primo campo e' un punto allora il record si riferisce al dominio corrente, altrimenti il primo campo e' un oggetto di cui viene fornita la risoluzione.

Un nome di dominio terminato esplicitamente da un punto e' completo, se non e' terminato da un punto si intende un sottodominio del dominio locale.

Il secondo campo, opzionale, e' il periodo di validita' del record. Otto volte nove indica un periodo infinito. Il default se il campo non esiste e' dato dal Record di Autorita'.

Il terzo campo e' sempre IN e indica risoluzione DNS Internet. Il campo successivo e' il tipo di record: A significa 'address' e vi segue un indirizzo, NS significa 'name server' e vi segue il nome di un server.

Non importa se si usano le maiuscole o minuscole nei nomi di dominio.

named.hosts

Questo e' il file di configurazione veramente interessante, ed un esempio puo' essere:

@	IN	SOA	king.zinkel.com root.king.zinkel.com (
			16	; serial
			86400	; refresh
			3600	; retry
			3600000	; expire
			604800	; minimum
			)
	IN	NS	king.zinkel.com.
	IN	MX	10	relay

localhost.	IN	A	127.0.0.1
zk01		IN	A	168.27.69.3
		IN	CNAME	router
zk02		IN	A	168.27.69.2
		IN	CNAME	www
		IN	CNAME	webserv
zk03		IN	A	168.27.69.3
		IN	CNAME	relay

Il primo record e' lo Start OF Authority (SOA) o Record di Autorita'. Tutto quello che segue e' designato come autorevole. In questo record il primo campo, '@' designa il 'contesto' corrente, ed e' un simbolo chiave che identifica la zona su cui si ha autorita'

Il quarto campo e' il nome del computer che ha l'autorita'. Il quinto campo e' l'indirizzo di posta elettroni ca del responsabile: poiche' il carattere '@' e' riservato, viene sostituito con un carattere punto.

Dato che il record e' piu' lungo di una riga, la perentesi tonda aperta permette la prosecuzione su righe seguenti.

I campi numerici che seguono sono istruzioni che il corrente server primario fornisce ai server secondari che desiderino trasferire questo file. Il campo serial e' un numero seriale e va cambiato ad ogni modifica del file. Il server secondario esegue il trasferimento solo se la veersione nuova ha seriale piu' alto di quella gia' posseduta.

Il campo refresh e' il numero di secondi allo scadere dei quali il secondario deve provare ad eseguire un nuovo trasferimento di zona. Se il secondario non riesce a contattare il primario, deve riprovare ogni retry secondi. Se non e' riuscito dopo expire secondi i dati vecchi devono considerarsi scaduti.

Il tempo minimum infine e' la durata di validita' di default dei record che non hanno una durata esplicitamente assegnata.

Il record NS esprime quale sia il server del dominio corrente. Se il primo campo e' vuoto, viene inteso lo stesso primo campo del record precedente.

Il record di tipo MX definisce il 'Mail Exchanger'; il valore del quarto campo, 10, ne esprime la priorita' relativa. Vi possono essere piu' record MX definiti: ha priorita' maggiore quello col numero piu' basso.

Viene definito il record di tipo A (Address) per il nome speciale localhost. Notare il punto finale: e' un nome completo, non 'localhost.zinkel.com'.

Vengono definiti gli indirizzi di tre computer, p.es. zk01, che non avendo il punto e' espanso a 'zk01.zinkel.com'.

I record di tipo CNAME esprimono dei nomi alias dei precedenti nomi ufficiali.

Sono possibili altri tipi di record, ma quelli esaminati sono i principali.

named.rev

@       IN      SOA     king.zinkel.com root.king.zinkel.com (
                        16      ; serial
                        86400   ; refresh
                        3600    ; retry
                        3600000 ; expire
                        604800  ; minimum
                        )
        IN      NS      king.zinkel.com.

1.69	IN	PTR	zk01.zinkel.com.
2.69	IN	PTR	zk02.zinkel.com.
3.69	IN	PTR	zk03.zinkel.com.

Il record SOA e' uguale a quello per gli indirizzi diritti. Puo', volendo, contenere dei tempi diversi.

I record di tipo PTR sono 'puntatori', cioe' trasformano da indirizzi in nomi. Notare che i nomi sono di dominio completo poiche' hanno il punto finale.

Gli indirizzi sono la prima parte dell'indirizzo rovesciato, ove la parte rimanente e' nel file /etc/named.boot. Per esempio concatenare il primo 1.69 con il rimanente indirizzo rovesciato 27.168.in-addr.arpa. da /etc/named.boot: si ottiene l'equivalente rovesciato dell'indirizzo 168.27.69.1

named.local

@	IN	SOA	king.zinkel.com root.king.zinkel.com (
			1 360000 3600 3600000 360000 )
	IN	NS	king.zinkel.com.
1	IN	PTR	localhost.

Il primo record di questo file e' il Record di Autorita' ma anche se indispensabile, non e' mai veramente usato in questo caso: e' importante solo far attenzione al quarto e quinto campo.

Il secondo record e' di tipo NS e definisce il server DNS del dominio corrente. IIl terzo record risolve a rovescio lo host numero 1, appartenente al dominio di prefisso 127.0.0 come nome 'localhost'.