DNS dinámico (DDNS) detrás de CGNAT: por qué no funciona y qué hacer
Respuesta corta. El DNS dinámico (DDNS) solo hace que un nombre apunte a tu IP pública actual. Detrás de CGNAT, la IPv4 pública que ve el servicio de DDNS es la del operador y la comparten muchos clientes. El nombre resuelve, pero las conexiones que llegan a esa dirección se descartan antes de llegar a tu router.
¿Tu DDNS no responde?
Detrás de CGNAT, ningún DDNS puede apuntar a una IP que sea tuya. Con una IP pública fija por túnel, tu servidor es accesible por IPv4 e IPv6 con un registro DNS normal.
Has creado un nombre en DuckDNS o No-IP, el cliente lo actualiza sin errores, has abierto los puertos del router y, aun así, desde fuera no puedes conectarte a tu servidor en casa. Si te suena, es muy probable que tu operador te tenga detrás de CGNAT. Esta guía explica por qué el DDNS no puede ayudarte en ese caso, cuándo sí funciona y qué alternativas tienes.
Qué hace el DNS dinámico (DDNS)
Muchas conexiones domésticas no tienen una IP fija: el operador puede cambiarla al reiniciar el router o cada cierto tiempo. Un servicio de DNS dinámico (DDNS) resuelve ese problema con un nombre fijo, por ejemplo micasa.duckdns.org, que siempre apunta a tu IP pública actual.
Para mantenerlo al día, un cliente avisa al servicio cada vez que tu IP cambia. Ese cliente puede ser un pequeño programa o script en un equipo de tu red (los de DuckDNS o No-IP, por ejemplo) o la función de DDNS que traen muchos routers. En todos los casos, el servicio publica la dirección desde la que le llega la actualización o la que el router le comunica.
El DDNS no abre puertos ni cambia cómo llegan las conexiones a tu casa. Solo se encarga de que el nombre apunte a la dirección correcta.
Por qué el DDNS no funciona detrás de CGNAT
Con CGNAT, tu operador comparte una misma IP pública IPv4 entre muchos clientes. Tu router no tiene una IPv4 pública propia: tu tráfico sale a internet a través del CGNAT del operador.
Cuando el cliente de DDNS envía la actualización, el servicio ve esa IP compartida del CGNAT y apunta tu nombre a ella. Técnicamente, el DDNS ha hecho bien su trabajo. El problema es lo que pasa después: cuando alguien se conecta a tu nombre, la conexión llega al CGNAT del operador, que no sabe a cuál de sus clientes va dirigida y la descarta. Tu router nunca la ve, así que da igual qué puertos hayas abierto en él.
Si tu router ejecuta el DDNS y publica su propia IP WAN, el resultado tampoco sirve: con CGNAT esa dirección suele estar en el rango 100.64.0.0/10, que no es accesible desde internet.
El síntoma típico
- El nombre resuelve:
nslookup micasa.duckdns.orgopingmuestran una dirección IP. - La conexión no llega: el navegador, el cliente SSH o la app se quedan esperando hasta agotar el tiempo de espera (timeout).
- Dentro de tu red, el servicio funciona sin problema.
Ese patrón (el nombre resuelve, pero la conexión se agota) apunta a que el problema no es el DNS, sino que la dirección no lleva a tu casa.
DDNS con IPv6: cuándo sí puede funcionar
CGNAT afecta a IPv4. Si tu conexión también tiene IPv6, cada dispositivo puede tener su propia dirección IPv6 pública, sin un NAT del operador en medio. Muchos servicios de DDNS y routers pueden publicar un registro AAAA con esa dirección.
Funciona con dos condiciones:
- Quien se conecta tiene que tener IPv6. Muchas redes móviles y domésticas lo tienen, pero algunas redes de empresas, hoteles o wifi de invitados solo usan IPv4, y desde ellas no llegarás.
- Tu router y tu cortafuegos deben permitir conexiones IPv6 entrantes. Muchos routers las bloquean por defecto; tendrás que permitirlas para el equipo y los puertos que quieras publicar.
Además, el registro AAAA debe contener la dirección IPv6 del servidor, no la del router, salvo que el servicio esté en el propio router.
Cómo saber si estás detrás de CGNAT
La comprobación más rápida es comparar la IPv4 que muestra tu router en la sección WAN o Internet con tu IP pública real, la que ves en nuestra página de inicio. Si no coinciden, o si la del router está entre 100.64.0.0 y 100.127.255.255, hay un NAT delante de ti. Tienes los pasos completos, incluido traceroute, en cómo saber si tengo CGNAT, y una comprobación interactiva.
Si resulta que no tienes CGNAT, DuckDNS, No-IP y el DDNS del router siguen siendo una buena solución. En ese caso, el fallo suele estar en otro sitio: los puertos abiertos en el router, la IP del equipo de destino o su cortafuegos. Revisa nuestra guía abrir puertos no funciona.
Alternativas al DDNS detrás de CGNAT
| Opción | Accesible por | Inconveniente |
|---|---|---|
| IPv6 + DDNS | Solo IPv6 | Gratis, pero los clientes sin IPv6 no llegan; hay que permitir IPv6 entrante |
| Pedir una IP pública al operador | IPv4 e IPv6 | No todos la ofrecen; a veces tiene un coste adicional. Si no es fija, sigues necesitando DDNS |
| Cloudflare Tunnel | HTTP y HTTPS | Solo para webs; Cloudflare termina tu TLS |
| Tailscale u otra VPN en malla | Tus propios dispositivos | Bien para acceso privado, no para servicios públicos |
| IP pública fija por túnel (GetPublicIP) | IPv4 e IPv6, todos los puertos | 8,99 USD al mes por IP |
Con Cloudflare Tunnel, tu web se publica con un nombre en Cloudflare, sin DDNS ni puertos abiertos, pero solo para HTTP y HTTPS. Tailscale da a tus dispositivos sus propios nombres dentro de tu red privada, útil para acceder tú, pero no para que cualquiera se conecte desde internet.
Con una IP fija ya no necesitas DDNS. Con GetPublicIP, tu servidor abre un túnel WireGuard cifrado de salida, que CGNAT deja pasar, y recibe por él una IP pública fija IPv4 e IPv6 con todos los puertos. Como la dirección no cambia, basta con un registro DNS normal en tu dominio: un registro A para la IPv4 y un AAAA para la IPv6. No hay ningún cliente que mantener actualizado, y no tienes que tocar el router.
Tienes más detalles en IP pública fija con CGNAT. Si quieres probarlo, regístrate, elige una ubicación y conecta tu servidor. Para entender CGNAT a fondo, lee nuestra guía sobre cómo alojar tus propios servicios detrás de CGNAT.