Configuração IPFIX do Juniper MX comentada linha a linha

Configuração real de inline J-Flow num MX de borda com dois coletores EdgeWarden, explicada bloco a bloco: FPC, templates, amostragem e interfaces.

O que é esta configuração

É a configuração de inline J-Flow de um Juniper MX de borda que exporta IPFIX para dois servidores EdgeWarden ao mesmo tempo. O passo a passo genérico está em Como exportar IPFIX de um Juniper MX para o EdgeWarden. Aqui o foco é explicar o que cada linha faz e por que alguns valores diferem dos do guia.

Os endereços foram trocados por endereços de documentação: coletores 192.0.2.10 e 192.0.2.11, origem da exportação 198.51.100.1. Troque pelos seus antes de colar.

ItemGuiaEsta configuraçãoEfeito
Active timeout do template60 s15 sFlow longo exportado a cada 15 s: detecção mais cedo, mais exportação
Template e option refresh60 s10 sDepois de reiniciar o coletor, os dados voltam a ser decodificados em até 10 s
Amostragem1:10001:500Mais precisão, cerca do dobro de flows
Coletores12Os dois recebem uma cópia de todos os flows
Tabelas de flow (IPv4 e IPv6)8 e 410 e 52.621.440 entradas IPv4 e 1.310.720 IPv6

Chassi e FPC

Junos: chassi e FPC 0
set chassis network-services enhanced-ip
set chassis fpc 0 sampling-instance EDGEWARDEN
set chassis fpc 0 inline-services flow-table-size ipv4-flow-table-size 10
set chassis fpc 0 inline-services flow-table-size ipv6-flow-table-size 5
  • network-services enhanced-ip: modo de rede do chassi para as MPC Trio. Se show chassis network-services já mostra Enhanced-IP, a linha só deixa o modo explícito. Mudar esse modo exige reiniciar o roteador.
  • sampling-instance EDGEWARDEN: associa a instância de amostragem à FPC 0. Sem essa linha a instância fica inativa e nada é exportado. Num MX com várias FPC, repita para cada FPC que tem interface amostrada.
  • flow-table-size: cada unidade vale 256K entradas. 10 unidades dão 2.621.440 flows IPv4 simultâneos; 5 dão 1.310.720 IPv6. Desde o Junos 16.1R1 e 15.1F2 as tabelas nascem com só 1.024 entradas, pouco para um ataque com origens forjadas, em que cada origem vira um flow. O máximo por placa está no passo 3 do guia.

Antes do Junos 16.1R1 e 15.1F2, mudar flow-table-size reinicia a FPC. Nessas versões, faça a alteração em janela de manutenção.

Templates IPFIX

Junos: templates IPFIX IPv4 e IPv6
set services flow-monitoring version-ipfix template EDGEWARDEN flow-active-timeout 15
set services flow-monitoring version-ipfix template EDGEWARDEN flow-inactive-timeout 15
set services flow-monitoring version-ipfix template EDGEWARDEN nexthop-learning enable
set services flow-monitoring version-ipfix template EDGEWARDEN template-refresh-rate seconds 10
set services flow-monitoring version-ipfix template EDGEWARDEN option-refresh-rate seconds 10
set services flow-monitoring version-ipfix template EDGEWARDEN ipv4-template
set services flow-monitoring version-ipfix template EDGEWARDEN-v6 flow-active-timeout 15
set services flow-monitoring version-ipfix template EDGEWARDEN-v6 flow-inactive-timeout 15
set services flow-monitoring version-ipfix template EDGEWARDEN-v6 nexthop-learning enable
set services flow-monitoring version-ipfix template EDGEWARDEN-v6 template-refresh-rate seconds 10
set services flow-monitoring version-ipfix template EDGEWARDEN-v6 option-refresh-rate seconds 10
set services flow-monitoring version-ipfix template EDGEWARDEN-v6 ipv6-template

