O daemon cgnatd#
Serviço systemd responsável pelo plano de controle do Portgrid:
- Carrega e gerencia o dataplane XDP.
- Mantém pools, políticas, assinantes e blocos, e os sincroniza com o dataplane.
- Aloca blocos de portas sob demanda e recupera os ociosos.
- Registra a auditoria e o histórico de métricas.
- Exporta eventos por syslog para um servidor externo.
- Atende UPnP, PCP e NAT-PMP dos roteadores dos clientes.
- Confere a licença periodicamente.
- Expõe a API REST, o painel web e as métricas Prometheus.
- Mantém sinais de camada 2 que evitam inundação de tráfego pelo switch.
Operação do serviço#
systemctl status cgnatd
journalctl -u cgnatd -f # ou: show log cgnatd
restart cgnatd # na CLI (administrador)
API REST#
A API (/api/v1) cobre tudo que o painel faz: estado geral, pools, políticas, assinantes, blocos, lista de bloqueio, NAT estático, port-forward, auditoria e exportação, histórico, diagnóstico e licença. Usa autenticação por token e respeita o perfil do usuário (somente leitura não altera nada).
TOKEN=$(curl -s -X POST http://127.0.0.1:8080/api/v1/auth/login \
-H 'Content-Type: application/json' -d '{"username":"operador","password":"..."}' | jq -r .token)
curl -s -H "Authorization: Bearer $TOKEN" http://127.0.0.1:8080/api/v1/summary
Saúde: /healthz e /readyz. Métricas: /metrics.
Monitoramento#
O endpoint /metrics entrega, entre outras, cgnat_dataplane_events_total{event="..."} e as métricas de licença. Há regras de alerta de exemplo para o Prometheus (descarte de pacotes, licença próxima do fim ou inválida). O Prometheus não vem na ISO: apt install prometheus.