Modulo 3 · 3.2
CNAME e il dominio principale
Modulo 3: Record per il Suo sito web · Tempo di lettura: 8 minuti
Obiettivo della lezione: Dopo questa lezione saprà creare correttamente un record CNAME e spiegare perché non può essere usato sul dominio principale.
Concetti chiave: CNAME, alias, nome di destinazione, la regola del CNAME (nessun altro record accanto), apex (dominio principale), ALIAS/ANAME/CNAME flattening
Un nome che punta a un altro nome
Un record A dice: "questo nome si trova a questo indirizzo". Un record CNAME (da canonical name) dice qualcosa di diverso: "questo nome è in realtà un altro nome, chieda pure là". Con questo crea un alias.
shop.example.com. 3600 IN CNAME shops.platform.example.Se un browser chiede l'indirizzo di shop.example.com, il DNS risponde: "è shops.platform.example". Il resolver cerca quindi il record A o AAAA di quel nome e restituisce quell'indirizzo. Per il visitatore non cambia nulla: la barra degli indirizzi mostra semplicemente shop.example.com.
Perché vorrebbe fare questo? Perché l'indirizzo IP diventa un problema a carico di qualcun altro. Una piattaforma di e-commerce, un servizio di newsletter o un fornitore cloud può spostare i propri server e cambiare gli indirizzi senza che Lei debba modificare nulla. Per questo molti servizi chiedono un CNAME invece di un record A: "faccia puntare www a shops.platform.example".
Il punto finale
Nella lezione 2.2 ha visto che un nome senza punto finale viene letto come relativo: il DNS aggiunge il Suo stesso dominio dopo. Con un CNAME questo va spesso storto.
| Ciò che digita come valore | Cosa ne fa il DNS |
|---|---|
shops.platform.example. | shops.platform.example (corretto) |
shops.platform.example | shops.platform.example.example.com (non esiste) |
Molti pannelli oggi aggiungono il punto automaticamente o La avvisano. Altri no. Dopo aver salvato, controlli quindi l'elenco: se vede il Suo dominio dopo il valore, il punto mancava.
La stessa regola vale per il server di posta in un record MX e per i record NS. In un indirizzo IP di un record A non si mette il punto.
La regola del CNAME: nient'altro accanto
Un CNAME ha una regola rigida nello standard DNS (RFC 1034, paragrafo 3.6.2, e RFC 2181): un nome con un CNAME non può avere altri record. Logico: il CNAME dice "io sono in realtà quell'altro nome". Se accanto c'è anche un record A o un record MX, non è chiaro quale risposta valga.
Da questo derivano due cose che incontrerà nella pratica:
- Se per
shopesiste già un record A, lo rimuova prima. Altrimenti un pannello rifiuta il record CNAME, oppure, peggio, lo accetta e il DNS inizia a comportarsi in modo anomalo. - Un CNAME sul dominio principale non è possibile.
Perché non sul dominio principale?
Il dominio principale, example.com senza nulla davanti, è chiamato in gergo tecnico apex o cima della zona. Su quel nome ci sono sempre record che devono esserci:
- il record SOA (l'intestazione tecnica della zona),
- i record NS (quali nameserver gestiscono la zona),
- solitamente anche record MX (posta) e record TXT (SPF, verifica).
Poiché un CNAME non tollera altri record accanto a sé, e l'apex ha sempre SOA e NS, sull'apex non può esserci un CNAME. Non è una limitazione del Suo pannello, ma del DNS stesso.
Se un servizio Le chiede di collegare "il Suo dominio principale", ci sono tre soluzioni:
- Un record A (ed eventualmente AAAA) con l'indirizzo IP del servizio. La maggior parte delle piattaforme di e-commerce indica un indirizzo fisso per questo. Funziona ovunque.
- Un record ALIAS, ANAME o "CNAME flattening". Alcuni fornitori DNS offrono un proprio tipo di record che si comporta come un CNAME, ma che il nameserver stesso converte in un record A prima che la risposta venga inviata. Non è un tipo di record ufficiale: funziona solo presso i fornitori che lo supportano, e si chiama diversamente ovunque.
- Reindirizzamento. Faccia puntare il dominio principale con un record A al Suo server web, e faccia reindirizzare i visitatori a
www.example.com, che ha un CNAME verso il servizio. Come funziona il reindirizzamento lo legge nella lezione 3.4.
Dove un CNAME non è ammesso ancora
- Un record MX non può puntare a un CNAME (RFC 2181, paragrafo 10.3). Il server di posta in un MX deve essere un nome con un proprio record A o AAAA. Alcuni server di posta se la cavano comunque, ma non può farci affidamento.
- Nessun CNAME su un nome che ha anche come sottodominio nel Suo pannello di hosting. Un sottodominio nel pannello riceve già da solo record che puntano al Suo hosting. Se vuole che il nome punti a un altro servizio, rimuova il sottodominio e crei solo il record CNAME.
- Le catene sono possibili, ma le limiti. Un CNAME può puntare a un nome che a sua volta è un CNAME. Ogni passaggio costa una ricerca aggiuntiva. Le grandi piattaforme lo fanno spesso (si vedono allora due o tre CNAME in sequenza), ma non crei Lei stesso catene lunghe.
Nella pratica: come appare in un pannello
Come esempio usiamo la schermata DNS di Mio WebOké. In altri pannelli (DirectAdmin, cPanel, Plesk, Cloudflare, la maggior parte dei registrar) i pulsanti si chiamano diversamente, ma inserisce gli stessi tre elementi: tipo, nome e nome di destinazione.
- Apra la schermata DNS del Suo dominio e clicchi su Aggiungi Record.
- Scelga il tipo CNAME.
- Nel campo Nome inserisca solo
shop, senza il Suo dominio. - Nel campo Punta a inserisca il nome di destinazione, con un punto finale:
shops.platform.example. - Salvi e verifichi nell'elenco che dopo il valore non compaia il Suo dominio.
Il pannello nell'esempio avvisa se manca il punto. Non tutti i pannelli lo fanno.
Riepilogo
- Un CNAME trasforma un nome in un alias per un altro nome; l'indirizzo IP è allora gestito dall'altro.
- Metta un punto alla fine del nome di destinazione, altrimenti il DNS aggiunge il Suo dominio dopo.
- Un nome con un CNAME non può avere altri record.
- Per questo un CNAME non può stare sul dominio principale: lì ci sono sempre SOA e NS. Usi lì un record A, un record di tipo ALIAS del Suo fornitore DNS, oppure il reindirizzamento.
- Un record MX non può puntare a un CNAME.
Quiz
Esercizio
Esercizio Z3.2: Seguire un CNAME. A quale nome punta il record CNAME di en.wikipedia.org? Inserisca il nome di destinazione.
Esercizio O3.2: Configurare Lei stesso nella Sua zona di esercitazione. Crei nella Sua zona di esercitazione un record CNAME con il nome winkel che punti a shops.shop-demo.dnspractice.eu. (con il punto). Assicuri che per winkel non ci sia un altro record. Nella zona di esercitazione usa un servizio fittizio; nel Suo dominio reale inserirà il nome di destinazione indicato dal servizio effettivo. Clicchi poi su Controllare.
Esercizio O3.2
Questo esercizio lo svolge nella Sua zona di esercitazione: una vera zona DNS sui nameserver di WebOké, solo per Lei. Si registri con il Suo indirizzo email. Riceverà un link di accesso via email e tornerà poi a questa lezione. Usiamo il Suo indirizzo solo per il corso.
Per approfondire
Questi articoli descrivono i passaggi nei pannelli di WebOké; in altri pannelli funzionano in modo simile.
