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. A explicação de cada tabela (RIB) e de quem depende delas está em BMP no Juniper MX para o EdgeWarden, configuração comentada; aqui o foco é a configuração do Huawei.
Na Huawei, o BMP fica numa visão própria, fora do BGP, e tudo é declarado no mesmo lugar, por sessão e por família. Não há a armadilha de hierarquias do Junos.
O endereço do coletor foi trocado por um endereço de documentação: 192.0.2.10. Troque pelo seu.
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.
- 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.
- VRP com confirmação em duas etapas: nada vale até o
commit.
A configuração
Esta é a configuração como aparece no display current-configuration:
bmp
#
bmp-session 192.0.2.10 alias netflowspec
tcp connect port 11019
connect-interface LoopBack0
#
monitor public
route-mode ipv4-family unicast adj-rib-in pre-policy
route-mode ipv4-family unicast adj-rib-out pre-policy
route-mode ipv4-family unicast adj-rib-out post-policy
route-mode ipv4-family unicast local-rib
route-mode ipv6-family unicast adj-rib-in pre-policy
route-mode ipv6-family unicast adj-rib-out pre-policy
route-mode ipv6-family unicast adj-rib-out post-policy
route-mode ipv6-family unicast local-rib
#
monitor peer 192.0.2.10
#Sessão
bmp: entra na visão do BMP, separada da configuração do BGP.bmp-session 192.0.2.10 alias netflowspec: cria a sessão BMP com o coletor do EdgeWarden. Oaliasdá nome à sessão e permite ter mais de uma sessão para o mesmo IP.tcp connect port 11019: o roteador abre a conexão TCP para a porta 11019 do coletor, a porta padrão do EdgeWarden.connect-interface LoopBack0: a sessão sai pela loopback. É o IP de origem da sessão que vira a identidade do roteador no EdgeWarden; com a loopback, ele fica estável e igual ao do cadastro do dispositivo e do SNMP. Sem essa linha, a sessão sai pela interface que alcança o coletor, e uma mudança de rota faz o roteador reaparecer como se fosse outro, com o histórico partido em dois. Ao aplicar num roteador que já tem a sessão no ar, ela cai e reconecta; as sessões BGP com os vizinhos não são afetadas. Libere a 11019 no servidor também para o IP da loopback.
O que é monitorado
monitor public: monitora os vizinhos BGP da rede pública (fora de VPN). As linhasroute-modeabaixo dizem quais tabelas de cada vizinho são enviadas.route-mode ipv4-family unicast adj-rib-in pre-policy: envia oin pre, tudo que cada vizinho anuncia em IPv4, antes do filtro de entrada. Responde "o vizinho está me mandando este prefixo?".route-mode ipv4-family unicast adj-rib-out pre-policy: envia oout pre, o que sairia para cada vizinho em IPv4, antes da política de saída.route-mode ipv4-family unicast adj-rib-out post-policy: envia oout post, o que é de fato anunciado a cada vizinho em IPv4, depois da política de saída. O VRP aceitapre-policyepost-policyjuntos no Adj-RIB-Out: com as duas linhas, chegam as duas versões.route-mode ipv4-family unicast local-rib: envia a Local-RIB IPv4, a tabela efetiva do roteador. Ela não tem pre nem post, porque é o resultado da decisão BGP.- As quatro linhas
ipv6-family: o mesmo para IPv6. Na Huawei, cada família é declarada à parte; sem essas linhas, o IPv6 não chega. monitor peer 192.0.2.10: abre a configuração de monitoramento de um vizinho BGP específico, aqui o próprio servidor do EdgeWarden, que também tem sessão BGP com o roteador. Semroute-modeembaixo, a linha não muda o que é enviado: nodisplay bgp bmp-monitor all, esse vizinho aparece com as mesmas tabelas domonitor public.
Retenção das rotas no BGP
A linha abaixo fica na configuração do BGP, não na visão do BMP:
bgp 65000
keep-all-routesbgp 65000: a visão do BGP. Troque pelo seu ASN.keep-all-routes: o roteador guarda todas as rotas recebidas de cada vizinho desde que a sessão subiu, inclusive as que a política de entrada (route-policy, filter-policy, ip-prefix) rejeitou. Elas ficam armazenadas, mas não entram na tabela BGP ativa.- O uso original é trocar uma política de entrada sem derrubar a sessão: o roteador reaplica a política nova sobre a cópia local, sem pedir ao vizinho que reenvie as rotas por route-refresh (RFC 2918). É o equivalente ao
soft-reconfiguration inbounddo Cisco. - Para o BMP, é o que deixa o
in precompleto. Sem essa linha, o VRP descarta as rotas rejeitadas, elas nunca chegam ao BMP, e oin premostra só o que passou no filtro, o contrário do que "pre-policy" promete. - O custo é memória: o roteador guarda rotas que de outro modo descartaria. Se o seu BGP ainda não tem a linha, aplique em janela de manutenção e acompanhe a memória da Routing Engine e as sessões BGP depois do
commit.
O que chega no EdgeWarden
Com esta configuração, a aba Route Feed da tela BMP Station mostra, na coluna RIB:
| RIB | De onde vem |
|---|---|
in pre | adj-rib-in pre-policy, IPv4 e IPv6 |
out pre | adj-rib-out pre-policy, IPv4 e IPv6 |
out post | adj-rib-out post-policy, IPv4 e IPv6 |
loc-rib | local-rib, IPv4 e IPv6 |
in post não aparece, porque a configuração não pede adj-rib-in post-policy. O EdgeWarden processa IPv4 unicast e IPv6 unicast; VPN, L2VPN e FlowSpec que cheguem pelo BMP são ignorados de propósito.
Pontos de atenção
Os pontos abaixo não mudam a configuração acima; dizem o que cada escolha significa no EdgeWarden.
Adj-RIB-Out em pre e post-policy
O out post é o que o roteador anuncia de fato a cada vizinho, depois da política de saída. A engenharia de entrada do EdgeWarden confirma os sinais (retirada ou prepend de um bloco para um provedor) e confere os anúncios manuais de entrada pelo out post: sem a linha post-policy, essa confirmação não acontece para o roteador. O out pre mostra o que sairia antes da política; comparar os dois mostra o que a política de saída filtrou ou mudou. O RIB Guard usa as duas versões.
Escopo
monitor public envia as tabelas de todos os vizinhos da rede pública, inclusive clientes que recebem tabela cheia. O Adj-RIB-Out de um cliente com tabela cheia gera muito volume sem valor para engenharia de tráfego. Para restringir, a Huawei usa monitor peer com os vizinhos de trânsito e peering, cada um com as suas linhas route-mode, no lugar do monitor public.
Conferência
Saída num NE com esta configuração (endereços trocados e lista de vizinhos encurtada):
display bgp bmp-monitor all
0.0.0.0/:: : monitor public / private
Route modes: a - add-path, A - all, m - path-marking, ID - route-identifier
*>BGP ipv4-family unicast :
Peer Session Ip Alias State route-mode
0.0.0.0 192.0.2.10 netflowspec up local-rib
203.0.113.1 192.0.2.10 netflowspec up in pre-policy/out pre-policy/out post-policy
192.0.2.10 192.0.2.10 netflowspec up in pre-policy/out pre-policy/out post-policy
203.0.113.5 192.0.2.10 netflowspec up in pre-policy/out pre-policy/out post-policy
*>BGP ipv6-family unicast :
Peer Session Ip Alias State route-mode
:: 192.0.2.10 netflowspec up local-rib
2001:DB8:1000::1E 192.0.2.10 netflowspec up in pre-policy/out pre-policy/out post-policy
2001:DB8:8000::FFFE 192.0.2.10 netflowspec up in pre-policy/out pre-policy/out post-policyState upem todas as linhas: a sessão BMP está no ar.- A Local-RIB aparece como um "vizinho" de endereço
0.0.0.0(IPv4) e::(IPv6), comlocal-ribna coluna route-mode. É normal. - Cada vizinho real mostra
in pre-policy/out pre-policy/out post-policy, as três tabelas pedidas nomonitor public. - IPv4 e IPv6 aparecem em blocos separados. Se uma família não aparece, falta o
route-modedela. - O IP do coletor (
192.0.2.10) aparece também como vizinho, porque o servidor do EdgeWarden tem sessão BGP com este roteador.
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 NE pelo IP de origem da sessão, e a aba Route Feed mostra in pre, out pre, out post e loc-rib.
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.
Configuração para colar
Os mesmos comandos da configuração acima, com a navegação entre as visões (system-view, quit) e o commit no fim. Troque o coletor e o ASN pelos seus.
system-view
bmp
bmp-session 192.0.2.10 alias netflowspec
tcp connect port 11019
connect-interface LoopBack0
monitor public
route-mode ipv4-family unicast adj-rib-in pre-policy
route-mode ipv4-family unicast adj-rib-out pre-policy
route-mode ipv4-family unicast adj-rib-out post-policy
route-mode ipv4-family unicast local-rib
route-mode ipv6-family unicast adj-rib-in pre-policy
route-mode ipv6-family unicast adj-rib-out pre-policy
route-mode ipv6-family unicast adj-rib-out post-policy
route-mode ipv6-family unicast local-rib
quit
monitor peer 192.0.2.10
quit
quit
quit
bgp 65000
keep-all-routes
quit
commitPróximos passos
A explicação de cada RIB e das automações que usam o BMP está em BMP no Juniper MX para o EdgeWarden, configuração comentada. Para os flows do mesmo NE, veja NetStream v9 comentado ou NetStream IPFIX comentado. Portas e firewall do servidor estão no guia de instalação.