Générateur de zone BIND CNAME
Générer des enregistrements CNAME de zone BIND depuis un CSV
Alias Mappings
Format
Each line: alias, target
Target should be a FQDN (ending with a dot)
BIND CNAME Records
Enter alias mappings to generate CNAME records
Le generateur d'enregistrements CNAME pour zones BIND cree des entrees de fichier de zone DNS correctement formatees pour les enregistrements CNAME (Canonical Name) a partir d'une entree CSV ou tabulaire. Fournissez des paires alias-cible comme www,webserver.example.com. et blog,www, et l'outil produit des entrees de fichier de zone compatibles BIND avec validation des pieges courants des CNAME comme le placement a l'apex et les types d'enregistrements en conflit.
Comprendre les enregistrements DNS CNAME
Un enregistrement CNAME est un alias DNS. Il indique aux resolveurs qu'un hostname n'est en realite qu'un autre nom pour un hostname different. Lorsqu'un resolveur cherche www.example.com et trouve un CNAME pointant vers webserver.example.com, il relance de maniere transparente la recherche en utilisant le nom cible et retourne l'adresse IP finale au client. Le client ne sait jamais qu'un CNAME etait implique. Cette indirection est ce qui rend les CNAME si utiles : vous pouvez creer un nom convivial comme www qui pointe vers le hostname reel du serveur, et si vous changez de serveur, vous mettez a jour uniquement la cible du CNAME plutot que chaque reference a l'ancien hostname.
Les CNAME sont particulierement precieux pour les services cloud ou le hostname reel est quelque chose de peu maniable comme d1234abcdef.cloudfront.net ou my-app-lb-1234567890.us-east-1.elb.amazonaws.com. Vous creez un CNAME de cdn.example.com vers la distribution CloudFront ou de app.example.com vers le endpoint ELB, donnant a vos utilisateurs un nom propre tout en laissant le fournisseur cloud gerer l'infrastructure sous-jacente. Si le fournisseur change son hostname, vous mettez a jour un seul enregistrement CNAME au lieu de reconfigurer chaque client.
Cependant, les CNAME comportent des restrictions importantes qui piegeant meme les administrateurs experimentes. Un CNAME ne peut pas coexister avec un autre type d'enregistrement au meme nom, ce qui signifie que vous ne pouvez pas avoir un CNAME et un enregistrement MX pour mail.example.com. Plus critique encore, vous ne pouvez pas placer un CNAME a l'apex de la zone (example.com lui-meme) car l'apex doit avoir des enregistrements SOA et NS. Ce generateur valide votre entree par rapport a ces regles et vous avertit avant qu'elles ne causent des problemes en production.
Comment generer des enregistrements CNAME pour BIND
- Saisissez vos donnees au format CSV avec des colonnes pour le nom d'alias et le nom d'hote cible (en option, incluez le TTL)
- L'outil verifie que les noms d'alias respectent les regles RFC 1123 et que les cibles sont des noms d'hote valides
- Il controle les violations courantes des CNAME comme le placement a l'apex de zone et les types d'enregistrements en conflit
- Copiez les entrees de fichier de zone generees pour une utilisation directe dans votre configuration de zone BIND
Exemples d'entree CSV et de sortie de fichier de zone
CSV d'entree
www,webserver.example.com.
blog,www
docs,docs-app.cdn.provider.net.
staging,staging-lb.us-east-1.elb.amazonaws.com.
ftp,files
Sortie de fichier de zone generee
www IN CNAME webserver.example.com.
blog IN CNAME www
docs IN CNAME docs-app.cdn.provider.net.
staging IN CNAME staging-lb.us-east-1.elb.amazonaws.com.
ftp IN CNAME files
Exemples d'enregistrements CNAME
| Alias (Nom) | Cible (Canonique) | Cas d'usage |
|---|---|---|
www | webserver.example.com. | Pointer www vers le nom de serveur canonique |
blog | example.blog-platform.com. | Alias vers un service de blog heberge |
cdn | d1234.cloudfront.net. | Pointer vers une distribution CloudFront |
mail | mail.google.com. (invalide) | Impossible de creer un CNAME sur un nom ayant des enregistrements MX |
shop | shops.myshopify.com. | Alias vers une plateforme e-commerce |
status | example.statuspage.io. | Pointer vers un service de page de statut |
Quand utiliser cet outil
- Integration CDN -- creer des alias CNAME pointant vers des noms d'hote de fournisseurs CDN comme CloudFront, Cloudflare ou Akamai
- Endpoints de services cloud -- mapper des noms conviviaux vers des noms DNS de load balancer depuis AWS ELB, Azure ou GCP
- Migrations de services -- maintenir d'anciens noms d'hote en tant qu'alias CNAME vers de nouveaux noms canoniques pendant les transitions
- Deploiements multi-environnements -- creer des alias specifiques a l'environnement comme
staging.example.compointant vers des noms d'hote d'infrastructure - Domaines de vanite -- pointer des sous-domaines marketing ou de campagne vers des endpoints de plateformes hebergees
- Organisation DNS interne -- creer des alias lisibles pour des noms d'hote d'infrastructure complexes
Fonctionnement de la resolution DNS CNAME
Un enregistrement CNAME indique aux resolveurs DNS qu'un nom est un alias pour un autre (le nom canonique). Lorsqu'un resolveur rencontre un CNAME, il relance la recherche en utilisant le nom cible a la place.
Chaine de resolution
Lorsqu'un client interroge www.example.com et trouve un CNAME :
Query: www.example.com A
-> CNAME: webserver.example.com
-> A: 203.0.113.10
Result: www.example.com -> 203.0.113.10
Le resolveur suit la chaine CNAME de maniere transparente. Les clients voient l'enregistrement A ou AAAA final sans connaitre le CNAME intermediaire.
Restrictions des CNAME
Les enregistrements CNAME ont des restrictions importantes que le generateur verifie :
-
Pas de CNAME a l'apex de la zone : un enregistrement CNAME ne peut pas exister a l'apex de la zone (par ex.
example.comlui-meme). L'apex doit avoir des enregistrements SOA et NS, et le CNAME ne peut pas coexister avec un autre type d'enregistrement pour le meme nom. Utilisez plutot un enregistrement A/AAAA ou un enregistrement ALIAS/ANAME specifique au fournisseur a l'apex. -
Aucun autre enregistrement a cote d'un CNAME : si un nom a un enregistrement CNAME, il ne peut pas avoir egalement d'enregistrement A, AAAA, MX, TXT ou de tout autre type. C'est une source frequente d'erreurs de configuration DNS.
-
Chaines de CNAME : bien que techniquement valides, les chainages de plusieurs enregistrements CNAME (A -> CNAME -> CNAME -> A) ajoutent de la latence et sont generalement deconseilles. Le generateur avertit lorsque les cibles sont elles-memes susceptibles d'etre des enregistrements CNAME.
Cibles relatives vs pleinement qualifiees
- Cible relative (
www) : se developpe en utilisant l'origine de la zone. Dans une zone pourexample.com, la ciblewwwdevientwww.example.com. - Cible pleinement qualifiee (
cdn.provider.net.) : utilisee telle quelle. Le point final est critique -- sans lui,cdn.provider.netserait traite comme relatif et se developperait encdn.provider.net.example.com.
Les cibles externes (pointant vers d'autres domaines) doivent toujours utiliser des noms pleinement qualifies avec un point final.
Les enregistrements CNAME en pratique
Le point final sur les cibles CNAME externes est la source la plus courante de pannes DNS liees aux CNAME. Lorsque vous creez un CNAME qui pointe vers un hostname dans un autre domaine -- un CDN, un load balancer cloud, un service heberge -- cette cible doit se terminer par un point dans le fichier de zone. Sans le point, BIND ajoute l'origine de la zone, et votre cible cdn.provider.net devient silencieusement cdn.provider.net.example.com, qui n'existe pas. Le resultat est que votre CNAME semble fonctionner dans le fichier de zone mais se resout en NXDOMAIN, et l'erreur n'est pas evidente car le fichier de zone semble correct au premier coup d'oeil.
Lors de la planification de l'utilisation des CNAME, reflechissez soigneusement a quels noms doivent etre des alias et lesquels doivent avoir des enregistrements A/AAAA directs. Une bonne regle : utilisez des CNAME pour les noms dont la cible peut changer (comme les load balancers cloud ou les services tiers) et des enregistrements A/AAAA directs pour les noms qui representent votre propre infrastructure avec des IP stables. L'utilisation excessive de CNAME ajoute de la latence a la resolution DNS car chaque CNAME necessite une recherche supplementaire, et les chaines de CNAME aggravent cet effet.
Pour le probleme de l'apex de zone, la solution standard depend de votre fournisseur DNS. Si vous utilisez un fournisseur qui supporte ALIAS, ANAME ou l'aplatissement CNAME (comme Route 53, Cloudflare ou DNSimple), vous pouvez effectivement aliaser l'apex vers un autre hostname. Si vous utilisez BIND standard, vous devez utiliser un enregistrement A/AAAA a l'apex pointant directement vers l'adresse IP. Cela signifie que les changements d'IP cible necessitent de mettre a jour l'enregistrement apex directement plutot que de compter sur une indirection CNAME.
Questions frequentes
Pourquoi ne peut-on pas creer un CNAME a l'apex de la zone ?
La specification DNS (RFC 1034) stipule qu'un enregistrement CNAME ne peut pas coexister avec d'autres types d'enregistrements au meme nom. Puisque l'apex de la zone doit avoir des enregistrements SOA et NS, un CNAME a cet endroit violerait cette regle. Certains fournisseurs DNS proposent des alternatives proprietaires comme ALIAS (DNSimple, Route 53), ANAME (PowerDNS) ou l'aplatissement CNAME (Cloudflare) pour obtenir une fonctionnalite similaire a l'apex.
Que se passe-t-il si on oublie le point final sur une cible externe ?
Sans le point final, BIND traite la cible comme relative a l'origine de la zone. Une cible cdn.provider.net dans une zone pour example.com se developperait en cdn.provider.net.example.com, qui n'existe presque certainement pas. Utilisez toujours un point final pour les cibles FQDN externes.
Un CNAME peut-il pointer vers un autre CNAME ?
Techniquement oui, mais c'est deconseille. Les chaines de CNAME ajoutent de la latence a la resolution DNS car chaque maillon necessite une recherche separee. La plupart des administrateurs DNS preferent faire pointer les enregistrements CNAME directement vers le nom d'hote canonique final qui possede un enregistrement A ou AAAA.
Quelle est la difference entre un CNAME et un enregistrement A ?
Un enregistrement A associe directement un nom a une adresse IPv4. Un CNAME associe un nom a un autre nom d'hote, qui doit ensuite etre resolu pour obtenir l'adresse IP finale. Les CNAME sont utiles lorsque l'adresse IP cible peut changer (comme avec les load balancers cloud), car la mise a jour de l'enregistrement A du nom canonique met automatiquement a jour tous les alias qui le pointent.
Peut-on avoir un CNAME et un enregistrement MX pour le meme nom ?
Non. La specification DNS interdit tout autre type d'enregistrement de coexister avec un CNAME au meme nom. Si vous avez besoin d'enregistrements MX pour mail.example.com, ce nom doit utiliser un enregistrement A/AAAA, pas un CNAME. Cette restriction est l'une des sources les plus courantes de mauvaise configuration DNS.
Quel TTL utiliser pour les enregistrements CNAME ?
Les TTL des CNAME controlent la duree de mise en cache de la correspondance d'alias, pas l'adresse finale. Utilisez des TTL plus courts (300-900 secondes) pour les CNAME qui pourraient devoir etre reorientes rapidement, comme pendant les migrations. Pour les alias stables qui changent rarement, 3600-86400 secondes est approprie. Gardez a l'esprit que la duree effective de mise en cache est egalement limitee par le TTL de l'enregistrement A/AAAA de la cible.
Outils associes
- BIND Zone A/AAAA Generator - Generer des enregistrements A et AAAA pour zones BIND a partir d'un CSV
- Zone File Linter - Verifier les fichiers de zone pour les erreurs de syntaxe et les doublons
- Hostname Validator - Valider les noms d'hote selon les normes RFC 1123
- FQDN Validator - Valider les noms de domaine pleinement qualifies
- DNS Record Set Deduper - Trouver et supprimer les enregistrements DNS en doublon