toutes les fiches

// comment corriger

CNAME en conflit avec les enregistrements MX et TXT : « CNAME and other data »

Un CNAME ne peut pas partager son nom avec un MX, un TXT ou un autre enregistrement. Pourquoi votre DNS le refuse ou l'email casse, et comment corriger.

Ce que ça veut dire

Un enregistrement CNAME dit « ce nom est un alias d'un autre nom ». Les règles du DNS (RFC 1034, confirmée par la RFC 2181) indiquent que si un nom a un CNAME, il ne peut avoir aucun autre enregistrement : ni MX, ni TXT, ni A. Un nom est soit un alias, soit un vrai nom avec ses propres enregistrements, jamais les deux.

On le constate généralement de l'une de ces deux façons :

  • Votre hébergeur DNS refuse d'enregistrer l'entrée, avec un message comme « CNAME conflicts with existing records », « A CNAME record already exists for this name » ou « CNAME and other data ».
  • Votre hébergeur DNS l'accepte quand même (certains le font), et les résolveurs renvoient ensuite des réponses incohérentes : le SPF, le DMARC ou le MX semblent apparaître et disparaître, et l'email échoue au hasard.

Pourquoi cela arrive

  • CNAME sur le domaine racine. Un créateur de sites ou une plateforme d'hébergement vous demande de faire pointer yourdomain.com (l'apex, @) avec un CNAME. L'apex a toujours des enregistrements SOA et NS, et généralement des MX et des TXT (SPF, vérification) : un CNAME y est donc invalide.
  • Un sous-domaine utilisé à la fois pour le web et l'email. Par exemple, shop.yourdomain.com est un CNAME vers votre plateforme de boutique, et un outil d'emailing vous demande d'ajouter un MX ou un TXT SPF sur le même nom.
  • DKIM ajouté deux fois. Un sélecteur comme selector1._domainkey a un CNAME d'un prestataire et un TXT d'une autre configuration.
  • TXT de vérification sur un nom en CNAME. Un outil demande un TXT sur www alors que www est un CNAME.
  • DMARC sur un CNAME. Un _dmarc.yourdomain.com en CNAME est autorisé (il délègue le DMARC), mais vous ne pouvez alors pas y ajouter votre propre TXT.

Comment vérifier

  1. Ouvrez le scanner de domaine et regardez le MX, le SPF et le DMARC. Des valeurs absentes ou étranges sur un nom qui devrait les avoir sont un indice.
  2. Demandez le CNAME du nom exact :
    dig CNAME yourdomain.com +short
    dig CNAME shop.yourdomain.com +short
    shops.platform.example.
    Si la commande renvoie une cible, ce nom ne peut rien avoir d'autre.
  3. Demandez le MX et le TXT du même nom :
    dig MX shop.yourdomain.com
    dig TXT shop.yourdomain.com
    Si la section de réponse commence par un CNAME, vous voyez les enregistrements de la cible, pas les vôtres.
  4. Envoyez un email de test à l'adresse unique affichée sur la page d'accueil de Delivmail (/) pour voir les résultats SPF et DMARC du vrai domaine d'envoi.

Comment corriger

CNAME sur l'apex

Remplacez-le par quelque chose d'autorisé sur l'apex :

  • Des enregistrements A/AAAA avec les IP que votre plateforme web fournit pour les domaines racine.
  • Un enregistrement ALIAS, ANAME ou « CNAME flattening » si votre hébergeur DNS le propose (Cloudflare aplatit automatiquement un CNAME sur l'apex). Ils répondent avec des enregistrements A, donc le MX et le TXT peuvent coexister.
  • Ou faites pointer seulement www avec un CNAME et redirigez l'apex vers 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.

Sous-domaine utilisé pour le web et l'email

Utilisez des noms différents : gardez shop.yourdomain.com en CNAME pour le site, et envoyez vos emails depuis un autre sous-domaine comme mail.yourdomain.com ou news.yourdomain.com, avec ses propres MX et TXT. Voir l'authentification email des sous-domaines.

Sélecteurs DKIM

Gardez un seul enregistrement par sélecteur. Si un prestataire utilise des CNAME (voir le DKIM avec des enregistrements CNAME), supprimez tout TXT portant le même nom de sélecteur, ou utilisez un autre sélecteur pour l'autre système.

TXT de vérification sur un nom en CNAME

Demandez à l'outil s'il accepte la vérification sur un autre nom (beaucoup le font) ou sur l'apex.

Vérifiez que c'est corrigé

Une fois le TTL des anciens enregistrements expiré, dig CNAME ne doit plus rien renvoyer sur les noms qui doivent porter un MX ou un TXT, et dig MX / dig TXT doivent renvoyer directement vos enregistrements. Vérifiez de nouveau avec le scanner de domaine, puis lancez un nouveau test Delivmail et vérifiez que le SPF et le DMARC passent. Envoyez un email à une adresse du domaine pour confirmer que la réception fonctionne.

Vérifiez que c'est corrigé

Une modification DNS peut prendre de quelques minutes à quelques heures. Ensuite, envoyez un nouvel email de test ou scannez à nouveau votre domaine.

Fiches liées