Registre CNAME

De Viquipèdia
Dreceres ràpides: navegació, cerca

Un Registre CNAME o registre Canonical Name és un tipus de registre de recurs en el Sistema de Noms de Domini (DNS) que especifica que el nom de domini és un àlies d'un altre, canonical domain name. Açò ajuda quan s'executen diversos serveis (com un FTP i un servidor web; cadascun executant-se en ports diferents) des d'una única adreça IP. Cada servei pot aleshores tindre la seva pròpia entrada al DNS (com ftp.example.com. i www.example.com.). Els administradors de xarxa també usen CNAMEs quan executen diversos servidors HTTP al mateix port, amb diferents noms, a la mateixa màquina física.

Detalls[modifica | modifica el codi]

Els registres CNAME estan definits al RFC 1034. Els registres CNAME es gestionen de forma especial dins del DNS, i tenen unes quantes restriccions en el seu ús. Quan un DNS resolver troba un registre CNAME mentre en busca un de normal, tornarà a iniciar la petició fent servir en nom canònic en comptes de l'original. (Si al resolver li demanen especialment que busqui registres CNAME, es retorna l'àlies CNAME, en comptes de reiniciar la petició). El nom canònic on apunta un registre CNAME pot estar en qualsevol lloc del sistema de noms de domini: tant pot ser local com en un servidor remot d'una zona DNS diferent.

Per exemple, if there is a DNS zone as follows:

foo.example.com. CNAME bar.example.com.
bar.example.com. A 192.0.2.23

When an A record lookup for foo.example.com is done, the resolver will see a CNAME record and restart the checking at bar.example.com and will then return 192.0.2.23.

Què és el "CNAME"?[modifica | modifica el codi]

RFC 2181, "Clarifications to the DNS Specification", includes a warning on the use of the word "CNAME". "The CNAME" or "a CNAME" is often used to refer to the label, or left-hand part, of a CNAME record. However, as "CNAME" is an abbreviation of "canonical name", this usage is inaccurate; the label is an alias for the right-hand side (the RDATA portion), which is (or should be) a canonical name.[1] In other words, a CNAME record like this:

foo.example.com. CNAME bar.example.com.

may be read as:

foo.example.com is an alias for the canonical name (CNAME) bar.example.com.

The canonical name itself must be defined by a record other than a CNAME or DNAME record.

Restriccions[modifica | modifica el codi]

  • An alias defined in a CNAME record must have no other resource records of other types (MX, A, etc.). (RFC 1034 section 3.6.2, RFC 1912 section 2.4) The exception is when DNSSEC is being used, in which case there can be DNSSEC related records such as RRSIG, NSEC, etc. (RFC 2181 section 10.1)
  • Els registres CNAME que apunten a altres registres CNAME deurien evitar-se degut a la pèrdua d'eficiència, però no és un error.[2] Aleshores, és possible crear bucles irresolubles amb registres CNAME, com en:
foo.example.com. CNAME bar.example.com.
bar.example.com. CNAME foo.example.com.
  • Altres tipus de registre DNS, com NS, MX, PTR, SRV, etc. que apunten a altres noms mai deurien apuntar a un alias CNAME.[2][3] Així, per exemple, una zona no deuria contindre construccions com:
example.com. MX 0 foo.example.com.
foo.example.com. CNAME host.example.com.
host.example.com. A 192.0.2.1
  • Els dominis que s'usen per al correu electrònic poden no tindre cap registre CNAME.[4] En la pràctica açò pot funcionar, però pot tindre diferents comportaments amb diferents servidors de correu, i així tindre efectes no desitjats.[5]

El registre DNAME[modifica | modifica el codi]

Un registre DNAME o registre Delegation Name es defineix pel RFC 2672. Un registre DNAME crea un alias per un o més subdominis d'un domini. En canvi, el registre CNAME crea un alias només d'un únic nom (i no dels seus subdominis). Així com el registre CNAME, el DNS lookup continuarà tornant a fer un lookup amb el nou nom. If a DNS resolver sends a query without EDNS, or with EDNS version 0, then a name server synthesizes a CNAME record to simulate the semantics of the DNAME record.

Per exemple, si hi tenim una zona DNS com segueix:

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

An A record lookup for foo.example.com will fail because a DNAME is not a CNAME.

A més, un lookup per a xyzzy.foo.example.com seria mapejada pel DNAME i tornaria el registre A per a xyzzy.bar.example.com que és 192.0.2.24; si el registre DNAME hagués estat un registre CNAME, esta sol·licitud hauria fallat.

Finalment, una sol·licitud per a baz.foo.example.com seria mapejada pel DNAME i tornaria 192.0.2.25.

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]

Referències i Notes[modifica | modifica el codi]

  1. «RFC 2181: Clarifications to the DNS Specification». IETF, July 1997. [Consulta: 2011-03-09].
  2. 2,0 2,1 Mockapetris, P. «RFC1034 - Domain Names, Concepts and Facilities» (en en-us). ISI, November 1987. [Consulta: 16 April 2011].
  3. Barr, D. «Common DNS Operational and Configuration Errors» (en en-us). RFC1912. The Pennsylvania State University, February 1996. [Consulta: 16 April 2011].
  4. Braden, R. «RFC1123 - MAIL - SMTP & RFC-822» (en en-us), October 1989. [Consulta: 3 June 2011].
  5. Bernstein, D.J. «CNAME records in mail» (en en-us). [Consulta: 3 June 2011].