¿Qué es un nombre canónico?
Un nombre canónico es un término utilizado en las redes de computadoras para identificar el nombre real de una computadora dentro del sistema de nombres de Internet. Se usa con mayor frecuencia en referencia a un registro de recursos en el sistema de nombres de dominio (DNS), que es responsable de traducir direcciones oscuras de protocolo de Internet (IP) en nombres más reconocibles. En este caso, el registro de recursos en el DNS se llama CNAME y permite que otro nombre, o alias, apunte al nombre real de la computadora.
Cuando una computadora busca un sitio web, por ejemplo, comprueba el nombre escrito en el navegador web con servidores especiales que alojan los registros DNS. Si el nombre que se busca en los registros DNS se especifica en un registro CNAME, recibe el nombre canónico y luego realiza una segunda búsqueda contra el nombre canónico para resolver la dirección IP de la computadora host. Un ejemplo bastante común es cuando una sola computadora aloja múltiples servicios, como un sitio web y un servicio de protocolo de transferencia de archivos (FTP) para transferir datos.
En un navegador web, un usuario puede escribir www.example.com. Durante la búsqueda de DNS, encuentra el nombre canónico en un registro CNAME que apunta a un servidor llamado foo.example.com. Otro usuario puede estar usando un cliente FTP y escribiendo la dirección del servidor FTP en ftp.example.com. La búsqueda de DNS encuentra otra entrada CNAME que también apunta a foo.example.com, exactamente la misma máquina host que se está utilizando para el sitio web. En este caso, sin embargo, se dieron dos nombres diferentes al DNS, lo que condujo al nombre canónico del servidor.
En cualquiera de los casos anteriores, el DNS realiza una segunda búsqueda del nombre canónico para resolver su dirección IP en la red. La dirección IP se envía de vuelta a la computadora haciendo la solicitud web o FTP para que los paquetes de datos puedan comenzar a fluir. Por supuesto, esto abre varias posibilidades para que los administradores de red usen los registros CNAME de DNS de otras maneras. Otra técnica común utilizada por los servicios de alojamiento de sitios web permite que una sola computadora host ejecute varios servidores web, cada uno con un nombre diferente.
Sin embargo, debido a la delicada naturaleza del DNS, existen varios peligros al implementar nombres canónicos con registros CNAME, por lo que existen restricciones para su uso. Lo más peligroso es la posibilidad de crear un bucle infinito durante la búsqueda de un nombre, por lo que ningún registro CNAME debe apuntar a otro registro CNAME. Si, por ejemplo, se usan dos registros CNAME, donde www.example.com apunta al nombre canónico foo.example.com y luego foo.example.com apunta nuevamente a www.example.com, la búsqueda verificará sin cesar un nombre contra el otro.