DNS: ¿múltiples registros A o 1 A y muchos CNAME?

29

Digamos que tengo un servidor web, llamado 'www'. www.example.com resuelve la dirección IP de esa máquina. Luego quiero hacer algunos hosts virtuales y registros DNS para ellos, como webmail.example.com.

Para 'webmail', ¿debo poner un registro A con la dirección IP de www, o debo hacer un CNAME a www?

¿Qué es más limpio ?, ¿más robusto? ¿mejor?

Rory
fuente

Respuestas:

26

Hay dos puntos de vista alternativos de esta pregunta, y es una que finalmente se debatirá para siempre. No voy a dar mi opinión (porque estoy desgarrado), pero los argumentos generales en cada sentido son:

  • Debe definir registros A para sus máquinas físicas y luego servicios CNAME en esas máquinas. Esto deja bastante claro qué es qué y, en el caso de que necesite renumerar, no hay muchos registros para cambiar, solo los registros de la máquina. Por otro lado, aumenta un poco la carga de búsqueda de DNS, y las IP "auxiliares" (piense en vhosts SSL) no encajan perfectamente en este modelo.

  • El significado literal de "nombre canónico" (CNAME) es definir alias estrictos del mismo nombre (think mailand smtp), y si tiene múltiples servicios ejecutándose en la misma máquina, todos deberían tener registros A, porque reduce la carga en DNS y algunos servicios (registros NS y, en menor medida, registros MX) realmente no están impresionados al tratar con CNAME, por lo que si de todos modos tiene que manejar esos servicios de manera diferente, también podríamos hacerlo para todo.

womble
fuente
12
En realidad, puede arruinar / sobrecargar seriamente su servidor DNS apuntando un MX a un CNAME. No puedo molestarme en explicar por qué en este momento, pero los servidores de correo más antiguos (hay muchos por ahí) verán un MX apuntando a un CNAME y no sabrán cómo lidiar con él y seguirán buscando y pondrán un gran estrés en su DNS y al final el correo electrónico nunca llega a ninguna parte. NO SEÑALE MX A UN CNAME. SIEMPRE.
Mark Henderson
3
Estoy de acuerdo con Farseeker, no apunte MX a un CNAME, incluso si puede funcionar. Eche un vistazo a wikipedia (busque el Registro MX) o RFC 2181 (sección 10.3) si desea todos los detalles.
Benoit
+1 a womble. Esa respuesta expresa mi opinión también. +1 a Farseeker. Los registros MX son la excepción. En cuanto a las referencias de Beoot, Wikipedia nunca debe usarse como referencia técnica, ya que hay demasiados errores e inexactitudes. Si bien a casi todo el mundo le gusta citar RFC, debemos recordar que no son estándares, sino simplemente un precursor de una propuesta de estándar.
John Gardeniers
Perdón por la falta de ortografía del nombre de Benoit. Es hora de que esté en la cama.
John Gardeniers
Siempre usé cnames. Mi colega adoptó el enfoque de múltiples registros. Una razón más por la que cname es mejor: hace que sea fácil decidir qué registro obtiene el registro ptr. Obtuve una cerveza de un tercer colega en este caso.
dmourati
12

El uso de un CNAME efectivamente duplica las búsquedas en el servidor DNS. Cuando una solicitud se asigna a un CNAME, debe buscar el registro A para el CNAME.

Dicho esto, hay una razón por la que existen CNAME. Hace que su DNS sea mucho más fácil de administrar, y a menos que esté haciendo decenas de miles de resoluciones al día, no importará ...

Mark Henderson
fuente
12

Varias fuentes aquí sugieren que los CNAME aumentan la carga de DNS. Esto me hizo sentir curiosidad. Encendí WireShark, inspeccioné una solicitud de CNAME y, al menos en nuestro entorno, el resultado fue devuelto en un solo registro. Lo que trae a la mente el aforismo de Knuth: "la optimización prematura es la raíz de todo mal".

Me gustan los CNAME, pero principalmente por su efecto psicológico. Alientan a las personas (como yo, por ejemplo) a desacoplar los nombres de los servidores de los nombres de los servicios.

Nuestro entorno tiene varios certificados SSL adjuntos a nombres de servidor opacos (lo cual hemos dejado de hacer). Los CNAME funcionan mucho mejor aquí. En todos los lugares donde he trabajado, migrar servicios donde el nombre del servidor está estrechamente vinculado al servicio es un dolor de cabeza. Los CNAME dan una línea conceptual clara de separación.

Joe Fortier
fuente
Esto necesita más votos a favor. Los registros CNAME generalmente no aumentan el número de viajes de ida y vuelta necesarios, ya que los resultados se agrupan en una sola respuesta.
Nic
4

En mi opinión, si los hosts virtuales son www.someotherdomain.com, los trataría como un dominio separado con su propio conjunto de registros DNS (lo que facilita más adelante si es necesario dividirlos). Sin embargo, si es solo blog .example.com, entonces usaría un CNAME.

Solo mi preferencia personal.

Sam
fuente
2

Usaría CNAME debido a la perspectiva de DNS, webmail es un alias de www.

Martin P. Hellwig
fuente
2

Los CNAME aumentan la carga en el sistema DNS, no en su computadora personal o conexión a Internet. Creo que algunas personas aquí no hicieron esa distinción cuando respondieron.

Utilice registros A para registros primarios de alto tráfico (@ y www), por ejemplo. Use CNAME para registros secundarios que siempre se asignarán a la misma IP de un registro primario. Por ejemplo, si tiene un dominio "member.site.com" que siempre se resolverá con la misma IP que "www.site.com", puede usar un CNAME aquí por conveniencia, pero si puede usar un registro A , se resolvería más rápido.

TheDigitalOrchard
fuente
Gracias, encontré la respuesta clara, pero tu comentario es aún más sencillo de entender :)
karni