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
| Aspect | A | CNAME |
|---|---|---|
| Pointe vers | Adresse IPv4 | Autre nom de domaine |
| Résolutions DNS nécessaires | 1 | 2 (CNAME → A final) |
| Latence supplémentaire | 0 | +10-50 ms |
| Peut coexister avec d'autres types | Oui | Non (interdit RFC 1034) |
| Utilisable sur la racine (apex) du domaine | Oui | Non standard (sauf ALIAS/ANAME) |
| Mise à jour si IP change | Manuel | Automatique (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
| Situation | Recommandation | Pourquoi |
|---|---|---|
| VPS chez Hetzner avec IP fixe | A | IP connue, pas de tiers managé |
| Apex du domaine | A (ou ALIAS chez Cloudflare/Route 53) | CNAME interdit sur la racine |
| Site Netlify/Vercel | CNAME → app.netlify.app | Suit les IPs Netlify automatiquement |
| Sous-domaine api.exemple.fr | A direct vers IP API server | Performance optimale |
| Pointer 10 sous-domaines vers le même backend | CNAME vers backend.exemple.fr (qui a un A) | Une seule modification si IP change |
| Validation Google Workspace | CNAME spécifique fourni par Google | Suivre 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.