Skip to content
hyperglass is a modern, customizable network looking glass written in Python 3.
Python HTML JavaScript CSS
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
hyperglass fix configuration for ping commands Jul 22, 2019
tests
.gitattributes adding .gitattributes file Jun 10, 2019
.gitignore moved docs to separate repo Jun 16, 2019
.pylintrc initial travis Jun 17, 2019
.travis.yml Make CI fail on black/pylint failure, but not change files Jun 19, 2019
CONTRIBUTING.md README Improvements; Community docs Jun 24, 2019
LICENSE initial May 8, 2019
README.md
grafana.json moving docs to separate repo Jun 15, 2019
logo.png moved docs to separate repo Jun 16, 2019
manage.py
pylint.svg Black Formatting - travis # Jun 16, 2019
requirements.txt Set required dependency versions Jun 19, 2019

README.md

hyperglass is a modern network looking glass application. A looking glass is typically implemented by network service providers as a way of providing customers, peers, and partners with a way to easily view elements of, or run tests from the provider's network.


Documentation   |   Screenshots   |   Live Demo

Build Status GitHub issues Pylint Code style: black


hyperglass is intended to make implementing a looking glass too easy not to do, with the lofty goal of improving the internet community at large by making looking glasses more common across autonomous systems of any size.

Features

  • BGP Route, BGP Community, BGP AS Path, Ping, Traceroute
  • Full frontend and backend IPv6 support
  • Netmiko-based connection handling for traditional network devices
  • FRRouting support via hyperglass-frr REST API
  • BIRD support via hyperglass-bird REST API
  • Customizable commands for each query type by vendor
  • Clean, modern, google-esq GUI based on the Bumla framework
  • Customizable colors, logo, web fonts, error messages, UI text
  • Simple TOML config file for all customizable parameters (no databases!)
  • Optional SSH Proxy to further direct secure router access
  • Configurable IP/Prefix "blacklist" to prevent lookup of sensitive prefixes
  • Configurable rate limiting, powered by Flask-Limiter
  • Query response caching with configurable cache timeout
  • Prometheus metrics for query statistics tracking (Check out the live demo!)

Platform Support

hyperglass is preconfigured to support the following platforms:

  • Cisco IOS-XR: Netmiko cisco_xr vendor class
  • Cisco Classic IOS/IOS-XE: Netmiko cisco_ios vendor class
  • Juniper JunOS: Netmiko junos vendor class
  • FRRouting: hyperglass-frr API
  • BIRD: hyperglass-bird API

Theoretically, any vendor supported by Netmiko can be supported by hyperglass. To request support for a specifc platform, please submit a Github Issue with the enhancement label.

Coming Soon

Community

There is now a hyperglass team on Keybase! Any users, potential users, or contributors of hyperglass are welcome to join to discuss usage, feature requests, bugs, and other things.

hyperglass is developed with the express intention of being free to the networking community.

However, the hyperglass demo does cost @checktheroads about $15/month for 3 Digital Ocean droplets. If you're feeling particularly helpful and want to help offset that cost, small donations are welcome.

Donate

Acknowledgements

  • This project originally started as a fork of vraulsan's looking-glass project. The guts of the Flask components still remain from that project, but almost everything else has been rewritten. Nevertheless, the inspiration for building hyperglass came from here.

License

Clear BSD License

You can’t perform that action at this time.