Generador de Zona BIND CNAME
Genera registros CNAME de zona BIND desde CSV
Alias Mappings
Format
Each line: alias, target
Target should be a FQDN (ending with a dot)
BIND CNAME Records
Enter alias mappings to generate CNAME records
El Generador de registros CNAME para zonas BIND crea entradas de archivo de zona DNS correctamente formateadas para registros CNAME (Canonical Name) a partir de entrada CSV o tabular. Proporciona pares de alias-destino como www,webserver.example.com. y blog,www, y la herramienta produce entradas de archivo de zona compatibles con BIND con validación para errores comunes de CNAME como ubicación en el apex y tipos de registro en conflicto.
Conceptos básicos de los registros DNS CNAME
Un registro CNAME es un alias de DNS. Le dice a los resolvers que un nombre de host es realmente solo otro nombre para un nombre de host diferente. Cuando un resolver busca www.example.com y encuentra un CNAME apuntando a webserver.example.com, transparentemente reinicia la búsqueda usando el nombre de destino y devuelve la dirección IP final al cliente. El cliente nunca sabe que un CNAME estuvo involucrado. Esta indirección es lo que hace a los CNAMEs tan útiles: puedes crear un nombre amigable como www que apunte a cualquiera que sea el nombre real del servidor, y si te mudas a un servidor diferente, solo actualizas el destino del CNAME en lugar de actualizar cada referencia al nombre anterior.
Los CNAMEs son particularmente valiosos para servicios en la nube donde el nombre de host real es algo difícil de manejar como d1234abcdef.cloudfront.net o my-app-lb-1234567890.us-east-1.elb.amazonaws.com. Creas un CNAME desde cdn.example.com a la distribución de CloudFront o desde app.example.com al endpoint del ELB, dándoles a tus usuarios un nombre limpio mientras dejas que el proveedor de la nube administre la infraestructura subyacente. Si el proveedor cambia su nombre de host, actualizas un registro CNAME en lugar de reconfigurar cada cliente.
Sin embargo, los CNAMEs vienen con restricciones importantes que atrapan incluso a administradores experimentados. Un CNAME no puede coexistir con ningún otro tipo de registro en el mismo nombre, lo que significa que no puedes tener un CNAME y un registro MX para mail.example.com. Más críticamente, no puedes colocar un CNAME en el apex de la zona (example.com en sí) porque el apex debe tener registros SOA y NS. Este generador valida tu entrada contra estas reglas y te advierte antes de que causen problemas en producción.
Cómo generar registros CNAME para BIND
- Ingresa tus datos como CSV con columnas para el nombre del alias y el nombre de host de destino (opcionalmente incluye TTL)
- La herramienta valida que los nombres de alias sigan las reglas RFC 1123 y que los destinos sean nombres de host válidos
- Verifica violaciones comunes de CNAME como ubicación en el apex y tipos de registro en conflicto
- Copia las entradas de archivo de zona generadas para uso directo en tu configuración de zona BIND
Ejemplos de entrada CSV y salida de archivo de zona
Entrada CSV
www,webserver.example.com.
blog,www
docs,docs-app.cdn.provider.net.
staging,staging-lb.us-east-1.elb.amazonaws.com.
ftp,files
Salida de archivo de zona generada
www IN CNAME webserver.example.com.
blog IN CNAME www
docs IN CNAME docs-app.cdn.provider.net.
staging IN CNAME staging-lb.us-east-1.elb.amazonaws.com.
ftp IN CNAME files
Ejemplos de registros CNAME
| Alias (nombre) | Destino (canónico) | Caso de uso |
|---|---|---|
www | webserver.example.com. | Apuntar www al nombre canónico del servidor |
blog | example.blog-platform.com. | Alias a servicio de blog alojado |
cdn | d1234.cloudfront.net. | Apuntar a distribución de CloudFront |
mail | mail.google.com. (inválido) | No se puede hacer CNAME de un nombre que tiene registros MX |
shop | shops.myshopify.com. | Alias a plataforma de comercio electrónico |
status | example.statuspage.io. | Apuntar a servicio de página de estado |
Cuándo usar esta herramienta
- Integración con CDN -- Crear alias CNAME que apunten a nombres de host de proveedores CDN como CloudFront, Cloudflare o Akamai
- Endpoints de servicios en la nube -- Mapear nombres amigables a nombres DNS de load balancers de AWS ELB, Azure o GCP
- Migraciones de servicios -- Mantener nombres de host antiguos como alias CNAME hacia nuevos nombres canónicos durante transiciones
- Despliegues multi-entorno -- Crear alias específicos por entorno como
staging.example.comapuntando a nombres de host de infraestructura - Dominios vanity -- Apuntar subdominios de marketing o campañas a endpoints de plataformas alojadas
- Organización de DNS interno -- Crear alias legibles para nombres de host de infraestructura complejos
Cómo funciona la resolución de CNAME en DNS
Un registro CNAME le dice a los resolvers de DNS que un nombre es un alias para otro (el nombre canónico). Cuando un resolver encuentra un CNAME, reinicia la búsqueda usando el nombre de destino.
Cadena de resolución
Cuando un cliente consulta www.example.com y encuentra un CNAME:
Query: www.example.com A
-> CNAME: webserver.example.com
-> A: 203.0.113.10
Result: www.example.com -> 203.0.113.10
El resolver sigue la cadena CNAME de forma transparente. Los clientes ven el registro A o AAAA final sin saber sobre el CNAME intermedio.
Restricciones de CNAME
Los registros CNAME tienen restricciones importantes que el generador aplica:
-
Sin CNAME en el apex de la zona: Un registro CNAME no puede existir en el apex de la zona (por ejemplo,
example.comen sí). El apex debe tener registros SOA y NS, y el CNAME no puede coexistir con ningún otro tipo de registro para el mismo nombre. Usa un registro A/AAAA o un registro ALIAS/ANAME específico del proveedor en el apex. -
Sin otros registros junto al CNAME: Si un nombre tiene un registro CNAME, no puede tener también registros A, AAAA, MX, TXT ni ningún otro tipo de registro. Esta es una fuente común de errores de configuración DNS.
-
Cadenas de CNAME: Aunque técnicamente son válidas, encadenar múltiples registros CNAME (A -> CNAME -> CNAME -> A) agrega latencia y generalmente se desaconseja. El generador advierte sobre destinos que probablemente sean registros CNAME.
Destinos relativos vs. completamente calificados
- Destino relativo (
www): Se expande usando el origen de la zona. En una zona paraexample.com, el destinowwwse convierte enwww.example.com. - Destino completamente calificado (
cdn.provider.net.): Se usa tal cual. El punto final es crítico -- sin él,cdn.provider.netse trataría como relativo y se expandiría acdn.provider.net.example.com.
Los destinos externos (que apuntan a otros dominios) siempre deben usar nombres completamente calificados con puntos finales.
Registros CNAME en la práctica
El punto final en los destinos CNAME externos es la causa más común de cortes DNS relacionados con CNAME. Cuando creas un CNAME que apunta a un nombre de host en otro dominio -- un CDN, un load balancer en la nube, un servicio alojado -- ese destino debe terminar con un punto en el archivo de zona. Sin el punto, BIND agrega el origen de la zona, y tu destino cdn.provider.net se convierte silenciosamente en cdn.provider.net.example.com, que no existe. El resultado es que tu CNAME parece funcionar en el archivo de zona pero resuelve a NXDOMAIN, y el error no es obvio porque el archivo de zona se ve correcto a primera vista.
Al planificar el uso de CNAME, piensa cuidadosamente sobre qué nombres deben ser alias y cuáles deben tener registros A/AAAA directos. Una buena regla general: usa CNAMEs para nombres cuyo destino podría cambiar (como load balancers en la nube o servicios de terceros) y registros A/AAAA directos para nombres que representan tu propia infraestructura con IPs estables. El uso excesivo de CNAMEs agrega latencia de resolución DNS porque cada CNAME requiere una búsqueda adicional, y las cadenas de CNAME componen este efecto.
Para el problema del apex de zona, la solución estándar depende de tu proveedor DNS. Si usas un proveedor que soporta ALIAS, ANAME o aplanamiento de CNAME (como Route 53, Cloudflare o DNSimple), puedes efectivamente crear un alias del apex hacia otro nombre de host. Si usas BIND estándar, debes usar un registro A/AAAA en el apex apuntando directamente a la dirección IP. Esto significa que los cambios en la IP de destino requieren actualizar el registro del apex directamente en lugar de depender de una indirección CNAME.
Preguntas frecuentes
¿Por qué no puedo crear un CNAME en el apex de la zona?
La especificación DNS (RFC 1034) establece que un registro CNAME no puede coexistir con otros tipos de registro en el mismo nombre. Dado que el apex de la zona debe tener registros SOA y NS, un CNAME allí violaría esta regla. Algunos proveedores DNS ofrecen alternativas propietarias como ALIAS (DNSimple, Route 53), ANAME (PowerDNS) o aplanamiento de CNAME (Cloudflare) para lograr funcionalidad similar en el apex.
¿Qué pasa si olvido el punto final en un destino externo?
Sin el punto final, BIND trata el destino como relativo al origen de la zona. Un destino de cdn.provider.net en una zona para example.com se expandiría a cdn.provider.net.example.com, que casi con certeza no existe. Siempre usa un punto final para destinos FQDN externos.
¿Puede un CNAME apuntar a otro CNAME?
Técnicamente sí, pero se desaconseja. Las cadenas de CNAME agregan latencia de resolución DNS porque cada eslabón requiere una búsqueda separada. La mayoría de los administradores DNS prefieren apuntar los registros CNAME directamente al nombre de host canónico final que tiene un registro A o AAAA.
¿Cuál es la diferencia entre un CNAME y un registro A?
Un registro A mapea un nombre directamente a una dirección IPv4. Un CNAME mapea un nombre a otro nombre de host, que luego debe resolverse para obtener la dirección IP final. Los CNAMEs son útiles cuando la IP de destino puede cambiar (como con los load balancers en la nube), ya que actualizar el registro A del nombre canónico actualiza automáticamente todos los alias que apuntan a él.
¿Puedo tener un CNAME y un registro MX para el mismo nombre?
No. La especificación DNS prohíbe que cualquier otro tipo de registro coexista con un CNAME en el mismo nombre. Si necesitas registros MX para mail.example.com, ese nombre debe usar un registro A/AAAA, no un CNAME. Esta restricción es una de las fuentes más comunes de mala configuración DNS.
¿Qué TTL debo usar para registros CNAME?
Los TTLs de CNAME controlan cuánto tiempo se mantiene en cache el mapeo del alias, no la dirección final. Usa TTLs más cortos (300-900 segundos) para CNAMEs que podrían necesitar ser redirigidos rápidamente, como durante migraciones. Para alias estables que rara vez cambian, 3600-86400 segundos es apropiado. Ten en cuenta que el tiempo efectivo de cache también está limitado por el TTL del registro A/AAAA del destino.
Herramientas relacionadas
- BIND Zone A/AAAA Generator - Genera registros A y AAAA de zona BIND desde CSV
- Zone File Linter - Verifica archivos de zona en busca de errores de sintaxis y duplicados
- Hostname Validator - Valida nombres de host según los estándares RFC 1123
- FQDN Validator - Valida nombres de dominio completamente calificados
- DNS Record Set Deduper - Encuentra y elimina registros DNS duplicados