Importante: Todas as informações e funcionalidades contidas nos módulos citados neste documento, dependem fortemente da configuração correta de data/hora em equipamentos NAS e também nos servidoes radius!
O protocolo IPv4 foi projetado para permitir a comunicação entre computadores ao redor do mundo. No seu projeto, foi tomada uma decisão de se utilizar 32 bits para o endereçamento IP, com isso, o protocolo tem uma capacidade para 4.294.967.296 (mais de 4 bilhões) de dispositivos distintos na rede global.
O problema é que na época de sua concepção, não se esperava que no futuro cada casa, ou até mesmo cada pessoa, poderia ter um dispositivo próprio conectado à internet. Devido a essa expectativa, muitos blocos de endereço foram superdimensionados, e com isso, desperdiçados. Por exemplo:
Além da questão do desperdício de IPs, os 32bits reservados para o endereçamento se provaram não ser suficientes para as demandas atuais e do futuro. Por este motivo, o protocolo IPv6 foi concebido e já se encontra em produção há muitos anos. Este novo protocolo foi projetado com 128bits para endereçamento, garantindo uma capacidade praticamente inesgotável de endereços IPs. Infelizmente a adoção do novo protocolo demanda muitas alterações em equipamentos de backbone, atualização de CPEs e afins. Segundo as estatísticas do Google em 2024, pouco mais de 50% das pesquisas são feitas a partir de dispositivos que suportam IPv6:
O NAT (Network Address Translation, ou Tradução de Endereço de Rede), é uma solução utilizada para permitir um maior aproveitamento dos endereços IPv4 existentes.
Dentro de uma residência ou empresa, na maioria das vezes, os dispositivos internos (celulares, computadores e afins), recebem endereços IPv4 privados, como por exemplo 10.0.0.100, 192.168.0.100 ou 172.16.0.100. Como esses endereços só podem ser utilizados em redes internas, para que tais dispositivos possam se comunicar com serviços que estejam na internet, é necessário realizar a tradução destes endereços para um endereço público. Essa função é exercida pelo roteador que se conecta à rede do provedor/operadora.
A única vantagem da utilização do NAT, é um maior aproveitamento dos endereços públicos disponíveis no protocolo IPv4, pois a utilização desta técnica tem vários efeitos colaterais negativos na comunicação fim-a-fim entre dispositivos em redes distintas. Embora os efeitos colaterais sejam negativos, o NAT foi e continua sendo responsável por dar uma sobrevida ao protocolo IPv4 enquanto o IPv6 não se torne o protocolo principal.
O CGNAT na prática, em nada se distingue do NAT descrito anteriormente. A única diferença é o contexto em que ele se aplica.
No caso de um provedor que possua IPs públicos disponíveis para todos os seus assinantes, o NAT existirá somente nas CPEs dos assinantes, para permitir que os dispositivos internos do assinante possam usar a internet utilizando o IP público atribuído para a CPE.
Caso a quantidade de assinantes exceda a capacidade de IPs públicos que o provedor possua, é necessário que o provedor distribua IPs privados para os assinantes, geralmente utilizando o prefixo 100.64.0.0/10 (este prefixo é reservado para este uso).
Como cada assinante estará recebendo um IP privado, é necessário que o provedor utilize um NAT em seus roteadores, para permitir que os IPs privados dos assinantes sejam traduzidos para IPs públicos.
Com isso, surge um problema: vários assinantes distintos podem estar utilizando o mesmo IP público em um determinado momento. Em caso de alguma ação judicial para identificar o assinante que tenha cometido algum crime cibernético, o provedor pode ter problemas, pois não conseguirá identificar com precisão quem estava utilizando aquele IP naquele horário.
A primeira opção que um provedor poderia tentar adotar, para solucionar o problema da identificação de assinantes, seria configurar seus roteadores para enviarem os logs de tradução de IP para um dispositivo externo, por exemplo:
O problema com esta solução, é que o armazenamento destes logs com o tempo pode se tornar inviável, devido ao espaço de armazenamento necessário. Para se ter uma idéia, em uma rede que trafegue 10Gb/s por segundo, considerando pacotes de 1500 bytes, se chegaria a mais de 833.333 pacotes por segundo. Isso geraria uma taxa de gravaça de logs que poderia chegar facilmente na casa dos petabytes.
Alguns fabricantes de equipamentos fornecem soluções para a execução do NAT, e também para permitir a consulta de históricos de tradução de endereços IP. Uma das empresas mais conhecidas no mercado é a A10 Networks:
Uma alternativa muito utilizada pelos provedores para contornar o problema da gravação dos logs, é configurar o NAT em seus equipamentos de forma determinística.
Como o nome já diz, um NAT determinístico é configurado de forma que um IP privado sempre se comunique com a internet utilizando o mesmo IP público, sempre.
Desta forma, em caso de uma ordem judicial, o provedor pode descobrir qual foi o IP privado responsável pela conexão, tendo em mãos o IP público e a porta de origem (Já um padrão empresas como Facebook, Instagram e X fornecerem para a justiça os dados necessários, tais como IP, porta e horário da conexão)
O NAT determinístico foi proposto pela RFC 7422
Nos roteadores Mikrotik, é possível configurar um NAT determinístico de duas formas:
No caso da configuração com algoritmo sequêncial, cada IP privado é mapeado para um IP público de forma sequêncial. Vários IPs privados podem ser mapeados para o mesmo IP público, de acordo com a quantidade de portas por IP privado. No exemplo abaixo, está sendo considerado que cada IP privado poderá ter reservado até 2000 portas:
Para o caso acima, será suposto uma ordem judicial com as seguintes informações:
Para o provedor descobrir qual IP privado foi responsável por esta conexão, basta analisar o mapa do seu CGNAT determinístico. No exemplo citado anteriormente, é possível identificar que o IP privado utilizado foi o 100.64.0.1 (2), já que sua faixa de portas (3024 até 5023), englobam a porta citada na ordem judicial (4050).
É possível ver que para a configuração do algoritmo sequencial, é necessário configurar inúmeras regras nos equipamentos. Dependendo do tamanho dos blocos públicos, pode se chegar a dezenas de milhares de regras!
O algoritmo Netmap é uma solução disponível nos equipamentos Mikrotik (pode existir em outros fabricantes com outro nome), que permite a configuração do CGNAT determinístico com uma redução drástica da quantidade de regras.
O Netmap funciona se baseando no mapa de 1:1 entre um bloco público e privado, por exemplo:
Com base no exemplo acima, o equipamento irá executar o NAT da seguinte forma:
Como pode ser visto, através do Netmap o equipamento gera automaticamente um NAT determinístico de forma que um IP privado, seja mapeado para um IP público, mantendo os bits do final, permitindo uma fácil conversão de um para o outro.
Repetindo o padrão da última seção, uma ordem judicial de exemplo poderia conter os seguintes dados:
Com isso, é possível identificar que o IP privado responsável pela conexão é o 100.64.0.2, cujo range de portas se inicia em 1024 e vai até 3023, e possui os bits de identificação de host (100.64.0.2) idênticos ao bits de identificação de host do IP público (192.0.2.2).
Embora o CGNAT determinístico permita a eliminação da necessidade do armazenamento de logs, é necessário que o provedor mantenha alguns cuidados para que não tenha problemas durante a identificação de assinantes.
Todas as configurações feitas em equipamentos, precisam ser devidamente documentadas, com a data de vigência em que tais regras entraram em vigor, e também a data em que tais regras foram aposentadas.
Desta forma, ao receber uma ordem judicial, o provedor precisa conferir sua documentação para identificar quais regras estão em vigor na época, para aplicar a tradução determinística dos endereços de IP.
Devido a alta demanda por CGNAT nos últimos anos, a Hubsoft, a pedido de seus clientes, implementou dentro do ERP um sistema de documentação e mapeamento de regras de CGNAT.
A configuração dos mapeamentos de CGNAT no Hubsoft, podem ser realizadas através do menu Rede > Mapeamento CGNat
.
Cada mapeamento de CGNAT configurado no Hubsoft, possui os seguintes atributos:
Descrição
: A descrição serve para identificar o propósito do mapeamento de CGNAT cadastradoAlgoritmo
: Indica qual algoritmo será usado no mapeamento em questão, as opções são Sequêncial e Netmap. O funcionamento destes algoritmos é descrito nas seções acima deste documento.Regras
: Um mapeamento pode ter várias regras. Cada uma delas irá permitir a configuração das faixas de portas, além das faixas de IPs públicos e privados. Cada regra deve possuir uma data de início da vigência, e opcionalmente uma data final para a vigência (caso tenha sido finalizada).Equipamentos
: É necessário que pelo menos um Equipamento de Conexão esteja vinculado a um mapeamento CGNAT.Um mapeamento de CGNAT deve possuir uma ou mais regras. Os parâmetros configuráveis nas regras irão depender do algoritmo selecionado. Os parâmetros padrão para todos os algoritmos são os seguintes:
Porta Inicial
: Indica a porta a partir da qual irá iniciar a sequência dos blocos de portas por assinantes.Portas por IP Privado
: Determina quantas portas serão alocadas para cada IP privadoData de Início
: Data e hora do início da vigência da regraData Fim
: Data e hora do fim da vigência da regra (pode ser nulo caso a regra ainda esteja em vigência)Os seguintes parâmetros são necessários para regras em mapeamentos configurados com o algoritmo sequêncial:
IP inicial do range privado
: Indica o IP de partida para o range privadoIP final do range privado
: Indica o último IP para o range privadoIP inicial do range público
: Indica o IP de partida para o range públicoIP final do range público
: Indica o último IP para o range públicoJá os parâmetros abaixo, são necessários para regras em mapeamentos configurados com o algoritmo netmap:
Prefixo Privado
: Indica o prefixo a ser usado para IPs privadosPrefixo Público
: Indica o prefixo a ser usado para IPs públicosDuas regras ativas (sem data de finalização), não podem ter sobreposição dos prefixos públicos ou privados!
É necessário que um mapeamento de CGNAT possua pelo menos um Equipamento de Conexão
vinculado. Este vinculo é necessário para que, em um momento de uma busca judicial, o sistema consiga identificar se as sessões do radius que se aplicam aos IPs privados encontrados, são referentes à equipamentos (NAS), que estejam vinculados à configuração de mapeamento de CGNAT.
Por exemplo, o mesmo prefixo privado (100.64.0.0/10), pode ser usado em diversas áreas de atuação do provedor. Nesse caso, o prefixo privado é o mesmo, mas os equipamentos de conexão responsáveis pelo fornecimento do serviço são diferentes.
Para permitir a detecção correta dos equipamentos de conexão associados às sessões do Radius, o Hubsoft grava um histórico de alteração sempre que um IPv4 ou IPv6 de um Equipamento de Conexão
é cadastrado. Este histórico possui uma data/hora, o que permite a verificação do IP do equipamento que estava configurado na época da vigência.
O mesmo equipamento pode participar do mapeamento CGNAT diversas vezes, com datas de vigência diferentes!
De nada adiantaria as funcionalidades referentes CGNAT no Hubsoft, se elas não permitissem a identificação de assinantes em casos de buscas para atender ordens judiciais ou afins.
O Hubsoft já possui o módulo para este fim, que funciona também para outros propósitos:
Para executar uma busca, basta acessar o painel em Rede > Histórico de Conexões
. No campo «Tipo de Filtro», é necessário selecionar o tipo IPv4 CGNAT; ao selecionar este tipo de filtro, serão liberados dois novos campos:
Os demais campos são comuns para os outros tipos de busca, mas também são importantes:
Data/hora de início: Este campo é usado como uma referência para a busca, só serão considerados registros de conexão que se iniciaram a partir desta data.
Data/hora de finalização: Este campo é usado como uma referência para a busca, só serão considerados registros de conexão que se iniciaram até esta data.
Data/hora do evento: Este campo deve ser preenchido com a data/hora fornecido na ordem judicial. A data/hora deve ter sido devidamente convertida para o fuso-horário configurado no ERP Hubsoft.
Ao preencher os filtros e clicar para efetuar a busca, o Hubsoft irá executar as seguintes etapas:
Percorrer todos os mapeamentos de CGNAT ativos tentando identificar algum que consiga mapear o IP público / porta para um IP privado.
Realizar uma busca nos extratos de conexão procurando registros que tenham utilizado o IP privado encontrado, na data e hora informados. A autenticação no registro de autenticação deve ter ocorrido em algum dos equipamentos vinculados ao mapeamento de CGNAT.
O resultado é retornado para o usuário.