todas las guías

// cómo solucionarlo

Un CNAME entra en conflicto con los registros MX y TXT: "CNAME and other data"

Un CNAME no puede compartir nombre con registros MX, TXT u otros. Por qué tu proveedor DNS rechaza el registro o el email falla, y cómo resolver el conflicto.

Qué significa

Un registro CNAME dice "este nombre es un alias de otro nombre". Las reglas del DNS (RFC 1034, confirmadas por la RFC 2181) dicen que, si un nombre tiene un CNAME, no puede tener ningún otro registro: ni MX, ni TXT, ni A. Un nombre es o bien un alias, o bien un nombre real con sus propios registros, nunca las dos cosas.

Normalmente lo notas de una de estas dos formas:

  • Tu proveedor DNS se niega a guardar el registro, con un mensaje como "CNAME conflicts with existing records", "A CNAME record already exists for this name" o "CNAME and other data".
  • Tu proveedor DNS lo acepta igualmente (algunos lo hacen), y después los resolvers devuelven respuestas incoherentes: SPF, DMARC o MX parecen aparecer y desaparecer, y el email falla al azar.

Por qué ocurre

  • CNAME en el dominio raíz. Un creador de webs o una plataforma de hosting te pide apuntar yourdomain.com (el apex, @) con un CNAME. El apex siempre tiene registros SOA y NS, y normalmente MX y TXT (SPF, verificación), así que un CNAME ahí no es válido.
  • Un subdominio usado a la vez para la web y el correo. Por ejemplo, shop.yourdomain.com es un CNAME hacia tu plataforma de tienda, y una herramienta de email te pide añadir un MX o un TXT de SPF en el mismo nombre.
  • DKIM añadido dos veces. Un selector como selector1._domainkey tiene un CNAME de un proveedor y un TXT de otra configuración.
  • TXT de verificación en un nombre con CNAME. Una herramienta pide un TXT en www cuando www es un CNAME.
  • DMARC en un CNAME. _dmarc.yourdomain.com como CNAME está permitido (delega el DMARC), pero entonces no puedes añadir también tu propio TXT ahí.

Cómo comprobarlo

  1. Abre el escáner de dominios y mira MX, SPF y DMARC. Valores ausentes o extraños en un nombre que debería tenerlos son una pista.
  2. Pide un CNAME del nombre exacto:
    dig CNAME yourdomain.com +short
    dig CNAME shop.yourdomain.com +short
    shops.platform.example.
    Si devuelve un destino, ese nombre no puede tener nada más.
  3. Pide MX y TXT del mismo nombre:
    dig MX shop.yourdomain.com
    dig TXT shop.yourdomain.com
    Si la sección de respuesta empieza por un CNAME, estás viendo los registros del destino, no los tuyos.
  4. Envía un email de prueba a la dirección única de la página de inicio de Delivmail (/) para ver los resultados de SPF y DMARC del dominio de envío real.

Cómo solucionarlo

CNAME en el apex

Sustitúyelo por algo permitido en el apex:

  • Registros A/AAAA con las IP que tu plataforma web indica para los dominios raíz.
  • Un registro ALIAS, ANAME o "CNAME flattening" si tu proveedor DNS lo ofrece (Cloudflare aplana automáticamente un CNAME en el apex). Estos responden con registros A, así que MX y TXT pueden convivir con ellos.
  • O apunta solo www con un CNAME y redirige el apex a www.
Before (invalid):
yourdomain.com.   CNAME  sites.platform.example.
yourdomain.com.   MX 10  mail.yourdomain.com.

After:
yourdomain.com.   A      203.0.113.80
yourdomain.com.   MX 10  mail.yourdomain.com.
yourdomain.com.   TXT    "v=spf1 ip4:203.0.113.25 ~all"
www               CNAME  sites.platform.example.

Subdominio usado para la web y el correo

Usa nombres distintos: deja shop.yourdomain.com como CNAME para la web y envía el email desde otro subdominio, como mail.yourdomain.com o news.yourdomain.com, con sus propios MX y TXT. Consulta la autenticación de email para subdominios.

Selectores DKIM

Mantén un único registro por selector. Si un proveedor usa CNAME (consulta DKIM con registros CNAME), elimina cualquier TXT con el mismo nombre de selector, o usa otro selector para el otro sistema.

TXT de verificación en un nombre con CNAME

Pregunta a la herramienta si acepta la verificación en otro nombre (muchas lo hacen) o en el apex.

Comprueba que está solucionado

Cuando haya caducado el TTL de los registros antiguos, dig CNAME sobre el nombre no debe devolver nada donde tienen que existir MX o TXT, y dig MX / dig TXT deben devolver directamente tus registros. Vuelve a comprobarlo con el escáner de dominios, haz una nueva prueba en Delivmail y confirma que SPF y DMARC pasan. Envía un email a una dirección del dominio para confirmar que la recepción funciona.

Comprueba que está solucionado

Un cambio de DNS puede tardar de unos minutos a unas horas. Después, envía un nuevo email de prueba o vuelve a escanear tu dominio.

Guías relacionadas