Nenhum flow aparece no EdgeWarden? Checklist de diagnóstico passo a passo

Do tcpdump à cota da licença: um roteiro em oito passos para descobrir por que o NetFlow, o IPFIX ou o sFlow do roteador não chega às telas do EdgeWarden.

Por que isso importa

Sem flow, não há detecção de DDoS. Quando o dashboard fica vazio, a causa quase sempre está em um de poucos pontos: rede, firewall, porta, template, licença, cadastro, buffer do kernel ou relógio.

Os passos seguem o caminho do pacote, do roteador até a tela. Faça-os em ordem.

Antes de começar

  • Acesso root (ou sudo) ao servidor do EdgeWarden, instalado conforme o guia de instalação.
  • Acesso de leitura ao roteador exportador.
  • O IP de origem que o roteador usa para exportar. Nos exemplos: coletor 192.0.2.10 e roteador 198.51.100.1.
  • As portas do coletor: 2055/UDP para NetFlow v5, v9 e IPFIX, e 6343/UDP para sFlow v5.

Passo 1: os pacotes chegam ao servidor?

No servidor do EdgeWarden:

Servidor: capturar a exportação
tcpdump -i any -n -c 20 'udp port 2055 or udp port 6343'

Se nada aparece em um ou dois minutos, o problema está antes do servidor: configuração de exportação no roteador, rota até 192.0.2.10, ACL ou firewall no caminho (inclusive o security group do provedor, se o servidor estiver em nuvem). O firewall do próprio servidor não explica um tcpdump vazio, porque a captura acontece antes do netfilter. Se os pacotes aparecem, o problema está dentro do servidor: siga para o passo 2.

Passo 2: firewall e porta de escuta

Confira as regras do ufw criadas pelo guia de instalação, o firewall do servidor do próprio EdgeWarden e se o coletor está escutando:

Servidor: firewall e sockets do coletor
ufw status
nft list table inet flowspec_host
ss -ulnpme | grep -A1 -E "2055|6343"

O EdgeWarden tem firewall do host próprio (Segurança → Firewall do Servidor), aplicado pelo core na tabela nftables inet flowspec_host. Uma regra ali bloqueando a 2055 ou a 6343, ou política padrão de descarte sem liberar o roteador, derruba os flows mesmo com o ufw certo. Tabela inexistente significa que esse firewall nunca foi aplicado.

O coletor deve aparecer em 0.0.0.0:2055 e 0.0.0.0:6343. Ele recebe por IPv4: aponte a exportação do roteador para o endereço IPv4 do servidor. Se aparecer em 127.0.0.1, o nó está configurado com papel de scrubber, que de propósito não recebe flow de roteador. Se não aparecer nada, veja systemctl status flowspec-core e journalctl -u flowspec-core -n 50. Com o serviço ativo e sem socket, o coletor não conseguiu abrir a porta (por exemplo, outro coletor já ocupa a 2055). Esse erro vai para o log do core, não para o journal: grep -h -i listener /opt/flowspec-analyzer/logs/core.log.* | tail -n 5.

Qualquer um que alcance a 2055/UDP pode injetar flows forjados. Depois que tudo funcionar, restrinja por origem: ufw allow from 198.51.100.1 to any port 2055 proto udp e depois ufw delete allow 2055/udp, porque a regra genérica do guia continua liberando a porta para todos enquanto existir. Faça o mesmo com a 6343 e atualize a regra se o roteador passar a exportar de outro IP.

Passo 3: porta e versão certas

NetFlow e IPFIX dividem a 2055; o sFlow usa a 6343. O coletor identifica a versão pelos dois primeiros bytes do datagrama e descarta o que não reconhece.

O roteador enviaPorta no EdgeWardenPrimeiros bytes do payload
NetFlow v52055/UDP0005
NetFlow v92055/UDP0009
IPFIX2055/UDP000a
sFlow v56343/UDP00000005

Para conferir no próprio pacote, mostre um datagrama em hexadecimal. Num pacote IPv4 sem opções, o payload UDP começa no byte 28: é o sétimo grupo da linha 0x0010.

Servidor: identificar a versão exportada
tcpdump -i any -n -X -c 1 udp port 2055
        0x0010:  c000 020a c350 0807 05dc 0000 000a 05d4  .....P..........

