I record DNS: come funzionano

Grazie al Domain Name System (DNS), gli utenti possono inserire un dominio nel browser per raggiungere il sito web desiderato, anche se, in realtà, i partecipanti alla rete comunicano tramite indirizzi IP. Poiché questi sono molto lunghi, è sufficiente inserire solo il nome del sito web, che viene poi tradotto automaticamente nella corrispondente sequenza numerica. Come avviene questa traduzione?

Cosa sono i record DNS?

Quando si inserisce un indirizzo Internet nel browser, il sistema deve prima cercare quale indirizzo IP appartiene a questo dominio. Questo accade a volte già nella memoria del proprio computer, spesso con i database del provider di servizi Internet o di altri server DNS e, in caso di dubbio, su uno dei grandi root server, che occupano il livello più elevato nella gerarchia del Domain Name System. Per poter eseguire una risoluzione dei nomi viene effettuata una ricerca di record DNS nei database dei server DNS o dei name server, nei quali viene assegnato un nome di dominio a ogni indirizzo IP (noto al server).

Il DNS è strutturato in modo gerarchico e decentrato. A ogni livello ci sono server che sono responsabili del loro cosiddetto namespace. Ciò significa che il root server aiuta nella ricerca dell'indirizzo IP per www.example.com solo per quanto riguarda l'individuazione del server che è responsabile del dominio di primo livello (TLD) .com. Questo processo viene applicato a ogni singolo livello per effettuare la risoluzione del nome. Questo significa che l'indirizzo IP del server web o del server di posta elettronica si trova, in ultima analisi, nell'host stesso. Pertanto è importante che gli amministratori di siti web comprendano il concetto di record di risorse.

Come funzionano i record DNS?

I record DNS sono collocati in file di zona. Nel contesto del DNS, una zona corrisponde a un'area organizzativa. Un dominio può essere costituito da un'unica zona, ma i domini particolarmente grandi sono spesso suddivisi su diverse zone. Ogni server DNS è responsabile di una zona. Quindi, se un client vuole richiamare un dominio specifico, il server DNS cerca i rispettivi record nei file di zona e inoltra la richiesta a un server di livello inferiore fino al raggiungimento della destinazione finale.

Sintassi dei record DNS

I record di risorse sono strutturati secondo un sistema semplice e sono codificati in ASCII. Ogni record DNS viene riportato su una riga separata. I record seguono di solito il seguente formato:

 

<name> <ttl> <class> <type> <rdlength> <radata>

Le singole informazioni sono separate l'una dall'altra da uno spazio e alcune sono solo opzionali. Per alcuni tipi di record si aggiungono altri campi. Ma cosa significano i campi più importanti dei record?

  • <name>: il nome del dominio è quello che l'utente inserisce nel suo browser.
  • <ttl>: TTL sta per "Time to live" e indica il tempo (in secondi) di memorizzazione temporanea di un record nella cache. Una volta scaduto il tempo, il record di risorse potrebbe non essere più attuale. Questa indicazione è facoltativa.
  • <class>: teoricamente, ci sono diverse classi di record DNS, ma in pratica i record si riferiscono sempre a Internet (contrassegnato IN), motivo per cui questo campo è facoltativo.
  • <type>: un file di zona contiene diversi tipi di record di risorse (vedi sotto per maggiori informazioni).
  • <rdlength>: questo campo opzionale specifica la dimensione del campo dati successivo.
  • <rdata>: i resource data sono le informazioni utilizzate per risolvere il nome del dominio, come ad esempio l'indirizzo IP.

Il record DNS del server web di example.com si presenta quindi in questo modo:

www.example.com. 12879 IN A 93.184.216.34

Un client può memorizzare il record per 12.879 secondi (circa tre ore e mezza) nella cache prima che il server DNS debba richiedere nuovamente le informazioni. Si tratta di un record DNS su Internet (IN) di tipo A (A). Il dominio viene risolto in un indirizzo IP.

È possibile anche un'altra notazione:

$TTL 12879
$ORIGIN example.com.
www A 93.184.216.34

Questa sintassi mostra che l’host con il nome www fa parte del dominio example.com. In questo modo, anche altri host, come mail o ftp, possono essere raggruppati sotto il dominio di origine.

N.B.

Il nome di un dominio termina (o inizia effettivamente, considerando la lettura da destra a sinistra) con un punto. I record DNS utilizzano i Fully Qualified Domain Name (FQDN) che contengono anche il root label, che tuttavia è vuoto ed è posizionato dopo il punto.

