O que você vai ajustar
Três parâmetros do exportador decidem se um ataque aparece no EdgeWarden em segundos, em meia hora ou nunca:
- Taxa de amostragem: em 1:N, o roteador aproveita 1 de cada N pacotes e ignora os outros N−1. Define o menor ataque que você consegue enxergar.
- Active e inactive timeout: quanto tempo um flow fica no cache do roteador antes de ser exportado. Define a latência da detecção.
- Reenvio de templates e options: com que frequência o roteador repete o template e a taxa de amostragem. Define quanto tempo os números ficam errados depois de um reinício.
Pré-requisitos
- Roteador já exportando NetFlow v9 ou IPFIX para o coletor
192.0.2.10, porta 2055/UDP, a partir de um IP fixo (neste exemplo, a loopback198.51.100.1). - Roteador cadastrado em Configurações → Rede → Dispositivos com esse IP e com SNMP, para comparar o volume do flow com o contador da interface.
- Uma janela de manutenção: mudar a amostragem altera todos os gráficos daquele exportador.
Como o EdgeWarden compensa a amostragem
O coletor multiplica bytes e pacotes pela taxa antes de gravar; as telas nunca multiplicam de novo. Um único flow amostrado a 1:1000 aparece na tela Flows já com o valor multiplicado por 1000. A taxa vem de uma de três fontes:
- Anunciada pelo roteador: NetFlow v9 e IPFIX podem enviar a taxa por Options Template (o EdgeWarden lê os campos 34, 50, 305 e 306). Quando existe, esse valor vence sempre. Se o roteador anuncia taxas diferentes por interface e direção, cada flow recebe a taxa da sua interface.
- Cadastrada à mão: o campo Taxa de Amostragem de Flow do dispositivo (
1000= 1:1000). Vale quando o roteador não anuncia, é um valor único por exportador e é recarregado sem reiniciar o serviço. - Embutida no sFlow: cada amostra traz a própria taxa.
Com NetFlow v5, o EdgeWarden não aplica a taxa automaticamente. Sem o cadastro manual, um roteador em 1:1000 aparece com um milésimo do tráfego real e todos os thresholds perdem o sentido.
Passo 1: escolher a taxa de amostragem
Com amostragem 1:N, um tráfego de P pacotes por segundo gera cerca de P/N amostras por segundo. O erro relativo da estimativa fica em torno de 1/√n, sendo n o número de amostras na janela. No ciclo de análise padrão de 10 segundos:
| Tráfego contra o alvo | Amostras por ciclo em 1:100 | Amostras por ciclo em 1:1000 |
|---|---|---|
| 1.000 pps | 100 (erro ~10%) | 10 (erro ~32%) |
| 10.000 pps | 1.000 (erro ~3%) | 100 (erro ~10%) |
| 100.000 pps | 10.000 (erro ~1%) | 1.000 (erro ~3%) |
Uma regra prática: para ter ao menos 100 amostras por ciclo, use N no máximo igual a um décimo do menor ataque, em pps, que você precisa ver. Para enxergar 10.000 pps, 1:1000 basta; para 1.000 pps, só 1:100 ou menos.
Fluxos pequenos sofrem mais. Um destino que recebe k pacotes, com k bem menor que N, tem chance de cerca de k/N de aparecer: a 1:1000, um host que recebe 50 pacotes de uma varredura aparece em uma de cada 20 vezes. É por isso que o carpet bomb, com pouco tráfego por IP, deve ser tratado com regras de bloco (Subnet/Bloco), que somam o prefixo inteiro.
O custo vai para o exportador: N menor (amostragem mais densa) significa mais entradas no cache, mais pacotes de exportação e mais CPU, sobretudo quando o flow é feito em software. Plataformas com flow em hardware têm limites de exportação próprios; confira o do seu modelo. Valores iniciais sugeridos, supondo pacote médio de 1.000 bytes:
| Tráfego de pico do roteador | Taxa inicial | Amostras/s no pico | Menor ataque com ~100 amostras por ciclo |
|---|---|---|---|
| até 1 Gbps | 1:100 | ~1.250 | 1.000 pps |
| 1 a 10 Gbps | 1:500 | ~2.500 | 5.000 pps |
| 10 a 100 Gbps | 1:1000 | ~12.500 | 10.000 pps |
| acima de 100 Gbps | 1:2000 a 1:4000 | ~3.000 a 6.000 a cada 100 Gbps | 20.000 a 40.000 pps |
A faixa aceita varia por plataforma: Junos de 1 a 16.000.000 (o MX150 avisa abaixo de 1000), IOS-XE de 2 a 32768 na referência geral, IOS-XR de 1 a 65535 e VRP de 1 a 65535. Alguns modelos aceitam só parte da faixa.
Passo 2: ajustar active e inactive timeout
O active timeout exporta flows longos em intervalos fixos. O inactive timeout exporta flows que pararam de receber pacotes. Os dois pesam na detecção:
- Um ataque com 5-tupla estável, como uma inundação de poucas origens fixas, só é reportado quando vence o active timeout.
- Um ataque com origens e portas forjadas cria um flow novo a cada pacote amostrado. Esses flows têm um pacote só e saem pelo inactive timeout.
A latência no pior caso é o active timeout mais um ciclo de análise (10 s por padrão, configurável até 1 s). O padrão de vários fabricantes é 30 minutos, o que torna a detecção inútil. Use 60 s de active e 15 s de inactive; desça o active para 30 s se a CPU do roteador permitir. Abaixo disso o ganho é pequeno e a carga cresce. Para reagir em menos de 1 segundo, use sFlow ou o Packet Sensor.
| Plataforma | Active (padrão) | Inactive (padrão) | Faixa |
|---|---|---|---|
| Junos (inline J-Flow, template IPFIX) | 60 s | 60 s | 10 a 600 s |
| IOS-XE (Flexible NetFlow) | 1800 s | 15 s | 1 a 604800 s |
| IOS-XR | 1800 s | 15 s | conforme a plataforma |
| VRP (NE40E/NE8000) | 30 min em várias versões | conforme a versão | active em minutos ou, nas versões novas, em segundos |
| RouterOS v7 | 30m | 15s | sem faixa publicada |
Passo 3: reenviar templates e a taxa com frequência
NetFlow v9 e IPFIX sobre UDP dependem do template para decodificar os registros. Depois de um reinício do coletor ou do roteador, os registros que chegam antes do template se perdem, e os flows que chegam antes do options template não têm taxa anunciada. Nesse intervalo o EdgeWarden usa o valor cadastrado; sem cadastro, o tráfego aparece dividido pela taxa e o detector de carpet bomb adia o aprendizado da média por até 30 minutos.
Os padrões são longos: 600 s no IOS-XE e no Junos, 1800 s no IOS-XR. Use 60 s. Os blocos abaixo mostram só os parâmetros deste guia, sobre a configuração dos guias de cada fabricante.
set forwarding-options sampling instance ew-sampling input rate 1000
set services flow-monitoring version-ipfix template ew-ipv4 flow-active-timeout 60
set services flow-monitoring version-ipfix template ew-ipv4 flow-inactive-timeout 15
set services flow-monitoring version-ipfix template ew-ipv4 template-refresh-rate seconds 60
set services flow-monitoring version-ipfix template ew-ipv4 option-refresh-rate seconds 60Repita as linhas do template para o ew-ipv6. O options data do Junos inclui o intervalo de amostragem (campo 34).
sampler EW-SAMP
mode random 1 out-of 1000
!
flow monitor EW-MON-V4
cache timeout active 60
cache timeout inactive 15
!
flow exporter EW-EXP
template data timeout 60
option sampler-table timeout 60sampler-map EW-SAMP
random 1 out-of 1000
!
flow monitor-map EW-MON-V4
cache timeout active 60
cache timeout inactive 15
!
flow exporter-map EW-EXP
version ipfix
template data timeout 60
options sampler-table timeout 60
!
!
commitNos dois Cisco, repita os timeouts no EW-MON-V6.
ip netstream sampler fix-packets 1000 inbound
ip netstream sampler fix-packets 1000 outbound
ip netstream timeout active interval-second 60
ip netstream timeout inactive 15
ip netstream export template timeout-rate 1
ip netstream export template option sampler
ip netstream export template option timeout-rate 1
commitNo VRP, interval-second existe nas versões recentes do NE8000 e do NE40E; em versões antigas o active timeout é em minutos (ip netstream timeout active 1). Os timeout-rate são em minutos. Repita com ipv6 netstream para IPv6.
# 1 pacote amostrado, 999 ignorados
/ip traffic-flow set packet-sampling=yes sampling-interval=1 sampling-space=999 active-flow-timeout=1m inactive-flow-timeout=15sO RouterOS reenvia o template a cada 20 pacotes por padrão (v9-template-refresh, em /ip traffic-flow target), mas a documentação não descreve o anúncio da taxa: no MikroTik, o cadastro manual é obrigatório.
Passo 4: cadastrar a taxa no EdgeWarden
Em Configurações → Rede → Dispositivos, edite o roteador e preencha Taxa de Amostragem de Flow com o mesmo N do roteador (1000 para 1:1000; 1 sem amostragem). Faça isso mesmo quando o roteador anuncia a taxa: o valor anunciado continua vencendo, e o cadastro cobre a janela depois de um reinício, até o options template chegar.
A tela mostra o selo detectado (taxa anunciada, só em v9 e IPFIX) ou manual. Se o anunciado divergir do cadastro, aparece o aviso cadastro: 1:N (ignorado).
Mudou a taxa no roteador? Mude o cadastro na mesma janela. Em exportadores que não anunciam, o cadastro antigo multiplica pelo valor errado e os thresholds daquele roteador perdem o sentido.
Verificação no roteador
| Plataforma | Comando | O que conferir |
|---|---|---|
| Junos | show services accounting flow inline-jflow fpc-slot 0 | Flows Active Timed Out e Flows Inactive Timed Out crescendo |
| IOS-XE | show flow monitor EW-MON-V4 e show sampler EW-SAMP | Active e inactive timeout; taxa do sampler |
| IOS-XR | show flow monitor-map EW-MON-V4 e show sampler-map EW-SAMP | Timeouts; Random (1 out of 1000 Pkts) |
| VRP | display netstream global | Parâmetros globais do NetStream |
| RouterOS | /ip traffic-flow print | packet-sampling, sampling-space e timeouts |
Verificação no EdgeWarden
sudo tcpdump -i any -n -c 5 udp port 2055 and host 198.51.100.1
10:15:02.481233 ens18 In IP 198.51.100.1.50123 > 192.0.2.10.2055: UDP, length 1380
sudo journalctl -u flowspec-core -f- Em Configurações → Rede → Dispositivos, confira o selo detectado ou manual e se não há aviso de cadastro ignorado.
- Em 1 a 2 minutos os flows aparecem na tela Flows, já multiplicados pela taxa.
- Na tela Análise do instante, o painel Fluxo × SNMP nas interfaces compara o volume do flow com o contador SNMP. Se o flow mostrar 1/N do SNMP, a taxa está faltando; se mostrar N vezes, foi aplicada duas vezes.
Armadilhas comuns
- Timeout padrão de 30 minutos. É a causa mais comum de "o ataque só apareceu depois que acabou".
- Taxas diferentes por direção. Alguns roteadores amostram entrada e saída da mesma porta com taxas diferentes. Se a taxa é anunciada por interface, o EdgeWarden aplica cada uma; pelo cadastro, nenhum valor acerta as duas. Valide pelo SNMP e trate a direção divergente como estimativa.
- Options template desligado. No VRP, sem
ip netstream export template option samplero NE não anuncia a taxa; no Cisco, semoption sampler-table. - Amostragem densa demais. Com N pequeno, o exportador satura antes do coletor: cache cheio, erros de exportação, CPU alta. Reduza o N em etapas, acompanhando a CPU. No servidor, confira descartes com
nstat -az | grep -iE "Udp.*(InErrors|RcvbufErrors)". - Ataques pequenos invisíveis. Se precisa ver ataques abaixo do que a taxa permite, use o Packet Sensor em vez de levar o roteador ao limite.
Próximos passos
Para escolher o protocolo antes de ajustar os números, leia NetFlow, IPFIX ou sFlow: qual escolher. A configuração completa por fabricante está nos guias de Juniper MX, Huawei NE40E/NE8000, Cisco IOS-XE e IOS-XR e MikroTik RouterOS v7. Se os flows não aparecerem, siga o diagnóstico passo a passo. Veja em Recursos como o EdgeWarden usa esses flows para detectar e mitigar ataques.