Un registro de nombre canónico ( CNAME ) es un tipo de registro de recurso en el Sistema de nombres de dominio (DNS) que asigna un nombre de dominio (un alias) a otro (el nombre canónico ). [ 1 ]
Esto puede resultar conveniente al ejecutar varios servicios (como un servidor FTP y un servidor web , cada uno en puertos diferentes) desde una única dirección IP . Por ejemplo, se pueden usar registros CNAME para que ftp.example.com y www.example.com apunten a la entrada DNS de example.com , que a su vez tiene un registro A que apunta a la dirección IP. De esta forma, si la dirección IP cambia, solo hay que registrar el cambio en un único lugar de la red: en el registro DNS A de example.com .
Los registros CNAME siempre deben apuntar a otro nombre de dominio, nunca directamente a una dirección IP.
Detalles
Los registros DNS CNAME se especifican en el RFC 1034 y se aclaran en la Sección 10 del RFC 2181 .
Los registros CNAME se gestionan de forma especial en el sistema de nombres de dominio y tienen varias restricciones de uso. Cuando un resolvedor DNS encuentra un registro CNAME al buscar un registro de recurso normal, reinicia la consulta utilizando el nombre canónico en lugar del nombre original. Sin embargo, si se le indica específicamente al resolvedor que busque registros CNAME, se devuelve el nombre canónico (el lado derecho) en lugar de reiniciar la consulta. El nombre canónico al que apunta un registro CNAME puede estar en cualquier lugar del DNS, ya sea local o en un servidor remoto en una zona DNS diferente .
Por ejemplo, considere una zona DNS como la siguiente:
NOMBRE TIPO VALOR -------------------------------------------------- bar.example.com. CNAME foo.example.com. foo.example.com. A 192.0.2.23Cuando se realiza una búsqueda de registro A para bar.example.com , el resolvedor verá un registro CNAME y reiniciará la búsqueda para foo.example.com y luego devolverá 192.0.2.23.
Posible confusión
Con un registro CNAME, se puede apuntar un nombre como " bar.example.com " a " foo.example.com ". Por ello, en conversaciones informales, el lado izquierdo de una entrada DNS, " bar.example.com", puede identificarse erróneamente como "el CNAME". Sin embargo, esto es incorrecto. El nombre canónico (verdadero) de " bar.example.com " es " foo.example.com ". Dado que CNAME significa Nombre Canónico, el lado derecho es el "CNAME" propiamente dicho , en el mismo lado que la dirección "A".
Esta confusión se menciona específicamente en la RFC 2181, "Aclaraciones a la especificación DNS". La etiqueta de la izquierda es un alias para la parte derecha (la porción RDATA), que es (o debería ser) un nombre canónico. [ 2 ] En otras palabras, considérese el siguiente registro CNAME:
bar.example.com. CNAME foo.example.com.Esto puede interpretarse como que " bar.example.com " es un alias del nombre canónico (CNAME) " foo.example.com ". Un cliente solicitará " bar.example.com " y la respuesta será " foo.example.com ".
Restricciones
- Los registros CNAME siempre deben apuntar a otro nombre de dominio, nunca a una dirección IP.
- Si un nodo tiene un registro CNAME, no debe contener ningún otro dato; esto garantiza que los datos de un nombre canónico y sus alias no puedan ser diferentes. (RFC 1034, sección 3.6.2; RFC 1912, sección 2.4). La excepción se da cuando se utiliza DNSSEC , en cuyo caso pueden existir registros relacionados con DNSSEC, como RRSIG, NSEC, etc. (RFC 2181, sección 10.1).
- Los registros CNAME que apuntan a otros registros CNAME deben evitarse debido a su falta de eficiencia, pero no constituyen un error. [ 3 ] Es posible, entonces, crear bucles irresolubles con registros CNAME, como en:
foo.example.com. CNAME bar.example.com. bar.example.com. CNAME foo.example.com.
- Un registro CNAME no puede estar presente en el ápice de la zona. La sección 4.2.1 de la RFC 1034 [ 4 ] exige un registro SOA en el ápice de la zona, y la sección 3.6.2 de la RFC 1034 [ 5 ] exige que no haya otros registros si existe un registro CNAME. Por lo tanto, un registro CNAME no puede aparecer en el ápice de la zona.
- Los registros CNAME que son gestionados por registros DNAME pueden provocar bucles recursivos en los resolvedores más antiguos.
- Los registros MX y NS nunca deben apuntar a un alias CNAME (RFC 2181, sección 10.3). Por lo tanto, por ejemplo, una zona no debe contener construcciones como:
example.com. MX 0 foo.example.com. foo.example.com. CNAME host.example.com. host.example.com. A 192.0.2.1
- Los dominios que se utilizan en los comandos SMTP MAIL y RCPT pueden no tener un registro CNAME. [ 6 ] En la práctica, esto puede funcionar, pero puede tener un comportamiento diferente con distintos servidores de correo y puede tener efectos no deseados. [ 7 ]
Registro DNAME
Un registro DNAME o registro de nombre de delegación se define en la RFC 6672 (la RFC 2672 original está obsoleta). El registro DNAME proporciona una redirección (alias) para un subárbol del árbol de nombres de dominio en el DNS. Es decir, todos los nombres que terminan con un sufijo específico se redirigen a otra parte del DNS. En cambio, el registro CNAME crea un alias para un solo nombre y no para sus subdominios. Al igual que con el registro CNAME, la consulta DNS continúa reintentando la búsqueda con el nuevo nombre. El servidor de nombres sintetiza un registro CNAME para aplicar el registro DNAME al nombre solicitado; los CNAME para cada nodo de un subárbol tienen el mismo efecto que un DNAME para todo el subárbol.
Por ejemplo, si existe una zona DNS como la siguiente:
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.25Una búsqueda de registro A para foo.example.com no devolverá datos porque un DNAME no es un CNAME y no hay ningún registro A directamente en foo .
Sin embargo, una búsqueda de xyzzy. foo .example.com se asignará a DNAME y devolverá el registro A para xyzzy. bar .example.com , que es 192.0.2.24; si el registro DNAME hubiera sido un registro CNAME, esta solicitud habría devuelto nombre no encontrado.
Por último, una solicitud para foobar.foo.example.com se mapearía mediante DNAME y devolvería 192.0.2.25.
Registro ANAME
Varias plataformas DNS gestionadas implementan un tipo de registro ALIAS [ 8 ] o ANAME [ 9 ] no estándar . Estos pseudoregistros son gestionados por administradores DNS como los registros CNAME, pero son publicados y resueltos por (algunos) clientes DNS como los registros A. Los registros ANAME suelen estar configurados para apuntar a otro dominio, pero cuando un cliente los consulta, responden con una dirección IP. Si bien los tipos de registro ANAME se presentaron para su estandarización, [ 10 ] existen otras implementaciones no conformes, por lo que pueden hacer lo que el propietario de la plataforma DNS decida, incluyendo existir en la raíz de una zona y existir para dominios que reciben correo.
La principal ventaja de los registros ANAME sobre los registros CNAME es que se pueden usar en un ápice de zona , mientras que un resolvedor que sigue estándares no tratará los nombres de dominio con registros CNAME como un ápice de zona. [ 11 ] Además, mientras que un cliente DNS requiere al menos dos consultas para resolver un CNAME a un registro A a una dirección IP, un ANAME transferirá la segunda y las subsiguientes consultas al servidor. Si el servidor DNS puede resolver el registro A y almacenar en caché la dirección IP solicitada de manera más eficiente y con menor latencia que sus clientes DNS, entonces el cliente DNS puede resolver la consulta más rápido.
El tipo de registro ANAME se presentó como un borrador de estándar al IETF. Sin embargo, el último borrador caducó en enero de 2020 [ 10 ] y ha sido reemplazado por una serie de propuestas, la más reciente de las cuales es la de los tipos de registro SVCB y HTTPS. [ 12 ]
Véase también
Referencias
- ↑ Mockapetris, P. (noviembre de 1987). "RFC 1035 - Nombres de dominio - implementación y especificación" . Grupo de trabajo de ingeniería de Internet . Recuperado el 16 de marzo de 2019 .
- ↑ "RFC 2181: Aclaraciones a la especificación DNS" . IETF . Julio de 1997. Consultado el 9 de marzo de 2011 .
- ↑ Mockapetris, P. (noviembre de 1987). "RFC 1034 - Nombres de dominio - conceptos y funcionalidades" . Grupo de trabajo de ingeniería de Internet . Consultado el 15 de julio de 2019 .
- ↑ Mockapetris, P. (noviembre de 1987). "RFC 1034 sección 4.2.1" . Recuperado el 15 de julio de 2019 .
- ↑ Mockapetris, P. (noviembre de 1987). "RFC 1034 sección 3.6.2" . Recuperado el 15 de julio de 2019 .
- ↑ Braden, R. (octubre de 1989). "RFC1123 - MAIL - SMTP y RFC-822" . Recuperado el 23 de julio de 2020 .
- ↑ Bernstein, DJ "Registros CNAME en el correo" . Consultado el 3 de junio de 2011 .
- ↑ "Registros ALIAS" . Consultado el 26 de julio de 2019 .
- ↑ "Registros ANAME" . Consultado el 24 de septiembre de 2022 .
- 1 2 "Alias DNS específicos de dirección (ANAME)" . 2019-07-08 . Recuperado el 2019-07-26 .
- ↑ Goldlust, Suzanne; Almond, Cathy. "CNAME en el ápice de una zona" . Base de conocimientos de código abierto de ISC . Consorcio de Sistemas de Internet . Consultado el 8 de abril de 2023 .
- ↑ Schwartz, B.; Bishop, M.; Nygren, E. (2023-03-11). "Enlace de servicio y especificación de parámetros a través del DNS (DNS SVCB y HTTPS RR)" . Recuperado el 2023-04-08 .
Enlaces externos
- RFC 2219 – Uso de alias DNS para servicios de red
- Tipos de registros DNS