I tipi di record DNS più importanti

Le informazioni contenute vengono determinate dal tipo di record. Oltre alla risoluzione dei nomi di dominio in base agli indirizzi IP, i record DNS hanno anche altre funzioni.

Record A

Il record A viene utilizzato per la maggior parte delle risoluzioni dei nomi su Internet. Il suo campo dati contiene un indirizzo IPv4. Questo tipo di record consente, ad esempio, agli utenti Internet di inserire un nome di dominio nel browser e al client di inviare una richiesta HTTP all'indirizzo IP corrispondente. Poiché un indirizzo IPv4 ha sempre una dimensione di 4 byte, il valore rdlength,se specificato, corrisponde sempre a 4.

Record AAAA

Un record AAAA, noto anche come "quad-A", funziona esattamente come il record A, ma invece di un indirizzo IPv4 usa un indirizzo IPv6 per risolvere il nome di dominio. Poiché l'IPv6 ha una lunghezza di 128 bit o 16 byte, anche qui la lunghezza del campo dati è predeterminata. Il nome AAAA deriva dal fatto che il campo dati ha una lunghezza quattro volte superiore a quella del campo dati di un record A.

Record SOA

SOA sta per Start of Authority. I record di questo tipo contengono informazioni sulla zona organizzata dal file di zona o dal server DNS. Questo è importante, tra l'altro, per il trasferimento di zona: in questo caso, i file di zona vengono copiati su altri server per evitare disservizi. Il trasferimento di zona garantisce la regolare distribuzione del file originale. Oltre all'indirizzo e-mail dell'amministratore responsabile, in questo record DNS viene memorizzato anche un numero di serie, che aumenta a ogni aggiornamento del file.

Record CNAME

Un CNAME (Canonical Name Record) contiene un alias, cioè un nome aggiuntivo, di un dominio. Questo tipo di record si riferisce quindi a un record A o a un record AAAA esistente. Il campo rdata di questo tipo di record viene quindi riempito con un nome di dominio che in precedenza era collegato a un indirizzo IP nel file. In questo modo, indirizzi diversi possono puntare allo stesso server.

Record MX

Un record MX si riferisce a un Mail Exchange, ovvero a un server di posta elettronica SMTP e definisce uno o più server di posta elettronica appartenenti al dominio corrispondente. Se si utilizzano più server di posta elettronica, ad esempio per compensare un disservizio, si specificano diversi livelli di priorità, in modo che il DNS conosca l'ordine in cui avvengono i tentativi di contatto.

Record PTR

Il record PTR (pointer) è un record DNS che permette un reverse lookup (in italiano: risoluzione inversa). Questo tipo di record consente inoltre al server DNS di fornire informazioni su quali nomi host appartengono a un particolare indirizzo IP. Esiste pertanto un record PTR per ogni indirizzo IP utilizzato nei record A o AAAA. L'indirizzo IP viene costruito in ordine inverso e indicato anche con il nome di una zona.

Record NS

Il record NS, ovvero il record del name server di un file di zona, chiarisce la responsabilità di una zona specifica. Questo record è dunque obbligatorio per ogni file di zona. Questo record di risorse indica al server DNS se è responsabile della richiesta, cioè se organizza la zona in questione, o a chi la deve inoltrare.

Record TXT

Il record TXT contiene testo con informazioni destinate a utenti umani o leggibili da computer. Questo record DNS consente all'amministratore di memorizzare testo non strutturato (a differenza dei dati strutturati di altri record DNS). Questo può includere, ad esempio, dettagli sull'azienda proprietaria del dominio.

Record SRV

Un server può utilizzare il record SRV per abilitare servizi (SRV) aggiuntivi. A tal fine viene specificato il servizio, compreso la porta mediante la quale può essere raggiunto. Inoltre, nel nome viene specificato anche il protocollo utilizzato. Un client può utilizzare questo tipo di record DNS, ad esempio per ottenere informazioni su servizi LDAP o XMPP.

Record LOC

È possibile utilizzare il record LOC per conoscere la posizione del server fisico. A tale scopo, questo tipo di record indica latitudine, longitudine, altitudine sul livello del mare e il margine di errore.

File di zona

