O que você vai configurar
Este guia mostra como configurar o Flexible NetFlow (FNF) de um roteador Cisco para exportar IPFIX, ou NetFlow v9, ao coletor do EdgeWarden. No IOS-XE você monta quatro peças: flow record, flow exporter, flow monitor e sampler. No IOS-XR as mesmas ideias viram mapas: flow exporter-map, flow monitor-map e sampler-map.
O foco é o que pesa na detecção de DDoS: interfaces de entrada e saída, flags TCP, taxa de amostragem anunciada pelo próprio roteador e timeouts curtos. Com os padrões de fábrica, um flow longo pode levar 30 minutos para ser exportado, e o ataque aparece quando já é tarde.
O EdgeWarden atende Cisco pelos padrões: coleta por NetFlow v9 ou IPFIX e mitigação por BGP FlowSpec ou RTBH. Integrações específicas de fabricante (PBR, templates e contadores) existem hoje para Juniper, Huawei e MikroTik. Para Cisco IOS e IOS-XR, o recurso específico é o terminal SSH aberto a partir do cadastro do dispositivo.
Pré-requisitos
- Coletor do EdgeWarden alcançável a partir do roteador. Neste exemplo,
192.0.2.10, porta 2055/UDP: NetFlow v5, v9 e IPFIX usam a mesma porta. - Uma loopback com IP estável como origem da exportação. Aqui,
Loopback0com198.51.100.1. É esse IP que você vai cadastrar no EdgeWarden. - IOS-XE com
export-protocol ipfix. O recurso "Flexible NetFlow: IPFIX Export Format" entrou no IOS XE 3.7S; em plataformas ou versões sem IPFIX, usenetflow-v9, que o EdgeWarden coleta do mesmo jeito. - SNMP liberado do servidor do EdgeWarden para o roteador, para dar nome às interfaces e medir capacidade.
- Uma vaga na cota de exportadores da licença: Starter 1, Professional 2, Enterprise 10.
Passo 1: flow record no IOS-XE
O record define o que é chave do flow (match) e o que é só contado (collect). Para DDoS, use como chave endereços, protocolo, portas, ToS e interface de entrada; colete interface de saída, flags TCP, TTL mínimo, campos de fragmentação, contadores de 64 bits e timestamps. O IPv6 precisa de um record próprio.
flow record EW-REC-V4
match ipv4 tos
match ipv4 protocol
match ipv4 source address
match ipv4 destination address
match transport source-port
match transport destination-port
match interface input
collect interface output
collect transport tcp flags
collect ipv4 ttl minimum
collect ipv4 fragmentation flags
collect ipv4 fragmentation offset
collect counter bytes long
collect counter packets long
collect timestamp sys-uptime first
collect timestamp sys-uptime last
!
flow record EW-REC-V6
match ipv6 protocol
match ipv6 source address
match ipv6 destination address
match transport source-port
match transport destination-port
match interface input
collect interface output
collect transport tcp flags
collect counter bytes long
collect counter packets long
collect timestamp sys-uptime first
collect timestamp sys-uptime lastNo record IPv4, o TTL mínimo e os campos de fragmentação alimentam os detectores de variação de TTL (anti-spoofing) e de fragment flood. Sem eles, o EdgeWarden avisa que esses detectores ficaram sem dado. Nem toda plataforma IOS-XE aceita todos os collect; se alguma linha for recusada, remova só ela.
Se preferir não montar o record, os registros predefinidos record netflow ipv4 original-input e record netflow ipv6 original-input no flow monitor também servem, mas não trazem TTL mínimo nem fragmentação.
Passo 2: flow exporter
flow exporter EW-EXP
destination 192.0.2.10
source Loopback0
transport udp 2055
export-protocol ipfix
template data timeout 60
option interface-table timeout 300
option sampler-table timeout 60Três padrões de fábrica precisam ser trocados aqui:
transport udp: sem ele, o exporter usa a porta 9995, e o coletor escuta na 2055.export-protocol: o padrão énetflow-v9. Funciona, mas IPFIX é o formato que entrega mais campos ao EdgeWarden.template data timeout: o padrão é 600 s. Sem template o coletor não decodifica os registros, então, depois de um reinício do coletor, você ficaria até 10 minutos sem dados.
O option sampler-table envia a tabela de amostragem por Options Template. Quando o EdgeWarden associa essa tabela aos flows, a taxa anunciada vence o cadastro manual. Mesmo assim, cadastre a taxa no dispositivo: o EdgeWarden aplica a taxa anunciada aos flows do mesmo observation domain, e, se a tabela de sampler não chegar ou vier por outro domain, quem vale é o cadastro. Isso acontece na prática: há capturas de um C8000V com IOS XE 17.18 em que a tabela de sampler sai num observation domain diferente do dos flows. O option interface-table envia o mapa de ifIndex para nome de interface; o EdgeWarden nomeia as interfaces pelo SNMP, então essa linha é opcional.
Passo 3: sampler e flow monitor
sampler EW-SAMP
mode random 1 out-of 1000
!
flow monitor EW-MON-V4
record EW-REC-V4
exporter EW-EXP
cache timeout active 60
cache timeout inactive 15
!
flow monitor EW-MON-V6
record EW-REC-V6
exporter EW-EXP
cache timeout active 60
cache timeout inactive 15O cache timeout active padrão é 1800 s. Com 60 s, um ataque em curso é reportado a cada minuto; valores menores detectam mais rápido, mas aumentam CPU e volume de exportação. O inativo de 15 s já é o padrão e está aqui só para ficar explícito.
A faixa do mode random 1 out-of varia por plataforma: a referência de comandos do IOS cita 2 a 32768, e os switches Catalyst documentam faixas menores. Em bordas de 10G a 100G, 1:1000 é um ponto de partida comum.
Passo 4: aplicar nas interfaces
interface GigabitEthernet0/0/1
ip flow monitor EW-MON-V4 sampler EW-SAMP input
ipv6 flow monitor EW-MON-V6 sampler EW-SAMP inputAplique input em todas as interfaces que interessam: trânsito, IX e clientes. Assim cada pacote é contado uma vez, na porta onde entra, e você enxerga tanto o ataque que chega quanto o cliente que vira refletor.
Passo 5: o equivalente no IOS-XR
No IOS-XR, a versão do protocolo é um submodo do exporter-map, e as opções e o template ficam dentro dele.
flow exporter-map EW-EXP
version ipfix
template data timeout 60
options interface-table timeout 300
options sampler-table timeout 60
!
transport udp 2055
source Loopback0
destination 192.0.2.10
!
flow monitor-map EW-MON-V4
record ipv4
exporter EW-EXP
cache timeout active 60
cache timeout inactive 15
!
flow monitor-map EW-MON-V6
record ipv6
exporter EW-EXP
cache timeout active 60
cache timeout inactive 15
!
sampler-map EW-SAMP
random 1 out-of 1000
!
interface TenGigE0/0/0/1
flow ipv4 monitor EW-MON-V4 sampler EW-SAMP ingress
flow ipv6 monitor EW-MON-V6 sampler EW-SAMP ingress
!
commitDiferenças que importam no IOS-XR:
- Sem o comando
options, as tabelas de opções não são exportadas (timeout 0). No IPFIX do IOS-XR, o registro da tabela de sampler leva o N de 1 em N no IE 305, sem o IE 306; os IEs 309 e 310 só entraram nas releases 7.8.2 e 7.9.1 (defeito CSCwe26529). O EdgeWarden só calcula a taxa pelo IE 305 quando o IE 306 vem junto, então no IOS-XR a taxa não é detectada: a que vale é a cadastrada no dispositivo. - O
record ipv4e orecord ipv6do IOS-XR têm campos fixos. Se o EdgeWarden avisar que falta algum campo, confira o que o record da sua plataforma exporta. random 1 out-ofaceita de 1 a 65535, mas algumas plataformas (NCS 540 e 560, por exemplo) documentam taxas específicas. Confira o guia da sua plataforma e release.- Em várias plataformas só a direção
ingressé suportada. - Nem toda combinação de plataforma e release aceita
version ipfix. Se o comando não existir, useversion v9. - O exporter fica inativo se a interface de origem não tiver IP, e a Cisco recomenda não exportar pela interface de gerência.
Verificação no roteador
show flow exporter EW-EXP statistics
Flow Exporter EW-EXP:
Packet send statistics (last cleared 00:05:12 ago):
Successfully sent: 1830 (2213464 bytes)
show flow monitor EW-MON-V4 cache format table
show sampler EW-SAMP
show flow interface GigabitEthernet0/0/1show flow exporter-map EW-EXP
TransportDestPort : 2055
Export Version: IPFIX
show flow exporter EW-EXP location 0/0/CPU0
show flow monitor EW-MON-V4 cache location 0/0/CPU0
show sampler-map EW-SAMPNo IOS-XR, troque 0/0/CPU0 pelo nó da linecard onde está a interface monitorada.
Verificação no EdgeWarden
- Em Configurações → Rede → Dispositivos, cadastre o roteador com o Endereço IP da
Loopback0(198.51.100.1). As telas casam o IP de origem dos flows com esse campo. - Preencha a Taxa de Amostragem de Flow com
1000, o mesmo valor do sampler, mesmo usandooption sampler-table. Quando a taxa anunciada é lida, a tela mostra o selo detectado; se o cadastro divergir, aparece o aviso de valor ignorado. O selo mostra que a tabela chegou, não que ela foi aplicada aos flows: a prova de que a multiplicação está certa é o passo 5. - Configure o SNMP no mesmo cadastro. Interface sem registro SNMP fica fora da tela de Interfaces.
- Em 1 a 2 minutos os flows começam a aparecer. Abra a tela Flows e filtre pelo roteador.
- Compare o volume de uma interface com o contador SNMP no painel Fluxo × SNMP nas interfaces, da tela Análise do instante. Se o flow mostrar exatamente 1/1000 do SNMP, a taxa não está sendo aplicada.
O EdgeWarden também informa quais campos o roteador não exporta e qual detector fica cego por isso. Se nada chegar, confira no servidor:
sudo tcpdump -i any -n udp port 2055 and host 198.51.100.1
sudo journalctl -u flowspec-core -f
sudo ufw allow from 198.51.100.1 to any port 2055 proto udpArmadilhas comuns
| Sintoma | Causa provável | Correção |
|---|---|---|
| Nada chega na 2055 | Porta padrão 9995 do exporter | transport udp 2055 |
Interfaces sem nome (if:12) | Exportação sai de um IP diferente do cadastrado | source Loopback0 e o mesmo IP no cadastro |
| Volume 1000 vezes menor que o SNMP | Taxa não cadastrada e tabela de sampler ausente ou não associada aos flows | Taxa 1000 no cadastro, igual ao sampler, e option sampler-table (XR: options sampler-table) |
| Ataque aparece minutos depois | cache timeout active padrão de 1800 s | cache timeout active 60 |
| Dados somem após reiniciar o coletor | Template reenviado a cada 600 s | template data timeout 60 |
| IOS-XE recusa trocar o record do monitor, ou pôr ou tirar o sampler da interface | Monitor ainda aplicado nas interfaces | no ip flow monitor (com o mesmo sampler e input) nas interfaces, alterar e reaplicar |
| Roteador some sem erro na tela | Cota de exportadores da licença | Conferir o plano; o excedente é descartado antes do parse |
Qualquer um que alcance a 2055/UDP pode injetar flows forjados e envenenar a detecção. Libere a porta só para os IPs dos seus roteadores.
O ciclo de análise do EdgeWarden é de 10 s, e com NetFlow e IPFIX soma-se o active timeout do roteador. Para rajadas sub-segundo, o caminho é sFlow ou o Packet Sensor.
Próximos passos
Com os flows chegando, o próximo passo é ajustar thresholds e preparar a mitigação por FlowSpec ou RTBH. Se algo não aparecer, siga o checklist de diagnóstico de flows. Para comparar com outro fabricante, veja Traffic Flow no MikroTik RouterOS. Para subir o servidor, use o guia de instalação, e para entender o que cada detector procura, a página de detecção de ataques.