bird looking glass
Go to file
Baptiste Jonglez 0e45d90b70 Simplify parsing of 'show protocols' to avoid future breakages
The current parsing method (ugly regexp) is hard to understand and prone
to breakage:

- Bird 1.4 changed the date format, which broke the parser ()
- Bird 2.0 changed the format of the "Table" field, which again broke the parser (#36)

The new method is much simpler, does not involve any regexp, and should
thus resist small syntax changes in Bird's output.

Important limitation: parsing will be messed up if the date contains a
space character.  There is no space in the default date format of Bird
(checked with Bird 1.3 to Bird 2.0), but since the date format is
configurable in Bird, it may happen anyway.  In particular, setting
"timeformat protocol iso long" in Bird will break bird-lg's parser.

Fixes #36
2018-08-22 12:46:21 +02:00
init Add example systemd unit files, courtesy of ARN 2018-05-26 11:28:53 +02:00
static Rewrite the way that user input is handled 2012-10-17 16:17:52 +02:00
templates Allow get svg 2017-08-16 22:40:07 +02:00
.gitignore Remove inused import and ignore bytecode 2012-05-07 11:17:43 +02:00
COPYING Update COPYING 2017-08-04 15:28:01 +02:00
README.mkd Add more happy users 2018-06-26 11:01:40 +02:00
bird.py Add restrict command 2012-05-27 14:32:50 +02:00
gpl-3.0.txt Add licence and readme 2011-12-16 11:06:15 +01:00
lg.cfg Allow to configure the bind address of bird-lg 2014-02-12 22:09:09 +01:00
lg.py Simplify parsing of 'show protocols' to avoid future breakages 2018-08-22 12:46:21 +02:00
lg.wsgi use current file name 2012-08-21 11:55:16 +02:00
lgproxy.cfg bind lgproxy.py optionally to an IP 2018-04-07 12:18:09 +02:00
lgproxy.py bind lgproxy.py optionally to an IP 2018-04-07 12:18:09 +02:00
lgproxy.wsgi Change lg-proxy to lgproxy to easly import it in wsgi 2014-02-18 11:52:43 +01:00
toolbox.py Add resolv timeout, store asn in memcache 2014-04-20 17:02:22 +02:00

README.mkd

BIRD-LG

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" (only IP address based restriction for now).

  • 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 *
                                         ***************

bird-lg depends on :

  • python-flask >= 0.8
  • python-dnspython
  • python-pydot
  • python-memcache
  • graphviz
  • whois
  • traceroute

Each services can be embedded in any webserver by following regular python-flask configuration.

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

Copyright © 2012 Mehdi Abaakouk sileht@sileht.net

Happy users