El registro DNS CNAME funciona como un alias para los nombres de dominio que comparten una misma dirección IP.
Después de leer este artículo podrás:
Contenido relacionado
Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar el enlace del artículo
Un registro CNAME "de nombre canónico" apunta desde un dominio alias a un dominio "canónico". Un registro CNAME se utiliza en lugar de un registro A, cuando un dominio o subdominio es un alias de otro dominio. Todos los registros CNAME deben apuntar a un dominio, nunca a una dirección IP. Imagina una búsqueda del tesoro en la que cada pista apunta a otra pista y la pista final apunta al tesoro. Un dominio con un registro CNAME es como una pista que puede apuntar a otra pista (otro dominio con un registro CNAME) o al tesoro (un dominio con un registro A).
Por ejemplo, supongamos que blog.example.com tiene un registro CNAME con el valor "example.com" (sin el "blog"). Esto quiere decir que cuando un servidor DNS accede a los registros DNS para blog.example.com, en realidad desencadena otra búsqueda DNS a example.com, devolviendo la dirección IP de example.com a través de su registro A. En este caso, diríamos que example.com es el nombre canónico (o nombre verdadero) de blog.example.com.
Con frecuencia, cuando los sitios tienen subdominios como blog.example.com o shop.example.com, esos subdominios tendrán registros CNAME que apuntan a un dominio raíz (example.com). De este modo, si la dirección IP del host cambia, solo hay que actualizar el registro A del DNS del dominio raíz y todos los registros CNAME seguirán junto con los cambios que se realicen en la raíz.
Un malentendido habitual es pensar que un registro CNAME debe resolver siempre al mismo sitio web que el dominio al que apunta, pero no es el caso. El registro CNAME solo apunta al cliente a la misma dirección IP que el dominio raíz. Una vez que el cliente llega a esa dirección IP, el servidor web seguirá manejando la URL en este sentido. Así, por ejemplo, blog.example.com puede tener un CNAME que apunte a example.com, dirigiendo al cliente a la dirección IP de example.com. Pero cuando el cliente se conecte realmente a esa dirección IP, el servidor web mirará la URL, verá que es blog.example.com y entregará la página del blog en lugar de la página de inicio.
Ejemplo de un registro CNAME:
blog.example.com | tipo de registro: | valor: | TTL |
---|---|---|---|
@ | CNAME | es un alias de example.com | 32600 |
En este ejemplo, puedes ver que blog.example.com apunta a example.com y, si suponemos que se basa en nuestro registro A de ejemplo, sabemos que acabará por decidirse por la dirección IP 192.0.2.1.
Apuntar un registro CNAME a otro registro CNAME es ineficaz porque requiere múltiples búsquedas en el DNS antes de que se pueda cargar el dominio, lo cual ralentiza la experiencia del usuario, pero es posible. Por ejemplo, blog.example.com podría tener un registro CNAME que apuntara al registro CNAME de www.example.com, que a su vez apuntara al registro A de example.com.
CNAME para blog.example.com:
blog.example.com | tipo de registro: | valor: | TTL |
---|---|---|---|
@ | CNAME | es un alias de www.example.com | 32600 |
Que apunta a un CNAME para www.example.com:
www.example.com | tipo de registro: | valor: | TTL |
---|---|---|---|
@ | CNAME | es un alias de example.com | 32600 |
Esta configuración añade un paso extra al proceso de búsqueda de DNS y debe evitarse siempre que sea posible. En su lugar, los registros CNAME tanto de blog.example.com como de www.example.com deben apuntar directamente a example.com.
Ningún otro registro DNS puede tener el mismo nombre que un registro CNAME determinado. Lo que esto significa en la práctica es que otros tipos de registros DNS, como MX, TXT, A o SOA, no se pueden etiquetar con un alias para un dominio. Tampoco puede haber ningún otro registro CNAME con el mismo nombre.
Si hay un CNAME en "blog.example.com" apuntando a "example.com", no puede haber ningún otro tipo de registros en "blog.example.com" — todos tienen que estar en "example.com".
Supongamos que Sam escribe artículos con el seudónimo de "Mark". Sus documentos legales, como su certificado de nacimiento y su pasaporte, seguirán estando con su nombre real, Sam, aunque Mark y Sam sean la misma persona. Los registros DNS son similares: el alias de dominio solo puede apuntar al dominio real, y los "documentos legales" (los otros registros DNS ) tienen que estar bajo ese dominio real.
Hay una excepción, y es en el caso de la conversión de CNAME, cuando un CNAME actúa como un registro A/AAAA. De hecho, todos los registros CNAME redireccionados mediante proxy se comportan de esta manera. Sin embargo, no se permiten otros registros con el mismo nombre que un registro CNAME convertido. Más información sobre la conversión de CNAME.
Los registros NS y MX no pueden apuntar a un registro CNAME; tienen que apuntar a un registro A (para IPv4) o a un registro AAAA (para IPv6). Un registro MX es un registro de intercambio de correo que dirige el correo electrónico a un servidor de correo. Un registro NS es un registro de "servidor de nombres" e indica qué servidor DNS es autoritativo para ese dominio.
Como se ha indicado anteriormente, no se permite que los dominios, según las especificaciones de DNS, tengan otros registros DNS en un nombre que ya tenga un registro CNAME.
Por este motivo, una consulta de otro tipo de registro, como un registro TXT, que utilice el alias en lugar del verdadero nombre del dominio, devolverá un registro CNAME en lugar del registro solicitado. A continuación, el solicitante debe consultar el dominio al que apunta el CNAME para obtener el registro que se necesita.
Si Alice quiere ver los registros TXT del blog.example.com y envía una consulta para estos, obtendrá el registro CNAME en lugar del registro TXT. A continuación, debe enviar una consulta de DNS al destino del registro CNAME solicitando el registro TXT y obtendrá una respuesta si el destino tiene un registro TXT. Este también sería el caso para otros tipos de consultas de registro DNS.
Más información sobre los registros TXT.