Skip to content

dueringa/bird-lg

 
 

Repository files navigation

BIRD-LG

Fork notes

  • IPv4 support removed
  • traceroute support removed
  • bgpmap support removed
  • Added custom start page
  • Use "... tables all" for all route queries
  • Python3 compatibility!

Environment variables

LG_CONFIG_FILE / LGPROXY_CONFIG_FILE: set the corresponding config file to use.

Overview

This is a looking glass for the Internet Routing Daemon "Bird".

Software is split in two parts:

  • lgproxy.py:

    It must be installed and started on all bird nodes. It act as a proxy to make traceroute and bird query on the node. Access restriction to this web service can be done in file "lgproxy.cfg". Two access restriction methods can be configured: based on source IP address or based on a shared secret. Both methods can be used at the same time.

  • lg.py:

    This is the frontend, a web based UI that request informations to all lgproxy.py nodes. The domain and the list of all bird nodes can be done.



                                         ***************
                                    +--> * lgproxy.py *
                                    |    ***************
                                    |  
********       *******************  |    ***************
* USER * ----> * webserver/lg.py *--+--> * lgproxy.py *
********       *******************  |    ***************
                                    |  
                                    |    ***************
                                    +--> * lgproxy.py *
                                         ***************

Installation

The web service (lg.py) depends on:

  • python-flask with async extra (flask[async])
  • python-dnspython
  • whois
  • httpx

The proxy running on routers (lgproxy.py) depends on:

  • python-flask >= 0.8

Each service can be embedded in any webserver by following regular python-flask configuration. It is also possible to run the services directly with python for developping / testing:

python3 lg.py
python3 lgproxy.py

Systemd unit files are provided in the init/ subdirectory.

Configuration

On your routers, copy lgproxy.cfg.example to lgproxy.cfg and edit the values.

On the web host, copy lg.cfg.example to lg.cfg and edit the values.

License

Source code is under GPL 3.0, powered by Flask, jQuery and Bootstrap.

Copyright © 2012 Mehdi Abaakouk sileht@sileht.net (Original Software) Copyright (c) 2024 Andreas Duering (Fork)

Happy users

About

bird looking glass

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 53.0%
  • CSS 22.4%
  • HTML 13.4%
  • JavaScript 11.2%