BMP no Juniper MX para o EdgeWarden, configuração comentada

Como enviar as tabelas BGP do Juniper MX ao EdgeWarden por BMP: transporte, Loc-RIB, pre-policy, rib-out, grupos fora do BMP e conferência.

O que o BMP entrega ao EdgeWarden

O BMP (BGP Monitoring Protocol, RFC 7854) envia ao coletor, em tempo real, as tabelas BGP do roteador. No EdgeWarden, elas aparecem em BGP → BMP Station, numa tela só de leitura: nada ali escreve no roteador.

RIBO que mostraPergunta que responde
in preTudo que o vizinho anuncia, antes do seu filtro de entradaO vizinho está me mandando este prefixo?
in postO que passou no filtro de entradaMeu filtro derrubou o prefixo?
out preO que sairia para o vizinho, antes da política de saídaO que eu anunciaria sem a política?
out postO que é de fato anunciado ao vizinhoO que eu anuncio para esta operadora?
loc-ribA tabela efetiva, resultado da decisão BGPQual caminho está em uso?

Três automações usam essa tabela para agir com segurança: a sondagem de links de PTT e peering, a confirmação de rota do Traffic Steering e a validação de caminho do failover. Sem BMP, elas operam sem essa confirmação.

Os endereços deste artigo são de documentação: coletor 192.0.2.10, loopback do MX 198.51.100.1.

Pré-requisitos

  • Licença Enterprise: sem ela, o receptor BMP do EdgeWarden não sobe e o log registra o motivo. Depois do upgrade, reinicie o coletor.
  • Junos com rib-out (a partir do 19.1R1) e loc-rib (a partir do 19.2R1). Esta configuração está validada em produção num MX com Junos 20.4R3.8, com os três RIBs ao mesmo tempo.
  • Porta 11019/TCP liberada no servidor do EdgeWarden, só para os IPs dos roteadores. O EdgeWarden abre a porta e espera: quem conecta é sempre o roteador.
  • Se a lo0 tem filtro de proteção da Routing Engine (protect-re), ele precisa aceitar TCP com porta de origem 11019 vindo do coletor. Sem isso, o MX tenta conectar, o filtro descarta a resposta e não aparece erro em lugar nenhum.

As três hierarquias do BMP no Junos

O Junos espalha o BMP por três lugares, e cada um controla uma parte:

  • routing-options bmp station-address e station-port: o transporte na forma antiga, sem nome.
  • routing-options bmp station <nome>: o transporte de uma station nomeada, e o único lugar onde a Loc-RIB é ligada.
  • protocols bgp bmp: o que é enviado. É aqui que pre-policy, post-policy e rib-out funcionam de fato.

Ter route-monitoring rib-out post-policy só em routing-options bmp não basta. Dentro de uma station, a linha é aceita e comita sem erro, mas, no que verificamos em produção (MX com Junos 20.4R3.8), sozinha ela não enviou nenhuma rota de rib-out. O out post chegou com a linha também em protocols bgp bmp (passo 2). É a armadilha que mais custa tempo.

Passo 1: transporte e Loc-RIB

