Il Domain Name System (DNS) consente di navigare sul World Wide Web nel modo che co­no­scia­mo tutti: si inserisce il nome di un dominio sotto forma di URL e si arriva così al sito web de­si­de­ra­to. Tuttavia, la co­mu­ni­ca­zio­ne vera e propria avviene tramite un indirizzo IP in­di­vi­dua­le. Il DNS si basa sui record dei file di zona. L'ef­fet­ti­va ri­so­lu­zio­ne dei nomi avviene at­tra­ver­so gli im­por­tan­ti record A e AAAA.

N.B.

Esistono molti tipi diversi di record. Nel nostro articolo di ap­pro­fon­di­men­to sui record DNS non solo spie­ghia­mo le proprietà di base dei singoli record, ma forniamo anche una tabella rias­sun­ti­va di tutti i tipi.

Un indirizzo IP, tuttavia, non sempre è associato a un solo nome di dominio. È possibile che diversi nomi siano collegati allo stesso indirizzo IP. Per fare ciò, il DNS utilizza i CNAME.

Cosa sono i record CNAME?

Il DNS si basa su una rete di server de­cen­tra­liz­za­ta. I name server ge­sti­sco­no de­ter­mi­na­te zone mediante file di zona, che non sono altro che semplici file di testo in cui i diversi record DNS sono elencati riga per riga. Esistono diversi tipi di record. Per associare il nome di dominio a un indirizzo IPv4, si utilizza il tipo A. Il tipo CNAME viene invece usato per associare un nome di dominio a un alias, cioè un altro nome sotto il quale è possibile rag­giun­ge­re la stessa de­sti­na­zio­ne.

Il nome effettivo è quindi quello che è collegato al­l'in­di­riz­zo IP in un record A. Qual è il vantaggio? Se l'in­di­riz­zo IP cambia, è suf­fi­cien­te adattare il record A. Poiché tutti gli alias si ri­fe­ri­sco­no a loro volta a questo record A (o AAAA), vengono adattati au­to­ma­ti­ca­men­te anche i CNAME.

Fatto

Il termine CNAME è una parola macedonia da "Canonical Name", quindi nome canonico, ovvero il nome con­ven­zio­na­le. Il termine è opaco perché il record non definisce il nome di dominio "reale", ma il suo alias.

Sintassi del CNAME

I record DNS seguono una sintassi stan­dar­diz­za­ta composta da diversi campi:

  • <name>: nel primo campo appare l'alias del dominio.
  • <ttl>: il Time to live si riferisce al lasso di tempo in cui un record viene me­mo­riz­za­to nella cache prima che l'in­for­ma­zio­ne debba essere richiesta di nuovo.
  • <class>: il campo class è opzionale e specifica il tipo di rete a cui si applica il record.
  • <type>: questo campo determina il tipo di record (in questo caso CNAME).
  • <rdata>: l'ultimo campo contiene le in­for­ma­zio­ni a cui il record si riferisce ef­fet­ti­va­men­te (in questo caso il nome effettivo del dominio).

I campi sono separati da spazi e disposti al­l'in­ter­no di una riga:

<name> <ttl> <class> <type> <rdata>

Il co­sid­det­to Time to live (TTL) indica pra­ti­ca­men­te la durata delle in­for­ma­zio­ni. Durante questo lasso di tempo, il fornitore ga­ran­ti­sce la cor­ret­tez­za dei dati, che possono quindi rimanere nella cache. Una volta scaduto il tempo, le in­for­ma­zio­ni devono essere re­cu­pe­ra­te nuo­va­men­te dal server. Il campo compare comunque raramente nei singoli record dal momento che, so­li­ta­men­te, il TTL viene definito a livello globale per l'intera zona e applicato ai vari record.

Il campo opzionale class ha ormai solo un valore storico: in origine venivano uti­liz­za­te nella con­fi­gu­ra­zio­ne DNS anche le due reti Hesiod (HS) e Chaosnet (CH), che oggi non esistono più. Nel frattempo è rimasto solo Internet. Pertanto, se non viene omesso del tutto, in questo campo troverete l'ab­bre­via­zio­ne IN.

Nei record DNS i nomi vengono sempre indicati nel formato dei Fully Qualified Domain Name (FQDN). Questo significa che l'in­di­ca­zio­ne termina con un punto. Questo perché gli FQDN tracciano il percorso completo di un dominio, che inizia (al­l'e­stre­ma destra) con il root server. Tuttavia, poiché il campo cor­ri­spon­den­te è vuoto, rimane solo il punto che separa i com­po­nen­ti.

N.B.

Un CNAME deve sempre puntare a un altro dominio. Non è con­sen­ti­to l'uso di un indirizzo IP. Inoltre, non è con­sen­ti­to uti­liz­za­re l'alias in altri tipi di record e il CNAME non deve puntare a un altro CNAME. Anche se questo non cau­se­reb­be un errore, ren­de­reb­be comunque il file di zona inu­til­men­te complesso.

Esempio di CNAME

In pratica, un record CNAME appare nel modo seguente:

www.example.net. CNAME www.example.com.

Affinché il ri­fe­ri­men­to tramite CNAME funzioni, il file di zona deve contenere anche un record A e/o uno AAAA.

$TTL 11107
www.example.com.	IN	A		93.184.216.34
www.example.com.	IN	AAAA		2606:2800:220:1:248:1893:25c8:1946
www.example.net.	IN	CNAME		www.example.com.
www.example.org.	IN	CNAME		www.example.com.

I due CNAME puntano al record A o AAAA. Il Time to live è impostato glo­bal­men­te per l'intera zona (rap­pre­sen­ta­to dal simbolo del dollaro) a 11107 secondi, quindi poco più di tre ore.

Verifica del CNAME: come risalire al record CNAME

Se de­si­de­ra­te conoscere il CNAME di un sito web, potete uti­liz­za­re un software specifico o sem­pli­ce­men­te un servizio web. Con Public DNS, Google mette a di­spo­si­zio­ne il proprio server DNS, at­tra­ver­so il quale è possibile accedere ai vari record DNS dei siti web.

Inserite il dominio di cui volete con­trol­la­re il CNAME sulla pagina iniziale del servizio. Nella pagina seguente mo­di­fi­ca­te l’RR type (impostato su A per im­po­sta­zio­ne pre­de­fi­ni­ta) nel record CNAME e fate nuo­va­men­te clic sul pulsante Resolve per ottenere il risultato.

Non è ne­ces­sa­rio mo­di­fi­ca­re le due im­po­sta­zio­ni per l’EDNS client subnet e il DNSSEC. Il primo è un mec­ca­ni­smo per catturare la posizione del ri­chie­den­te e quindi fornire risultati più ef­fi­cien­ti, ma at­tual­men­te viene sup­por­ta­to solo da Google e OpenDNS. Il DNSSEC, d'altra parte, ga­ran­ti­sce al­l'u­ten­te che le in­for­ma­zio­ni non siano state manomesse da terzi non au­to­riz­za­ti.

Vai al menu prin­ci­pa­le