Estrutura do sistema#
Visão geral#
Assinantes ──► Concentrador (BNG) ──► [ Portgrid: XDP na placa de rede ] ──► Internet
│
Plano de controle (cgnatd)
│
Painel web · CLI · API · Prometheus
O Portgrid tem duas partes que trabalham juntas:
- Plano de dados (XDP/eBPF): traduz cada pacote no driver da placa, em velocidade de linha.
- Plano de controle (
cgnatd): decide quem recebe qual bloco de portas, mantém a auditoria, atende a API e a licença.
O painel, a CLI e o Prometheus são clientes do plano de controle: nenhum deles fica no caminho do tráfego.
Componentes#
| Componente | Função |
|---|---|
| Dataplane XDP | NAT, filtros, proteções e fast-forward |
cgnatd |
Alocação de blocos, API REST, métricas, auditoria, histórico, UPnP/PCP, licença |
cgnatsh |
CLI de configuração e operação (shell do usuário operador) |
cgnatctl |
Cliente de linha de comando da API |
| Painel web | Interface de monitoramento e operação |
| Serviços de ajuste | Tuning de kernel e das placas, aplicado no boot |
| Atualizador | Atualização manual ou noturna, com rollback |
Serviços no servidor#
| Serviço | Função |
|---|---|
cgnatd |
Daemon principal |
portgrid-tuning |
Parâmetros de sistema pelo hardware (boot) |
cgnat-nic-tuning |
Filas, anéis e interrupções das placas do dataplane |
cgnatsh-routes |
Rotas estáticas da CLI no boot |
cgnat-backup (timer) |
Backup horário do estado |
portgrid-updater (timer) |
Atualizador noturno (opcional) |
Onde ficam os dados#
| Caminho | Conteúdo |
|---|---|
/etc/cgnat/cgnatd.env |
Configuração do daemon |
/var/lib/cgnat/ |
Estado, auditoria e histórico |
/etc/cgnatsh/ |
Firewall e rotas da CLI |
/etc/portgrid/ |
Opções de tuning e atualizador |
A CLI mostra o estado real
A CLI não mantém banco próprio: lê a configuração diretamente do sistema e do cgnatd. O que aparece em show configuration é o que está em execução.
Caminho de um pacote#
- O pacote do assinante chega à placa e é analisado pelo XDP.
- O Portgrid valida o pacote e confere licença, lista de bloqueio e limites do assinante.
- O assinante usa uma porta do seu bloco; se ainda não tem bloco, o
cgnatdo aloca sob demanda. - O endereço é traduzido e o pacote segue para a internet; a resposta volta pelo mesmo registro.
- Com o fast-forward ligado, o pacote já sai direto pela placa correta, sem passar pela pilha do sistema.
Veja Dataplane.