Portgrid Docs v0.1.36

Dataplane XDP/eBPF#

O dataplane roda dentro do driver da placa de rede (XDP), antes da pilha de rede do Linux. Isso elimina a maior parte do custo por pacote e permite tradução em velocidade de linha com poucas CPUs. É carregado e gerenciado automaticamente pelo cgnatd, nas interfaces definidas em CGNAT_NIC_INTERFACES, em modo nativo (ou genérico, para testes, quando o driver não suporta).

Recursos#

  • NAT44 de TCP, UDP e ICMP com timeouts por estado de conexão.
  • Blocos de portas por assinante, com escolha de porta embaralhada.
  • UDP EIM e full cone opcionais (RFC 4787).
  • Hairpin: assinantes se acessam pelo IP público.
  • Fragmentos IP traduzidos corretamente.
  • NAT estático e port-forward.
  • UPnP IGD, PCP e NAT-PMP para jogos, câmeras e aplicações P2P.
  • Proteções: pacotes inválidos, limite de fluxos novos por segundo, limite de sessões por assinante, proteção do servidor e lista de bloqueio.
  • Observabilidade: contadores por CPU, motivos de descarte e observação de um IP específico (watch).
  • Fast-forward (opcional, desligado por padrão).

Fast-forward#

Normalmente o pacote traduzido é devolvido ao sistema, que escolhe a rota. Com fast-forward enable, o Portgrid decide a saída por conta própria e transmite o pacote direto pela placa, reduzindo ainda mais a latência e o uso de CPU.

Requisitos e efeitos

Exige XDP nativo nas duas placas. O firewall forward e o tcpdump na placa de saída deixam de enxergar o tráfego traduzido. Os indicadores de tráfego continuam corretos.

  • Pode ser ligado para um assinante (set cgnat policy X fast-forward subscriber 100.64.1.5) antes de generalizar.
  • Um watchdog suspende o fast-forward sozinho se o tráfego cair de forma anormal logo após ligar (CGNAT_FAST_WATCHDOG_DROP_PERCENT, padrão 50%). Retome pela tela Visão geral ou pela API.
  • Se faltar vizinho ou rota para o destino, o pacote cai automaticamente no caminho normal.

Continuidade de serviço#

As sessões ficam em memória do kernel e sobrevivem ao reinício do cgnatd. Opcionalmente o próprio XDP permanece ativo com o daemon parado. Para encerrar o NAT de fato: request cgnat detach.

Contadores#

Veja Contadores do dataplane.

Portgrid v0.1.36 · gerado em 04/10/2026 17:50 · © Portgrid · Documentação do produto.