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: nada ahí escribe en el router.
| RIB | Qué muestra | Pregunta que responde |
|---|---|---|
in pre | Todo lo que el vecino anuncia, antes de tu filtro de entrada | ¿El vecino me está enviando este prefijo? |
in post | Lo que pasó el filtro de entrada | ¿Mi filtro descartó el prefijo? |
out pre | Lo que saldría hacia el vecino, antes de la política de salida | ¿Qué anunciaría sin la política? |
out post | Lo que de hecho se anuncia al vecino | ¿Qué le anuncio a este operador? |
loc-rib | La tabla efectiva, resultado de la decisión BGP | ¿Qué camino está en uso? |
Tres automatizaciones usan esta tabla para actuar con seguridad: el sondeo de enlaces de IXP y peering, la confirmación de ruta del Traffic Steering y la validación de camino del failover. Sin BMP, funcionan sin esa confirmación.
Las direcciones de este artículo son de documentación: colector 192.0.2.10, loopback del MX 198.51.100.1.
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.
- Junos con
rib-out(desde 19.1R1) yloc-rib(desde 19.2R1). Esta configuración está validada en producción en un MX con Junos 20.4R3.8, con los tres RIB a la vez. - 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.
- Si la
lo0tiene filtro de protección de la Routing Engine (protect-re), debe aceptar TCP con puerto de origen 11019 desde el colector. Sin eso, el MX intenta conectar, el filtro descarta la respuesta y no aparece ningún error.
Las tres jerarquías del BMP en Junos
Junos reparte el BMP en tres lugares, y cada uno controla una parte:
routing-options bmp station-addressystation-port: el transporte en la forma antigua, sin nombre.routing-options bmp station <nombre>: el transporte de una station con nombre, y el único lugar donde se activa la Loc-RIB.protocols bgp bmp: lo que se envía. Es aquí donde pre-policy, post-policy y rib-out funcionan de verdad.
Tener route-monitoring rib-out post-policy solo en routing-options bmp no basta. Dentro de una station, la línea es aceptada y comitea sin error, pero, en lo que verificamos en producción (MX con Junos 20.4R3.8), sola no envió ninguna ruta de rib-out. El out post llegó con la línea también en protocols bgp bmp (paso 2). Es la trampa que más tiempo cuesta.
Paso 1: transporte y 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: prioridad del BMP entre las tareas del proceso de enrutamiento (rpd). Conhigh, los mensajes salen con menos retraso; vigila la CPU de la Routing Engine después de activarlo.monitor enable: activa el BMP en la forma antigua.route-monitoring rib-out post-policy: pide el rib-out post-política en la forma antigua. Se queda como está; lo que garantiza el envío delout postes la línea del paso 2, enprotocols bgp bmp.station-address 192.0.2.10ystation-port 11019: el colector de EdgeWarden, en el puerto por defecto.statistics-timeout 15: el MX envía informes de estadísticas (contadores por vecino) cada 15 s. Alimentan la pestaña Estatísticas (estadísticas) de la pantalla BMP Station.station BMP local-address 198.51.100.1: el origen de la sesión es la loopback. Esa IP se convierte en la identidad del router en EdgeWarden; usa la misma IP del registro del dispositivo, para que el BMP coincida con el SNMP y los flujos. Sin ella, el origen es la interfaz que por casualidad alcanza el colector, y un cambio de ruta hace que el router reaparezca como si fuera otro.station BMP connection-mode active: el MX abre la conexión TCP. Es obligatorio, porque EdgeWarden solo escucha.station BMP monitor enable: activa la station con nombre.station BMP route-monitoring loc-rib: envía la Loc-RIB, la tabla efectiva del router. Solo funciona en la station con nombre.station BMP route-monitoring rib-out post-policy: el mismo pedido de rib-out, dentro de la station. También se queda como está; en nuestra validación, sin la línea del paso 2, no envió rib-out.station BMP routing-instance default: la station usa la tabla principal (la instancia por defecto) para alcanzar el colector y monitorear el BGP.
El MX puede abrir dos sesiones BMP hacia el mismo colector, una por la forma antigua y otra por la station con nombre. EdgeWarden identifica el router por la IP de origen y trata las dos como el mismo router; si una cae, el router sigue en la lista mientras la otra esté activa.
Paso 2: qué se envía
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: activa el BMP para todos los grupos BGP. El paso 3 quita los grupos que no interesan.bmp route-monitoring pre-policy: envía elin pre, todo lo que cada vecino anuncia antes del filtro de entrada.bmp route-monitoring rib-out post-policy: envía elout post, lo que el MX de hecho anuncia a cada vecino. Es esta línea la que hace funcionar el rib-out.precision-timersylog-updownno son BMP, pero ayudan junto con él.precision-timersmantiene los keepalives del BGP al día aunque el rpd esté ocupado, y el BMP aumenta la carga del rpd.log-updownregistra en el syslog cada vecino que sube o cae, para comparar con la pestaña Eventos de Peers (eventos de vecinos).
Paso 3: sacar grupos del BMP
Activa el BMP en general y desactívalo por grupo. Mantén activos los grupos de tránsito, IXP y peering: son ellos los que responden "qué le anuncio a cada operador". Desactiva los grupos de clientes, sobre todo los que reciben tabla completa.
set protocols bgp group CLIENTES_FULL_ROUTER bmp monitor disableLa línea vale para todo el grupo; el resto de la configuración del grupo (import, export, prefix-limit, vecinos) no cambia:
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 qué importa: en una medición nuestra, con el BMP activo en todos los grupos, el volumen fue de 23.388 filas por segundo. Sacando los grupos de clientes, bajó a 98,5 por segundo. El rib-out de un cliente que recibe tabla completa genera millones de filas por hora, sin valor para la ingeniería de tráfico.
No intentes lo contrario, activar el rib-out solo en algunos grupos. set protocols bgp group <grupo> bmp route-monitoring rib-out post-policy es aceptado, comitea y no envía nada. A nivel de grupo, solo funciona bmp monitor disable.
Verificación
show bgp bmp
show chassis routing-engineshow bgp bmpmuestra las stations, el estado de la conexión y lo que se está monitoreando.show chassis routing-enginemuestra si la Routing Engine aguanta la carga. En la medición de arriba, con los grupos de clientes fuera, la RE (RE-S-1600x8) quedó 95% ociosa.
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 MX por la IP
198.51.100.1, con el nombre del sistema. El router solo entra en la lista cuando envía el mensaje de apertura del BMP (Initiation); una conexión TCP que no habla BMP no aparece. - La pestaña Route Feed muestra, en la columna RIB,
in pre,loc-ribyout post. Si faltaout post, verifica que la líneabmp route-monitoring rib-out post-policyesté enprotocols bgp. - La pestaña Eventos de Peers muestra los vecinos que suben y caen.
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.
EdgeWarden procesa IPv4 unicast y, en los anuncios multiprotocolo, solo IPv6 unicast. VPN, L2VPN y FlowSpec que lleguen por BMP se ignoran a propósito.
Configuración completa
La configuración tal como está en producción. Cambia el colector, la loopback y los grupos por los tuyos.
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 pasos
El BMP complementa los flujos: para la exportación de IPFIX en el mismo MX, mira Cómo exportar IPFIX desde un Juniper MX a EdgeWarden y la configuración IPFIX comentada línea por línea. Para los campos de BGP que llegan por IPFIX (next-hop, VRF), mira IPFIX avanzado: VRF, next-hop BGP, túneles y DPI en EdgeWarden. Los puertos y el firewall del servidor están en la guía de instalación.