Skip to content

Commit 741f7a5

Browse files
committed
Updated documentation and examples to show the UI.
1 parent c5c8a66 commit 741f7a5

24 files changed

+117
-94
lines changed

README.md

Lines changed: 46 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,10 @@
1-
Open BGP Monitoring Protocol (OpenBMP) Collector
2-
================================================
1+
Open BGP Monitoring Protocol (OpenBMP) Collection Framework
2+
===========================================================
33
![Build Status](http://build-jenkins.openbmp.org/buildStatus/icon?job=openbmp-server-ubuntu-trusty)
44

5-
OpenBMP is an open source project that implements **draft-ietf-grow-bmp-14**. BMP protocol version 3 is defined in draft 08, while versions 1 and 2 are defined in the previous revisions of the draft.
6-
7-
JunOS 10.4 implements the older versions of BMP. Cisco IOS XE 3.12, IOS XR, and JunOS 13.3 implement version 3 (draft 07).
8-
9-
10-
### Daemon
11-
OpenBMP daemon is a BMP receiver for devices/software that implement BMP, such as Cisco and Juniper routers. The collector is a **producer** to Apache Kafka. Both RAW BMP messages and parsed messages are produced for Kafka consumer consumption.
12-
13-
### Using Logstash with OpenBMP
14-
Logstash is a flexible, open source, data collection, enrichment, and transport pipeline designed to efficiently process a growing list of log, event, and unstructured data sources for distribution into a variety of outputs, including Elasticsearch.
15-
16-
See [Logstash](docs/LOGSTASH.md) for more details and how to use logstash with OpenBMP.
17-
18-
### Flat File Consumer
19-
A basic file consumer of OpenBMP parsed and RAW BMP Kafka streams. You can use this file consumer in the following ways:
20-
21-
* Working example to develop your own consumer that works with either parsed or RAW BMP binary messages
22-
* Record BMP feeds (identical as they are sent by the router) so they can be replayed to other BMP parsers/receivers
23-
* Log parsed BMP and BGP messages in plain flat files
24-
25-
See [file-consumer](http://www.openbmp.org/#!docs/FILE_CONSUMER.md) for more details.
26-
27-
### MySQL Consumer
28-
The MySQL consumer implements the OpenBMP Message Bus API parsed messages API to collect and store BMP/BGP data of all collectors, routers, and peers in real-time. The consumer provides the same data storage that OpenBMP collector versions 0.10.x and less implemented.
29-
30-
See [mysql-consumer](http://www.openbmp.org/#!docs/MYSQL_CONSUMER.md) for more details about the MySQL consumer.
31-
32-
### Message Bus (Kafka)
33-
Starting in release 0.11.x Apache Kafka is used as the centralized bus for collector message streams. The collector no longer forwards direct to MySQL. Instead, database consumers are used to integrate the data into MySQL, Cassandra, MongoDb, Postgres, flat files, etc. Anyone can now can interact with the BGP parsed and RAW data in a centralized fashion via Kafka or via one of the consumers. A single BMP feed from one router can be made available to many consumers without the collector having to be aware of that.
5+
OpenBMP is an open source project that implements **draft-ietf-grow-bmp-17**. BMP protocol version 3 is defined in draft 08, while versions 1 and 2 are defined in the previous revisions of the draft.
346

7+
JunOS 10.4 implements the older versions of BMP. Cisco IOS XE 3.12, IOS XR 5.2.2, and JunOS 13.3 implement version 3 (draft 07).
358

369
OpenBMP Flow
3710
------------
@@ -42,89 +15,84 @@ OpenBMP Flow
4215

4316
* Apache Kafka enables many applications the ability to tap into the existing BMP feeds from any number of routers. A single BMP feed via OpenBMP can feed data into hundreds of consumer apps, such as MySQL, Cassandra, Real-time monitors, Flat file, ELK, Apache Spark, etc.
4417

45-
* Open Daylight (ODL) controller plugins can integrate Kafka feed in both parsed and RAW formats into ODL data store to enable ODL APP's/plugins, making the data available via Netconf/RESTconf.
18+
* OpenBMP forwarder can be used to forward the native BMP messages (no modification) to any other BMP receiver, including openbmpd.
4619

47-
* Admins, Network Engineers, automated programs/scripts, etc. interact via ODL northbound interfaces to run various BMP analytics.
48-
49-
* Admins, Network Engineers, automated programs/scripts, etc. can go direct to Kafka, BMP database, RA APi's, etc.
20+
* Admins, Network Engineers, automated programs/scripts, etc. interact with the OpenBMP API or any other consuming application
5021

5122
Supported Features Highlights
5223
-----------------------------
5324
Below is a list of some key features supported today in OpenBMP. Many more features exist.
5425

5526
Feature | Description
5627
-------: | -----------
57-
draft-ietf-grow-bmp-14 | BMP Version 3 with backwards compatibility with older drafts
28+
RPKI/IRR | RPKI and IRR integration enables security analysis of monitored prefixes and ASN's. Try it out using the containers **openbmp/aio** and **openbmp/ui** .
29+
Topic Mapping | Dynamic and customizable topic names. Scale Kafka consumers by partition and topic
30+
draft-ietf-grow-bmp | BMP Version 3 with backwards compatibility with older drafts
5831
Apache Kafka | Producer of parsed and RAW BMP feeds, multiple consumers available
5932
Database | Access to all collected data via standard ODBC/DB drivers (openbmp-mysql-consumer)
6033
File Logging | All parsed messages can be logged to files, including BMP binary streams (openbmp-file-consumer)
6134
IPv4 | IPv4 Unicast routing table information
6235
IPv6 | IPv6 Unicast routing table information
63-
VPNv4 | L3VPN routing information (within VRF)
64-
bgp-ls| draft-ietf-idr-ls-distribution
36+
bgp-ls| [RFC7752](https://tools.ietf.org/html/rfc7752)
6537
Extended Communities | Roughly all of them
38+
VPNv4 | L3VPN routing information (within VRF) - *coming soon*
6639

6740
So much more...
6841

69-
News
70-
----
71-
### Nov-18-2015
72-
**Released version 0.11.0** with Apache Kafka integration. See release notes at [Release 0.11.0](docs/release_notes/release-0.11.0.md)
73-
74-
Mysql and file consumers are available.
42+
### Daemon
43+
OpenBMP daemon is a BMP receiver for devices/software that implement BMP, such as Cisco and Juniper routers. The collector is a highly scalable **producer** to Apache Kafka. Both RAW BMP messages and parsed messages are produced for Kafka consumer consumption.
7544

76-
### Aug-11-2015
77-
**Apache Kafka integration available** <br>
78-
The collector now fully supports Apache Kafka by producing both parsed and BMP raw messages. [openbmp-mysql-consumer](https://github.com/OpenBMP/openbmp-mysql-consumer) and [openbmp-file-consumer](https://github.com/OpenBMP/openbmp-file-consumer) are available for immediate use. Please report any bugs/issues via github.
45+
### User Interface
46+
User interface is available in the docker container **openbmp/ui**. Soon the UI will be added to github.
7947

48+
### Using Logstash with OpenBMP
49+
Logstash is a flexible, open source, data collection, enrichment, and transport pipeline designed to efficiently process a growing list of log, event, and unstructured data sources for distribution into a variety of outputs, including Elasticsearch.
8050

81-
### Jul-23-2015
82-
**New release 0.10.0 is available** Starting in **0.11.0** the collector will forward all messages (parsed and raw) to Apache Kafka. Anyone wishing to interact with the data can do so via simple kafka consumer clients. MySQL is being moved into a consumer app, so same over functionality with MySQL will be maintained. In addition to MySQL, a flat file example app will be created so others can see how easy it is to interact with the data. Other apps can be written by anyone, which includes Cassandra, Postgres, Apache Spark, etc.
51+
See [Logstash](docs/LOGSTASH.md) for more details and how to use logstash with OpenBMP.
8352

84-
New branch [0.10-0-mysql](https://github.com/OpenBMP/openbmp/tree/0.10.0-mysql) has been created for support/bug fixes only. New features will be in the master branch.
53+
### Openbmp Forwarder
54+
The Openbmp forwarder can be used to connect to one Kafka cluster and to regenerate BMP messages to another collector. The forwarder consumes the collector, router, peer, and bmp_raw messages and forwards them via
55+
native BMP.
8556

86-
Kafka integration is available today via the development branch [0.11.0-kafka-dev](https://github.com/OpenBMP/openbmp/tree/0.11.0-kafka-dev). This will be merged into the master branch after MySQL consumer app is available.
57+
See [openbmp-forwarder](https://github.com/OpenBMP/openbmp-forwarder) for more details.
8758

88-
### Jun-04-2015
89-
> #### UPGRADE YOUR SCHEMA for this release
90-
New release 0.9.0 is available. See [release-0.9.0](docs/release_notes/release-0.9.0.md) for more details.
59+
### Openbmp MRT
9160

92-
This release includes significant improvements with performance to handle routers with 10 million plus pre-rib prefixes. Number of peers can be in the hundreds per router.
61+
A lightweight OpenBMP consumer that dumps BMP messages on a time based interval to a file.
62+
The MRT file can then be loaded in any compliant MRT parser. Validation testing has been with
63+
[libbgpdump](https://bitbucket.org/ripencc/bgpdump/wiki/Home).
9364

94-
### Mar-27-2015
95-
> #### UPGRADE YOUR SCHEMA if using BGP-LS (link-state)
65+
**[RFC6396](https://tools.ietf.org/html/rfc6396)** - Multi-Threaded Routing Toolkit (MRT) Routing Information Export Format
9666

97-
BGP-LS is now supported. New tables and views have been created for BGP LS data.
67+
* BGP4MP\_STATE\_CHANGE_AS4 - Peer up/down events
68+
* BGP4MP\_MESSAGE - BGP update messages
69+
* TABLE\_DUMP\_V2 - Table dumps require the use of openbmp-mysql-consumer (MySQL/MariaDB)
9870

99-
### Jan-27-2015
100-
**Release 0.8.0 is available.** See [release-0.8.0](docs/release_notes/release-0.8.0.md) for more details.
71+
See [openbmp-mrt](https://github.com/OpenBMP/openbmp-mrt) for more details.
10172

102-
> #### UPGRADE YOUR SCHEMA
103-
> There have been schema changes, so please update your database. Currently there isn't a migration
104-
> script, so upgrading will require a drop of the current database. Routers will resend all data
105-
> so all current/active info will come back, but the history will be lost.
106-
>
107-
> If you are concerned with the history being lost, please email me with the schema version you are
108-
> using and I can provide you the alter table syntax to migrate the tables without loss.
73+
### MySQL Consumer
74+
The MySQL consumer implements the OpenBMP Message Bus API parsed messages API to collect and store BMP/BGP data of all collectors, routers, and peers in real-time. The consumer provides the same data storage that OpenBMP collector versions 0.10.x and less implemented.
10975

76+
See [mysql-consumer](http://www.openbmp.org/#!docs/MYSQL_CONSUMER.md) for more details about the MySQL consumer.
11077

111-
### Nov-1-2014
112-
Added back BMPv1 support. BMPv1 is supported best effort since it's missing the INIT, PEER UP, and TERM messages. Most things will work, but some of the DB views might need to be updated. We'll update those as needed/requested.
78+
### Flat File Consumer
79+
A basic file consumer of OpenBMP parsed and RAW BMP Kafka streams. You can use this file consumer in the following ways:
11380

114-
### Oct-29-2014
115-
Added DNS PTR lookup for peers and routers. Fixed minor issues and updated docs.
116-
Added [DB REST](http://www.openbmp.org/#!docs/DBREST.md)
81+
* Working example to develop your own consumer that works with either parsed or RAW BMP binary messages
82+
* Record BMP feeds (identical as they are sent by the router) so they can be replayed to other BMP parsers/receivers
83+
* Log parsed BMP and BGP messages in plain flat files
11784

85+
See [file-consumer](http://www.openbmp.org/#!docs/FILE_CONSUMER.md) for more details.
11886

119-
### Sep-10-2014
120-
**Released version 0.7.1** See [release-0.7.1](docs/release_notes/release-0.7.1.md) for more details.
87+
### Message Bus (Kafka)
88+
Starting in release 0.11.x Apache Kafka is used as the centralized bus for collector message streams. The collector no longer forwards direct to MySQL. Instead, database consumers are used to integrate the data into MySQL, Cassandra, MongoDb, Postgres, flat files, etc. Anyone can now can interact with the BGP parsed and RAW data in a centralized fashion via Kafka or via one of the consumers. A single BMP feed from one router can be made available to many consumers without the collector having to be aware of that.
12189

122-
> OpenBMP now fully supports draft-ietf-grow-bmp-07
12390

124-
**Upcoming Changes:**
91+
News/Change Log
92+
---------------
93+
Github is the best place to track and keep up with the latest changes.
12594

126-
* Add BGP-LS support - IGP tables/views
127-
* OpenBMP UI is being revised using ODL
95+
See [Openbmp GitHub](https://github.com/OpenBMP)
12896

12997

13098
Use-Cases
@@ -172,12 +140,6 @@ Interfacing with the Database
172140
See the [DB_SCHEMA](http://www.openbmp.org/#!docs/DB_SCHEMA.md) documentation for the database schema and how to interact with it.
173141

174142

175-
Using Open Daylight
176-
-------------------
177-
ODL integration has been open for awhile due to placement of the collector and analytics via ODL. With the recent change to Kafka, this makes it very clear and easy on how ODL will be able to integrate. A simple ODL plugin that implements the OpenBMP Kafka parsed message API can expose real-time BMP messages from hundreds of routers/peers via MD-SAL/Datastore. Making the data available via Netconf/RESTconf. ODL can also implement the BMP RAW API to interact natively with the BMP messages for parsing in bgpcep.
178-
179-
See the [ODL](docs/ODL.md) documentation for detailed information on how to use Open Daylight with OpenBMP.
180-
181143
Building from Source
182144
--------------------
183145
See the [BUILD](docs/BUILD.md) document for details on how to build OpenBMP from source. Includes how to create DEB and RPM packages.

docs/EXAMPLES.md

Lines changed: 50 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,66 @@
11
Examples
22
========
33

4-
Below are some examples using both the OpenBMP UI and CLI command line mysql client. ODL examples are coming.
4+
Below are some examples using both the OpenBMP UI and CLI command line mysql client.
55

6-
As described in the documentation, the database is standard SQL and any ODBC or native driver and tool can be used. Reporting tools like Business Objects can be used as well.
6+
As described in the documentation, the database is standard SQL and any ODBC or native driver and tool can be used. Reporting tools like Business Objects, Jasper, ... can be used.
77

8+
The UI uses the OpenBMP API, which is using the MySQL backend.
89

9-
UI Route Views
10+
11+
UI Screenshots
1012
--------------
11-
Example screenshots from WebUI.
13+
### Top 20 Prefixes updated and withdrawn
14+
Time period customizable
15+
![](images/top20.png "Top 20 prefixes updated/withdrawn")
16+
17+
- - -
18+
### Peer Info
19+
Similar to ```show bgp neighbor```, which includes the TCP session and capabilities
20+
![](images/peer_info.png "Peer Info")
21+
22+
- - -
23+
### Security Analysis
24+
Report received origin of prefixes to RPKI and IRR. IRR data is downloaded once a day. RPKI is continually updated every few minutes.
25+
![](images/security_report.png "Security Analysis")
26+
27+
28+
![](images/rpki_drill_down.png "RPKI drill down")
29+
30+
- - -
31+
### BGP-LS
32+
BGP-LS provides the link-state topology for either IS-IS and/or OSPF. SPF's are run per router to build the topology and routing tables. Run path traces, including the ability to run them with constraints, such as what if this router link didn't exist or what if one was added...
33+
34+
![](images/linkstate_topo_geo.png "link-state topo with geo")
35+
![](images/linkstate_map_traces.png "link-state map path trace")
36+
![](images/linkstate_SPF_and_traces.png "link-state spf and path trace")
37+
38+
39+
- - -
40+
### AS Analysis
41+
42+
![](images/as_view.png "AS View")
43+
![](images/as_view_up_down.png "AS Upstream/downstream")
44+
![](images/as_by_prefix_summary.png "AS prefix summary")
45+
46+
- - -
47+
### RIB
1248

13-
**Route View**
49+
Routing table is maintained per BGP peer (pre and post policy)
50+
![](images/routing_table.png "Routing table")
1451

15-
![](images/routes-view.png "Sample Routes view")
52+
Per peer Pre and Post policy metrics are tracked over time
53+
![](images/Pre_post_stats.png "Peer pre/post policy stats")
1654

17-
** Route Details**
55+
View the history of any prefix.
56+
![](images/prefix_history.png "Prefix history")
1857

19-
![](images/route-details.png "Sample Route detail view")
58+
Per peer updates over time
59+
![](images/updates_overtime.png "Updates")
2060

21-
** Withdraws **
61+
Per peer withdrawals over time
62+
![](images/withdraws_overtime.png "Withdraws")
2263

23-
![](images/withdraws.png "Sample withdraws")
2464

2565

2666
MySQL Client

docs/images/Pre_post_stats.png

144 KB
Loading
111 KB
Loading

docs/images/as_view.png

194 KB
Loading

docs/images/as_view_up_down.png

154 KB
Loading
76.3 KB
Loading
489 KB
Loading

docs/images/linkstate_topo_geo.png

471 KB
Loading

docs/images/openbmp-flow.png

-71.6 KB
Loading

0 commit comments

Comments
 (0)