DNS A vs CNAME : différence et quand utiliser chacun

Un enregistrement A pointe vers une adresse IP. Un CNAME pointe vers un autre nom de domaine. Cette distinction simple cache des conséquences performances, des contraintes RFC et des choix d'architecture. Voici quand utiliser quoi.

Par Constantin Boulanger
Publié le
6 min de lecture

Un enregistrement DNS A associe un nom de domaine à une adresse IPv4 (ex. www.exemple.fr → 51.158.43.12). Un enregistrement CNAME (Canonical Name) associe un nom de domaine à un autre nom de domaine (ex. blog.exemple.fr → exemple.medium.com) — le résolveur fait alors une seconde requête pour obtenir l'adresse IP finale. Choisir entre A et CNAME a des conséquences sur la performance, la fiabilité et la conformité au RFC 1034.

Différences techniques

AspectACNAME
Pointe versAdresse IPv4Autre nom de domaine
Résolutions DNS nécessaires12 (CNAME → A final)
Latence supplémentaire0+10-50 ms
Peut coexister avec d'autres typesOuiNon (interdit RFC 1034)
Utilisable sur la racine (apex) du domaineOuiNon standard (sauf ALIAS/ANAME)
Mise à jour si IP changeManuelAutomatique (suit le nom cible)

Quand utiliser un enregistrement A

1. Vous contrôlez le serveur web et l'IP

VPS chez Hetzner, Scaleway, OVH, AWS EC2 avec Elastic IP : vous connaissez l'IP fixe, vous configurez un A direct. Performance optimale (1 seule résolution DNS).

2. Sur l'apex du domaine (racine)

Le RFC 1034 interdit un CNAME sur la racine du domaine (exemple.fr sans préfixe). Il faut un A. Si votre fournisseur DNS propose ALIAS/ANAME (Cloudflare, Route 53, Gandi LiveDNS), c'est un workaround propriétaire.

3. Performance critique

Pour les sites avec très grand volume de trafic (e-commerce gros, SaaS), le 10-50 ms supplémentaire d'un CNAME peut compter. Préférer A si possible.

Quand utiliser un enregistrement CNAME

1. Pointer vers un service tiers managé

Heroku, GitHub Pages, Netlify, Vercel, Shopify, Webflow vous donnent un nom de domaine type monsite.netlify.app. Vous configurez www.monsite.fr CNAME → monsite.netlify.app. L'avantage : si Netlify change ses IPs, votre CNAME suit automatiquement.

2. Centraliser le routage de plusieurs sous-domaines

Si tous vos sous-domaines pointent vers un même backend, configurer un seul A (sur backend.exemple.fr) puis CNAME chaque sous-domaine vers backend.exemple.fr. Si vous changez d'IP backend, une seule modification au lieu de N.

3. Validation de domaine pour services SaaS

Beaucoup de services (G Suite, Microsoft 365, Stripe Atlas, etc.) demandent un CNAME spécifique pour valider la propriété du domaine. Suivre les instructions du fournisseur.

Pièges et erreurs fréquentes

1. CNAME + autres types sur le même nom = invalide

Le RFC 1034 est strict : un nom avec CNAME ne peut pas avoir d'autres enregistrements (MX, TXT, A, etc.). Ex. : si exemple.fr CNAME alias.exemple.fr existe, vous ne pouvez pas avoir exemple.fr MX en parallèle. C'est pour ça que CNAME ne fonctionne pas sur la racine (où il faut SOA et NS).

2. CNAME en chaîne (CNAME → CNAME → CNAME → A)

Techniquement possible mais coûteux : chaque maillon = une résolution DNS de plus. Limiter à 2-3 niveaux maximum. Au-delà, certains résolveurs abandonnent.

3. CNAME orphelin = subdomain takeover

Si vous avez blog.exemple.fr CNAME → blog.medium.com et que vous arrêtez votre Medium for Brands sans nettoyer le CNAME, n'importe qui peut récupérer l'identifiant Medium et s'approprier votre sous-domaine. Vecteur d'attaque classique.

4. CNAME vers IP en notation domaine = interdit

CNAME doit pointer vers un nom (FQDN), pas une IP. Pour pointer vers une IP, utilisez A. Erreur fréquente chez les débutants.