No exemplo, 0807 é a porta 2055 e 000a indica IPFIX. sFlow enviado para a 2055 (ou NetFlow para a 6343) chega ao servidor, mas nunca vira flow.

Passo 4: templates de NetFlow v9 e IPFIX

No v9 e no IPFIX, o registro de dados só pode ser decodificado depois que o template correspondente chega. Logo após configurar o roteador ou reiniciar o flowspec-core, os pacotes chegam, mas nada aparece até o próximo envio de template. O intervalo depende do fabricante:

PlataformaOnde ajustarPadrão documentado
Juniper (Junos)template-refresh-rate seconds no template de version-ipfix ou version9600 s no Junos OS; 60 s no Junos OS Evolved
Cisco IOS XEtemplate data timeout no flow exporter600 s
Cisco IOS XRtemplate data timeout no submodo version v9 ou version ipfix do flow exporter-mapvaria por versão (1800 s na referência do ASR 9000); confira com show flow exporter-map
MikroTik RouterOSv9-template-refresh e v9-template-timeout em /ip traffic-flow target20 pacotes
Huawei VRPip netstream export template timeout-rate (minutos)varia por linha; 30 min na documentação da linha AR

Um intervalo entre 60 s e 300 s é um bom equilíbrio. Com o roteador recém-configurado, espere pelo menos um ciclo de template.

Passo 5: cota de exportadores da licença

Cada plano aceita um número fixo de exportadores: Starter 1, Professional 2 e Enterprise 10. As vagas são ocupadas na ordem em que os exportadores começam a enviar. Pacote de exportador além da cota é descartado antes do parse, sem erro na tela. O core grava as próprias mensagens em /opt/flowspec-analyzer/logs/, um arquivo por dia (o journalctl mostra só a partida e as quedas do serviço). Procure lá:

Servidor: exportadores aceitos e recusados
grep -h -i exporter /opt/flowspec-analyzer/logs/core.log.* | tail -n 20

A linha Exporter 198.51.100.1 registrado (1/2 vagas da licença) confirma que o roteador foi aceito. Já Exporter 198.51.100.2 IGNORADO — limite de 2 exporter(s) do plano de licença atingido explica o silêncio. Cada linha sai uma vez por execução do core e os logs antigos são apagados após alguns dias; se nenhuma aparecer, systemctl restart flowspec-core registra de novo. Confira o plano em Configurações → Sistema → Licença.

Um roteador de laboratório ou de borda secundário apontado para o coletor também ocupa vaga, assim como cada IP de origem diferente do mesmo roteador. As vagas ficam na memória do core: depois de remover a exportação dos equipamentos indesejados, rode systemctl restart flowspec-core para liberá-las.

Passo 6: cadastro e IP de origem

Cadastre o roteador em Configurações → Rede → Dispositivos. O campo Endereço IP precisa ser exatamente o IP de origem dos pacotes que você viu no passo 1. Se o roteador exporta de uma loopback diferente da cadastrada, os flows chegam, mas as interfaces aparecem como if:12 em vez do nome, o tráfego por interface some e a taxa de amostragem cadastrada não é aplicada.

O cadastro também define:

  • Amostragem: em NetFlow v5 a taxa precisa ser cadastrada; em v9 e IPFIX, a taxa anunciada pelo roteador vence a cadastrada.
  • SNMP: a tela de Interfaces cruza o flow com o SNMP. Interface sem SNMP desaparece da tela, mesmo com flow chegando.

Passo 7: descarte de UDP no kernel

Se os pacotes chegam mas parte do tráfego some, o kernel pode estar descartando datagramas por falta de buffer. O core pede 16 MB por socket; sem o sysctl do guia de instalação, o pedido é truncado e o descarte é silencioso.

Servidor: buffer do socket e descarte de UDP
ss -ulnpme | grep -A1 -E "2055|6343"
nstat -az | grep -iE "Udp.*(InErrors|RcvbufErrors)"
UdpInErrors                     0                  0.0
UdpRcvbufErrors                 0                  0.0

