Tema
Otros registros: CAA, SRV, DNSSEC
Con A, AAAA, CNAME, MX y TXT resuelves el 95 % de los casos. Pero tarde o temprano te vas a topar con el resto: un certificado SSL que no se renueva por culpa de un CAA, un servidor de Minecraft que necesita un SRV, correos rechazados por no tener PTR, un subdominio que otra agencia quiere administrar (NS), o la casilla de DNSSEC en Cloudflare que no sabes si activar.
Esta lección cubre todos esos registros con el mismo ejemplo de siempre: mitienda.com en Cloudflare, con hosting cPanel en 203.0.113.10 / 2001:db8::10.
Concepto
Si la zona DNS es la ficha de una casa, estos registros son los papeles "de trámite":
| Registro | Analogía | Para qué sirve |
|---|---|---|
| CAA | Lista de cerrajeros autorizados a hacer copias de tu llave | Qué autoridades pueden emitir certificados SSL para tu dominio |
| SRV | Directorio que dice "para el servicio X, ve a tal puerta del edificio Y" | Ubicar un servicio con puerto incluido |
| PTR | La guía telefónica al revés: de número a nombre | DNS inverso: de IP a nombre |
| SOA | El acta de la zona: quién la administra y cada cuánto se revisa | Datos técnicos de la zona |
| NS | "De esta parte del edificio se encarga otro administrador" | Delegar la zona o un subdominio |
| DS / DNSSEC | Un sello notarial que prueba que las respuestas son auténticas | Firmar criptográficamente la zona |
CAA: quién puede emitir tus certificados
Un CAA (Certification Authority Authorization) dice qué autoridades certificadoras (CA) pueden emitir certificados SSL para tu dominio. Si alguien intenta pedir un certificado para mitienda.com a una CA que no está en la lista, la CA está obligada a negarse.
Sin ningún CAA, cualquier CA puede emitir. Es válido y es lo que tienen la mayoría de los dominios.
Sintaxis
txt
CAA @ 0 issue "letsencrypt.org"
│ │ │
│ │ └─ valor: el dominio de la CA
│ └─ etiqueta: issue | issuewild | iodef
└─ flags: 0 (normal) o 128 (crítico; casi nunca)| Etiqueta | Significado | Ejemplo |
|---|---|---|
issue | CA autorizada para certificados normales (y comodín si no hay issuewild) | 0 issue "letsencrypt.org" |
issuewild | CA autorizada solo para comodines (*.mitienda.com) | 0 issuewild "pki.goog" |
iodef | A dónde avisar si alguien pide un certificado no autorizado | 0 iodef "mailto:seguridad@mitienda.com" |
Valores de CA comunes: letsencrypt.org, pki.goog (Google Trust Services), sectigo.com, digicert.com, ssl.com.
Cómo afecta a Let's Encrypt, cPanel y Cloudflare
Aquí está la trampa: en un dominio en Cloudflare dos sistemas emiten certificados:
txt
Visitante ──HTTPS──► Cloudflare ──HTTPS──► Hosting cPanel (203.0.113.10)
certificado del borde certificado del servidor de origen
(Universal SSL: lo emite (AutoSSL: Let's Encrypt o Sectigo
Let's Encrypt, Google según el hosting; o un Origin
Trust Services o SSL.com) Certificate de Cloudflare)- Cloudflare Universal SSL usa varias CA (actualmente Let's Encrypt, Google Trust Services y SSL.com; la lista puede cambiar). Si creas CAA, Cloudflare agrega automáticamente los CAA de sus CA mientras Universal SSL esté activo, aunque no siempre los veas en la lista. Aun así, comprueba con
digdespués de crear tu CAA. - AutoSSL de cPanel puede usar Sectigo o Let's Encrypt según cómo lo configure el hosting. Si pones solo
letsencrypt.orgy tu hosting usa Sectigo, el certificado del servidor dejará de renovarse y verás errores 526 en Cloudflare (modo Full strict) meses después.
Por eso, si decides usar CAA, incluye todas las CA que realmente usas:
txt
Type: CAA Name: @ Flags: 0 Tag: issue CA domain: letsencrypt.org
Type: CAA Name: @ Flags: 0 Tag: issue CA domain: pki.goog
Type: CAA Name: @ Flags: 0 Tag: issue CA domain: sectigo.com
Type: CAA Name: @ Flags: 0 Tag: iodef URL: mailto:seguridad@mitienda.comEn Cloudflare se crea en DNS → Records → Add record → Type: CAA; el formulario te pide flags, etiqueta (tag) y valor por separado.
No uses CAA "por si acaso"
Un CAA mal hecho rompe la renovación de SSL de forma silenciosa, semanas después. Si no tienes una razón concreta (una auditoría de seguridad, una política del cliente), no lo pongas. Para entender a fondo los certificados y modos de Cloudflare, ve a SSL sin pagar.
powershell
nslookup -type=caa mitienda.com 1.1.1.1bash
dig +short mitienda.com CAA
# 0 issue "letsencrypt.org"
# 0 issue "pki.goog"SRV: servicio + protocolo + puerto
Un A dice "la IP es esta". Un SRV dice "el servicio X está en el servidor Y, en el puerto Z". Así un cliente (un juego, un teléfono VoIP, Outlook) encuentra el servicio sin que el usuario escriba el puerto.
Formato
txt
_servicio._protocolo.nombre TTL SRV prioridad peso puerto destino
_minecraft._tcp.mc 300 SRV 0 5 25565 juegos.mitienda.com.| Campo | Significado |
|---|---|
_servicio | Nombre del servicio con guion bajo: _minecraft, _sip, _autodiscover |
_protocolo | _tcp o _udp (o _tls en algunos casos) |
| prioridad | Menor = se intenta primero (como en MX) |
| peso | Reparte carga entre registros de la misma prioridad |
| puerto | Puerto del servicio |
| destino | Un nombre con registro A/AAAA (nunca una IP ni un CNAME) |
Caso 1: servidor de Minecraft en mc.mitienda.com
El servidor corre en un VPS 198.51.100.20, en el puerto 25570 (no el estándar 25565). Quieres que los jugadores escriban solo mc.mitienda.com:
txt
Type: A Name: juegos IPv4: 198.51.100.20 Proxy: DNS only (nube gris)
Type: SRV Name: _minecraft._tcp.mc
Priority: 0 Weight: 5 Port: 25570 Target: juegos.mitienda.comEn el formulario de Cloudflare para SRV, según la versión del panel, el nombre se escribe completo (_minecraft._tcp.mc) o en campos separados (Service: _minecraft, Protocol: TCP, Name: mc).
Nube gris para todo lo que no es web
El proxy de Cloudflare (nube naranja) solo funciona para HTTP/HTTPS en ciertos puertos. Un servidor de juegos, SSH, FTP o correo detrás de la nube naranja no conecta. El A al que apunta el SRV debe estar en DNS only.
Caso 2: Microsoft Teams / Skype for Business
Los SRV de Microsoft 365 para Skype for Business y federación de Teams son:
txt
SRV _sip._tls 100 1 443 sipdir.online.lync.com
SRV _sipfederationtls._tcp 100 1 5061 sipfed.online.lync.comMicrosoft ya no los exige en la mayoría de los inquilinos que solo usan Teams. Si el asistente de configuración de dominio de Microsoft 365 te los pide, créalos; si no, no hacen falta.
Caso 3: telefonía SIP
Un proveedor de VoIP puede pedirte:
txt
SRV _sip._udp 10 60 5060 sip1.proveedor-voip.com
SRV _sip._udp 20 40 5060 sip2.proveedor-voip.comLos teléfonos intentan primero sip1 (prioridad 10) y, si no responde, sip2.
powershell
nslookup -type=srv _minecraft._tcp.mc.mitienda.com 1.1.1.1bash
dig +short _minecraft._tcp.mc.mitienda.com SRV
# 0 5 25570 juegos.mitienda.com.PTR: el DNS inverso
El DNS normal va de nombre → IP. El PTR va de IP → nombre:
txt
Normal: mail.mitienda.com ──A──► 203.0.113.10
Inverso: 203.0.113.10 ──PTR──► mail.mitienda.com
(se consulta como 10.113.0.203.in-addr.arpa)¿Por qué importa?
Gmail, Yahoo y Microsoft revisan que la IP que les entrega correo tenga PTR, y que ese nombre resuelva de vuelta a la misma IP (forward-confirmed reverse DNS). Una IP sin PTR o con un PTR genérico tipo ip-203-0-113-10.proveedor.net es sospechosa de spam.
¿Quién lo configura?
El dueño de la IP, no el dueño del dominio. Por eso no existe en tu zona de Cloudflare (salvo que Cloudflare te haya asignado IP propias, lo cual no es tu caso).
| Situación | Quién configura el PTR |
|---|---|
| Hosting compartido cPanel | El hosting. La IP es compartida y su PTR suele ser el nombre del servidor (server123.hosting.com). Es normal y correcto |
| VPS (DigitalOcean, Hetzner, Vultr, Linode, AWS) | Tú, desde el panel del VPS: sección "Reverse DNS" / "rDNS" o nombre del droplet |
| Google Workspace, Microsoft 365, Zoho | El proveedor; ya está hecho |
| Internet de tu casa u oficina | El proveedor de internet (y no te sirve para enviar correo de todos modos) |
Ejemplo en un VPS que envía correo: configura el rDNS de 198.51.100.20 como mail.mitienda.com en el panel del VPS y crea en Cloudflare el A mail → 198.51.100.20 (nube gris). Así ambas direcciones coinciden.
powershell
nslookup 203.0.113.10
# Responde con el nombre del PTRbash
dig +short -x 203.0.113.10
# server123.hosting.com.
dig +short server123.hosting.com A
# 203.0.113.10 ← coincide: FCrDNS correctoSOA: el acta de la zona
Toda zona tiene exactamente un SOA (Start of Authority). En Cloudflare lo administra Cloudflare; en la lista de registros normalmente no aparece o no se edita (algunas opciones existen en planes de pago).
txt
$ dig +short mitienda.com SOA
ana.ns.cloudflare.com. dns.cloudflare.com. 2350912345 10000 2400 604800 1800
│ │ │ │ │ │ │
│ │ │ │ │ │ └─ TTL negativo: cuánto se
│ │ │ │ │ │ recuerda que un nombre NO existe
│ │ │ │ │ └─ expire
│ │ │ │ └─ retry
│ │ │ └─ refresh
│ │ └─ serial (sube con cada cambio)
│ └─ correo del responsable (el primer punto es una @)
└─ nameserver primarioEl dato práctico es el TTL negativo (último número): si consultaste nuevo.mitienda.com antes de crearlo, los resolvers recuerdan que "no existe" durante ese tiempo. Por eso a veces un subdominio recién creado tarda en verse: alguien lo consultó antes de que existiera.
NS: delegar un subdominio
Los NS de la raíz los cambias en el registrador (lo viste en nameservers y zona). Pero también puedes crear NS dentro de tu zona para entregar un subdominio a otro proveedor.
Caso real: el equipo de marketing quiere administrar promo.mitienda.com en su propia cuenta de DNS (por ejemplo, en AWS Route 53), sin tocar tu zona principal.
txt
Zona de mitienda.com (Cloudflare)
├─ A @ 203.0.113.10
├─ CNAME www mitienda.com
├─ MX @ ...
└─ NS promo ns-123.awsdns-15.com ← "de promo se encarga Route 53"
NS promo ns-987.awsdns-60.net
NS promo ns-1500.awsdns-40.org
NS promo ns-2000.awsdns-50.co.uk
Zona de promo.mitienda.com (Route 53)
├─ A @ 198.51.100.50
└─ CNAME www ...En Cloudflare: DNS → Records → Add record → Type: NS, Name: promo, Nameserver: cada uno de los valores (un registro por servidor).
Reglas:
- Una vez delegado, todo lo que esté bajo
promo.mitienda.comse administra en el otro proveedor. Si creas en Cloudflare un Apromoowww.promo, se ignora o choca. - Si activas DNSSEC en la zona principal y el subdominio delegado también lo usa, necesitas además un DS para
promoen Cloudflare.
DNSSEC y el registro DS
El problema
El DNS clásico no tiene firma: un atacante que logre envenenar la caché de un resolver podría responder "mitienda.com está en 198.51.100.66" (su servidor falso). DNSSEC firma criptográficamente las respuestas para que los resolvers puedan comprobar que vienen de la zona auténtica.
La cadena de confianza
txt
Raíz (.) firma ─► "la llave de .com es esta"
│
.com firma ─► "la llave de mitienda.com es esta" ← registro DS (en el registrador)
│
mitienda.com firma ─► "el A de mitienda.com es 203.0.113.10" (Cloudflare firma la zona)- Cloudflare firma tu zona (DNSKEY + firmas RRSIG).
- El registro DS es la "huella" de esa llave, y debe publicarse en la zona del TLD (
.com). Eso solo lo puede hacer el registrador. Sin DS en el registrador, DNSSEC no hace nada.
Activarlo paso a paso
- En Cloudflare: DNS → Settings (Configuración) → DNSSEC → Enable DNSSEC (el nombre puede variar).
- Si tu registrador es Cloudflare Registrar: el DS se agrega automáticamente. Listo.
- Si es otro registrador (Namecheap, GoDaddy, Porkbun, Hostinger, Akky…): Cloudflare te muestra los datos del DS:txtAlgunos registradores piden el DS completo; otros, los campos por separado; algunos piden el DNSKEY. Cloudflare muestra todo.
DS record: mitienda.com. 3600 IN DS 2371 13 2 1F987CC6583E92DF0890718C42... Key tag: 2371 Algorithm: 13 (ECDSA P-256 con SHA-256) Digest type: 2 (SHA-256) Digest: 1F987CC6583E92DF0890718C42... - En el registrador busca DNSSEC (a veces en "Configuración avanzada de DNS") y agrega el DS con esos valores.
- Espera (minutos a 24 h). En Cloudflare el estado cambia de "Pending" a "Success / Active".
Antes de cambiar de nameservers, quita el DS
Si un día mueves mitienda.com de Cloudflare a otro DNS con el DS todavía publicado, los resolvers que validan DNSSEC (Google, Cloudflare, la mayoría de los ISP) verán firmas que no coinciden y el dominio dejará de resolver por completo para gran parte de internet. Orden correcto: 1) borra el DS en el registrador, 2) espera al menos el TTL del DS (normalmente 1–2 días), 3) desactiva DNSSEC en Cloudflare, 4) cambia los nameservers.
Comprobar DNSSEC
powershell
# ¿El registrador publicó el DS?
nslookup -type=ds mitienda.com 1.1.1.1
# Resolve-DnsName puede pedir los datos DNSSEC
Resolve-DnsName mitienda.com -Type A -DnssecOk -Server 1.1.1.1bash
# DS en el TLD
dig +short mitienda.com DS
# Respuesta firmada: busca la bandera "ad" (authenticated data)
dig @1.1.1.1 mitienda.com A +dnssec
# ;; flags: qr rd ra ad; ← "ad" = validadoPara un diagnóstico visual, usa dnsviz.net o dnssec-analyzer.verisignlabs.com: muestran la cadena completa y en qué eslabón está el error.
¿Lo activo o no?
En Cloudflare, DNSSEC es gratis y de bajo mantenimiento (Cloudflare rota las firmas). Actívalo si: tu registrador soporta DS (casi todos), y vas a documentar que existe para no olvidarlo en una futura migración. Es una buena práctica profesional, sobre todo para tiendas y sitios con login.
Resumen de nubes y tipos
| Registro | ¿Proxy naranja posible? | ¿Dónde se configura? |
|---|---|---|
| CAA | No aplica | Tu zona (Cloudflare) |
| SRV | No aplica (y el A destino en gris) | Tu zona |
| PTR | — | Dueño de la IP (hosting / VPS) |
| SOA | — | Automático (Cloudflare) |
| NS de subdominio | No aplica | Tu zona |
| NS de la raíz | — | Registrador |
| DS | — | Registrador (automático con Cloudflare Registrar) |
Ejercicios
- Tu hosting cPanel usa AutoSSL con Sectigo y el sitio está detrás de Cloudflare con Universal SSL. Escribe los CAA mínimos para no romper ninguno de los dos.
- Crea el SRV para que
play.mitienda.comlleve a un servidor de Minecraft en198.51.100.20, puerto 25599. - Un cliente con VPS en
198.51.100.20envía correo y Gmail lo marca como spam.dig -x 198.51.100.20respondevps-4421.proveedor.net. ¿Qué cambias y dónde? - Te piden delegar
docs.mitienda.coma los nameserversns1.gitbook-dns.comyns2.gitbook-dns.com(ejemplo). ¿Qué registros creas en Cloudflare? - Vas a migrar
mitienda.comde Cloudflare a otro proveedor de DNS y tiene DNSSEC activo con DS en Namecheap. Escribe el orden de pasos.
Ver solución
- Mientras Universal SSL esté activo Cloudflare añade sus propios CAA, pero para ir seguro incluye las CA del borde y la del hosting:txtComprueba con
CAA @ 0 issue "sectigo.com" CAA @ 0 issue "letsencrypt.org" CAA @ 0 issue "pki.goog" CAA @ 0 issue "ssl.com"dig +short mitienda.com CAAy, sobre todo, que AutoSSL renueve sin errores. - txt
A juegos 198.51.100.20 (DNS only) SRV _minecraft._tcp.play 0 5 25599 juegos.mitienda.com - En el panel del VPS (no en Cloudflare), sección Reverse DNS, pon
mail.mitienda.comcomo PTR de198.51.100.20. En Cloudflare creaA mail → 198.51.100.20en nube gris. Verificadig +short -x 198.51.100.20ydig +short mail.mitienda.com. Revisa también SPF, DKIM y DMARC. - Dos registros NS en Cloudflare:txtY nada más con el nombre
NS docs ns1.gitbook-dns.com NS docs ns2.gitbook-dns.comdocsen tu zona. - Copiar la zona al nuevo proveedor. 2) Borrar el DS en Namecheap. 3) Esperar al menos el TTL del DS (1–2 días). 4) Desactivar DNSSEC en Cloudflare. 5) Cambiar los nameservers en Namecheap. 6) Cuando todo resuelva desde el nuevo proveedor, activar DNSSEC allí y publicar el nuevo DS.
Resumen
- CAA limita qué CA emiten SSL. Si lo usas, incluye todas: las de Cloudflare y la del hosting (Let's Encrypt o Sectigo). Mal hecho, rompe renovaciones.
- SRV indica servicio + protocolo + puerto + destino (Minecraft, SIP, Teams). El destino es un nombre con A, en nube gris.
- PTR (DNS inverso) lo configura el dueño de la IP; es clave para enviar correo desde un VPS.
- SOA lo maneja Cloudflare; su último valor es el TTL negativo.
- NS dentro de tu zona delega un subdominio a otro proveedor.
- DNSSEC: Cloudflare firma la zona; el DS va en el registrador. Quita el DS antes de cambiar de nameservers.
- Siguiente: Correo con tu dominio.