Enregistrement de nom canonique
Un enregistrement de nom canonique (en abrégé « enregistrement CNAME ») est un type d'enregistrement ressource dans le SystÚme des noms de Domaine (DNS) qui permet de spécifier qu'un nom de domaine est un alias pour un autre domaine.
Cela peut s'avérer pratique lors de l'exécution de plusieurs services (comme un serveur FTP et un serveur web ; chacun en cours d'exécution sur des ports différents) à partir d'une seule adresse IP. On peut, par exemple, pointer ftp.example.com et www.example.com à l'entrée DNS example.com, qui a un enregistrement A pointant vers une adresse IP. Ensuite, si l'adresse IP change, il n'y a qu'un changement à faire dans le réseau.
Les enregistrements CNAME doivent toujours pointer vers un autre nom de domaine, jamais directement Ă une adresse IP.
DĂ©tails
Les enregistrements CNAME sont spécifiés dans [rfc:1034 la RFC 1034[1]] et précisés dans l'article 10 de [rfc:2181 la RFC 2181[2]].
Ils sont traitĂ©s spĂ©cialement dans le DNS, et ont plusieurs restrictions sur leur utilisation. Lorsqu'un rĂ©solveur DNS en rencontre alors qu'il est Ă la recherche d'un enregistrement classique, il redĂ©marre la requĂȘte en utilisant le nom canonique au lieu de son nom d'origine. Si le rĂ©solveur est lancĂ© dans le but de regarder les enregistrements CNAME, le nom canonique (Ă droite) est renvoyĂ©, plutĂŽt que de redĂ©marrer la requĂȘte. Le nom canonique qu'un enregistrement CNAME pointe peut ĂȘtre n'importe oĂč dans le DNS, qu'il soit sur le serveur local ou sur un serveur distant dans une autre zone DNS.
Par exemple, avec la zone DNS suivante, lors d'une recherche pour bar.example.com, le solveur voit un enregistrement CNAME. Il redémarrera la vérification avec foo.example.com et retournera 192.0.2.23.
NOM TYPE VALEUR -------------------------------------------------- bar.example.com. CNAME foo.example.com. foo.example.com. A 192.0.2.23
Restrictions
- Les enregistrements CNAME doivent toujours ĂȘtre orientĂ©s vers un autre nom de domaine, jamais vers une adresse IP.
- Un alias défini dans un enregistrement CNAME ne doit pas avoir d'autres types (MX, A, etc.). (RFC 1034[1] section 3.6.2, RFC 1912[3] section 2.4) Une exception a lieu quand le DNSSEC est utilisé, dans ce cas, il peut y avoir des records liés à DNSSEC com RRSIG, NSEC, etc. (RFC 2181[2] section 10.1)
- Les enregistrements CNAME pointant vers d'autres enregistrements CNAME doivent ĂȘtre Ă©vitĂ©s en raison de leur manque d'efficacitĂ©, mais ne sont pas une erreur[4]. Il faut faire attention Ă ne pas crĂ©er de boucles infinies comme :
foo.example.com. CNAME bar.example.com. bar.example.com. CNAME foo.example.com.
- MX et les enregistrements NS ne doivent jamais pointer vers un alias CNAME (RFC 2181[2] section 10.3). Ainsi, par exemple, une zone ne doit pas contenir des éléments tels que :
example.com. MX 0 foo.example.com. foo.example.com. CNAME host.example.com. host.example.com. A 192.0.2.1
DNAME record
Un DNAME record ou « DĂ©lĂ©gation d'enregistrement de Nom » est dĂ©fini par [rfc:6672 la RFC 6672[7]] (l'original RFC 2672[8] est aujourd'hui obsolĂšte). Un DNAME record crĂ©e un alias pour l'ensemble des sous-arbre du nom de domaine. En revanche, l'enregistrement CNAME crĂ©e un alias pour un nom unique et pas de ses sous-domaines. Le DNS synthĂ©tise un enregistrement CNAME pour appliquer le DNAME de la demande de nomâ Cname pour chaque nĆud sur un sous-arbre Ă le mĂȘme effet qu'un DNAME pour l'ensemble du sous-arbre.
Par exemple, s'il y a une zone DNS comme suit:
foo.example.com. DNAME bar.example.com. bar.example.com. A 192.0.2.23 xyzzy.bar.example.com. A 192.0.2.24 *.bar.example.com. A 192.0.2.25
Une recherche d'un record A foo.example.com ne retournera rien parce qu'un DNAME n'est pas un CNAME et il n'y a pas de record A directement lié à foo.
Cependant, une recherche pour xyzzy.foo.example.com sera mappée et retournera le A record pour xyzzy.bar.example.com, qui est 192.0.2.24; si le NOM d'enregistrement avait été un enregistrement CNAME, cette demande aurait retourné le nom est introuvable.
Enfin, une demande de foobar.foo.example.com serait mappée et retournerait 192.0.2.25.
Voir aussi
- Liste des types d'enregistrements DNS
- RFC 2219[9] â Utilisation de l'Alias DNS pour les Services de RĂ©seau
Références
- (en) Request for comments no 1034.
- (en) Request for comments no 2181.
- (en) Request for comments no 1912.
- P. Mockapetris, « RFC1034 - Domain Names, Concepts and Facilities », ISI, (consulté le )
- R. Braden, « RFC1123 - MAIL - SMTP & RFC-822 », (consulté le )
- D.J. Bernstein, « CNAME records in mail » (consulté le )
- (en) Request for comments no 6672.
- (en) Request for comments no 2672.
- (en) Request for comments no 2219.
Lien externe
- RFC 1912 is wrong Meng Weng Wong's analyse des restrictions CNAME (Ă partir de web.archive.org).