/exabgp

The BGP swiss army knife of networking

Primary LanguagePythonOtherNOASSERTION

License

ExaBGP allows engineers to control their network from commodity servers. Think of it as Software Defined Networking using BGP by transforming BGP messages into friendly plain text or JSON.

It comes with an healthcheck application to help you monitor your daemons and withdraw dead ones from the network during failures/maintenances. A full lab explaining how to use it is available here.

Find what other users have done with it. Current documented use cases include DDOS mitigation, network visualisation, anycast, service high availability.

The program is packaged for Debian, Ubuntu, ArchLinux, Gentoo, Mint, FreeBSD, OSX and even OmniOS, but the rate of development mean that some features may only be available on latest version.

> pip install exabgp
> exabgp --help
> curl -L https://github.com/Exa-Networks/exabgp/archive/3.4.10.tar.gz | tar zx
> ./exabgp-3.4.10/sbin/exabgp --help

##Features

ASN4 RFC 4893 / IPv6 RFC 4760 / MPLS RFC 4659 (with vpnv6) / VPLS RFC 4762 / Flow RFC 5575 / Graceful Restart RFC 4724 / Enhanced Route Refresh RFC 7313 / AIGPRFC 7311 / and more.

raszuk-idr-flow-spec-v6-03 / draft-ietf-idr-flowspec-redirect-ip-00 / draft-ietf-idr-add-paths-08 / draft-ietf-idr-bgp-multisession-07 / draft-scudder-bmp-01

ExaBGP does not perform any FIB manipulation. If this what you need, use another open source BGP daemon such as BIRD or Quagga.

##Support

Scrutinizer Code Quality Landscape Code Quality Coverage Status Codacy Badge Testing Status

The way way to keep informed is to follow us on Google+, twitter and / or subscribe to our low volume mailing list. For more information, please consult any of the wiki pages, in particular the RFC compliance, FAQ and changelog.

ExaBGP is supported through Github issue tracker on a best effort basis. So should you encounter a bug please report it so we can help you resolve it.

During "day time" ( GMT ) feel free to ask us questions using instant messaging via Gitter or #exabgp on Freenode.

Multiple versions can be used simulteanously without conflict when ExaBGP is ran from extracted archives and / or local git repositories.

The configuration file format changes from version to version, but effort are made to make sure backward compatibility is kept, however users are encouraged to read the release note and check their setup after upgrade.

##Commercial Support

You do not need commercial support to get help ! We try to be reactive to any problem raised, and hopefully are not too bad at it.

That said, some organisation are unable to deploy an application without commercial support, therefore it is available if your organisation requires it but is by no way required.

##Who is using it ?

These organisations have spoken of, or are using/have used ExaBGP:

AMS-IX, Alcatel Lucent, BBC, Cisco Systems, CloudFlare, Dailymotion, Deutsche Telekom/TeraStream, Facebook, Internap, MaxCDN, Microsoft, Neo Telecom, OpenDNS, PowerDNS, RIPE NCC, Videoplaza, and many more ...

Please let us know if you use it.

##Related Projects

  • GIXLG a looking glass with visualisation using ExaBGP
  • BGPAPI an HTTP API to ExaBGP
  • ExaBGP Chef Cookbook automate ExaBGP's installation
  • IOS2ExaBGP converts Cisco IOS IPv4 BGP LOC Rib dumps to ExaBGP's format
  • exabgp-voipbl advertises local or/and voipbl.org blacklist using unicast or flow route.
  • ExaBGPmon web interface to ExaBGP
  • ERCO web interface to ExaBGP

Self Promotion

Exa Networks has also developed a high-performance and very flexible filtering HTTP proxy (allowing cookie manipulation and other goodies).