https://github.com/rhicks/bgp-dashboard
BGP Dashboard and Monitoring Web Application
https://github.com/rhicks/bgp-dashboard
bgp bgp-dashboard bgp-monitoring-protocol docker docker-compose flask gobgp ipv4 ipv6 looking-glass mongodb peer
Last synced: 22 days ago
JSON representation
BGP Dashboard and Monitoring Web Application
- Host: GitHub
- URL: https://github.com/rhicks/bgp-dashboard
- Owner: rhicks
- Created: 2016-11-23T21:43:20.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-06-29T04:10:16.000Z (10 months ago)
- Last Synced: 2024-11-05T18:51:26.390Z (6 months ago)
- Topics: bgp, bgp-dashboard, bgp-monitoring-protocol, docker, docker-compose, flask, gobgp, ipv4, ipv6, looking-glass, mongodb, peer
- Language: CSS
- Homepage:
- Size: 13.3 MB
- Stars: 364
- Watchers: 28
- Forks: 76
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
BGP Dashboard
=============A "realtime" web view of your BGP network
- Who do I peer with?
- How many routes do I receive from my peers?
- Who do I use for tranist?
- What AS path does a prefix take out of my network?
- How many routes and autonomous systems do I see?
- BGP Looking Glass (IPv4/IPv6/ASN)How it works
---------
> This is beta code.
- BGP peering session using GoBGP
- GoBGP pipes BGP information into MongoDB
- Flask App queries MongoDB to build website and JSON API###### This project uses three Docker containers
- GoBGP ([osrg/gobgp](https://hub.docker.com/r/osrg/gobgp/))
- MongoDB ([mongo](https://hub.docker.com/_/mongo/))
- Flask ([docker-flask](https://hub.docker.com/r/p0bailey/docker-flask/))###### GoBGP
The GoBGP container serves two functions:
- Peer with the "real" network
- Configure [gobgpd.conf](https://github.com/rhicks/bgp-dash/blob/master/gobgp/gobgpd.conf) to peer with the real network.
- Only IPv4-Unicast and IPv6-Unicast supported at this time.
- Pass BGP updates into BGP
- The [gobgp_to_mongo.py](https://github.com/rhicks/bgp-dash/blob/master/gobgp_to_mongo.py) script pipes the JSON updates from GoBGP into the MongoDB container###### MongoDB
- Mongo receives JSON updates from the GoBGP container
- The Flask App queries Mongo for relevant information###### Flask
- Flask presents a Dashboard for realtime BGP updates
- A JSON API is used on the backend to support the frontend and display Looking Glass queriesScreenshot
---------
Install
---------
```
$ git clone https://github.com/rhicks/bgp-dashboard.git
$ cd bgp-dashboard
$ # modify ./gobgp/gobgpd.conf to peer with your network
$ # modify ./flask/app/constants.py globals to use your ASN and BGP communities
$ docker-compose build
$ docker-compose up (watch the log to verify BGP peeering is established)
```Todo
---------
- ???