Tema
Dominios y DNS
Tu cliente ya compró cafeterialuna.com. ¿Cómo hacemos que ese nombre muestre el sitio que tú programaste y que además funcione el correo hola@cafeterialuna.com? La respuesta está en el DNS. Esta lección te enseña a dominarlo, porque el 50% de los problemas de "mi sitio no carga" son de DNS.
Curso completo
Esta lección es un resumen. Para dominar DNS, correo con tu dominio, Cloudflare y SSL gratis, sigue el curso Dominios, DNS y correo.
Concepto
El DNS (Domain Name System) es la agenda telefónica de internet: traduce nombres fáciles de recordar (google.com) a direcciones IP (142.250.x.x).
- Dominio: el nombre que compras, p. ej.
cafeterialuna.com. - TLD: la terminación:
.com,.mx,.org,.dev,.io,.es. - Registrador: la empresa donde lo compras y renuevas cada año: Namecheap, Porkbun, Cloudflare Registrar, GoDaddy, Squarespace Domains, Hostinger, Akky (para
.mx). - Nameservers (NS): los servidores que guardan la zona DNS del dominio, es decir, la lista de registros. Pueden ser los del registrador, los de tu hosting o los de Cloudflare.
- Subdominio: prefijo antes del dominio:
www.cafeterialuna.com,api.cafeterialuna.com,blog.cafeterialuna.com.
Cómo se resuelve un dominio
txt
Navegador → "¿IP de www.cafeterialuna.com?"
↓
Resolver DNS (de tu proveedor de internet, 1.1.1.1 o 8.8.8.8)
↓ pregunta a los servidores raíz → "los .com los maneja Verisign"
↓ pregunta a los servidores de .com → "sus nameservers son ns1.hosting.com"
↓ pregunta a ns1.hosting.com → "www es un CNAME de cafeterialuna.com, que apunta a 203.0.113.10"
↓
Navegador se conecta a 203.0.113.10Cada respuesta se guarda en caché durante el TTL (Time To Live, en segundos). Por eso los cambios de DNS no siempre se ven al instante: eso es la famosa "propagación".
Los registros DNS que debes conocer
| Tipo | Para qué sirve | Ejemplo de valor |
|---|---|---|
| A | Apunta un nombre a una IPv4 | 203.0.113.10 |
| AAAA | Apunta un nombre a una IPv6 | 2001:db8::10 |
| CNAME | Alias: un nombre apunta a otro nombre | cname.vercel-dns.com |
| MX | Servidores de correo del dominio (con prioridad) | 10 mx1.proveedor.com |
| TXT | Texto libre: SPF, DKIM, DMARC, verificaciones | v=spf1 include:_spf.google.com ~all |
| NS | Qué servidores guardan la zona | ns1.hosting.com |
| CAA | Qué autoridades pueden emitir SSL | 0 issue "letsencrypt.org" |
El símbolo @
En los paneles DNS, @ significa "el dominio raíz" (cafeterialuna.com sin prefijo). www significa www.cafeterialuna.com.
Reglas importantes
- Un CNAME no puede convivir con otros registros en el mismo nombre. Por eso la raíz (
@) normalmente usa A, ywwwusa CNAME. (Cloudflare y otros ofrecen "CNAME flattening"/ALIAS para la raíz.) - En MX, el número menor tiene mayor prioridad.
- Un dominio debe tener un solo registro SPF (TXT que empieza con
v=spf1).
Ejemplo: zona DNS completa de un negocio
Sitio en un VPS, correo en Google Workspace y una tienda en un subdominio:
txt
Tipo Nombre Valor TTL
--------------------------------------------------------------------
A @ 203.0.113.10 3600
CNAME www cafeterialuna.com. 3600
A api 203.0.113.10 3600
CNAME tienda shops.myshopify.com. 3600
MX @ 1 smtp.google.com. 3600
TXT @ "v=spf1 include:_spf.google.com ~all" 3600
TXT google._domainkey "v=DKIM1; k=rsa; p=MIIBIjANBgkq..." 3600
TXT _dmarc "v=DMARC1; p=quarantine; rua=mailto:dmarc@cafeterialuna.com" 3600
TXT @ "google-site-verification=abc123..." 3600
CAA @ 0 issue "letsencrypt.org" 3600SPF, DKIM y DMARC en palabras simples
- SPF: lista de servidores autorizados a enviar correo con tu dominio.
- DKIM: firma digital en cada correo; la llave pública vive en un TXT.
- DMARC: le dice al receptor qué hacer si SPF/DKIM fallan (
none,quarantine,reject) y a dónde enviar reportes.
Sin estos tres registros, los correos de tu cliente (incluidos los de formularios de contacto) terminan en spam. Gmail y Yahoo los exigen para remitentes de volumen desde 2024.
Paso a paso: conectar un dominio
Opción A: a un hosting compartido (cambiando nameservers)
- En el panel del hosting busca sus nameservers (ej.
ns1.dns-parking.com,ns2.dns-parking.com). - En el registrador, sección Nameservers / DNS, elige "personalizados" y pégalos.
- Espera de minutos a 24-48 horas. A partir de ahí, los registros se editan en el hosting (cPanel → Zone Editor), no en el registrador.
Opción B: a un VPS (registro A)
- Copia la IP pública de tu VPS.
- En el panel DNS (registrador o Cloudflare) crea:
A@→203.0.113.10CNAMEwww→tudominio.com
- Verifica con
dig.
Opción C: a Vercel / Netlify
- En el proyecto: Settings → Domains → Add y escribe el dominio.
- La plataforma te dice qué crear, típicamente:
- Vercel:
A @ 76.76.21.21yCNAME www cname.vercel-dns.com. - Netlify:
A @ 75.2.60.5(o usar Netlify DNS) yCNAME www tusitio.netlify.app.
- Vercel:
- Copia exactamente los valores que muestre tu panel (pueden cambiar).
Buena práctica
Antes de una migración, baja el TTL a 300 (5 minutos) un día antes. Así, cuando cambies la IP, todos verán el cambio rápido. Después súbelo de nuevo a 3600.
Comprobar DNS desde la terminal
bash
# Registro A
dig +short cafeterialuna.com A
# Registro CNAME de www
dig +short www.cafeterialuna.com CNAME
# Servidores de correo
dig +short cafeterialuna.com MX
# Registros TXT (SPF, verificaciones)
dig +short cafeterialuna.com TXT
# Nameservers
dig +short cafeterialuna.com NS
# Preguntar directamente a un resolver concreto (evita la caché local)
dig @1.1.1.1 cafeterialuna.com A +shortpowershell
Resolve-DnsName cafeterialuna.com -Type A
Resolve-DnsName www.cafeterialuna.com -Type CNAME
Resolve-DnsName cafeterialuna.com -Type MX
Resolve-DnsName cafeterialuna.com -Type TXT
nslookup -type=NS cafeterialuna.com 1.1.1.1
# Limpiar la caché DNS de Windows
ipconfig /flushdnsPara ver la propagación en todo el mundo usa whatsmydns.net y para revisar correo MXToolbox.
Error común
Cambiar los registros en el registrador cuando los nameservers apuntan a otro lado (hosting o Cloudflare). Solo cuenta la zona del proveedor al que apuntan los NS. Revisa siempre con dig NS dónde se administra realmente.
Cuidado con el correo
Si cambias los nameservers de un dominio que ya tiene correo funcionando, copia antes los registros MX, SPF y DKIM a la nueva zona. Si no, el cliente deja de recibir correos.
Ejercicios
- Con
digoResolve-DnsName, averigua los registros MX y NS degithub.com. - Escribe la zona DNS para: sitio en Netlify en la raíz y en
www, API en un VPS con IP198.51.100.7enapi., correo con Zoho Mail (MXmx.zoho.comprioridad 10,mx2.zoho.com20,mx3.zoho.com50). - ¿Por qué no puedes poner un CNAME en
@junto a los MX?
Ver solución
dig +short github.com MXydig +short github.com NS(los valores pueden cambiar con el tiempo).- Zona:
txt
A @ 75.2.60.5
CNAME www misitio.netlify.app.
A api 198.51.100.7
MX @ 10 mx.zoho.com.
MX @ 20 mx2.zoho.com.
MX @ 50 mx3.zoho.com.
TXT @ "v=spf1 include:zoho.com ~all"- Porque la especificación DNS prohíbe que un nombre con CNAME tenga cualquier otro registro. La raíz siempre necesita NS (y suele tener MX y TXT), así que en la raíz se usa A/AAAA o un ALIAS/CNAME flattening del proveedor.
Resumen
- DNS traduce nombres a IPs; los cambios tardan según el TTL.
- Los nameservers deciden dónde se editan los registros.
- A apunta a IP, CNAME a otro nombre, MX al correo, TXT a verificaciones y SPF/DKIM/DMARC.
- Usa
dig/Resolve-DnsNamepara comprobar en vez de adivinar. - Siguiente: Hosting compartido con cPanel.