Per comprendere il funzionamento del DNS è necessario comprendere il significato di un record di risorsa e il funzionamento del database delle zone.
I record risorse DNS sono voci memorizzate all'interno dei file che compongono un database DNS.
Il database DNS è un set di file di testo (ASCII), detti anche file delle zone, che contiene le informazioni sulle macchine che compongono un determinato dominio.
Le informazioni vengono associate ad un dominio aggiungendo record di risorse al database DNS di un nameserver primario. Il database corrispondente ad un determinato dominio contiene le informazioni sul dominio di cui il nameserver è autoritario o eventualmente i riferimenti che indirizzano ad un altro nameserver che avrà autorità per il dominio richiesto.
Ecco perchè quando si parla di database DNS se ne parla in termini di database "distribuito". Non esiste un nameserver principale contenente tutte le informazioni su tutti i domini esistenti, ogni DNS ha autorità (contiene i dati) solo per il dominio di sua competenza e la risoluzione dei nomi esterni al suo viene delegata ad altri server.
Un database elementare conterrà almeno tre file:
db.network (ad esempio db.10.11.12)
db.domain (ad esempio db.esempio)
db.127.0.0
Da ricordare: tutti i file descritti possono avere nomi arbitrari, andranno poi specificati nel file di configurazione.
Il primo file conterrà le informazioni necessarie per risolvere gli indirizzi numerici IP (ad esempio 10.11.12.13) in nomi di host (ad esempio miohost.esempio.com)
Il secondo file conterrà invece le informazioni necessarie ad eseguire il procedimento opposto, da un nome di host al suo corrispettivo IP numerico.
Il terzo file infine conterrà una corrispondenza per l'host locale.
Ciascun file di zona ha 3 sezioni principali:
Start of Authority (SOA), nameserver (NS) e la sezione database contenente le informazioni sugli host.
La sintassi può essere rappresentata così:
[TTL][class] type data
[class][TTL] type data
I due campi TTL e class sono campi opzionali che corrispondono alla durata Time-To-Live e alla classe del record di risorsa. Il Time-To-Live indica quanto tempo il nameserver attende prima di effettuare un refresh del record. Può essere omesso in tal caso il valore di default è di tre ore.
Il campo della classe indica a quale classe di dati appartiene il record. Si usa una sola classe per tutti i record che è IN e sta a significare che si tratta di dati Internet.
Il campo type è obbligatorio e descrive il tipo di record risorsa.
Vediamo alcuni dei principali tipi e il loro significato:
SOA: Start of Authority, posizionato all'inizio di ogni file di zona indica l'inizio di una zona autoritativa per il nameserver.
NS: Name Server, indica il o i server che hanno autorità per una determinata zona.
A: Address, indica l'indirizzo di un host. E' utilizzato per tradurre un nome host nel suo corrispettivo numerico.
PTR: Record Puntatore, si trova solo nei file come da esempio, db.network o db.127.0.0, serve per convertire un indirizzo ip nel suo nome di domino.
CNAME:Canonical Name, questo record è importante per assegnare un alias ad un host. Per esempio se una macchina su una rete interna si chiama miohost.esempio.com e fornisce servizi di web (www) e ftp è utile che possa essere chiamato www.esempio.com o ftp.esempio.com.
MX: Mail Exchange, questo record serve a specificare gli host che si occuperanno di instradare la posta e la loro priorità. La priorità indica l'host che si occuperà per primo dell'instradamento della posta ed è rappresentata da un numero che segue immediatamente dopo il record MX, un numero piccolo indica il server che ha la priorità.