Cas concrets

SituationRecommandationPourquoi
VPS chez Hetzner avec IP fixeAIP connue, pas de tiers managé
Apex du domaineA (ou ALIAS chez Cloudflare/Route 53)CNAME interdit sur la racine
Site Netlify/VercelCNAME → app.netlify.appSuit les IPs Netlify automatiquement
Sous-domaine api.exemple.frA direct vers IP API serverPerformance optimale
Pointer 10 sous-domaines vers le même backendCNAME vers backend.exemple.fr (qui a un A)Une seule modification si IP change
Validation Google WorkspaceCNAME spécifique fourni par GoogleSuivre les instructions exactes

Comment vérifier ses A et CNAME

Avec dig :

# Voir l'enregistrement A
dig +short A www.exemple.fr

# Voir l'enregistrement CNAME (et la chaîne complète)
dig +short CNAME blog.exemple.fr
dig +trace blog.exemple.fr

Ou via notre DNS Lookup gratuit en ligne qui affiche tous les enregistrements DNS d'un domaine.

Ce qu'il faut retenir

  • A = nom de domaine vers IP. CNAME = nom de domaine vers un autre nom.
  • A est plus rapide (1 résolution). CNAME est plus flexible (suit la cible).
  • CNAME interdit sur la racine du domaine (RFC 1034).
  • Privilégier A pour les serveurs que vous contrôlez, CNAME pour les services tiers managés.
  • Surveiller les CNAME orphelins (vers services tiers désaffectés) pour éviter le subdomain takeover.

Questions fréquentes

Pourquoi un CNAME sur la racine est-il interdit ?

Le RFC 1034 stipule qu'un nom avec CNAME ne peut pas avoir d'autres enregistrements. Or la racine (apex) doit obligatoirement avoir SOA et NS. Donc CNAME impossible. Workaround : ALIAS/ANAME (propriétaire chez Cloudflare, Route 53, Gandi LiveDNS) qui simule le comportement.

Combien de CNAME en chaîne sont tolérés ?

Pas de limite stricte dans le RFC, mais en pratique 3-5 maximum. Au-delà, certains résolveurs abandonnent (DNS_PROBE_FINISHED_NXDOMAIN). Limiter pour la performance.

Comment migrer d'un A vers CNAME sans downtime ?

Réduire le TTL de l'enregistrement A à 300 s (5 min) au moins 24 h avant la migration. Le jour J : remplacer A par CNAME. Vérifier la résolution depuis plusieurs régions. Remonter le TTL si besoin.

CNAME impacte-t-il vraiment la performance ?

Marginalement (10-50 ms par résolution supplémentaire). Imperceptible pour la plupart des sites. Significatif uniquement pour les sites à très haute performance ou avec audience à haute latence (Asie, Afrique).

Comment détecter un CNAME orphelin (vulnérable au takeover) ?

Auditer chaque CNAME et tester si la destination retourne une erreur du type "resource not claimed" (Heroku, Netlify, S3, GitHub Pages, etc.). Outils : subjack, subzy, ou Domains Defender qui croise vos CNAME avec les patterns connus de services vulnérables.

Un même nom de domaine peut-il avoir plusieurs A pour load balancing ?

Oui (round-robin DNS). Configurer plusieurs A sur le même nom : www.exemple.fr A 51.158.43.12 + www.exemple.fr A 51.158.43.13. Le résolveur retourne les IPs dans un ordre variable, distribuant approximativement le trafic. Pas un vrai load balancer (pas de health check), mais simple à mettre en place.

Tester votre configuration

Vérifier vos enregistrements A et CNAME prend 30 secondes via un outil DNS Lookup en ligne. Ce qui est plus difficile : surveiller en continu qu'aucun de vos CNAME ne devient orphelin et vulnérable au subdomain takeover.

Domains Defender vérifie chaque cycle vos enregistrements DNS et croise vos CNAME avec les services tiers connus pour être à risque (Heroku, GitHub Pages, S3, Netlify, etc.). Hébergé en France, conforme RGPD, essai gratuit 7 jours.

Tester votre DNS gratuitement — ou activer la surveillance continue.

Articles similaires