File di zona

Il formato di un file di zona è definito in RFC 1035 (sezione 5) e RFC 1034 (sezione 3.6.1). Questo formato è stato originariamente usato dal pacchetto software Berkeley Internet Name Domain (BIND), ma è stato ampiamente adottato da altri software di server DNS – anche se alcuni di essi (ad esempio NSD, PowerDNS) usano i file di zona solo come punto di partenza per compilarli in formato database, vedi anche Microsoft DNS con integrazione Active Directory-database.

Un file di zona è una sequenza di voci orientate alla riga, ciascuna delle quali è una direttiva o una descrizione di testo che definisce un singolo record di risorse (RR). Una voce è composta da campi separati da qualsiasi combinazione di spazi bianchi (tabulazioni e spazi), e termina al limite della linea tranne che all’interno di un valore di campo stringa citato o di una coppia di parentesi di formattazione. Ogni riga può terminare con del testo di commento preceduto da un punto e virgola, e il file può anche contenere un qualsiasi numero di righe vuote.

Le voci possono presentarsi in qualsiasi ordine in un file di zona, con alcune eccezioni.

Le direttive sono voci di controllo che influenzano il resto del file di zona. Il primo campo di una direttiva consiste in un segno di dollaro seguito da una parola chiave:

  • $ORIGIN è seguito da un nome di dominio da usare come origine per i successivi nomi di dominio relativi.
  • $INCLUDE è seguito da un nome di file e da un nome di dominio di origine opzionale da usare nell’interpretazione del suo contenuto (che è trattato come se apparisse nel file padre, seguito da un reset al valore di origine che precede la valutazione della direttiva).
  • $TTL, definito in RFC 2308 (sezione 4), è seguito da un numero da usare come TTL (time-to-live) di default.
  • $GENERATE, un’estensione non standard accettata da BIND e da alcuni altri software name server per inserire più record di risorse con una voce, è seguita da una rappresentazione concisa di una sequenza crescente di numeri non negativi e poi da una voce RR modello. Un record di risorsa viene aggiunto per ogni numero nella sequenza, usando il modello con i caratteri “$” senza escape sostituiti dal numero.

Una voce di record di risorsa consiste di diversi campi come segue (entrambi gli ordini dei campi sono accettabili e possono essere usati in modo intercambiabile):

nome ttl classe del record tipo di record dati del record
nome classe del record ttl tipo di record dati del record

Il campo nome può essere lasciato vuoto. Se è così, il record eredita il campo dal record precedente. Una @ libera è usata per indicare l’origine corrente.

Il campo ttl specifica il numero di secondi dopo i quali un client di cache deve scartare il record ed eseguire una nuova operazione di risoluzione per ottenere nuove informazioni. Alcuni name server, incluso BIND, permettono rappresentazioni non standard che usano abbreviazioni di unità di tempo (per esempio, “2d” che significa due giorni di 24 ore o “1h30m” che significa un’ora e 30 minuti). Può essere omesso, nel qual caso il valore risultante sarà impostato dal TTL di default (se definito) o dal record precedente.

Il campo record class indica lo spazio dei nomi delle informazioni del record. Può essere omesso, nel qual caso il valore risultante sarà impostato dal record precedente. Lo spazio dei nomi più comunemente usato è quello di Internet, indicato dal parametro IN, ma altri esistono e sono in uso, ad esempio, CHAOS.

Il campo tipo di record è un’abbreviazione per il tipo di informazioni memorizzate nell’ultimo campo, dati del record. Per esempio: un record di indirizzo (tipo A per IPv4, o tipo AAAA per IPv6) mappa il nome del dominio dal primo campo a un indirizzo IP nei dati del record; un record di scambio di posta (tipo MX) specifica l’host di posta Simple Mail Transfer Protocol (SMTP) per un dominio.

Il campo dei dati del record può consistere di uno o più elementi di informazione, a seconda dei requisiti di ogni tipo di record. Per esempio, un record di indirizzo richiede solo un indirizzo, mentre un record di scambiatore di posta richiede una priorità e un nome di dominio. Tali elementi di informazione sono rappresentati come campi separati da spazi bianchi.

Esempio di fileModifica

Un esempio di file di zona per il dominio example.com è il seguente:

$ORIGIN example.com. ; designates the start of this zone file in the namespace$TTL 3600 ; default expiration time (in seconds) of all RRs without their own TTL valueexample.com. IN SOA ns.example.com. username.example.com. ( 2020091025 7200 3600 1209600 3600 )example.com. IN NS ns ; ns.example.com is a nameserver for example.comexample.com. IN NS ns.somewhere.example. ; ns.somewhere.example is a backup nameserver for example.comexample.com. IN MX 10 mail.example.com. ; mail.example.com is the mailserver for example.com@ IN MX 20 mail2.example.com. ; equivalent to above line, "@" represents zone origin@ IN MX 50 mail3 ; equivalent to above line, but using a relative host nameexample.com. IN A 192.0.2.1 ; IPv4 address for example.com IN AAAA 2001:db8:10::1 ; IPv6 address for example.comns IN A 192.0.2.2 ; IPv4 address for ns.example.com IN AAAA 2001:db8:10::2 ; IPv6 address for ns.example.comwww IN CNAME example.com. ; www.example.com is an alias for example.comwwwtest IN CNAME www ; wwwtest.example.com is another alias for www.example.commail IN A 192.0.2.3 ; IPv4 address for mail.example.commail2 IN A 192.0.2.4 ; IPv4 address for mail2.example.commail3 IN A 192.0.2.5 ; IPv4 address for mail3.example.com

Al minimo, il file di zona deve specificare il record SOA (Start of Authority) con il nome del master name server autoritativo per la zona e l’indirizzo e-mail di un responsabile della gestione del name server (rappresentato come un nome di dominio, con un punto al posto del solito simbolo @). I parametri del record SOA specificano anche una lista di parametri di tempo e di scadenza (numero di serie, periodo di refresh dello slave, tempo di retry dello slave, tempo di scadenza dello slave, e il tempo massimo di cache del record). Alcuni name server, incluso BIND, richiedono anche almeno un record NS aggiuntivo.

Nel file di zona, i nomi di dominio che finiscono con un carattere di punto (come “example.com.” nell’esempio precedente) sono pienamente qualificati mentre quelli che non finiscono con un punto sono relativi all’origine corrente (ecco perché www nell’esempio precedente si riferisce a www.example.com).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.