El misterio del CG-NAT, o por qué los puertos de mi router no se abren

Si has intentado abrir o mapear un puerto de tu router (algo necesario para muchas… cosas que no haría el usuario medio de Internet) y aunque parecieras haberlo hecho bien, no había manera de que funcionara… puede que estés tras un CG-NAT.

Te explico (y de paso lo apunto para que no se me olvide) qué es, cómo se detecta, qué implica y cómo se “sale” de ahí.

¿Qué es un CG-NAT?

Es un Carrier-Grade NAT. Significa que la operadora que te proporciona el servicio de acceso a Internet está racaneando con las IPs. Su motivación es que se están acabando las direcciones IPv4 disponibles, y las nuevas IPv6 todavía están en proceso de implantación y tiene su coste ponerlas en marcha*. Así que las operadoras asignan una IPv4 a muchos usuarios, y de ahí ya redirigen a otras IPs secundarias asignadas a cada router. O sea que la dirección con la que apareces en público en la red de redes no es sólo tuya; la tuya de verdad, la de tu router, está oculta, y por eso se hace más complicado conectar voluntariamente con ella desde fuera.

En ese caso, se dice que estás tras un CG-NAT. Y si te dedicas a navegar sin más, esto te importa más bien poco. Pero si quieres hacer algo más, antes te tendrán que sacar y darte una IP pública para ti solito (dinámica o estática, eso ya es otro asunto).

¿En qué me puede afectar eso?

Estar tras un CG-NAT limita algunas cosas, y otras no. En mi caso impedía todo lo que fuera abrir un puerto y mapearlo o redirigirlo a una IP de mi red local, lo que a su vez hacía imposible configurar servidor web local con acceso público, o instalar una instancia de NextCloud a la que pudiera conectar desde cualquier otro sitio. Me volví loco siguiendo tutoriales que no funcionaban hasta que di con lo del dichoso CG-NAT.

¿Cómo sé si estoy detrás o dentro de… esa cosa?

Si quieres saber con seguridad si tu IP es pública o si tu operador te ha asignado una IP privada con Carrier Grade NAT, te recomiendo echar un vistazo a este post. Básicamente tienes que comparar la IP que te dice tu router que tienes, con la que un servicio web como WhatsMyIP te dice que tienes. Si son distintas, estás tras un CG-NAT. O abrir una terminal en Linux, usar el comando traceroute y ver si hay más de un salto hacia tu IP pública. Si lo hay, de nuevo, estás tras un CG-NAT.

Jod… estoy dentro, detrás, donde sea. ¿Cómo salgo?

Se lo pides amablemente a tu operadora. Yo les mandé un mail como este:

Tengo un servidor al que quiero acceder remotamente por SSH y FTP, y quiero usarlo con aplicaciones como Nextcloud, pero actualmente no puedo abrir puertos. Por lo que parece, estoy tras el CG-NAT de MiMaravillosaOperadora y no tengo IP pública. ¿Me podríais activar la IP pública?

Te harán caso, porque lo que están haciendo es un apaño temporal (y lo saben) y porque, total, sólo reclaman cuatro frikis como tú. Así que te sacarán, y listo.

¡Disfruta (con cuidado) de tus puertos abiertos!

* Como curiosidad, según Wikipedia, IPv4 posibilita 4 294 967 296 (232) direcciones de host diferentes, un número inadecuado para dar una dirección a cada persona del planeta, y mucho menos a cada dispositivo, teléfono, PDA, táblet, etcétera. En cambio, IPv6 admite cerca de 670 mil billones de direcciones por cada milímetro cuadrado de la superficie de la Tierra. Con ese igual sí nos da para un rato…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *