2019-06-15 19:05:47 -07:00
< img src = "logo.png" width = 300 > < / img >
2019-05-07 23:21:41 -07:00
2019-06-10 13:06:55 -07:00
**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.
2019-06-24 14:03:11 -07:00
< hr >
< div align = "center" >
2019-05-07 23:21:41 -07:00
2019-06-24 14:03:11 -07:00
[**Documentation** ](https://hyperglass.readthedocs.io ) | [**Screenshots** ](https://hyperglass.readthedocs.io/en/latest/screenshots/ ) | [**Live Demo** ](https://hyperglass.allroads.io/ )
2019-06-17 00:59:34 -07:00
2019-06-17 02:30:47 -07:00
[![Build Status ](https://travis-ci.org/checktheroads/hyperglass.svg?branch=master )](https://travis-ci.org/checktheroads/hyperglass)
2019-06-19 08:58:50 -07:00
![GitHub issues ](https://img.shields.io/github/issues/checktheroads/hyperglass.svg )
2019-06-17 00:52:35 -07:00
[![Code style: black ](https://img.shields.io/badge/code%20style-black-000000.svg )](https://github.com/ambv/black)
2019-05-07 23:21:41 -07:00
2019-06-24 14:03:11 -07:00
< / div >
< hr >
**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.
2019-05-07 23:21:41 -07:00
## Features
2019-05-08 10:39:20 -07:00
2019-06-10 12:57:20 -07:00
- BGP Route, BGP Community, BGP AS Path, Ping, Traceroute
2019-06-15 19:05:47 -07:00
- Full frontend and backend IPv6 support
2019-06-10 12:57:20 -07:00
- [Netmiko ](https://github.com/ktbyers/netmiko )-based connection handling for traditional network devices
- [FRRouting ](https://frrouting.org/ ) support via [hyperglass-frr ](https://github.com/checktheroads/hyperglass-frr ) REST API
2019-06-23 14:33:22 -07:00
- [BIRD ](https://bird.network.cz/ ) support via [hyperglass-bird ](https://github.com/checktheroads/hyperglass-bird ) REST API
2019-06-10 12:57:20 -07:00
- Customizable commands for each query type by vendor
- Clean, modern, google-esq GUI based on the [Bumla ](https://bulma.io ) framework
2019-05-08 10:39:20 -07:00
- Customizable colors, logo, web fonts, error messages, UI text
2019-06-10 12:57:20 -07:00
- 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
2019-05-08 10:39:20 -07:00
- Configurable rate limiting, powered by [Flask-Limiter ](https://github.com/alisaifee/flask-limiter )
2019-06-15 19:05:47 -07:00
- Query response caching with configurable cache timeout
2019-06-10 12:57:20 -07:00
- [Prometheus ](https://prometheus.io/ ) metrics for query statistics tracking
2019-05-07 23:21:41 -07:00
2019-06-24 14:03:11 -07:00
## Platform Support
2019-05-07 23:21:41 -07:00
2019-06-24 14:03:11 -07:00
hyperglass is preconfigured to support the following platforms:
2019-06-24 11:40:53 -07:00
2019-06-24 14:03:11 -07:00
- **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` ](https://github.com/checktheroads/hyperglass-frr ) API
- **BIRD** : [`hyperglass-bird` ](https://github.com/checktheroads/hyperglass-bird ) API
2019-05-07 23:59:05 -07:00
2019-06-24 14:03:11 -07:00
Theoretically, any vendor supported by Netmiko can be supported by hyperglass. To request support for a specifc platform, please [submit a Github Issue ](https://github.com/checktheroads/hyperglass/issues/new ) with the **enhancement** label.
## Coming Soon
2019-05-08 10:39:20 -07:00
2019-06-24 14:03:11 -07:00
- [GoBGP ](https://github.com/osrg/gobgp ) Support
2019-05-07 23:21:41 -07:00
2019-06-24 14:03:11 -07:00
## Community
2019-05-08 10:39:20 -07:00
2019-06-24 14:03:11 -07:00
For now, hyperglass news will be made available via Twitter:
2019-05-07 23:21:41 -07:00
2019-06-24 14:03:11 -07:00
- [@checktheroads ](https://twitter.com/checktheroads )
2019-05-08 10:39:20 -07:00
2019-06-24 14:03:11 -07:00
**hyperglass is developed with the express intention of being free to the networking community**.
2019-05-07 23:21:41 -07:00
2019-06-24 14:03:11 -07:00
*However, the hyperglass demo does cost [/checktheroads ](https://github.com/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.*
2019-06-19 08:58:50 -07:00
2019-06-24 14:03:11 -07:00
[![Donate ](https://img.shields.io/badge/Donate-blue.svg?logo=paypal )](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick& hosted_button_id=ZQFH3BB2B5M3E& source=url)
2019-06-19 08:58:50 -07:00
2019-05-07 23:21:41 -07:00
## Acknowledgements
2019-05-08 10:39:20 -07:00
2019-06-10 12:57:20 -07:00
- This project originally started as a fork of [vraulsan ](https://github.com/vraulsan )'s [looking-glass ](https://github.com/vraulsan/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.
2019-05-07 23:21:41 -07:00
## License
2019-05-08 10:39:20 -07:00
2019-05-07 23:21:41 -07:00
[Clear BSD License ](https://github.com/checktheroads/hyperglass/master/LICENSE )