Qué entrega el BMP a EdgeWarden
El BMP (BGP Monitoring Protocol, RFC 7854) envía al colector, en tiempo real, las tablas BGP del router. En EdgeWarden aparecen en BGP → BMP Station, una pantalla de solo lectura. La explicación de cada tabla (RIB) y de qué depende de ellas está en BMP en el Juniper MX para EdgeWarden, configuración comentada; aquí el foco es la configuración de Huawei.
En Huawei, el BMP está en una vista propia, fuera del BGP, y todo se declara en el mismo lugar, por sesión y por familia. No existe la trampa de jerarquías de Junos.
La dirección del colector se cambió por una dirección de documentación: 192.0.2.10. Cámbiala por la tuya.
Requisitos previos
- Licencia Enterprise: sin ella, el receptor BMP de EdgeWarden no arranca y el log registra el motivo. Después del upgrade, reinicia el colector.
- Puerto 11019/TCP abierto en el servidor de EdgeWarden, solo para las IP de los routers. EdgeWarden abre el puerto y espera: quien conecta es siempre el router.
- VRP con configuración en dos etapas: nada vale hasta el
commit.
La configuración
Esta es la configuración tal como aparece en el 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
#Sesión
bmp: entra en la vista del BMP, separada de la configuración del BGP.bmp-session 192.0.2.10 alias netflowspec: crea la sesión BMP con el colector de EdgeWarden. Elaliasle da nombre a la sesión y permite tener más de una sesión hacia la misma IP.tcp connect port 11019: el router abre la conexión TCP hacia el puerto 11019 del colector, el puerto por defecto de EdgeWarden.connect-interface LoopBack0: la sesión sale por la loopback. La IP de origen de la sesión se convierte en la identidad del router en EdgeWarden; con la loopback, queda estable e igual a la del registro del dispositivo y del SNMP. Sin esta línea, la sesión sale por la interfaz que alcanza el colector, y un cambio de ruta hace que el router reaparezca como si fuera otro, con el historial partido en dos. Al aplicarla en un router que ya tiene la sesión activa, la sesión cae y se reconecta; las sesiones BGP con los vecinos no se ven afectadas. Abre el 11019 en el servidor también para la IP de la loopback.
Qué se monitorea
monitor public: monitorea los vecinos BGP de la red pública (fuera de VPN). Las líneasroute-modede abajo dicen qué tablas de cada vecino se envían.route-mode ipv4-family unicast adj-rib-in pre-policy: envía elin pre, todo lo que cada vecino anuncia en IPv4, antes del filtro de entrada. Responde "¿el vecino me está enviando este prefijo?".route-mode ipv4-family unicast adj-rib-out pre-policy: envía elout pre, lo que saldría hacia cada vecino en IPv4, antes de la política de salida.route-mode ipv4-family unicast adj-rib-out post-policy: envía elout post, lo que de hecho se anuncia a cada vecino en IPv4, después de la política de salida. El VRP aceptapre-policyypost-policyjuntos en el Adj-RIB-Out: con las dos líneas, llegan las dos versiones.route-mode ipv4-family unicast local-rib: envía la Local-RIB IPv4, la tabla efectiva del router. No tiene pre ni post, porque es el resultado de la decisión BGP.- Las cuatro líneas
ipv6-family: lo mismo para IPv6. En Huawei, cada familia se declara aparte; sin estas líneas, el IPv6 no llega. monitor peer 192.0.2.10: abre la configuración de monitoreo de un vecino BGP específico, aquí el propio servidor de EdgeWarden, que también tiene sesión BGP con el router. Sinroute-modedebajo, la línea no cambia lo que se envía: en eldisplay bgp bmp-monitor all, ese vecino aparece con las mismas tablas delmonitor public.
Retención de rutas en el BGP
La línea de abajo va en la configuración del BGP, no en la vista del BMP:
bgp 65000
keep-all-routesbgp 65000: la vista del BGP. Cámbialo por tu ASN.keep-all-routes: el router guarda todas las rutas recibidas de cada vecino desde que la sesión subió, incluidas las que la política de entrada (route-policy, filter-policy, ip-prefix) rechazó. Quedan almacenadas, pero no entran en la tabla BGP activa.- El uso original es cambiar una política de entrada sin tirar la sesión: el router reaplica la política nueva sobre la copia local, sin pedirle al vecino que reenvíe las rutas por route-refresh (RFC 2918). Es el equivalente al
soft-reconfiguration inboundde Cisco. - Para el BMP, es lo que deja el
in precompleto. Sin esta línea, el VRP descarta las rutas rechazadas, nunca llegan al BMP, y elin premuestra solo lo que pasó el filtro, lo contrario de lo que "pre-policy" promete. - El costo es memoria: el router guarda rutas que de otro modo descartaría. Si tu BGP todavía no tiene la línea, aplícala en una ventana de mantenimiento y vigila la memoria de la Routing Engine y las sesiones BGP después del
commit.
Qué llega a EdgeWarden
Con esta configuración, la pestaña Route Feed de la pantalla BMP Station muestra, en la columna RIB:
| RIB | De dónde viene |
|---|---|
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 no aparece, porque la configuración no pide adj-rib-in post-policy. EdgeWarden procesa IPv4 unicast e IPv6 unicast; VPN, L2VPN y FlowSpec que lleguen por BMP se ignoran a propósito.
Puntos de atención
Los puntos de abajo no cambian la configuración de arriba; explican qué significa cada elección en EdgeWarden.
Adj-RIB-Out en pre y post-policy
El out post es lo que el router de hecho anuncia a cada vecino, después de la política de salida. La ingeniería de entrada de EdgeWarden confirma sus señales (retiro o prepend de un bloque hacia un proveedor) y verifica los anuncios manuales de entrada por el out post: sin la línea post-policy, esa confirmación no ocurre para el router. El out pre muestra lo que saldría antes de la política; comparar los dos muestra lo que la política de salida filtró o cambió. El RIB Guard usa las dos versiones.
Alcance
monitor public envía las tablas de todos los vecinos de la red pública, incluidos clientes que reciben tabla completa. El Adj-RIB-Out de un cliente con tabla completa genera mucho volumen sin valor para la ingeniería de tráfico. Para restringirlo, Huawei usa monitor peer con los vecinos de tránsito y peering, cada uno con sus líneas route-mode, en lugar del monitor public.
Verificación
Salida en un NE con esta configuración (direcciones cambiadas y lista de vecinos acortada):
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 upen todas las líneas: la sesión BMP está activa.- La Local-RIB aparece como un "vecino" de dirección
0.0.0.0(IPv4) y::(IPv6), conlocal-riben la columna route-mode. Es normal. - Cada vecino real muestra
in pre-policy/out pre-policy/out post-policy, las tres tablas pedidas en elmonitor public. - IPv4 e IPv6 aparecen en bloques separados. Si una familia no aparece, falta su
route-mode. - La IP del colector (
192.0.2.10) aparece también como vecino, porque el servidor de EdgeWarden tiene sesión BGP con este router.
En el servidor de EdgeWarden, verifica la sesión TCP:
ss -tn state established '( sport = :11019 )'En la interfaz, en BGP → BMP Station, la pestaña Roteadores (routers) muestra el NE por la IP de origen de la sesión, y la pestaña Route Feed muestra in pre, out pre, out post y loc-rib.
Abre el 11019/TCP en el servidor solo para las IP de los routers. Quien conecta a ese puerto y habla BMP entra en la lista de routers y puede enviar rutas falsas a las automatizaciones que dependen del BMP.
Configuración para pegar
Los mismos comandos de la configuración de arriba, con la navegación entre vistas (system-view, quit) y el commit al final. Cambia el colector y el ASN por los tuyos.
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 pasos
La explicación de cada RIB y de las automatizaciones que usan el BMP está en BMP en el Juniper MX para EdgeWarden, configuración comentada. Para los flujos del mismo NE, mira NetStream v9 comentado o NetStream IPFIX comentado. Los puertos y el firewall del servidor están en la guía de instalación.