DNS: più record A o 1 record A e molti CNAME?


29

Diciamo che ho un server web, chiamato "www". www.example.com si risolve nell'indirizzo IP di quella macchina. Quindi voglio creare alcuni host virtuali e record DNS per loro, come webmail.example.com.

Per "webmail", devo inserire un record A con l'indirizzo IP di www o devo fare un CNAME su www?

Cosa c'è di più pulito? Più robusto? meglio?

Risposte:


26

Ci sono due punti di vista alternativi su questa domanda, ed è uno che alla fine verrà discusso per sempre. Non darò la mia opinione (perché sono strappato a me stesso), ma gli argomenti generali in ogni modo in genere sono:

  • Dovresti definire i record A per le tue macchine fisiche, quindi i servizi CNAME su quelle macchine. Questo rende piuttosto chiaro ciò che è cosa, e nel caso in cui sia necessario rinumerare non ci sono molti record da cambiare - solo i record della macchina. D'altra parte, aumenta in qualche modo il carico di ricerca DNS e gli IP "ausiliari" (si pensi ai vhosts SSL) non si adattano perfettamente a questo modello.

  • Il significato letterale di "nome canonico" (CNAME) è definire alias rigorosi con lo stesso nome (think mailand smtp), e se hai più servizi in esecuzione sullo stesso computer dovrebbero avere tutti i record A, perché riduce il carico su DNS e alcuni servizi (record NS e, in misura minore, record MX) non sono davvero colpiti dalla gestione dei CNAME, quindi se si devono comunque gestire tali servizi in modo diverso, lo si può fare per tutto.


12
Puoi effettivamente rovinare / sovraccaricare seriamente il tuo server DNS puntando un MX verso un CNAME. Non posso preoccuparmi di spiegare perché in questo momento, ma i server di posta più vecchi (ce ne sono molti là fuori) vedranno un MX che punta a un CNAME e non sapranno come affrontarlo e continueranno a cercare e metteranno grande stress sul tuo DNS e alla fine l'e-mail non arriva mai da nessuna parte. NON PUNTO MX SU UN CNAME. MAI.
Mark Henderson

3
Sono d'accordo con Farseeker, non indirizzare MX su un CNAME anche se potrebbe funzionare. Dai un'occhiata a Wikipedia (cerca MX Record) o RFC 2181 (sezione 10.3) se vuoi i dettagli completi.
Benoit,

+1 a womble. Questa risposta esprime anche il mio punto di vista. +1 a Farseeker. I record MX sono l'eccezione. Per quanto riguarda i riferimenti di Beoot, Wikipedia non dovrebbe mai essere usato come riferimento tecnico, poiché ci sono troppi errori e imprecisioni. Mentre a quasi tutti piace citare le RFC, dobbiamo ricordare che non sono standard, ma semplicemente un precursore di una proposta di standard.
John Gardeniers,

Ci scusiamo per l'ortografia errata del nome di Benoit. È ora che io sia a letto.
John Gardeniers,

Ho sempre usato i nomi. Il mio collega ha adottato l'approccio del multiplo a record. Un'altra ragione per cui cname è migliore: rende facile decidere quale record ottiene il record ptr. Ho guadagnato una birra da un terzo collega su questo.
dmourati,

12

L'uso di un CNAME raddoppia efficacemente le ricerche sul server DNS. Quando una richiesta è mappata su un CNAME, deve quindi cercare il record A per il CNAME.

Detto questo, c'è una ragione per cui esiste CNAME. Rende il tuo DNS molto più facile da gestire e, a meno che tu non stia facendo decine di migliaia di risoluzioni al giorno, non importerà ...


12

Diverse affermazioni qui suggeriscono che i CNAME aumentano il carico DNS. Questo mi ha incuriosito. Ho acceso WireShark, ispezionato una richiesta per un CNAME e almeno nel nostro ambiente il risultato è stato restituito in un record. Il che fa venire in mente l'aforisma di Knuth: "l'ottimizzazione prematura è la radice di tutti i mali".

Mi piacciono i CNAME, ma soprattutto per il loro effetto psicologico. Incoraggiano le persone (come me ad esempio) a disaccoppiare i nomi dei server dai nomi dei servizi.

Il nostro ambiente ha diversi certificati SSL collegati a nomi di server opachi (che abbiamo smesso di fare). I CNAME funzionano molto meglio qui. In ogni luogo in cui ho lavorato migrare i servizi in cui il nome del server è strettamente associato al servizio è un mal di testa. I CNAME forniscono una chiara linea concettuale di separazione.


Ciò richiede più voti. I record CNAME in genere non aumentano il numero di viaggi di andata e ritorno richiesti, poiché i risultati sono raggruppati in un'unica risposta.
Nic,

4

A mio avviso, se gli host virtuali sono www.someotherdomain.com, li tratterei come un dominio separato con un proprio set di record DNS (in seguito renderebbe più semplice la loro suddivisione). Se comunque fosse solo un blog .example.com, userei un CNAME.

Solo le mie preferenze personali.



2

I CNAME aumentano il carico sul sistema DNS, non sul personal computer o sulla connessione Internet. Penso che alcune persone qui non abbiano fatto questa distinzione quando hanno risposto.

Ad esempio, utilizzare i record A per i record con traffico elevato primario (@ e www). Usa CNAME per i record secondari che verranno sempre associati allo stesso IP di un record primario. Ad esempio, se si dispone di un dominio "member.site.com" che risolverà sempre allo stesso IP di "www.site.com", è possibile utilizzare qui un CNAME per comodità, ma se è possibile utilizzare un record A , si risolverebbe più velocemente.


Grazie, ho trovato la risposta chiara, ma il tuo commento è ancora più semplice da capire :)
karni,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.