¿El DNS que usa CNAME rompe los registros MX?

42

Estamos tratando de mover todos nuestros sitios web que alojamos a CNAMES, ya que estamos planeando mover servidores en el nuevo año y nos gustaría poder mover algunos clientes a un servidor y a otros clientes en otro lugar. Estábamos planeando dar a los clientes un CNAME único que luego podemos cambiar en una fecha posterior. (Tenemos otras razones para hacerlo ahora, pero esa es la principal)

Hemos estado probando esta teoría con algunos de nuestros propios dominios y parecía estar bien. Sin embargo, al verificar los registros MX en un dominio, recuperé el valor CNAME en lugar del registro MX.

Lamentablemente, todos estos dominios se realizan a través de paneles de control, pero supongo que solo están escribiendo archivos de zona para mí.

Quiero crear 2 CNAME para company.com

company.com. IN CNAME client.dns.ourserver.com
www          IN CNAME client.dns.ourserver.com

El registro MX es algo parecido a lo siguiente:

company.com  IN MX 10 mail.company.com

Tenemos un registro A para mail.company.com

Obra:

host -t mx company.com

Devuelve el valor CNAME en lugar del registro mx.

¿Es este comportamiento esperado?

He logrado que la configuración anterior funcione con el panel de control 123-reg.co.uk, pero no estoy seguro de si eso es más suerte que otra cosa.

Johnwards
fuente
Esta es una pregunta común y se ha hecho muchas veces antes. Vea este enlace para ver un ejemplo: serverfault.com/questions/18000/…
Russell Heilling
Pasé un rato buscando una respuesta, pero no pude averiguar si estaba haciendo algo diferente. Especialmente porque está funcionando bien con un proveedor de dominio. Tengo mi respuesta, así que es genial y espero que sea de alguna utilidad para alguien.
John

Respuestas:

54

Es un error común. No puede utilizar un CNAME RR para su dominio raíz (por ejemplo, company.com) y definir registros de recursos adicionales para la misma zona.

Consulte ¿Por qué no puedo crear un registro CNAME para el registro raíz? y RFC1034 sección 3.6.2 para más detalles:

Si un CNAME RR está presente en un nodo, no deben estar presentes otros datos; Esto asegura que los datos para un nombre canónico y sus alias no pueden ser diferentes.

joschi
fuente
RFC2181 La Sección 10.1 también es relevante porque refuerza lo anterior.
Håkan Lindqvist
también conocido como dominio apex
Alex78191
5

La sección 10.3 del RFC2181 dice que no puede apuntar su registro MX a un CNAME:

El nombre de dominio utilizado como valor ... de un registro de recursos MX no debe ser un alias.

nogginboink
fuente
2
¿Pero ese no es realmente el escenario sobre el que se trata la pregunta?
Håkan Lindqvist
2

Me acabo de mudar a Heroku que usa CNAME en lugar de registros A y lo que tuve que hacer fue en lugar de hacer un CNAME con my_domain.com apuntando a heroku, hice el CNAME con www.my_domain.com apuntando a heroku, así que el simple / el dominio raíz no estaba reenviando y mis registros MX seguirían funcionando. Luego agregué un puntero para redirigir my_domain.com a www.my_domain.com. Parece que funciona muy bien. En mi proveedor de nombres de dominio, el puntero se creó utilizando una configuración de 'punteros' que configuré en 'estándar' 'URL' y 'www.mi_dominio.com'

Jesse Adamson
fuente
¡Trabajo sólido! ¡Gracias por compartir esto!
duhaime
0

Me di cuenta de que estos dos pueden separarse por completo

mydomain.com. -  A Record  - 01.0.0.1
mydomain.com - CNAME - www.cname.eg.com

A menos que esté utilizando su servidor como servidor de correo, realmente no afectará nada. El correo buscará registros MX de mydomain.com. Solo se verá afectado si es así

mydomain.com - MX - mail.mydomain.com

pero si es así (lo que significa que está utilizando un servidor de correo separado) no se verá afectado

mydomain.com - MX - mail.mycustommailserver.com

No puede usar una IP para servidores de correo.

Ndeto
fuente
-1

Descubrí que ALGUNOS proveedores de MX junto con ALGUNOS proveedores de DNS realmente funcionarán junto con un CNAME simple, si simplemente ordena el registro MX ARRIBA del CNAME en el orden de registro de arriba hacia abajo.

Está trabajando en el registrador de Name.com con el registro MX de Office 365 y el registro CNAME desnudo que dirige HTTP a otro dominio. Mientras probaba las consultas MX, noté que mi resultado CNAME regresó primero correspondiente a mi pedido de entradas DNS, así que pensé por qué no intentar ordenar MX primero y ver si eso satisfacía al proveedor MX. Para mi sorpresa, la verificación de Office 365 MX pasó y puedo confirmar que el correo electrónico entrante y saliente realmente fluye. Y después de probar varios clientes web, HTTP también se resuelve deseablemente al host de destino CNAME especificado.

Advertencia: esto claramente va en contra de la norma y, por lo tanto, probablemente no debería considerarse para nada crítico. Supongo que el orden de registro no está en la especificación y, por lo tanto, no se puede confiar oficialmente en él ... es decir, está sujeto a cambios justo después de que se olvide de este truco.

Consejo: la página gratuita de MX Toolbox es muy útil para verificar el resultado de probar diferentes configuraciones de DNS.

Enchufe descarado para mi publicación correspondiente .

Beej
fuente
2
Al ser un comportamiento indocumentado, definitivamente no es algo con lo que quiera contar.
ceejayoz
2
este comportamiento solo puede considerarse un error, un servidor de nombres de almacenamiento en caché puede almacenar en caché la respuesta CNAME y los MDA nunca verán el registro MX tools.ietf.org/html/rfc5321#section-5.1
Jasen
-3

Puede usar un CNAME en la raíz del dominio, sin embargo, esos registros MX también deben configurarse en el registro de host, por lo que si tiene mx1.mail.com configurado en la zona para yourdomain.com y la raíz de yourdomain. com es CNAME para thisrecord.cname.com, también debe asegurarse de que mx1.mail.com esté configurado en ese host CNAME; si no, ¡se perderá todo el correo!

Mate
fuente
44
El problema es, según RFC1034, "si un CNAME RR está presente en un nodo, no deben estar presentes otros datos", ya que la raíz debe tener registros NS (para ser útil, de todos modos), siempre habrá otros datos , que viola esta sección del RFC.
Doktor J
En mi opinión, la respuesta es correcta, excepto que el registro MX debería estar en su lugar en el host CNAME (no también).
Alexander Taubenkorb