Tutti i record DNS sono elencati nel file di zona (un semplice file di testo). Affinché i dati possano essere elaborati correttamente devono essere soddisfatti alcuni requisiti, altrimenti il DNS non può funzionare e il client riceve il messaggio di errore SERVFAIL. Perciò è importante rispettare una determinata struttura: prima viene specificato il nome della zona e poi, in molti casi, il TTL. Se l'indicazione temporale viene indicata a questo punto è possibile ometterla nei singoli record di risorse. Il TTL si applica quindi globalmente all'intera zona.

$ORIGIN example.com.
$TTL 12879

Il primo record DNS è un record SOA. Senza non è possibile creare un file di zona funzionante. Un file di zona invece è valido anche se è composto solo dal record SOA. Successivamente vengono aggiunti prima i record relativi ai name server e poi quelli A e AAAA.

Se si desidera inserire commenti nel file, ad esempio per facilitare il lavoro degli altri amministratori, si utilizza il punto e virgola. In questo modo è possibile trasformare le informazioni alla fine di una riga in un record DNS senza che il server elabori il testo. Per strutturare i record è possibile inserire righe vuote, che verranno semplicemente ignorate dal sistema durante la lettura. Si utilizza una riga per record, che viene completato da un'interruzione di riga. Se invece desiderate eseguire un record su più righe dovete aggiungere delle parentesi.

Panoramica dei tipi di record DNS

Oltre a quelli qui presentati, esistono molti altri tipi di record di risorse che si possono trovare nei file di zona, anche se sono meno comuni. La seguente tabella presenta tutti i tipi e fornisce una breve descrizione delle funzioni.

N.B.

L'Internet Assigned Numbers Authority (IANA), che è anche responsabile dell'assegnazione degli indirizzi IP, ha assegnato un valore (una sorta di numero di identificazione) a ciascun tipo di record DNS.

