Il record CNAME DNS funziona come alias per i nomi di dominio che condividono un singolo indirizzo IP.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
Un record di "nome canonico" (CNAME) fa riferimento a un dominio "canonico" a partire da un dominio alias. Un record CNAME viene utilizzato al posto di un record A, quando un dominio o un sottodominio è un alias di un altro dominio. Tutti i record CNAME devono fare riferimento a un dominio, mai a un indirizzo IP. Immagina una caccia al tesoro in cui ogni indizio fa riferimento a un altro indizio e l'ultimo indizio fa riferimento al tesoro. Un dominio con un record CNAME è come un indizio che può fare riferimento a un altro indizio (un altro dominio con un record CNAME) o al tesoro (un dominio con un record A).
Ad esempio, supponiamo che blog.example.com abbia un record CNAME con un valore di "example.com" (senza la parte "blog"). Questo significa che quando un server DNS raggiunge i record DNS per blog.example.com, in realtà attiva un'altra ricerca DNS su example.com, restituendo l'indirizzo IP di example.com tramite il suo record A. In questo caso, possiamo dire che example.com è il nome canonico (o vero nome) di blog.example.com.
Spesso, quando i siti hanno sottodomini come blog.example.com o shop.example.com, tali sottodomini avranno record CNAME che fanno riferimento a un dominio root (example.com). In questo modo, se l'indirizzo IP dell'host cambia, solo il record DNS A per il dominio root deve essere aggiornato e tutti i record CNAME seguiranno insieme a tutte le modifiche apportate alla root.
Un malinteso frequente è che un record CNAME debba sempre essere risolto nello stesso sito Web del dominio a cui fa riferimento, ma non è così. Il record CNAME fa riferimento solo al client allo stesso indirizzo IP del dominio root. Una volta che il client raggiunge tale indirizzo IP, il server Web gestirà comunque l'URL di conseguenza. Ad esempio, blog.example.com potrebbe avere un CNAME che fa riferimento a example.com, indirizzando il client all'indirizzo IP di example.com. Ma quando il client si connette effettivamente a tale indirizzo IP, il server Web osserverà l'URL e vedrà che è blog.example.com, quindi mostrerà la pagina del blog anziché la home page.
Esempio di un record CNAME:
| blog.example.com | tipo di record: | valore: | TTL |
|---|---|---|---|
| @ | CNAME | è un alias di example.com | 32600 |
In questo esempio, puoi vedere che blog.example.com fa riferimento a example.com e, supponendo che sia basato sul nostro record A di esempio, sappiamo che alla fine verrà risolto nell'indirizzo IP 192.0.2.1.
Fare riferimento da un record CNAME a un altro record CNAME non è una soluzione efficiente, poiché richiede più ricerche DNS prima di poter caricare il dominio, il che rallenta l'esperienza utente, tuttavia è possibile. Ad esempio, blog.example.com potrebbe avere un record CNAME che faccia riferimento al record CNAME di www.example.com, che a sua volta fa riferimento a un record example.com.
CNAME per blog.example.com:
| blog.example.com | tipo di record: | valore: | TTL |
|---|---|---|---|
| @ | CNAME | è un alias di www.example.com | 32600 |
Che fa riferimento a un CNAME per www.example.com:
| www.example.com | tipo di record: | valore: | TTL |
|---|---|---|---|
| @ | CNAME | è un alias di example.com | 32600 |
Questa configurazione aggiunge un ulteriore passaggio al processo di ricerca DNS e deve essere evitata se possibile. I record CNAME per blog.example.com e www.example.com, invece, devono fare riferimento direttamente a example.com.
Nessun altro record DNS può avere lo stesso nome di un determinato record CNAME. Ciò significa in pratica che altri tipi di record DNS, come MX, TXT, A o SOA, non possono essere etichettati con un alias per un dominio. Inoltre, non possono esserci altri record CNAME con lo stesso nome.
Se è presente un CNAME su "blog.example.com" che punta a "example.com", non possono esserci altri tipi di record su "blog.example.com" — devono essere tutti sotto "example.com."
Supponiamo che Sam scriva articoli con lo pseudonimo di "Mark". I suoi documenti legali, come il certificato di nascita e il passaporto, saranno ancora sotto il suo vero nome, Sam, anche se Mark e Sam sono la stessa persona. I record DNS sono simili: il dominio alias può puntare solo al dominio effettivo e i "documenti legali" (gli altri record DNS) devono trovarsi sotto quel dominio reale.
C'è un'eccezione: nel caso dell'appiattimento CNAME, quando un CNAME agisce come un record A/AAAA. In effetti, tutti i record CNAME proxy si comportano in questo modo. Tuttavia, altri record non sono ancora consentiti con lo stesso nome di un record CNAME flat. Scopri di più sull'appiattimento CNAME.
I record MX e NS non possono fare riferimento a un record CNAME; devono fare riferimento a un record A (per IPv4) o a un record AAAA (per IPv6). Un record MX è un record di scambio di posta che indirizza la posta elettronica a un server di posta. Un record NS è un record "nameserver" e indica quale server DNS è autorevole per tale dominio.
Come indicato sopra, ai domini non è consentito, in base alle specifiche DNS, avere altri record DNS su un nome che ha già un record CNAME.
Per questo motivo, una query per un altro tipo di record, come un record TXT, che utilizza l'alias invece del vero nome del dominio restituirà un record CNAME invece del record richiesto. Per ottenere il record desiderato, il richiedente deve quindi interrogare il dominio a cui punta il CNAME.
Se Alice desidera visualizzare i record TXT per blog.example.com e invia una query per essi, otterrà il record CNAME anziché il record TXT. Deve quindi inviare una query DNS alla destinazione del record CNAME chiedendo il record TXT e riceverà una risposta se la destinazione ha un record TXT. Ciò vale anche per altri tipi di query di record DNS.
Scopri di più sui record TXT.