Módulo 3 · 3.2
CNAME y el dominio raíz (apex)
Módulo 3: Registros para su sitio web · Tiempo de lectura: 8 minutos
Objetivo de aprendizaje: Después de esta lección podrá crear correctamente un registro CNAME y explicar por qué no puede usarse en el dominio raíz (apex).
Conceptos clave: CNAME, alias, nombre de destino, la regla del CNAME (ningún otro registro junto a él), apex (dominio raíz), ALIAS/ANAME/CNAME flattening
Un nombre que apunta a otro nombre
Un registro A dice: "este nombre vive en esta dirección". Un registro CNAME (de canonical name) dice otra cosa: "este nombre es en realidad otro nombre, pregúntele a él". Con esto crea un alias.
shop.example.com. 3600 IN CNAME shops.platform.example.Si un navegador pregunta por la dirección de shop.example.com, el DNS responde: "eso es shops.platform.example". El resolver busca entonces el registro A o AAAA de ese nombre y devuelve esa dirección. Para el visitante no se nota nada: la barra de direcciones sigue mostrando shop.example.com.
¿Por qué querría hacer esto? Porque así la dirección IP se convierte en el problema de la otra parte. Una plataforma de tienda online, un servicio de boletines o un proveedor en la nube puede trasladar sus servidores y cambiar las direcciones sin que usted tenga que modificar nada. Por eso muchos servicios piden un CNAME en lugar de un registro A: "haga que www apunte a shops.platform.example".
El punto al final
En la lección 2.2 vio que un nombre sin punto al final se interpreta como relativo: el DNS añade su propio dominio al final. En un CNAME esto suele salir mal con mucha frecuencia.
| Lo que escribe en el valor | Lo que el DNS hace con ello |
|---|---|
shops.platform.example. | shops.platform.example (correcto) |
shops.platform.example | shops.platform.example.example.com (no existe) |
Muchos paneles añaden hoy en día el punto automáticamente o le avisan. Otros no. Compruébelo después de guardar en la lista: si ve su propio dominio detrás del valor, es que faltaba el punto.
La misma regla se aplica al servidor de correo en un registro MX y a los registros NS. En una dirección IP de un registro A no se pone punto.
La regla del CNAME: nada más al lado
Un CNAME tiene una regla estricta del estándar DNS (RFC 1034, apartado 3.6.2, y RFC 2181): un nombre con un CNAME no puede tener ningún otro registro. Es lógico: el CNAME dice "en realidad soy ese otro nombre". Si además hay un registro A o un registro MX, no queda claro qué respuesta es válida.
De ahí se derivan dos cosas que se encuentra en la práctica:
- Si ya existe un registro A para
shop, elimínelo primero. De lo contrario, un panel rechazará el registro CNAME, o peor aún, lo aceptará y el DNS empezará a comportarse de forma extraña. - No es posible un CNAME en el dominio raíz.
¿Por qué no en el dominio raíz?
El dominio raíz, example.com sin nada delante, se llama en terminología técnica el apex o la cima de la zona. En ese nombre siempre hay registros que deben existir:
- el registro SOA (la cabecera técnica de la zona),
- los registros NS (qué servidores de nombres gestionan la zona),
- normalmente también registros MX (correo) y registros TXT (SPF, verificación).
Como un CNAME no tolera ningún otro registro junto a él, y el apex siempre tiene SOA y NS, no puede haber un CNAME en el apex. No es una limitación de su panel, sino del propio DNS.
Si un servicio le pide que conecte "su dominio principal", hay tres soluciones:
- Un registro A (y eventualmente AAAA) con la dirección IP del servicio. La mayoría de las plataformas de tienda online facilitan para ello una dirección fija. Esto funciona en todas partes.
- Un registro ALIAS, ANAME o de "CNAME flattening". Algunos proveedores de DNS ofrecen un tipo de registro propio que se comporta como un CNAME, pero que el servidor de nombres convierte él mismo en un registro A antes de que la respuesta salga. No es un tipo de registro oficial: solo funciona con proveedores que lo admitan, y se llama de forma diferente en cada uno.
- Redirección. Haga que el dominio raíz apunte, mediante un registro A, a su propio servidor web, y haga que este redirija a los visitantes hacia
www.example.com, que sí tiene un CNAME hacia el servicio. Cómo funciona la redirección lo verá en la lección 3.4.
Dónde más está prohibido un CNAME
- Un registro MX no puede apuntar a un CNAME (RFC 2181, apartado 10.3). El servidor de correo indicado en un MX debe ser un nombre con su propio registro A o AAAA. Algunos servidores de correo se las arreglan de todos modos, pero no puede dar esto por seguro.
- No ponga un CNAME en un nombre que también tenga configurado como subdominio en su panel de hosting. Un subdominio en el panel ya recibe sus propios registros que apuntan a su hosting. Si quiere que el nombre apunte a otro servicio, elimine el subdominio y cree únicamente el registro CNAME.
- Las cadenas son posibles, pero limítelas. Un CNAME puede apuntar a un nombre que a su vez sea otro CNAME. Cada paso supone una consulta adicional. Las grandes plataformas lo hacen a menudo (verá entonces dos o tres CNAME seguidos), pero no cree usted mismo cadenas largas.
En la práctica: así se ve en un panel
Como ejemplo usamos la pantalla de DNS de Mi WebOké. En otros paneles (DirectAdmin, cPanel, Plesk, Cloudflare, la mayoría de registradores) los botones se llaman de otra forma, pero rellena los mismos tres datos: tipo, nombre y nombre de destino.
- Abra la pantalla de DNS de su dominio y haga clic en Añadir Registro.
- Elija el tipo CNAME.
- En Nombre introduzca solo
shop, sin su dominio. - En Apunta a introduzca el nombre de destino, con un punto al final:
shops.platform.example. - Guarde y compruebe en la lista que no aparezca su propio dominio detrás del valor.
El panel del ejemplo avisa cuando falta el punto. No todos los paneles lo hacen.
Resumen
- Un CNAME convierte un nombre en un alias de otro nombre; la dirección IP la gestiona entonces la otra parte.
- Ponga un punto al final del nombre de destino, de lo contrario el DNS añadirá su propio dominio detrás.
- Un nombre con un CNAME no puede tener ningún otro registro.
- Por eso un CNAME no puede estar en el dominio raíz: ahí siempre hay SOA y NS. Use ahí un registro A, un registro tipo ALIAS de su proveedor de DNS, o una redirección.
- Un registro MX no puede apuntar a un CNAME.
Cuestionario
Ejercicio
Ejercicio Z3.2: Seguir un CNAME. ¿A qué nombre apunta el registro CNAME de en.wikipedia.org? Introduzca el nombre de destino.
Ejercicio O3.2: Configurar usted mismo en su zona de práctica. Cree en su zona de práctica un registro CNAME con el nombre winkel que apunte a shops.shop-demo.dnspractice.eu. (con el punto). Asegúrese de que no haya ningún otro registro para winkel. En la zona de práctica se usa un servicio ficticio; en su dominio real introducirá el nombre de destino que le indique el servicio real. Después haga clic en Comprobar.
Ejercicio O3.2
Realizará este ejercicio en su propia zona de práctica: una zona DNS real en los servidores de nombres de WebOké, solo para usted. Regístrese con su dirección de correo electrónico. Recibirá un enlace de acceso por correo y volverá después a esta lección. Solo usamos su dirección para el curso.
Para saber más
Estos artículos describen los pasos en los paneles de WebOké; en otros paneles funcionan de forma parecida.