Valore Tipo Descrizione
1 A Address indica l'indirizzo IPv4 di un host.
2 NS Name server chiarisce l'autorità di una zona.
3 MD Mail Destination è stata sostituita dal record MX (obsoleto).
4 MF Mail Forwarder è stato sostituito dal record MX (obsoleto).
5 CNAME Canonical Name definisce un alias.
6 SOA Start of Authority fornisce i dettagli sulla zona.
7 MB Mailbox Domain Name è sperimentale.
8 MG Mail Group Member è sperimentale.
9 MR Mail Rename Domain Name è sperimentale.
10 NULL Null Resource è sperimentale.
11 WKS Well Known Service veniva utilizzato per l'inoltro della posta elettronica (ormai obsoleto).
12 PTR Pointer viene utilizzato per il reverse lookup.
13 HINFO Host Information fornisce dettagli hardware e software dell'host.
14 MINFO Mailbox Information è sperimentale.
15 MX Mail Exchange assegna un dominio ai server di posta elettronica.
16 TXT Text offre la possibilità di inserire testo aggiuntivo.
17 RP Responsible Person fornisce informazioni sulle persone responsabili.
18 AFSDB AFS Database è progettato specificamente per i client AFS.
19 X25 X.25 PSDN Address fornisce informazioni sull'incapsulamento tramite X.25 (obsoleto).
20 ISDN Il record assegna un numero ISDN al nome DNS (obsoleto).
21 RT Route Through Record fornisce il Route-through Binding senza indirizzo WAN (obsoleto).
22 NSAP Questo record consente l'assegnazione di nomi di dominio ai Network Service Access Point (obsoleto).
23 NSAP-PTR NSAP Pointer è stato sostituito da PTR (obsoleto).
24 SIG Signature è stata sostituito da RRSIG (obsoleto).
25 KEY Key è stato sostituito da IPSECKEY (obsoleto).
26 PX Pointer to X.400 specifica le regole di mappatura MIXER (obsoleto).
27 GPOS Geographical Position è stato sostituito da LOC (obsoleto).
28 AAAA AAAA restituisce l'indirizzo IPv6 di un host.
29 LOC Location contiene informazioni sulla posizione.
30 NXT Next è stato sostituito da NSEC (obsoleto).
31 EID Endpoint Identifier viene utilizzato per l'architettura di routing Nimrod (obsoleto).
32 NIMLOC Nimrod Locator viene utilizzato per l'architettura di routing Nimrod (obsoleto).
33 SRV Service Locator fornisce informazioni su servizi aggiuntivi.
34 ATMA ATM Address fornisce informazioni nel contesto della modalità di trasferimento asincrono (obsoleto).
35 NAPTR Naming Authority Pointer è un'estensione del record A che consente modelli di ricerca (espressioni regolari).
36 KX Key Exchanger permette la gestione delle chiavi per la crittografia.
37 CERT Cert memorizza i certificati.
38 A6 A6 è stato sostituito da AAAA.
39 DNAME Delegation Name specifica alias per domini completi.
40 SINK Kitchen Sink consente la memorizzazione di dati diversi (obsoleto).
41 OPT Option è uno pseudo-record nel contesto dei meccanismi di estensione del DNS (EDNS).
42 APL Address Prefix List elenca gli intervalli di indirizzi in formato CIDR.
43 DS Delegation Signer identifica le zone firmate DNSSEC.
44 SSHFP SSH Public Key Fingerprint pubblica l'impronta digitale per le chiavi SSH.
45 IPSECKEY IPsec Key contiene una chiave per IPsec.
46 RRSIG RR Signature contiene una firma digitale per DNSSEC.
47 NSEC Next Secure concatena le zone firmate nel protocollo DNSSEC.
48 DNSKEY DNS Key contiene una chiave pubblica per DNSSEC.
49 DHCID DHCP Identifier collega i nomi di dominio con i client DHCP.
50 NSEC3 Next Secure 3 è un'alternativa a NSEC.
51 NSEC3PARAM Questo record contiene i parametri per NSEC3.
52 TLSA Questo record crea una TLSA Certificate Association con un nome di dominio all'interno di DANE.
53 SMIMEA Questo record crea una S/MIME Certificate Association con un nome di dominio.
54 n/a Non assegnato.
55 HIP Host Identity Protocol separa le funzioni di identificazione degli endpoint e di localizzazione dagli indirizzi IP.
56 NINFO NINFO fornisce informazioni sullo stato della zona (struttura identica a TXT; obsoleto).
57 RKEY RKEY memorizza le chiavi (struttura identica a KEY e DNSKEY; obsoleto).
58 TALINK Trust Anchor Link collega due nomi di dominio (obsoleto).
59 CDS Child DS è una copia figlia di un record DS.
60 CDNSKEY Child DNSKEY è una copia figlia di un record DNSKEY.
61 OPENPGPKEY OpenPGP Key pubblica chiavi pubbliche.
62 CSYNC Child-to-Parent Synchronization consente di sincronizzare le zone genitore e figlia (obsoleto).
63 ZONEMD Message Digest for DNS Zone è sperimentale (obsoleto).
64-98 n/a Non assegnati.
99 SPF Sender Policy Framework è stato sostituito dal record TXT (obsoleto).
100 UINFO Riservato.
101 UID Riservato.
102 GID Riservato.
103 UNSPEC Riservato.
104 NID NodeID è sperimentale.
105 L32 32-bit Locator è sperimentale.
106 L64 64-bit Locator è sperimentale.
107 LP Locator Pointer è sperimentale.
108 EUI48 48-bit Extended Unique Identifier codifica gli indirizzi.
109 EUI64 64-bit Extended Unique Identifier codifica gli indirizzi.
110-248 n/a Non assegnati.
249 TKEY Transaction Key consente lo scambio di chiavi crittografate.
250 TSIG Transaction Signature viene utilizzato per l'autenticazione.
251 IXFR Incremental Zone Transfer consente di aggiornare parti di un file di zona su un secondo server (obsoleto).
252 AXFR AXFR trasferisce un file di zona completo a un secondo server (obsoleto).
253 MAILB Mailbox interroga i record di una casella postale (obsoleto).
254 MAILA Mail Agent è stato sostituito dal record MX (obsoleto).
255 * * interroga tutti i record (obsoleto).
256 URI Uniform Resource Identifier pubblica l'assegnazione degli hostname agli URI.
257 CAA Certificate Authority Authorization specifica le possibili CA per un dominio.
258 AVC Application Visibility and Control contiene i metadati dell'applicazione per DNS-AS (obsoleto).
259 DOA DOA non è più attivo (obsoleto).
260 AMTRELAY Automatic Multicast Tunneling Relay permette di trovare i relay AMT (obsoleto).
261-32767 n/a Non assegnati.
32768 TA DNSSEC Trust Authorities abilita il protocollo DNSSEC senza root firmati.
32769 DLV DNSSEC Lookaside Validation pubblica Trust Anchor al di fuori della normale catena DNS.
32770-65279 n/a Non assegnati.
65280-65534 n/a Per uso privato.
65535 n/a Riservato.