New in OpenNMS: BGP Monitoring Protocol (BMP) Functionality
Tags: bgp, bmp, monitoring
Published: 2020-05-04 19:20:00

---
title: New in OpenNMS: BGP Monitoring Protocol (BMP) Functionality
published: true
date: 2020-04-21 14:33:18 UTC
tags: bgp,bmp,monitoring
canonical_url: https://www.opennms.com/en/blog/2020-04-21-new-in-opennms-bgp-monitoring-protocol-bmp-functionality/
cover_image: https://i.imgur.com/74fmzvG.png
---

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](https://tools.ietf.org/html/rfc7854 "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](https://www.snas.io/ "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](https://www.youtube.com/watch?v=YsupfSHKSqw "this presentation") by owner/contributor Tim Evens or the following links: [OpenBMP Server Collector](https://github.com/SNAS/openbmp "OpenBMP Server Collector"), [OpenBMP readme](https://github.com/SNAS/openbmp/blob/master/README.md "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](https://github.com/SNAS/obmp-postgres "PostgreSQL component") installed and set up, and have a BMP-enabled router.

![](https://www.opennms.com/wp-content/uploads/sites/3/2020/04/bmp_integration_overview-991x1024.png)

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](https://docs.opennms.org/opennms/releases/latest/guide-admin/guide-admin.html#telemetryd-listener-tcp "online user documentation").

**Visualization**

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:_

![Prefix withdraw graph](https://www.opennms.com/wp-content/uploads/sites/3/2020/04/Prefix_withdraw.png)

_Displays times when a peer withdrew an update:_

![update withdraw graph](https://www.opennms.com/wp-content/uploads/sites/3/2020/04/update_withdraw.png)

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:_

![Grafana dashboard](https://www.opennms.com/wp-content/uploads/sites/3/2020/04/Grafana-1024x316.png)

_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._

![Grafana graph - IP, ASN](https://www.opennms.com/wp-content/uploads/sites/3/2020/04/Grafana-2-1024x232.png)

**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.

**Sponsored Development**

BMP functionality in OpenNMS is the result of a customer request through our [sponsored development program](https://www.opennms.com/sponsored-development/ "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.