Presentamos PostScale -- API de correo para envíos transaccionales, recepción y direcciones enmascaradas. PostScale

    Registros CNAME explicados

    Comprende cómo funcionan los registros CNAME, sus limitaciones y cuándo usarlos. Incluye ejemplos para el panel de control y la API de DNScale.

    Un registro CNAME (Canonical Name) crea un alias de un nombre de dominio a otro. En lugar de apuntar a una dirección IP, un CNAME apunta a otro nombre de dominio, que luego se resuelve para obtener la dirección IP final.

    Cómo funcionan los registros CNAME

    Cuando un resolver DNS encuentra un registro CNAME, sigue el alias para encontrar la dirección IP real:

    blog.example.com.    3600    CNAME    example.com.
    example.com.         3600    A        192.0.2.1

    Flujo de consulta:

    1. El cliente solicita blog.example.com
    2. DNS devuelve un CNAME apuntando a example.com
    3. DNS luego resuelve example.com a 192.0.2.1
    4. El cliente se conecta a 192.0.2.1

    Casos de uso comunes

    Alias de subdominios

    Apuntar múltiples subdominios al mismo destino:

    www.example.com.     3600    CNAME    example.com.
    blog.example.com.    3600    CNAME    example.com.
    shop.example.com.    3600    CNAME    example.com.

    Integración con CDN

    Apuntar tu dominio a un proveedor CDN:

    www.example.com.    3600    CNAME    d1234.cloudfront.net.
    static.example.com. 3600    CNAME    example.b-cdn.net.

    Integración con servicios en la nube

    Apuntar subdominios a plataformas en la nube:

    app.example.com.    3600    CNAME    myapp.herokuapp.com.
    docs.example.com.   3600    CNAME    example.gitbook.io.

    Verificación de servicios de correo

    Muchos servicios de correo requieren registros CNAME:

    em1234.example.com. 3600    CNAME    u1234.wl.sendgrid.net.

    Formato del registro

    CampoDescripciónEjemplo
    NombreSubdominio a crear aliaswww, blog, api
    TipoTipo de registroCNAME
    ContenidoNombre de dominio destinoexample.com.
    TTLTiempo de vida (segundos)3600

    Limitaciones importantes

    1. No se puede usar en el dominio raíz/apex

    Los registros CNAME no pueden usarse en el dominio raíz (apex):

    # ❌ NO PERMITIDO
    example.com.    CNAME    other.com.
     
    # ✅ PERMITIDO
    www.example.com.    CNAME    other.com.

    Para dominios apex, usa registros ALIAS en su lugar.

    2. Debe ser el único registro en ese nombre

    Un CNAME no puede coexistir con otros tipos de registro en el mismo nombre:

    # ❌ NO PERMITIDO - conflicto con CNAME
    www.example.com.    CNAME    example.com.
    www.example.com.    TXT      "verification=abc123"
     
    # ✅ PERMITIDO - CNAME es el único registro
    www.example.com.    CNAME    example.com.

    3. Agrega latencia de búsqueda

    Cada CNAME introduce una búsqueda DNS adicional, lo que puede aumentar la latencia. Para aplicaciones donde el rendimiento es crítico, considera usar registros A/AAAA directamente.

    Agregar un registro CNAME

    Usando el panel de control

    1. Navega a tu zona en el panel de control de DNScale
    2. Haz clic en Add Record
    3. Configura el registro:
      • Name: Ingresa el subdominio (por ejemplo, www, blog)
      • Type: Selecciona CNAME
      • Value: Ingresa el nombre de dominio destino
      • TTL: Establece la duración del caché (predeterminado: 3600)
    4. Haz clic en Create Record

    Usando la API

    Crear un registro CNAME:

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "www",
        "type": "CNAME",
        "content": "example.com",
        "ttl": 3600
      }'

    Apuntar subdominio a CDN:

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "cdn",
        "type": "CNAME",
        "content": "d1234567.cloudfront.net",
        "ttl": 3600
      }'

    Respuesta de la API:

    {
      "status": "success",
      "data": {
        "message": "Record created successfully",
        "record": {
          "id": "encoded-record-id",
          "name": "www.example.com.",
          "type": "CNAME",
          "content": "example.com.",
          "ttl": 3600,
          "disabled": false
        }
      }
    }

    Mejores prácticas

    1. Usa puntos finales - El dominio destino debe terminar técnicamente con un punto (por ejemplo, example.com.), aunque DNScale lo gestiona automáticamente

    2. Verifica conflictos - Asegúrate de que no existan otros registros en el nombre del CNAME

    3. Considera el TTL cuidadosamente - Usa TTLs más cortos si el destino podría cambiar (por ejemplo, durante migraciones de CDN)

    4. No encadenes demasiados CNAMEs - Aunque DNS permite cadenas de CNAME, añaden latencia y complejidad

    5. Usa ALIAS para el apex - Si necesitas un comportamiento similar a CNAME en el dominio raíz, usa registros ALIAS

    CNAME vs ALIAS vs registro A

    CaracterísticaCNAMEALIASA
    Apunta aNombre de dominioNombre de dominioDirección IP
    Funciona en apexNo
    Puede coexistir con otros registrosNo
    Búsqueda DNS adicionalNo (resuelto en el autoritativo)No

    Probar registros CNAME

    Verifica tu registro CNAME con dig:

    dig CNAME www.example.com
     
    # Seguir la cadena para obtener la IP final
    dig +trace www.example.com

    Tipos de registro relacionados

    • A - Mapeo directo a IPv4
    • AAAA - Mapeo directo a IPv6
    • ALIAS - Comportamiento similar a CNAME para dominios apex

    Conclusión

    Los registros CNAME son invaluables para simplificar la gestión DNS, especialmente al integrarse con servicios de terceros. Comprender sus limitaciones — particularmente en relación con los dominios apex y la coexistencia de registros — te ayuda a tomar la decisión correcta entre CNAME, ALIAS y registros A/AAAA directos.