Configuração de port block allocation: guia prático para provedores
Configuração de port block allocation: é fazer o CGNAT entregar portas ao assinante em lotes, e anotar no log só o momento em que cada lote é entregue e devolvido. O volume de registro cai para uma fração do log por conexão, e quem precisa de mais portas recebe outro lote na hora.
Resumo
- A alocação por blocos fica entre o NAT dinâmico, que registra tudo, e o determinístico, que reserva portas fixas.
- Tamanho do bloco e limite de blocos por assinante decidem o equilíbrio entre volume de log e uso das portas.
- Cada entrega e devolução precisa sair na hora por syslog ou IPFIX para um servidor central com horário certo.
- [object Object]
Como funciona a configuração de port block allocation?
Na primeira conexão, o assinante recebe um lote de portas num IP público, e todas as conexões seguintes usam esse lote até ele encher. O log só ganha uma linha quando um lote novo sai ou um lote vazio volta ao pool.
O CGNAT dinâmico aproveita cada porta, mas escreve uma linha para cada conexão aberta. O determinístico quase não escreve nada, mas deixa portas reservadas paradas enquanto o cliente dorme. Os blocos ficam no meio desses dois extremos.
É uma das escolhas de desenho da guarda de logs de CGNAT para provedores, ao lado do prazo de guarda, do formato das linhas e de onde fica a cópia.
| Modo | Registro | Portas |
|---|---|---|
| Dinâmico | Uma linha por conexão | Usadas sob demanda |
| Alocação por blocos | Uma linha por bloco | Blocos sob demanda |
| Determinístico | Fórmula fixa | Faixa reservada |
O ciclo de vida de um bloco de portas
Cada bloco passa por quatro estados, e só dois deles geram linha no log. O fluxo abaixo mostra o caminho de um lote desde a primeira conexão do assinante.
Entrega
Primeira conexão do assinante
O CGNAT separa um lote livre num IP público e grava uma linha com assinante, IP, faixa e horário.
Uso
Conexões dentro do lote
As conexões seguintes usam portas do mesmo lote, sem gerar nenhuma linha nova.
Lote extra
Lote cheio, outro lote
Se as portas acabam, o assinante ganha mais um lote, até o limite configurado, com nova linha no log.
Devolução
Lote vazio volta ao pool
Quando a última conexão do lote termina, o CGNAT o libera e grava a linha de devolução.
A consulta de um ofício procura a linha de entrega anterior ao horário pedido e a de devolução posterior a ele, para o mesmo IP e a mesma faixa.
O que vai em cada linha de registro
Uma linha útil traz o endereço interno do assinante, o IP público, a primeira e a última porta do lote, o evento e o horário com fuso. Sem qualquer um desses campos, a consulta para no meio.
O endereço interno ainda precisa ser ligado ao login, pelo histórico de sessões PPPoE guardado no RADIUS. A linha do bloco responde qual endereço interno; a sessão responde qual contrato.
Qual tamanho de bloco escolher?
Blocos maiores geram menos linhas de log e desperdiçam mais portas; blocos menores fazem o contrário. Lotes de 512 portas costumam ser o ponto de partida, ajustado depois pelo consumo medido.
O tamanho certo depende de quantas portas o assinante típico usa no pico e de quanto log o servidor aguenta guardar pelo prazo exigido. A tabela mostra o que muda em cada faixa comum.
| Tamanho do bloco | Linhas de log | Uso das portas |
|---|---|---|
| 256 portas | Mais linhas, com lote extra frequente | Poucas portas paradas por assinante |
| 512 portas | Equilíbrio para uso residencial | Folga razoável sem muito desperdício |
| 1.024 portas | Menos linhas | Muitas portas paradas em clientes leves |
Se a faixa usada em cada IP público for de 1024 a 65535, cabem 126 lotes de 512 portas por IP. É esse número, dividido pelo limite de lotes por assinante, que mostra quantos clientes pesados um IP aguenta ao mesmo tempo.
Limite de blocos por assinante
O limite impede que um único cliente, com um aparelho infectado ou um programa de torrent agressivo, esgote o IP público inteiro. Sem limite, os vizinhos de IP sentem a falta de portas.
Quatro lotes de 512 dão 2.048 portas ao assinante, o que cobre a maioria das casas [CONFIRMAR com medição na rede]. Quem bate no limite com frequência merece investigação antes de ganhar mais portas.
O tempo de vida do bloco ativo
Alguns equipamentos permitem trocar o bloco ativo depois de um tempo, mesmo que ele ainda tenha portas livres. O lote antigo só é devolvido quando as conexões dele terminam.
A troca periódica dificulta que alguém de fora preveja as portas de um assinante, mas gera mais linhas no log. Use um valor que a equipe consiga justificar e documente na configuração.
Configuração de port block allocation passo a passo
A configuração de port block allocation exige o servidor de registros pronto antes de ligar os blocos, porque cada lote entregue sem linha guardada é uma lacuna na resposta a um ofício. Depois vêm o pool, o tamanho e o limite.
- Servidor de registros: coleta redundante, com espaço calculado para o prazo de guarda.
- Relógio: CGNAT, RADIUS e servidor sincronizados com a mesma fonte de horário.
- Pool público: separe os IPs que vão operar com blocos.
- Tamanho e limite: defina o tamanho do lote e quantos lotes cada assinante pode ter.
- Exportação: envie cada entrega e devolução na hora por syslog ou IPFIX.
- Teste: faça conexões com um login de teste e procure as linhas no servidor.
O exemplo cria um pool com blocos de 512 portas e no máximo quatro blocos por cliente. O pool tem 64 IPs públicos, o /26 de documentação 203.0.113.0.
security {
nat {
source {
pool CGNAT-BLOCOS {
address {
203.0.113.0/26;
}
port {
block-allocation {
block-size 512;
maximum-blocks-per-host 4;
active-block-timeout 300;
}
}
}
}
}
}O active-block-timeout de 300 segundos é o tempo de vida do bloco ativo descrito acima [CONFIRMAR no manual da versão]. Confira os nomes exatos de cada opção no manual do equipamento que você usa.
Registros de CGNAT pesados demais?
Na guarda de logs de CGNAT, um Especialista troca o log por conexão por blocos de portas e monta a coleta com cópia e consulta testada.
Como tirar o registro do equipamento
O log precisa sair do CGNAT no momento do evento, para um servidor com horário sincronizado. Registro guardado só na memória do equipamento some na primeira reinicialização.
O syslog é o caminho mais simples de montar. O IPFIX, que a implantação de IPFIX detalha, gera registros estruturados e mais fáceis de consultar em grande volume.
E no MikroTik?
O RouterOS não tem alocação por blocos pronta. Provedores com MikroTik costumam usar o modo determinístico com regras geradas por script.
Outra saída é levar o CGNAT para um BNG ou equipamento dedicado que tenha a função nativa, mantendo o MikroTik nas outras tarefas.
Blocos ou determinístico: quando vale cada um?
Os blocos valem quando o equipamento tem a função e a equipe consegue manter um servidor de registros confiável. Sem essas duas condições, o determinístico é mais simples de operar.
- Blocos: aproveitam melhor os IPs públicos e acompanham o cliente que usa muitas portas.
- Determinístico: dispensa servidor de log de traduções, mas reserva portas que ficam paradas.
- Equipamento: a alocação por blocos depende de suporte nativo no CGNAT.
- Operação: blocos pedem coleta redundante; o determinístico pede controle rigoroso de versões.
Compare com a configuração de NAT determinístico, que traz a conta das faixas fixas e a consulta reversa por fórmula. Para reduzir a dependência de CGNAT a longo prazo, veja a implantação de NAT64.
Na prática, quanto o log diminui
A redução depende de quantas conexões cabem em cada lote antes de ele ser devolvido. Um assinante que abre centenas de conexões por hora pode gerar só duas ou três linhas no mesmo período.
Para estimar o espaço do servidor, conte as entregas e devoluções durante uma semana num grupo de teste e projete para a base inteira [CONFIRMAR com medição na rede]. Cada conexão que sai por IPv6 fica fora dessa conta.
Erros comuns na alocação por blocos
Os erros mais comuns deixam o registro incompleto sem que ninguém perceba, porque o assinante continua navegando normalmente. A falha só aparece quando um ofício pede um horário que não está no log.
Evite
- Servidor de registros sem espaço ou sem redundância.
- Relógio do CGNAT fora de sincronia com o RADIUS.
- Blocos pequenos demais, gerando registro quase por conexão.
- Nenhum limite de blocos por assinante.
- Registro guardado só no próprio equipamento.
- Exportação por UDP sem nenhum alarme quando o servidor para de receber.
O último item é traiçoeiro: o syslog por UDP não avisa quando a linha se perde. Um alarme que conta linhas recebidas por minuto mostra na hora quando a coleta parou.
Portas e jogos online
Jogos e chamadas de vídeo sofrem quando o assinante chega ao limite de lotes ou quando o NAT muda a porta no meio da partida. O guia sobre CGNAT travando jogos separa esses casos.
Antes de aumentar o limite de lotes, confira se o problema é falta de portas ou o tipo de NAT que o jogo enxerga. São ajustes diferentes no mesmo equipamento.
Checklist de validação dos blocos
Teste uma consulta completa com um login de teste antes de precisar dela num ofício real. A validação cobre a entrega do lote, a linha no servidor e o caminho até o contrato.
Confira com um login de teste antes de ligar os blocos para a base
- Cada bloco entregue aparece no servidor de registros.
- A devolução do bloco também aparece, com o mesmo IP e a mesma faixa.
- Um IP público, uma porta e um horário apontam o login certo.
- Nenhum assinante esgota os blocos no horário de pico.
- A cópia dos registros existe em um segundo lugar.
- O tempo de guarda segue a regra vigente [CONFIRMAR na norma].
Se a devolução não aparecer, o servidor não sabe até quando o bloco foi do assinante. Corrija a exportação primeiro e só depois mexa no tamanho dos lotes.
A Táquion Tech configura a alocação por blocos no CGNAT, monta o servidor de registros com cópia e alarme e testa a consulta com um login real antes de liberar a base.
Perguntas frequentes sobre configuração de port block allocation
Existe um tamanho de bloco ideal para todos?
Não existe. Blocos de 512 portas são um ponto de partida comum, e o ajuste vem do consumo real medido no pico.
MikroTik faz alocação por blocos?
Não de forma nativa. O caminho mais comum em MikroTik é o modo determinístico, com regras geradas por script.
Quanto o registro de CGNAT diminui com blocos?
Muito, porque cada bloco atende dezenas ou centenas de conexões. O valor exato depende do tamanho do bloco e do perfil de uso da base.
O registro de cada bloco ainda precisa de horário?
Sim. Sem horário sincronizado entre o CGNAT, o RADIUS e o servidor, não dá para saber quem tinha o bloco naquele momento.
A guarda dos registros de blocos tem prazo legal?
Tem. Os registros de blocos entram na guarda exigida pelo Marco Civil da Internet [CONFIRMAR na norma]. Calcule o espaço do servidor para esse período com folga.
Serviços ligados a este guia
- Guarda de registros de conexão para provedores Conformidade e Anatel
- Solicitação de blocos IPv4 para provedores IPv6, CGNAT e BNG
- Gestão de abuse para provedores Segurança e anti-DDoS
Fontes
- RFC 6888, Common Requirements for Carrier-Grade NATs (CGNs): requisitos de alocação de portas e registro.
- RFC 6269, Issues with IP Address Sharing: problemas de compartilhar IP, inclusive a identificação do usuário.