São dois templates com os mesmos parâmetros: EDGEWARDEN para IPv4 e EDGEWARDEN-v6 para IPv6.

  • ipv4-template e ipv6-template: definem o conjunto de campos exportado em cada família (endereços, portas, protocolo, interfaces, ASN, next-hop, bytes e pacotes).
  • flow-active-timeout 15: um flow que continua ativo, como o de um ataque, é exportado a cada 15 s. Somado ao ciclo de análise do EdgeWarden (10 s por padrão), o ataque aparece em cerca de 25 s, contra cerca de 70 s com 60 s. O custo: um flow longo gera 4 registros por minuto em vez de 1.
  • flow-inactive-timeout 15: um flow sem pacotes há 15 s é encerrado e exportado, o que libera a entrada na tabela de flow.
  • nexthop-learning enable: com ECMP, informa a interface de saída e o next-hop corretos. Sem isso, o MX informa o primeiro caminho em IPv4 e zera interface de saída e next-hop em IPv6. Exige Junos 15.1F2 ou mais novo.
  • template-refresh-rate seconds 10: reenvia o template a cada 10 s. O coletor só decodifica os dados depois de receber o template; depois de reiniciar um dos servidores EdgeWarden, a espera é de no máximo 10 s, contra 600 s no padrão do Junos.
  • option-refresh-rate seconds 10: reenvia o Options Template, que leva a taxa de amostragem. É por ele que a coluna Amostragem do EdgeWarden mostra detectado.

Instância de amostragem

A instância diz quanto amostrar, para onde exportar e com qual endereço de origem. Primeiro, a taxa:

Junos: taxa de amostragem
set forwarding-options sampling instance EDGEWARDEN input rate 500
set forwarding-options sampling instance EDGEWARDEN input run-length 0
  • input rate 500: amostra 1 de cada 500 pacotes que entram nas interfaces com sampling input. Esse 500 vai no cadastro do dispositivo no EdgeWarden.
  • input run-length 0: depois de cada pacote sorteado, não amostra nenhum pacote seguido a mais. É o padrão, aqui explícito. Com run-length maior que 0, cada sorteio levaria vários pacotes em sequência e a proporção real deixaria de ser 1:500.

Família IPv4

Junos: exportação IPv4 para os dois coletores
set forwarding-options sampling instance EDGEWARDEN family inet output flow-inactive-timeout 15
set forwarding-options sampling instance EDGEWARDEN family inet output flow-active-timeout 60
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.10 port 2055
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.10 autonomous-system-type origin
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.10 no-local-dump
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.10 version-ipfix template EDGEWARDEN
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.11 port 2055
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.11 autonomous-system-type origin
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.11 no-local-dump
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.11 version-ipfix template EDGEWARDEN
set forwarding-options sampling instance EDGEWARDEN family inet output inline-jflow source-address 198.51.100.1
set forwarding-options sampling instance EDGEWARDEN family inet output inline-jflow flow-export-rate 10
  • output flow-active-timeout 60 e flow-inactive-timeout 15: no inline J-Flow, a exportação segue os timeouts do template (15 s e 15 s). Para não deixar dúvida sobre qual valor vale, remova essas duas linhas ou use nelas os mesmos valores do template.
  • flow-server ... port 2055: um coletor por bloco de linhas. Com dois flow-server, o MX manda uma cópia de cada flow para cada servidor; não é balanceamento. Se um servidor cair, o outro continua recebendo tudo.
  • autonomous-system-type origin: preenche os campos de ASN com o AS que originou o prefixo (o último do AS-path), e não com o AS vizinho (peer). É o que permite ao EdgeWarden mostrar de qual rede vem o tráfego. Depende de o MX ter as rotas BGP desses prefixos.
  • no-local-dump: não grava uma cópia dos flows em arquivo de log no roteador. Essa cópia só serve para depuração e consome disco e CPU da Routing Engine.
  • version-ipfix template EDGEWARDEN: exporta em IPFIX com o template IPv4.
  • inline-jflow source-address 198.51.100.1: o IP de origem dos pacotes de exportação. É esse IP que você cadastra no EdgeWarden, e ele conta como um exportador na licença. Use a loopback, com rota até os coletores pela rede de dados: o MX não exporta flow inline pela fxp0.
  • inline-jflow flow-export-rate 10: até 10 mil pacotes de exportação por segundo, valor que vale para a FPC inteira. O padrão é 1, pouco para uma borda sob ataque. Aqui ele está só na família inet; o passo 2 do guia repete o valor na inet6, e você pode fazer o mesmo.

