I file zone, contenenti le informazioni relative a un determinato namespace, sono memorizzati nella directory operativa di named, /var/named per default. Ogni file zone viene nominato a seconda dei dati indicati nell'opzione file contenuta nell'istruzione zone. In genere si riferisce al dominio in questione e identifica il file in quanto contiene dati sulla zona, come per esempio example.com.zone.
Ogni file zone pu� contenere direttive e dei record della risorsa. Le direttive indicano al server dei nomi di eseguire una certa azione o di eseguire delle impostazioni speciali per la zona. I record della risorsa definiscono i parametri della zona attribuendo una identit� a host individuali. Le direttive sono facoltative, mentre i record della risorsa sono necessari per fornire il servizio dei nomi a quella zona.
Tutte le direttive ed i record dovrebbero essere inseriti su righe diverse.
Nei file zone � possibile aggiungere dei commenti dopo il carattere punto e virgola (;).
12.3.1. Direttive dei file zone
Le direttive sono contraddistinte dal carattere $ che precede il nome della direttiva e che di solito si trova all'inizio del file zone.
Le direttive pi� usate sono le seguenti:
$INCLUDE — indica a named di includere un file zone in un altro file nel punto in cui viene usata la direttiva. Ci� consente di memorizzare impostazioni di zona aggiuntive separatamente dal file zone principale.
$ORIGIN — imposta il nome del dominio da accodare a qualsiasi record non qualificato, come quelli che specificano solo l'host e nient'altro.
Per esempio, un file zone potrebbe contenere una riga seguente:
$ORIGIN example.com.
Qualsiasi nome utilizzato nei record della risorsa, che non terminacon un punto (.), presenter� example.com.
Nota bene
Non � necessario usare la direttiva $ORIGIN se alla zona si assegna un nome nel file /etc/named.conf identico al valore che assegnereste a $ORIGIN. Il nome della zona viene utilizzato, per default, come valore della direttiva $ORIGIN.
$TTL — imposta il valore predefinito Time to Live (TTL) per la zona. Si tratta di un valore, in secondi, assegnato ai server dei nomi che indica il periodo di validit� dei record di risorsa della zona. Un record di risorsa pu� avere un valore TTL proprio, che annulla quindi quello impostato da questa direttiva.
Impostando un valore pi� alto si indica ai server dei nomi di conservare in memoria queste informazioni di zona per un periodo di tempo maggiore. Ci� riduce il numero di richieste relative a questa zona, ma allunga anche il tempo necessario per modificare il record di risorse.
12.3.2. Informazioni sulla risorsa del file zone
Il componente primario di un file zone risulta essere il proprio record di risorsa.
Sono disponibili diversi record della risorsa del file zone. I seguenti tipi sono tra i pi� usati:
A — informazioni sull'indirizzo che specifica un indirizzo IP da assegnare al nome, come in questo esempio:
<host> IN A <IP-address>
Se non viene indicato il valore <host>, il record A fa riferimento a un indirizzo IP predefinito per l'inizio dello spazio dei nomi. Questo sistema � utilizzato per tutte le richieste non FQDN.
Prendete in considerazione i seguenti esempi di record A per il file zone example.com:
IN A 10.0.1.3
server1 IN A 10.0.1.5
Le richieste per example.com vengono indirizzate a 10.0.1.3, mentre quelle per server1.example.com a 10.0.1.5.
CNAME — record di nome tipico che mappa un nome all'altro, conosciuto anche come un alias.
L'esempio successivo indica a named che le richieste inviate a <nome-alias> dovrebbero indicare l'host <nome-reale>. I record CNAME sono utilizzati pi� comunemente per indicare i servizi che utilizzano uno schema di assegnazione dei nomi comune,come ad esempio www per i Web server.
<alias-name> IN CNAME <real-name>
Considerate l'esempio riportato di seguito, in cui il record A lega un indirizzo IP con un hostname, mentre il record CNAME indica l'hostname www pi� usato.
server1 IN A 10.0.1.5
www IN CNAME server1
MX — si tratta del record "Mail eXchange", che indica dove va inoltrata la posta inviata a un particolare spazio dei nomi controllato da questa zona.
IN MX <preference-value><email-server-name>
In questo esempio il <valore-preferenza> vi consente di classificare numericamente i server e-mail su cui preferite ricevere la posta elettronica per questo spazio dei nomi, dando la precedenza ad alcuni sistemi e-mail rispetto ad altri. Il record di risorsa MX con il <valore-preferenza> pi� basso ha la precedenza sugli altri, ma potete comunque impostare vari server di posta elettronica con lo stesso valore e distribuire quindi il traffico di posta.
Il <nome-server-email> pu� essere un nome host o un FQDN.
IN MX 10 mail.example.com.
IN MX 20 mail2.example.com.
In questo esempio il primo server di posta mail.example.com ha la precedenza sul server mail2.example.com al momento della ricezione di posta per il dominio example.com.
NS — record NameServer che annuncia i server dei nomi autorevoli per una determinata zona.
Ecco un esempio di record NS:
IN NS <nameserver-name>
Il <nome-nameserver> dovrebbe essere un FQDN.
Di seguito sono elencati due nomi di server come autorevoli per un dominio. Non importa se questi server dei nomi sono slave o master, poich� entrambi sono considerati autorevoli.
IN NS dns1.example.com.
IN NS dns2.example.com.
PTR — record "PoinTeR" che serve per fare riferimento a un'altra "porzione" dello spazio dei nomi.
I record PTR vengono usati principalmente per invertire la risoluzione del nome, in quanto essi riferiscono gli indirizzi IP ad un particolare nome. Per maggiori esempi sull'opzione PTR in uso, consultate la Sezione 12.3.4.
SOA — Start Of Authority, indica al nameserver le informazioni autorevoli importanti inerenti al namespace per il nameserver.
Posizionato dopo le direttive, SOA � il primo record di risorsa in un file zone.
L'esempio riportato mostra la struttura di base di un record di risorsaSOA:
@ IN SOA <primary-name-server><hostmaster-email> (
<serial-number><time-to-refresh><time-to-retry><time-to-expire><minimum-TTL> )
Il simbolo @ serve a posizionare la direttiva $ORIGIN (o il nome della zona, se la direttiva non � impostata) come il namespace definito da questo record di risorsa SOA. L'hostname del server dei nomi primario il quale � autoritario per questo dominio, � la direttiva <primary-name-server> e l'email della persona da contattare per questo namespace, � la direttiva <hostmaster-email>.
La direttiva <numero-seriale> � un valore numerico incrementato ogni volta il file zone viene modificato, affinche named riceva l'informazione di ricaricare la zona. La direttiva <tempo-di-aggiornamento> � un server slave del valore numerico usato per determinare il tempo necessario prima di chiedere al server dei nomi master se sono state effettuate delle modifiche alla zona. La direttiva <numero-seriale> � un valore numerico utilizzato dai server slave per determinare se sta usando dati di zona obsoleti e deve dunque aggiornarli.
La direttiva <time-to-retry> � un valore numerico usato dai server slave per determinare il periodo di tempo di attesa prima di formulare una richiesta di aggiornamento, se il server dei nominon risponde. Se il master non ha risposto alla richiesta di aggiornamento entro il periodo di tempo specificato in <time-to- expire>, i server slave cessano di fungere come autorit� per quanto riguarda quel nameserver.
La direttiva <TTL-minimo> � l'ammontare di tempo utilizzato dagli altri server dei nomi per memorizzare le informazioni della zona.
Quando si configura BIND, il tempo viene riportato in secondi. Comunque potete utilizzare anche delle abbreviazioni per altre unit� di tempo, come minuti (M), ore (H), giorni (D) e settimane (W). La Tabella 12-1 mostra la quantit� di tempo in secondi e l'equivalente in un altro formato.
Secondi
Altre unit� di tempo
60
1M
1800
30M
3600
1H
10800
3H
21600
6H
43200
12H
86400
1D
259200
3D
604800
1W
31536000
365D
Tabella 12-1. Secondi paragonati ad altre unit� di tempo
L'esempio seguente mostra la struttura che un record di risorsa SOA potrebbe avere quando popolato con valori reali.
@ IN SOA dns1.example.com. hostmaster.example.com. (
2001062501 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expire after 1 week
86400 ) ; minimum TTL of 1 day
12.3.3. Esempi di file zone
Le direttive e i record di risorsa, visti individualmente, possono essere difficili da comprendere. Comunque, tutto ha molto pi� senso se riunito in un unico file.
Il seguente esempio mostra un file zone di base.
$ORIGIN example.com.
$TTL 86400
@ IN SOA dns1.example.com. hostmaster.example.com. (
2001062501 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expire after 1 week
86400 ) ; minimum TTL of 1 day
IN NS dns1.example.com.
IN NS dns2.example.com.
IN MX 10 mail.example.com.
IN MX 20 mail2.example.com.
IN A 10.0.1.5
server1 IN A 10.0.1.5
server2 IN A 10.0.1.7
dns1 IN A 10.0.1.2
dns2 IN A 10.0.1.3
ftp IN CNAME server1
mail IN CNAME server1
mail2 IN CNAME server2
www IN CNAME server2
In questo esempio vengono utilizzate le direttive standard e i valori SOA. I server dei nomi autorevoli impostati sono dns1.example.com e dns2.example.com con il record A che li lega rispettivamente a 10.0.1.2 e 10.0.1.3.
Il server di posta configurato con i record MX fa riferimento a server1 e server2 tramite CNAME. Poich� i nomi del server1 e del server2 non terminano con un punto (.), il dominio $ORIGIN viene collocato dopo tali nomi, diventando server1.example.com e server2.example.com. � possibile determinarne gli indirizzi IP tramite i relativi record di risorsa A.
I servizi FTP e Web, disponibili con i nomi standard ftp.example.com e www.example.com vengono indirizzati a macchine che forniscono i servizi adeguati per questi nomi usando i record CNAME.
12.3.4. File zone per la risoluzione inversa dei nomi
Un file zone per la risoluzione inversa dei nomi viene utilizzato per tradurre un indirizzo IP in uno spazio particolare in un FQDN. Somiglia molto a un file zone standard, tranne per il fatto che i record di risorsa PTR, vengono utilizzati per collegare gli indirizzi IP a un nome del dominio qualificato.
Un record PTR � simile a quanto riportato di seguito:
<last-IP-digit> IN PTR <FQDN-of-system>
<ultima-cifra-IP> si riferisce all'ultimo numero in un indirizzo IP che dovrebbe far riferimento all'FQDN di un determinato sistema.
Nell'esempio riportato di seguito gli indirizzi IP da 10.0.1.20 a 10.0.1.25 fanno riferimento agli FQDN corrispondenti.
$ORIGIN 1.0.10.in-addr.arpa.
$TTL 86400
@ IN SOA dns1.example.com. hostmaster.example.com. (
2001062501 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expire after 1 week
86400 ) ; minimum TTL of 1 day
IN NS dns1.example.com.
IN NS dns2.example.com.
20 IN PTR alice.example.com.
21 IN PTR betty.example.com.
22 IN PTR charlie.example.com.
23 IN PTR doug.example.com.
24 IN PTR ernest.example.com.
25 IN PTR fanny.example.com.
Questo file zone viene utilizzato con l'istruzione zone nel file named.conf simile a quello riportato di seguito:
zone "1.0.10.in-addr.arpa" IN {
type master;
file "example.com.rr.zone";
allow-update { none; };
};
Esiste una differenza davvero minima tra questo esempio e un'istruzione standard zone, salvo per il nome della zona. Una zona per la risoluzione inversa dei nomi richiede che siano invertiti i primi tre blocchi dell'indirizzo IP e che dopo di questi venga aggiunto ".in-addr.arpa". Ci� permette che il blocco singolo di numeri IP utilizzato nel file della zona per la risoluzione inversa dei nomi venga collegato correttamente in questa zona.