Configurações recomendadas#
Aplicar o perfil recomendado#
O arquivo /opt/cgnat/bin/recommended-tuning.set reúne as opções que dependem do servidor:
configure
load merge /opt/cgnat/bin/recommended-tuning.set
compare
commit
Ele define governador de CPU performance, THP never e max-cstate 1; o restante é opcional (comentado no arquivo). Boa parte do ajuste já é automática (sysctl pelo hardware, filas/anéis/IRQs das NICs, conntrack desligado no tráfego encaminhado).
Proteções do dataplane (política)#
| Campo | Padrão | Recomendação |
|---|---|---|
packet_sanity |
ligado | Manter |
max_new_flows_per_second |
5000 | Reduzir (ex. 3000) se há clientes infectados frequentes; 0 desliga |
max_sessions_per_subscriber |
32768 | Ajustar ao perfil do assinante; 0 desliga |
host_protection |
ligado | Manter; host_syn_pps 200, host_udp_pps 2000, host_icmp_pps 100 |
udp_eim |
desligado | Ligar se há reclamação de jogos/chamadas/P2P |
udp_full_cone |
desligado | Só se necessário (NAT aberto para consoles); menos seguro |
max_blocks_per_subscriber |
do pool | 1–16; comece baixo e aumente por necessidade |
fast-forward |
desligado | Habilite por assinante para testar, depois geral; exige XDP nativo |
NICs#
- Uma fila por CPU do nó NUMA da placa (automático;
CGNAT_NIC_QUEUESvazio). - Anel:
CGNAT_NIC_RING_SIZE=4096por padrão; meça antes de reduzir (anel maior tolera rajada; o custo é só memória, pouco relevante). - Perfil
throughput(padrão) vslatency(set cgnat dataplane nic-profile latency). - Mesma placa/VLANs: um único
CGNAT_NIC_INTERFACEScom subinterfaces na política.
CPU e memória#
- Servidor com 8+ CPUs: considere
housekeeping-cpus 0-1eisolated-cpuspara as filas. - SMT:
set system tuning smt disablese a latência previsível importa mais que as CPUs lógicas. - Reiniciar após mudar parâmetros de boot (isolcpus, max_cstate, nosmt).
Sistema#
- Kernel 6.12 do Debian 13; não use o do backports. Firmware do stable é suficiente.
- Não use TuneD (conflita com o tuning próprio).
- Retenção do audit: 1 ano (mínimo legal e padrão). Mantenha backup externo de
/var/lib/cgnat. - Firewall de entrada com
default-action drop, liberando só as redes de gerência eestablished/related(veja Segurança). commit-confirmsempre que mexer em interface/firewall por SSH.- Troque a senha
operadorno primeiro login (o sistema obriga) e crie contas individuais. - Ative a exportação remota de eventos (syslog) para um servidor de log separado.
- Monitore com Prometheus (
deploy/cgnat-alerts.yml) e a barra de alertas do painel.