Família IPv6

Junos: exportação IPv6 para os dois coletores
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-inactive-timeout 15
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-active-timeout 60
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.10 port 2055
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.10 autonomous-system-type origin
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.10 no-local-dump
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.10 version-ipfix template EDGEWARDEN-v6
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.11 port 2055
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.11 autonomous-system-type origin
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.11 no-local-dump
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.11 version-ipfix template EDGEWARDEN-v6
set forwarding-options sampling instance EDGEWARDEN family inet6 output inline-jflow source-address 198.51.100.1

É o espelho da família IPv4, com duas diferenças que importam:

  • O template é o EDGEWARDEN-v6.
  • Coletores e source-address continuam em IPv4: os flows IPv6 viajam dentro de pacotes IPv4. Com o mesmo source-address nas duas famílias, o MX ocupa uma vaga na licença e um único cadastro no EdgeWarden.

Interface de borda

Junos: amostragem na entrada do peer
set interfaces et-0/0/1 unit 467 description Peer1
set interfaces et-0/0/1 unit 467 vlan-id 467
set interfaces et-0/0/1 unit 467 family inet sampling input
set interfaces et-0/0/1 unit 467 family inet address 203.0.113.17/31
set interfaces et-0/0/1 unit 467 family inet6 sampling input
set interfaces et-0/0/1 unit 467 family inet6 address 2001:db8:467::1/127
  • family inet sampling input e family inet6 sampling input: amostram o que entra pelo peer, que é por onde o ataque chega. Sem a linha da inet6, o tráfego IPv6 passa sem ser visto. Repita nas outras interfaces de trânsito e PTT e, se quiser ver ataques saindo de clientes, na entrada das interfaces deles.
  • O ifIndex que vai no flow é o da unidade lógica et-0/0/1.467, não o da porta física. O EdgeWarden busca por SNMP o nome desse ifIndex e mostra Peer1 na tela de Interfaces. Para conferir o número: show interfaces et-0/0/1.467 | match "SNMP ifIndex".

Duas linhas que não fazem parte da exportação

É comum encontrar estas linhas ao lado da configuração de flow. Nenhuma delas muda a exportação para o EdgeWarden:

  • set services inline-monitoring template EDGEWARDEN template-refresh-rate 10: o inline monitoring é outro recurso do Junos, que exporta trechos dos pacotes em IPFIX em vez de flows e tem instâncias próprias. O template do inline J-Flow é o de services flow-monitoring; essa linha não o altera e pode sair.
  • set chassis alarm management-ethernet link-down ignore: só silencia o alarme da porta de gerência desconectada.

Cadastro no EdgeWarden

Repita em cada um dos dois servidores:

  1. Em Configurações → Rede → Dispositivos, cadastre o MX com Endereço IP 198.51.100.1, Taxa de Amostragem de Flow 500 e os dados de SNMP.
  2. Com o option-refresh-rate de 10 s, a coluna Amostragem passa a mostrar detectado com 1:500 poucos segundos depois que os flows começam a chegar.
  3. Siga a conferência no roteador e no EdgeWarden do guia para validar a exportação e a taxa.

Quem alcança a 2055/UDP pode injetar flows forjados e envenenar a detecção. Nos dois servidores, restrinja a porta aos IPs dos roteadores.

Configuração completa

Para colar de uma vez, sem as duas linhas que não fazem parte da exportação. Troque os endereços, a interface e a FPC pelos seus, cole em modo de configuração e rode commit check e commit confirmed 10 antes do commit.

