With the release of version 26.0 (Balaclava), OpenNMS now offers support for the BGP Monitoring Protocol (BMP) in the Streaming Telemetry feature (telemetryd).
What Is BGP Monitoring?
The BGP Monitoring Protocol (BMP) monitors Border Gateway Protocol (BGP) sessions and provides a convenient interface to monitor BGP routing information on the routing device. The integration in OpenNMS allows you to use this information, status updates, and statistics for advanced monitoring and management, providing visibility into what BGP is doing.
OpenNMS BMP Integration
OpenNMS leverages OpenBMP, an application that was developed as a reference implementation for receiving BMP messages from network equipment and presenting the state of the BGP network to the user. (For more information on OpenBMP, check out this presentation by owner/contributor Tim Evens or the following links: OpenBMP Server Collector, OpenBMP readme.)
BGP runs on routers and high-end switches. Those routers can point to OpenNMS or an OpenNMS Minion and send BMP data to OpenNMS. To use OpenNMS BMP features, you need the OpenBMP PostgreSQL component installed and set up, and have a BMP-enabled router.
The OpenNMS BMP parser accepts BMP connections from router packets using a TCP listener. Three adapters in OpenNMS read BMP data including an inventory list of connected routers and the peers they are established with, and stats and data about what is being exchanged over those peers:
- BMP Telemetry Adapter: handles BMP statistics received and parsed by the BMP Parser. Statistics received from the router are associated as performance data with that router. View metrics and statistics related to that peer and apply thresholding.
- BMP Peer Status Adapter: handles BMP Peer Up and Down messages that the BMP Parser receives and parses, and converts them to OpenNMS events. Allows alarm creation based on up/down status.
- OpenBMP Integration Adapter: integrates with an existing OpenBMP installation and handles BMP messages from the BMP Parser, and creates OpenBMP-compatible messages, which are then passed to the OpenBMP Kafka cluster.
The parser and adapters are configurable in the telemetryd-configuration.xml file. For more information on BMP functionality in OpenNMS, see the online user documentation.
View BMP data in the OpenNMS UI by logging in and choosing Reports>Resource Graphs. Select the BMP-enabled resource for which you want to view statistics, and choose Graph All. OpenNMS displays graphs similar to the following:
Displays times when a peer withdrew an IP prefix:
Displays times when a peer withdrew an update:
You can also create dashboards in Grafana to view this OpenNMS BMP data.
Displays prefixes in violation of Resource Public Key Infrastructure (RPKI) (table and chart format), prefixes in violation of an Internet Routing Registry (IRR) (table and chart format), and the number of RPKI route origin authorizations (ROAs) and IRR entries:
Displays the number of advertised IP addresses and their IP version (in this case, IPv4), the upstream/downstream autonomous systems (ASNs), and a visualization of the originating prefix trend:
Upcoming BMP Features
This first milestone provides a high-capacity and resilient infrastructure for routing BMP messages into an SNAS/OpenBMP-compatible persistence layer.
Milestone two will incorporate all OpenBMP functionality and alarm workflows into OpenNMS workflows, the Web UI, and the Helm console. This integration will allow full support of BGP monitoring in a production environment from an holistic fault and performance monitoring system.
Our third milestone will offer a cloud-hybrid software-as-a-service (SaaS) solution where on-premise OpenNMS solutions can incorporate this feature without having to deploy the additional required infrastructure.
BMP functionality in OpenNMS is the result of a customer request through our sponsored development program. Our customers have requested and received features like SNMP version 3 support, a remote monitoring method, integration with other tools. and specific monitors for such things as SMS messaging. This collaboration between customers and open source is a great way for us to respond to customer needs while developing new product features that benefit all OpenNMS users.