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.
| RIB | O que mostra | Pergunta que responde |
|---|---|---|
in pre | Tudo que o vizinho anuncia, antes do seu filtro de entrada | O vizinho está me mandando este prefixo? |
in post | O que passou no filtro de entrada | Meu filtro derrubou o prefixo? |
out pre | O que sairia para o vizinho, antes da política de saída | O que eu anunciaria sem a política? |
out post | O que é de fato anunciado ao vizinho | O que eu anuncio para esta operadora? |
loc-rib | A tabela efetiva, resultado da decisão BGP | Qual 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) eloc-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
lo0tem 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-addressestation-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
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 defaultpriority high: prioridade do BMP entre as tarefas do processo de roteamento (rpd). Comhigh, 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 doout posté a linha do passo 2, emprotocols bgp bmp.station-address 192.0.2.10estation-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
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-policybmp 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 oin pre, tudo que cada vizinho anuncia antes do filtro de entrada.bmp route-monitoring rib-out post-policy: envia oout post, o que o MX anuncia de fato a cada vizinho. É esta linha que faz o rib-out funcionar.precision-timerselog-updownnão são BMP, mas ajudam junto com ele.precision-timersmantém os keepalives do BGP em dia mesmo com o rpd ocupado, e o BMP aumenta a carga do rpd.log-updownregistra 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.
set protocols bgp group CLIENTES_FULL_ROUTER bmp monitor disableA linha vale para o grupo inteiro; o resto da configuração do grupo (import, export, prefix-limit, vizinhos) não muda:
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 65010Por 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
show bgp bmp
show chassis routing-engineshow bgp bmpmostra as stations, o estado da conexão e o que está sendo monitorado.show chassis routing-enginemostra 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:
ss -tn state established '( sport = :11019 )'Na interface, em BGP → BMP Station:
- 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. - A aba Route Feed mostra, na coluna RIB,
in pre,loc-ribeout post. Se faltarout post, confira se a linhabmp route-monitoring rib-out post-policyestá emprotocols bgp. - 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.
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 disablePró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.