CGNAT Estático ou Dinâmico?

Publicado em: 10 de janeiro de 2022

Qual usar? Quais as vantagens e desvantagens?

O conceito de NAT, do inglês Network Address Translation, surgiu em decorrência da escassez de endereços IPv4 públicos, uma vez que uma das premissas da internet era ofertar à cada usuário da rede um endereço IP único. Todavia, com o aumento do número de usuários conectados à rede mundial de computadores e um número finito de endereços IPv4 públicos essa determinação ficou cada vez mais difícil de ser atendida, abrindo espaço para tecnologia o NAT que visa fazer o compartilhamento de endereços IPv4 públicos.

A Tradução de Endereços de Rede (NAT) se apresentou como uma solução temporária para continuarmos utilizando a rede mundial de computadores mesmo após a escassez total da quantidade de endereços disponíveis, com isso vários usuários do provedor seriam capazes de compartilhar o mesmo endereço IPv4 público utilizando diferentes endereços IPv4 privados. Essa solução será viável até completa adoção do novo protocolo IPv6 na infraestrutura da Internet, que segundo dados mundial da plataforma Google, consta uma adoção do IPv6 em 37% dos seus usuários.

Na rede doméstica, o roteador da residência fornece aos dispositivos da rede um endereço IPv4 privado, geralmente com prefixos 10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16, onde cada equipamento conectado à internet irá receber um endereço IPv4 privado diferente. Entretanto, quando o pacote chega ao roteador da rede doméstica, esse endereço é traduzido para outro endereço IPv4, de tal forma que todos os dispositivos conectados àquela rede estarão compartilhando um mesmo endereço IPv4 e esse conceito consiste na base de funcionamento do NAT. Para isso, utiliza-se a tabela de Tradução de Endereços de Rede,  onde o endereço IPv4 privado é substituído, ou traduzido, pelo endereço IPv4 público. Entretanto, apenas os endereços IPv4 privados e públicos não são suficientes para identificar todas as conexões realizadas pelo roteador, uma vez que um mesmo dispositivo pode acessar diferentes serviços da Internet e a ferramenta de NAT deverá separar os serviços de acordo com as conexões. Então, o endereço da porta de origem será armazenado e, em alguns casos, também poderá ser traduzido, para identificar as conexões e conseguir realizar a tradução inversa, ou seja, para o dispositivo de origem.

Tabela NAT

Entretanto, o termo que se popularizou entre os provedores de acesso para representar essa tradução de endereços de redes foi denominado CGNAT, que significa Carrier Grade NAT, ou seja, em tradução livre, Tradução de Endereços de Rede em Nível de Operadora. Na prática, o funcionamento do CGNAT é baseado no mesmo padrão do protocolo NAT, através de uma técnica de tradução de endereços IPv4 em larga escala, utilizadas principalmente em provedoras de serviço de internet (ISPs) para fornecer o compartilhamento de endereços IPv4 à centenas ou milhares de clientes deste provedor. Com a adoção do CGNAT, o provedor de acesso pode atribuir o mesmo endereço IP para diferentes usuários ao mesmo tempo, direcionando-os através de portas diferentes.

Atualmente, os provedores de serviço de internet podem optar por duas versões de implementação do CGNAT, o tipo dinâmico ou o estático.

No CGNAT Estático, todas as traduções de endereços de redes são baseadas em uma regra pré-definida no roteador, nesse caso a tradução de um endereço de rede sempre irá utilizar as faixas de portas reservadas para o respectivo endereço IPv4 privado. Em geral, as faixas reservadas de portas para aplicação do CGNAT estático podem possuir uma extensão de 1008 portas, ou superior, vai depender da quantidade de clientes que será compartilhado o endereço IP público. Nesse aspecto, é interessante salientar que, quando selecionado uma faixa de 1008 portas, significa dizer que cada cliente poderá realizar até 1008 conexões simultâneas. Caso o cliente necessite de uma quantidade superior de conexões, o roteador não poderá disponibilizar e as conexões não serão estabelecidas, pois todas as faixas de portas já foram divididas entre os clientes da rede.