Junos: transporte e Loc-RIB em routing-options
set routing-options bmp priority high
set routing-options bmp monitor enable
set routing-options bmp route-monitoring rib-out post-policy
set routing-options bmp station-address 192.0.2.10
set routing-options bmp station-port 11019
set routing-options bmp statistics-timeout 15
set routing-options bmp station BMP local-address 198.51.100.1
set routing-options bmp station BMP connection-mode active
set routing-options bmp station BMP monitor enable
set routing-options bmp station BMP route-monitoring loc-rib
set routing-options bmp station BMP route-monitoring rib-out post-policy
set routing-options bmp station BMP routing-instance default
  • priority high: prioridade do BMP entre as tarefas do processo de roteamento (rpd). Com high, as mensagens saem com menos atraso; acompanhe a CPU da Routing Engine depois de ligar.
  • monitor enable: liga o BMP na forma antiga.
  • route-monitoring rib-out post-policy: pede o rib-out pós-política na forma antiga. Fica como está; quem garante o envio do out post é a linha do passo 2, em protocols bgp bmp.
  • station-address 192.0.2.10 e station-port 11019: o coletor do EdgeWarden, na porta padrão.
  • statistics-timeout 15: o MX envia relatórios de estatística (contadores por vizinho) a cada 15 s. Eles alimentam a aba Estatísticas da tela BMP Station.
  • station BMP local-address 198.51.100.1: a origem da sessão é a loopback. É esse IP que vira a identidade do roteador no EdgeWarden; use o mesmo IP do cadastro do dispositivo, para o BMP cruzar com o SNMP e os flows. Sem ele, a origem é a interface que por acaso alcança o coletor, e uma mudança de rota faz o roteador reaparecer como se fosse outro.
  • station BMP connection-mode active: o MX abre a conexão TCP. É obrigatório, porque o EdgeWarden só escuta.
  • station BMP monitor enable: liga a station nomeada.
  • station BMP route-monitoring loc-rib: envia a Loc-RIB, a tabela efetiva do roteador. Só funciona na station nomeada.
  • station BMP route-monitoring rib-out post-policy: o mesmo pedido de rib-out, dentro da station. Também fica como está; na nossa validação, sem a linha do passo 2, ela não enviou rib-out.
  • station BMP routing-instance default: a station usa a tabela principal (a instância padrão) para alcançar o coletor e monitorar o BGP.

O MX pode abrir duas sessões BMP para o mesmo coletor, uma pela forma antiga e outra pela station nomeada. O EdgeWarden identifica o roteador pelo IP de origem e trata as duas como o mesmo roteador; a queda de uma não tira o roteador da lista enquanto a outra estiver viva.

Passo 2: o que é enviado

Junos: pre-policy e rib-out em protocols bgp
set protocols bgp precision-timers
set protocols bgp log-updown
set protocols bgp bmp monitor enable
set protocols bgp bmp route-monitoring pre-policy
set protocols bgp bmp route-monitoring rib-out post-policy
  • bmp monitor enable: liga o BMP para todos os grupos BGP. O passo 3 tira os grupos que não interessam.
  • bmp route-monitoring pre-policy: envia o in pre, tudo que cada vizinho anuncia antes do filtro de entrada.
  • bmp route-monitoring rib-out post-policy: envia o out post, o que o MX anuncia de fato a cada vizinho. É esta linha que faz o rib-out funcionar.
  • precision-timers e log-updown não são BMP, mas ajudam junto com ele. precision-timers mantém os keepalives do BGP em dia mesmo com o rpd ocupado, e o BMP aumenta a carga do rpd. log-updown registra no syslog cada vizinho que sobe ou cai, para comparar com a aba Eventos de Peers.

Passo 3: tirar grupos do BMP

Ligue o BMP no geral e desligue por grupo. Mantenha ligados os grupos de trânsito, PTT e peering: são eles que respondem "o que eu anuncio para cada operadora". Desligue os grupos de clientes, principalmente os que recebem tabela cheia.

Junos: grupo de clientes fora do BMP
set protocols bgp group CLIENTES_FULL_ROUTER bmp monitor disable

A linha vale para o grupo inteiro; o resto da configuração do grupo (import, export, prefix-limit, vizinhos) não muda:

Junos: grupo de clientes completo, para referência
set protocols bgp group CLIENTES_FULL_ROUTER type external
set protocols bgp group CLIENTES_FULL_ROUTER import Import_CLIENTES_FULL_ROUTER
set protocols bgp group CLIENTES_FULL_ROUTER family inet unicast prefix-limit maximum 50000
set protocols bgp group CLIENTES_FULL_ROUTER family inet unicast prefix-limit teardown 80
set protocols bgp group CLIENTES_FULL_ROUTER family inet unicast prefix-limit teardown idle-timeout 15
set protocols bgp group CLIENTES_FULL_ROUTER export Export_CLIENTES_FULL_ROUTER
set protocols bgp group CLIENTES_FULL_ROUTER tcp-mss 1000
set protocols bgp group CLIENTES_FULL_ROUTER bmp monitor disable
set protocols bgp group CLIENTES_FULL_ROUTER neighbor 203.0.113.50 description CLIENTE-A
set protocols bgp group CLIENTES_FULL_ROUTER neighbor 203.0.113.50 peer-as 65010

