Para conocer mejor el CGNAT, primero debemos comprender por qué se utiliza… Si echamos la vista atrás un poco en la historia de Internet, en el momento en que se creó el protocolo IP (Protocolo de Internet), se pusieron a disposición alrededor de 4 mil millones de direcciones IPv4 para su distribución; en aquella época, se consideró una cifra satisfactoria en relación con las necesidades de uso.
Estos prefijos se utilizaban para aplicar «NAT» a los prefijos de redes internas (RFC 1918) que no tenían acceso a Internet. El NAT, básicamente, traduce el prefijo privado al público. De este modo, conseguimos que varios clientes puedan navegar utilizando una única dirección IP pública; a pequeña escala, con pocas direcciones IP privadas sustituidas por una pública, esto no nos plantea problemas, pero a gran escala puede provocar problemas de conexión o incluso la falta de la misma. A medida que aumentaba la necesidad de distribuir prefijos, el agotamiento de los prefijos IPv4 se fue acercando cada vez más al límite.
Con el paso del tiempo y el crecimiento de Internet, se creó un segundo protocolo de direccionamiento, denominado IPv6, con el fin de hacer frente al agotamiento de las direcciones IPv4; nada mejor que disponer de miles de millones y miles de millones de direcciones IP para su uso. Sin embargo, la creación de IPv6 trajo consigo una mayor complejidad en su implementación, ya que exigía la sustitución de los equipos por otros compatibles con el protocolo, así como la adaptación al mismo.
Por ello, la migración de Internet al nuevo protocolo IP aún no se ha completado al 100 %; de ahí que surgiera la necesidad de establecer una medida provisional para hacer frente al agotamiento de las direcciones, sin necesidad de realizar modificaciones en Internet propiamente dicha, sino directamente en las redes de los proveedores… Por ello, se creó el protocolo CGNAT («Carrier Grade Network Address Translation») para facilitar dicha adaptación.
Pero, ¿qué es CGNAT? Antes de profundizar, debemos comprender mejor cómo funciona, ¿cómo ayuda con el agotamiento de direcciones? CGNAT consiste en utilizar los puertos UDP y TCP de direcciones IP públicas, dividiéndolos entre bloques de IP privadas para establecer conexiones con destinos en Internet, lo que sería un NAT a gran escala.
Existen básicamente dos tipos de CGNAT: el determinístico y el de asignación masiva de puertos. En el caso del determinístico, al igual que en el ejemplo anterior, asignamos un número fijo de puertos TCP/UDP por cada dirección IPv4 pública; es decir, si configuramos un 100.64.0.0/24 con salida mediante un /27 público y asignando por adelantado 8192 puertos a cada abonado, tendremos un límite fijo de capacidad de unos 256 abonados; en la imagen siguiente puede verse un ejemplo de tabla de CGNAT determinístico.

Para este tipo de CGNAT, no existe un número mínimo de puertos por conexión, pudiéndose implementar con hasta 256 puertos fijos por conexión; sin embargo, cuanto menor sea el número de puertos, más problemas tendremos con destinos inaccesibles y la imposibilidad de navegar. Para evitar estos problemas, a continuación se incluye una tabla que indica la cantidad necesaria de bloques públicos en relación con los bloques privados, junto con el número de puertos.
CGNAT determinista con 1 público a 16 privados, con 4 mil puertos por conexión.

CGNAT determinista con 1 público a 32 privados, con 2000 puertos por conexión.

Para este modelo, disponemos de una página creada por el equipo de Made4it que genera un script para Mikrotik, a la que se puede acceder a través del enlace made4it.com.br/cgnat/, así como de un artículo explicativo sobre cómo configurarlo, al que puede acceder haciendo clic aquí
En el modelo Bulk Port Allocation, los puertos TCP/UDP se asignan de acuerdo a las necesidades del suscriptor en bloques de puertos de tamaño definido, siendo el bloque 256 puertos y un suscriptor usando solo un bloque ahorraremos recursos y con eso podremos coloque muchos más suscriptores con un /27 público. La gran desventaja de este modelo es que dependemos de generar registros de uso de puertos y almacenar esta información para referencia futura. La imagen muestra al cliente 1 usando solo 256 puertos para navegar y el cliente 2 usando 2 bloques de 256…

Con la aparición del CGNAT, han surgido algunos dispositivos que ya admiten la configuración de CGNAT, como Mikrotik, un dispositivo que, aunque no se diseñó específicamente para este fin, su módulo de CGNAT funciona a la perfección si se configura adecuadamente. También disponemos de otras soluciones de CGNAT, como A10, DANOS (Linux), Iptables (Linux), Cisco, Huawei, Juniper, NFWare y 6Wind, entre otras…
Hasta que el proceso de adaptación de Internet a IPv6 se haya completado al 100 %, tendremos que utilizar CGNAT para hacer frente a la escasez de direcciones IPv4. Si necesita ayuda para implementar el protocolo, independientemente del modelo o del equipo, el equipo de Made4it puede ayudarle en la implementación; póngase en contacto con nosotros a través del correo electrónico contato@made4it.com.br o por teléfono en el (43) 3047-8340 o en el (43) 9 8485-4013
Autor: Kevin Wauters.