CGNAT Estático

Na tabela 01 é apresentado a base de funcionamento para a construção da tabela NAT para o CGNAT Estático. Observe que, o endereço IPv4 Privado 100.64.0.0 será sempre traduzido para o endereço IPv4 público 100.100.100.0 e as conexões estabelecidas através deste endereço de IP sempre serão traduzidas para as faixas de portas entre 1024 e 2031, ou seja, poderá realizar até 1008 conexões simultâneas. Por exemplo, vamos supor que o dispositivo com endereço IP 100.64.0.0 iniciou uma conexão com a porta de origem 54321, quando for realizada a tradução deste endereço de rede, será substituído o endereço 100.64.0.0.0 por 100.100.100.0 e a porta de origem será substituída de 54321 por alguma porta dentro da faixa reservada para este endereço, nesse caso, entre 1024 e 2031.

Em geral, recomenda-se que a faixa mínima de portas destinadas ao CGNAT Estático seja de 1008 portas para fornecer ao cliente um serviço de qualidade, atendendo até 64 endereços IPv4 privados, ou seja, nessa situação, um único endereço IPv4 público poderia ser compartilhado com até 64 endereços privados.

Já no CGNAT Dinâmico, a tabela de tradução de endereços de rede, ou seja, a tabela NAT é formada de maneira aleatória, onde a porta de origem poderá ser traduzida para qualquer uma das portas entre 0 até 65535. Nesse cenário, não há um padrão a ser seguido, quando uma porta de origem já tiver sido adicionada à tabela NAT, o roteador deverá escolher outra porta aleatoriamente para traduzir essa porta de origem e não ocorrer duplicação de traduções. Consequentemente, o CGNAT Dinâmico oferece ao provedor um modelo mais eficiente de compartilhamento de endereços IPv4 públicos, há provedores que relatam que conseguem fazer o compartilhamento de um único endereço IPv4 público com até 500 usuários, uma vez que não há locação de reserva de faixas de portas para determinados endereços IPs privados, como no CGNAT Estático.

Nesse aspecto, se o provedor possui endereços IPv4 públicos já escassos, provavelmente sempre irá optar pela implementação do CGNAT Dinâmico, uma vez que poderá atender uma maior quantidade de clientes com o mesmo endereço público. Todavia, essa afirmação não é totalmente verdadeira, pois considerando as determinações do Art. 10, do Marco Civil da Internet, onde consta que o provedor deverá ter a capacidade de identificar de maneira única os clientes e as suas conexões, a implementação o CGNAT Dinâmico se torna muito mais onerosa para o provedor, uma vez que, o mesmo precisará ter um servidor específico para realizar o armazenamento dos registros e conexões realizados por cada cliente, durante o período de um ano. Em contra partida, no CGNAT Estático, o armazenamento de informações das conexões dos usuários não é necessário, uma vez que a faixas de portas reservadas são bem definidas.

Enfim, é importante salientarmos que a escolha de implementação do CGNAT Dinâmico ou CGNAT Estático vai depender das características do provedor, da quantidade de clientes que seu provedor possui, de quantos endereços IPv4 públicos o seu provedor possui, do tipo de cliente, entre outros pontos. Pra resumir, se o provedor possui recursos e infraestrutura para ter um servidor de registros de conexões, o CGNAT Dinâmico poderá ser considerada a melhor solução. Do outro lado, o provedor não possuir recursos suficientes, mas quer mesmo assim armazenas as informações de conexões dos seus usuários, nesse caso o CGNAT Estático deverá se mostrar a melhor opção. Entretanto, com base neste artigo, o provedor poderá optar por àquela solução que melhor se adequa às característica do seu provedor.

Imagem

Robert Marques

CEO - Smart Telecom - Projetos e Consultoria

- Bel. Engenheiro de Telecomunicações
- MBA em Gerenciamento de Projetos
- MBA em Engenharia de Segurança do Trabalho