Por que isso importa: numa medição nossa, com o BMP ligado em todos os grupos, o volume foi de 23.388 linhas por segundo. Tirando os grupos de clientes, caiu para 98,5 por segundo. O rib-out de um cliente que recebe tabela cheia gera milhões de linhas por hora, sem valor para engenharia de tráfego.

Não tente o contrário, ligar o rib-out só em alguns grupos. set protocols bgp group <grupo> bmp route-monitoring rib-out post-policy é aceito, comita e não envia nada. No nível de grupo, só o bmp monitor disable funciona.

Conferência

Junos: estado do BMP e da Routing Engine
show bgp bmp
show chassis routing-engine
  • show bgp bmp mostra as stations, o estado da conexão e o que está sendo monitorado.
  • show chassis routing-engine mostra se a Routing Engine aguenta a carga. Na medição acima, com os grupos de clientes fora, a RE (RE-S-1600x8) ficou 95% ociosa.

No servidor do EdgeWarden, confira a sessão TCP:

Servidor EdgeWarden: sessões BMP
ss -tn state established '( sport = :11019 )'

Na interface, em BGP → BMP Station:

  1. A aba Roteadores mostra o MX pelo IP 198.51.100.1, com o nome do sistema. O roteador só entra na lista quando manda a mensagem de abertura do BMP (Initiation); uma conexão TCP que não fala BMP não aparece.
  2. A aba Route Feed mostra, na coluna RIB, in pre, loc-rib e out post. Se faltar out post, confira se a linha bmp route-monitoring rib-out post-policy está em protocols bgp.
  3. A aba Eventos de Peers mostra os vizinhos subindo e caindo.

Libere a 11019/TCP no servidor só para os IPs dos roteadores. Quem conecta nessa porta e fala BMP entra na lista de roteadores e pode enviar rotas falsas para as automações que dependem do BMP.

O EdgeWarden processa IPv4 unicast e, nos anúncios multiprotocolo, só IPv6 unicast. VPN, L2VPN e FlowSpec que cheguem pelo BMP são ignorados de propósito.

Configuração completa

A configuração como está em produção. Troque o coletor, a loopback e os grupos pelos seus.

Junos: BMP completo para o EdgeWarden
set routing-options bmp priority high
set routing-options bmp monitor enable
set routing-options bmp route-monitoring rib-out post-policy
set routing-options bmp station-address 192.0.2.10
set routing-options bmp station-port 11019
set routing-options bmp statistics-timeout 15
set routing-options bmp station BMP local-address 198.51.100.1
set routing-options bmp station BMP connection-mode active
set routing-options bmp station BMP monitor enable
set routing-options bmp station BMP route-monitoring loc-rib
set routing-options bmp station BMP route-monitoring rib-out post-policy
set routing-options bmp station BMP routing-instance default
set protocols bgp precision-timers
set protocols bgp log-updown
set protocols bgp bmp monitor enable
set protocols bgp bmp route-monitoring pre-policy
set protocols bgp bmp route-monitoring rib-out post-policy
set protocols bgp group CLIENTES_FULL_ROUTER bmp monitor disable

Próximos passos

O BMP complementa os flows: para a exportação de IPFIX no mesmo MX, veja Como exportar IPFIX de um Juniper MX para o EdgeWarden e a configuração IPFIX comentada linha a linha. Para os campos de BGP que chegam pelo IPFIX (next-hop, VRF), veja IPFIX avançado: VRF, next-hop BGP, túneis e DPI no EdgeWarden. Portas e firewall do servidor estão no guia de instalação.

Artigos relacionados

Todos os artigos
  • Intermediário

    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.

    Juniper#ipfix#juniper#jflow#netflow
  • Intermediário

    Como exportar IPFIX de um Juniper MX para o EdgeWarden

    Inline J-Flow no Juniper MX passo a passo: templates IPFIX IPv4 e IPv6, instância de amostragem, timeouts e conferência no roteador e no EdgeWarden.

    Juniper#ipfix#juniper#jflow#netflow
  • Avançado

    BMP no Huawei NE para o EdgeWarden, configuração comentada

    Configuração BMP de um Huawei NE de borda linha a linha: sessão, Adj-RIB-In, Adj-RIB-Out e Local-RIB em IPv4 e IPv6, o que chega ao EdgeWarden e conferência.

    Huawei#bmp#bgp#huawei

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.