Skip to content
The BGP swiss army knife of networking
Python Shell Perl
Pull request Compare This branch is even with Exa-Networks:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bin
debian
dev
doc/man
etc
lib/exabgp
logo
qa
redhat
sbin
service/bgp-service-ip
.coveragerc
.gitignore solve label issue in prefix May 11, 2015
.landscape.yaml
.pylintrc
.scrutinizer.yml
.travis.yml
CHANGELOG
COPYRIGHT
PEP8
PYPI.rst update pypi and changelog Jul 25, 2015
README.md
requirements.txt
setup.py

README.md

License PyPI PyPI Downloads PyPI Python PyPI Status PyPI Wheel Gitter

Introduction

ExaBGP provides a convenient way to implement Software Defined Networking by transforming BGP messages into friendly plain text or JSON, which can then be easily handled by simple scripts or your BSS/OSS.

It is routinely used to improve service resilience and provide protection against network or service failures. For example, thanks to the healthcheck backend included, anycasted DNS service failures can be detected and handled gracefully. To help you get started, Vincent Bernat put forward a full lab explaining how to best use this feature.

Also, alone or in conjunction with fastnetmon, it provides network operators a cost effective DDOS protection solution.

But it is not its only strength, thanks to modern routers' flow balancing, ExaBGP can also be used to save you money on load balancers. Other uses include keeping an eye on network changes done by RIPE or by other networks with GIXLG.

Installation

The program is packaged for Debian, Ubuntu, ArchLinux, Gentoo, Mint, FreeBSD, OSX and even OmniOS.

The latest version is available on pypi, the Python Package Index

> pip install exabgp
> exabgp --help
> python -m exabgp healthcheck --help

It is also possible to download the latest archive from github

> curl -L https://github.com/Exa-Networks/exabgp/archive/3.4.16.tar.gz | tar zx
> ./exabgp-3.4.16/sbin/exabgp --help
> ./bin/healthcheck --help

If using git, for production deployment, please use the "3.4` branch.

> git clone https://github.com/Exa-Networks/exabgp.git
> git checkout 3.4
> ./bin/healthcheck --help

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

The configuration file and API format change from time to time, but every effort is made to make sure backward compatibility is kept. However users are encouraged to read the release note/CHANGELOG and check their setup after upgrade.

Support

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

ExaBGP is supported through Github's issue tracker. So should you encounter any problems, please do not hesitate to report it so we can help you.

During "day time" (GMT/BST) feel free to contact us on Gitter; we will try to respond if available. ExaBGP also has a channel on Freenode #exabgp but it is not monitored.

The best way to be kept informed about our progress/releases is to follow us on Google+ and/or Twitter. You can also use and subscribe to our low volume mailing list.

For more information, please consult any of the wiki pages, in particular the Related Articles, RFC compliance, FAQ and changelog.

Related Projects

The following projects are related to ExaBGP

Network Protection

  • fastnetmon a DDOS protection solution
  • exabgp edgerouter Spamhaus and Emerging Threats blocking with Ubiquiti EdgeRouters
  • exabgp-voipbl advertises local or/and voipbl.org blacklist using unicast or flow route.

Visualisation

  • GIXLG a looking glass with visualisation
  • lookify another looking glass

Route Announcement

Installation

Interoperability

  • IOS2ExaBGP converts Cisco IOS IPv4 BGP LOC Rib dumps to ExaBGP's format
  • MRTparse convert MRT format to ExaBGP

High availability

  • ExaZK a plugin to interface ExaBGP & ZooKeeper
  • exazk a ruby solution to interface ExaBGP & ZooKeeper to achieve service HA

Performance

  • bgperf Stress test solution for Bird and Quagga (can be used with other implementations)
  • super smash brogp Stress test BGP
  • kyro realtime network performance measurement and optimal routes injection - not really ExaBGP related, they have their own stack, but worth mentioning

Other BGP implementation

  • Full list of known open source BGP implementation
  • Bird very good C based BGP implementation with powerful route filtering language for network administrators
  • GoBGP an implementation with various binding for programmers
  • RYU for SDN fans

Commercial

  • WanGuard DDOS protection from Andrisoft with ExaBGP integration

Features

RFC support includes ASN4, IPv6, MPLS, VPLS, Flow, Graceful Restart, Enhanced Route Refresh, and AIGP among others. More information can be found here

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

Who is using ExaBGP ?

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,

Self Promotion

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

Something went wrong with that request. Please try again.