WE MOVED TO GOOGLE CODE
Please go to ExaBGP for up-to-date information.
A BGP speaker which can inject routes with arbitrary next-hops into your network to source some ipv4/ipv6 routes (using both IPv4 and IPv6 TCP connections) and/or mitigate DDOS using flowspec.
The development version has seen the following improvements:
For more information about what is FlowSpec
Require a Linx membership
Some FlowSpec configuration examples (route injector and router) are available here
The code is stored in our SVN repository:
Get it with:
cd /opt svn co http://svn.exa.org.uk/bgp/trunk bgp
Make sure your trunk version up-to-date as trunk is currently under heavy development.
Bug reports are welcome :)
There is no tarball, the only way to download the code is through SVN.
You can copy and modify one of the sample configuration files provided in the etc/bgp folder, then provide it as an argument to the program.
/opt/bgp/bin/bgpd /opt/bgp/etc/bgp/as112.txt
For production use, we are using deamontools to supervise the program. Some supervise scripts are provided in the repository “service” folder. That said, we never saw the application crash unexpectedly - touching wood.
The application does not bind to port 179, or perform RIB update, hence does not need any escalated privileges and will happily run as “nobody”.
#!/bin/bash exec nice --4 env PYTHONPATH=/opt/bgp/lib setuidgid nobody /opt/bgp/daemon/bgpd /opt/bgp/etc/bgp/service-ip.txt 2>&1
It is possible to send a SIGHUP signal the program to have it send the right updates (peer setup and tear down, announcement and withdrawal) to sync the remote RIB to a new configuration file.
The configuration file is very juniper like with many examples here
if you speak 5234 (ABNF) Please help here
Should you care, the program is written in Python 2.x for version 2.5 or later.
The code only relies on the standard library and has no external dependencies, as Python is installed with most Unix systems, it should just run out of the box.
The features relying on Python 2.5/2.6 have been removed from the code and the program will now work with Python 2.4. However this version is not used by the developers and may accidentally break.
No tests have been performed to check if it works with version 3.0 if converted with 2to3.
Check our FAQ and let us know if your question is not yet here.
Join the flow-spec mailing list