Hoy en día, los dispositivos IoT son tantos que el 31 de enero de 2011 se llegó al máximo de direcciones IP posibles. Esto hizo que los proveedores de internet empezaran a establecer una única dirección IP para una cantidad determinada de usuarios (suscriptores). Supongamos, como ejemplo, que la dirección IP 46.6.158.237 está compartida por cientos de usuarios.
El hecho de compartir una dirección IP implica que no seremos capaces de «abrir puertos» en Internet. Esto significa que, si por ejemplo queremos ejecutar un servidor web, por mucho que abramos los puertos correspondientes en el router (80, 443 TCP), este nunca será accesible desde fuera de casa, es decir, desde Internet.
Si estamos bajo CG-NAT y queremos abrir puertos para que sean accesibles, deberemos llamar a nuestra operadora de Internet y solicitar una IP dinámica, es decir, que nos saquen del CG-NAT.

Para ver si estamos bajo CG-NAT de manera rápida, se puede utilizar el comando tracert
en sistemas Windows o traceroute
en sistemas Unix-like.
Es tan sencillo como mirar la dirección IP pública que tenemos asignada. Esto lo podemos verificar fácilmente visitando sitios como https://ip.me
Ejemplo en Windows (NO CG-NAT):

Ejemplo en sistemas Unix-like (CON CG-NAT):

Como podemos ver, al hacer el traceroute
a la IP pública que tenemos asignada, podemos observar que hay dos saltos en las direcciones 10.7.48.13 y 10.7.32.120.