BGP dashboard (fork)
  • CSS 58.5%
  • Python 21.1%
  • HTML 18.9%
  • Dockerfile 1.3%
  • Shell 0.2%
Find a file
Tomas Jonsson 393eac21e1
Some checks failed
Docker / build (push) Failing after 5m11s
use latest ubuntu lts image.
2024-02-29 14:22:02 -05:00
.github update docker job for correct branch 2024-02-29 14:08:53 -05:00
db/bgp add db/bgp directory 2018-04-24 18:16:49 -07:00
flask use latest ubuntu lts image. 2024-02-29 14:22:02 -05:00
gobgp use latest ubuntu lts image. 2024-02-29 14:22:02 -05:00
log add sample_data log - gobgp data 2018-04-23 12:05:14 -07:00
.gitignore update gitignore for pycharm 2018-05-07 18:22:10 -07:00
bgp-dashboard.png add initial readme and screenshot 2017-02-02 12:07:25 -08:00
bgp_attributes.py move functions and attributes into sub modules 2018-04-28 12:39:19 -07:00
docker-compose.yml set docker-compose version to 2, to support older operating systems 2018-10-05 10:26:46 -07:00
gobgp_to_mongo.py add additional database indexes 2018-05-18 15:50:09 -07:00
README.md Update README.md 2018-11-08 10:40:50 -08:00

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

The GoBGP container serves two functions:

  • Peer with the "real" network
    • Configure 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 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 queries

Screenshot

screenshot

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

  • ???