Junos: configuração completa
set chassis network-services enhanced-ip
set chassis fpc 0 sampling-instance EDGEWARDEN
set chassis fpc 0 inline-services flow-table-size ipv4-flow-table-size 10
set chassis fpc 0 inline-services flow-table-size ipv6-flow-table-size 5
set services flow-monitoring version-ipfix template EDGEWARDEN flow-active-timeout 15
set services flow-monitoring version-ipfix template EDGEWARDEN flow-inactive-timeout 15
set services flow-monitoring version-ipfix template EDGEWARDEN nexthop-learning enable
set services flow-monitoring version-ipfix template EDGEWARDEN template-refresh-rate seconds 10
set services flow-monitoring version-ipfix template EDGEWARDEN option-refresh-rate seconds 10
set services flow-monitoring version-ipfix template EDGEWARDEN ipv4-template
set services flow-monitoring version-ipfix template EDGEWARDEN-v6 flow-active-timeout 15
set services flow-monitoring version-ipfix template EDGEWARDEN-v6 flow-inactive-timeout 15
set services flow-monitoring version-ipfix template EDGEWARDEN-v6 nexthop-learning enable
set services flow-monitoring version-ipfix template EDGEWARDEN-v6 template-refresh-rate seconds 10
set services flow-monitoring version-ipfix template EDGEWARDEN-v6 option-refresh-rate seconds 10
set services flow-monitoring version-ipfix template EDGEWARDEN-v6 ipv6-template
set forwarding-options sampling instance EDGEWARDEN input rate 500
set forwarding-options sampling instance EDGEWARDEN input run-length 0
set forwarding-options sampling instance EDGEWARDEN family inet output flow-inactive-timeout 15
set forwarding-options sampling instance EDGEWARDEN family inet output flow-active-timeout 60
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.10 port 2055
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.10 autonomous-system-type origin
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.10 no-local-dump
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.10 version-ipfix template EDGEWARDEN
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.11 port 2055
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.11 autonomous-system-type origin
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.11 no-local-dump
set forwarding-options sampling instance EDGEWARDEN family inet output flow-server 192.0.2.11 version-ipfix template EDGEWARDEN
set forwarding-options sampling instance EDGEWARDEN family inet output inline-jflow source-address 198.51.100.1
set forwarding-options sampling instance EDGEWARDEN family inet output inline-jflow flow-export-rate 10
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-inactive-timeout 15
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-active-timeout 60
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.10 port 2055
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.10 autonomous-system-type origin
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.10 no-local-dump
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.10 version-ipfix template EDGEWARDEN-v6
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.11 port 2055
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.11 autonomous-system-type origin
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.11 no-local-dump
set forwarding-options sampling instance EDGEWARDEN family inet6 output flow-server 192.0.2.11 version-ipfix template EDGEWARDEN-v6
set forwarding-options sampling instance EDGEWARDEN family inet6 output inline-jflow source-address 198.51.100.1
set interfaces et-0/0/1 unit 467 description Peer1
set interfaces et-0/0/1 unit 467 vlan-id 467
set interfaces et-0/0/1 unit 467 family inet sampling input
set interfaces et-0/0/1 unit 467 family inet address 203.0.113.17/31
set interfaces et-0/0/1 unit 467 family inet6 sampling input
set interfaces et-0/0/1 unit 467 family inet6 address 2001:db8:467::1/127

Próximos passos

Para escolher outros valores de taxa e timeout, veja Amostragem e timeouts de NetFlow e IPFIX sem perder ataques. Se os flows não aparecerem, siga o checklist Nenhum flow aparece no EdgeWarden?. O passo a passo completo, com SNMP e as armadilhas do MX, está em Como exportar IPFIX de um Juniper MX para o EdgeWarden.

Artigos relacionados

Todos os artigos

Quer ver esses flows no EdgeWarden?

Crie sua conta na Área do cliente e gere a licença demo: 7 dias com todos os recursos Enterprise, no seu servidor. Depois siga o guia de instalação para subir o coletor.