No ss, o valor certo é rb33554432 (o kernel dobra os 16 MB pedidos). Se aparecer rb425984, o arquivo /etc/sysctl.d/99-flowspec-tuning.conf do guia não foi aplicado: aplique-o com sysctl --system e reinicie o flowspec-core. Os contadores do nstat não podem crescer com o tempo. Se o kernel está limpo e ainda falta tráfego, o descarte pode ser dentro do core: procure Canal de flows cheio com grep -h "Canal de flows cheio" /opt/flowspec-analyzer/logs/core.log.*.

Passo 8: relógio e fuso horário

No NetFlow e no IPFIX, o EdgeWarden data o flow com o horário informado pelo roteador. Roteador sem NTP, com horas ou dias de diferença, grava flows fora da janela das telas. O fuso do roteador não interfere, porque o horário viaja em UTC; o erro clássico é o relógio acertado à mão com a hora local, que no horário de Brasília desloca os flows em 3 horas. No sFlow vale o relógio do servidor. Sincronize servidor e roteador com o mesmo NTP.

Servidor: relógio sincronizado
timedatectl status
System clock synchronized: yes

Verificação no roteador e no EdgeWarden

No roteador, confirme que o contador de pacotes exportados está subindo. Os comandos mudam por fabricante e, em alguns casos, por plataforma:

PlataformaComando
Juniper MX (inline)show services accounting flow inline-jflow fpc-slot 0
Cisco IOS XEshow flow exporter statistics
Cisco IOS XRshow flow exporter location 0/0/CPU0
MikroTik RouterOS/ip traffic-flow print e /ip traffic-flow target print
Huawei NE40E/NE8000display ip netstream statistics slot 1

Ajuste o número de slot e a localização ao seu chassi. No EdgeWarden:

  1. Em Configurações → Rede → Dispositivos, confira se o roteador está cadastrado com o IP de origem correto e se a amostragem mostra o selo detectado (o roteador anuncia a taxa por v9/IPFIX) ou manual (vale a taxa cadastrada).
  2. Espere 1 a 2 minutos, abra a tela Flows e preencha o filtro Exporter IP com o IP de origem do roteador: os registros devem aparecer.
  3. Confira o log do core. Depois de cerca de 50 mil flows (somando todos os exportadores), ele avisa uma vez se nenhum flow traz campos como minimumTTL (IE 52), fragmentOffset/fragmentFlags (IE 88/197) ou tcpControlBits (IE 6), e qual detector fica inerte: procure com grep -h INERTE /opt/flowspec-analyzer/logs/core.log.*. Não é ausência de ataque, é ausência de dado: habilite o campo no template do roteador.

Armadilhas comuns

  • Active timeout longo: fluxos longos só são exportados quando o active timeout vence. No MikroTik o padrão é 30 minutos; use /ip traffic-flow set active-flow-timeout=1m. Cerca de 60 s é a recomendação comum.
  • Firewall stateful próprio: com regras nftables e conntrack, isente as portas de flow com udp dport { 2055, 6343 } notrack, como indica o guia de instalação.
  • Volume dividido ou multiplicado: se o flow mostra exatamente 1/N do SNMP, falta a taxa de amostragem; se mostra N×, ela foi aplicada duas vezes. Logo depois de reiniciar o core, v9 e IPFIX sem taxa cadastrada ficam em 1:1 até o roteador reenviar o options template.
  • Ajuste de sysctl que some: o updater reescreve 99-flowspec-tuning.conf. Ponha valores próprios em /etc/sysctl.d/99-zz-meus-ajustes.conf, lido depois e que vence.

Se nada aparecer, guarde a saída do tcpdump e do nstat e o log do dia em /opt/flowspec-analyzer/logs/ antes de abrir um chamado.

Próximos passos

Com os flows chegando, configure a exportação com os campos completos seguindo o guia do seu fabricante: Juniper MX, Cisco IOS-XE e IOS-XR, Huawei NE40E/NE8000 ou MikroTik RouterOS v7. Para acertar a taxa de amostragem e o active timeout, leia Amostragem e timeouts de NetFlow e IPFIX sem perder ataques. Para revisar portas, buffers e serviços, volte ao guia de instalação, e veja em Recursos como o EdgeWarden usa esses dados para detectar ataques.

Artigos relacionados

Todos os artigos

Quer ver esses flows no EdgeWarden?

Peça uma demonstração com a exportação da sua própria rede, ou siga o guia de instalação para subir o coletor.