CGNAT son las siglas de Carrier Grade Network Address Translation, que traducido al castellano, vendría a ser algo similar a traducción de direcciones de red a gran escala. Básicamente es una tecnología, que a día de hoy utilizan muchos operadores, y que permiten a múltiples usuarios acceder a Internet compartiendo un pequeño número de direcciones públicas. Digamos que sería una de las técnicas que nos permite estirar la vida útil del protocolo IPv4, como paso previo a una futura evolución a IPv6, donde ya no tendremos (al menos en el corto plazo), problemas de direccionamiento.
Para todos aquellos que no lo sepáis, las direcciones IPv4, es la manera en la que se identifican los diferentes dispositivos en una red, y el stack de protocolos IPv4, es el conjunto de protocolos que permiten a dos dispositivos, comunicarse a través de una red como puede ser Internet.
Esta dirección, consta de 32 bits (que en formato binario toma valores 0 o 1), aunque nosotros solemos más bien reconocerla en el formato decimal punteado (por ejemplo, 192.168.1.10). Pues resulta, que cuando diseñaron la dirección IPv4 con 32 bits, se quedaron algo cortos, y como recurso limitado, pues acaba siendo un bien preciado…y más en nuestros días, en los que cada vez es más común encontrar todo tipo de artefactos con conexión a Internet. Este problema, se verá resuelto en la evolución a IPv6, en la contaremos con direcciones de 128 bits, lo que nos permitirá tener espacios de direccionamiento mayores que la Internet actual, en cada uno de nuestros domicilios (y no es exageración), además de permitirnos conectividad extremo a extremo de manera directa.
Pero digamos, que esta evolución no va a ser de la noche a la mañana, y aún quedan años para poder pensar en un apagón de IPv4 (como en su día hubo un apagón analógico en la televisión, por ejemplo). Mientras tanto, contamos con un serie de técnicas de transición, entre las que se encuentra CGNAT, y que nos permite “aguantar” la escasez de direcciones que actualmente estamos sufriendo, hasta que lleguemos al oasis que supone el nuevo stack de protocolos (IPv6).
Cómo funciona CGNAT
Digamos que cada comunicación en Internet, se identifica de manera única por los extremos que establecen la comunicación. Para identificar esos extremos, tenemos una dirección IP (de 32 bits), y un número de puerto (entre 0 y 65535…aunque hay rangos reservados, y esto no es exacto). Pues bien, CGNAT nos permite compartir una misma dirección IP pública (necesaria para comunicarse en la Internet pública) y un rango de puertos específicos para múltiples direcciones IPs privadas (las que normalmente utilizamos por ejemplo en el ámbito doméstico).
Resumiendo, y como hemos comenzado el artículo, permite a múltiples usuarios (con múltiples direcciones IPv4 privadas), acceder a Internet, a Youtube, el correo, Netflix, etc, etc…con un conjunto mucho más reducido de direcciones IPs públicas.
Qué número de direcciones privadas se traduzcan a cada IP pública, depende de la sobresuscripción que utilicemos…pero perfectamente podremos utilizar una única dirección IP pública para 16, 32 o 64 direcciones privadas. Esto también depende del tipo de CGNAT que utilicemos, y como se configure en los equipos que le dan soporte.
Como curiosidad, hay que indicar que normalmente se utiliza un rango de direccionamiento compartido (que vendría a ser una especie de direccionamiento privado) definido por la IETF en la RFC 6598 (https://tools.ietf.org/html/rfc6598). Este espacio de direccionamiento reservado por la IANA para este uso compartido en Proveedores de Servicios, es el 100.64.0.0/10 (100.64.0.0-100.95.255.255).
Ventajas e Inconvenientes del CGNAT
Desde el punto de vista del usuario doméstico convencional, la utilización de CGNAT suele ser bastante transparente. De hecho, al ocultar el direccionamiento privado con el que el usuario se identifica en la red del operador, CGNAT permite de alguna manera securizar los accesos que se puedan hacer desde el exterior, puesto que CGNAT limita que las sesiones, siempre se inicien desde el lado del usuario, y no al revés.
Desde el punto de vista del operador, es una oportunidad para optimizar el uso de direccionamiento público, que cada vez es más escaso, y supone por tanto, un mayor coste.
Tipos de CGNAT
Aunque hay clasificaciones más complejas, resumiendo mucho, podemos decir que hay dos tipos principales de CGNAT, dinámico y determinístico (que vendría a ser una asignación más estática).
- CGNAT Dinámico. El CGNAT dinámico permite ir consumiendo direcciones públicas (y sus correspondientes puertos) de manera dinámica, según se van abriendo y cursando conexiones (o comunicaciones). El CGNAT dinámico es mucho más eficiente, porque solo consume los pools (o grupos) de direccionamiento público, según se van creando nuevas conexiones en el lado privado. Esa precisamente es la ventaja, que podemos realizar un aprovechamiento mucho mayor del direccionamiento público.
Sin embargo, también tiene una contrapartida.
Como por exigencias legales, tiene que haber un registro de qué direcciones privadas, corresponden a cada conexión vía una dirección pública, es necesario llevar una contabilidad de todas y cada una de las conexiones, en un sistema externo, que básicamente es un servidor de Syslog. Esto implica por tanto, desde el punto de vista del operador, que hay que tener un sistema adicional que permita primero la recepción de ese registro, y posteriormente su almacenamiento según las exigencias de la Ley vigente. Por cierto…por si te lo habías preguntado, efectivamente esto nos protege a todos, para que nadie pueda realizar actos ilegales con un direccionamiento público compartido respecto del cual se pierde la trazabilidad.
- CGNAT Determinísitico. En el CGNAT determinístico, hay una preasignación de un rango de puertos de cada IP pública a una IP privada concreta…haya o no haya comunicación. Esto implica, que la misma dirección privada (100.65.0.10), siempre va a utilizar una dirección pública (185.222.115.7), y un rango concreto de puertos (por ejemplo del 2048 al 4096) para sus conexiones. Esto implica, que el operador no tiene necesidad de guardar el registro de dichas conexiones, puesto que la asignación siempre es la misma, y por tanto, no se pierde la trazabilidad.
Si eres un operador, y estás interesado en estas mejoras, no dejes de visitar nuestras Soluciones de ISP