Monday, June 5, 2017

BGP Swiss Army Knife: ExaBGP

1:01 PM Leave a Reply
BGP Swiss Army Knife: ExaBGP
BGP Swiss Army Knife

     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. For years, ISP have been using BGP and custom code to perform BGP route injections. ExaBGP was designed to be that tool, a BGP based SDN application which does not get in the way.



ExaBGP is a versatile tool which is best suited for :

providing cross data centers failover solutions migrating /32 service IP.
mitigating network attacks, centrally deploying network level filters (blackhole and/or flowspec)
gathering network information ( using BMP, or BGP with Add-Path)
Like every application, the software is not without fault but has seen large scale deployment.



Installation

The program is packaged for Debian, Ubuntu, ArchLinux, Gentoo, Mint, FreeBSD, OSX and OmniOS (and probably more).

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.17.tar.gz | tar zx
> ./exabgp-3.4.17/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 simultaneously without conflict when ExaBGP is ran from extracted archives and/or local git repositories.


Download