Skip to content

ajufrancis/exabgp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#ExaBGP

Software Defined Networking without marketing

ExaBGP 3.2 is out !

##Presentation

Control your network using BGP from any commodity servers and reap the benefit of software defined networking without OpenFlow

The list of supported RFC is available here

Receive parsed BGP updates in a friendly form (plain text or JSON) and manipulate them with shell scripts, for example this looking glass use ExaBGP, PHP and MySQL and let you see how a prefix is routed through your network.

This program is packaged for Debian, Ubuntu, ArchLinux, Mint, FreeBSD and OSX. Unless you need the latest version, please consider using your distribution's.

If you are using ExaBGP from source (or mercurial), it does not need to be installed on your server ( using "python setup.py install" ) and will run from the extracted archive, or your local git repository. It allows to run several versions at the same time without conflict.

These organisations told us they use ExaBGP : FACEBOOK MICROSOFT DAILYMOTION BBC WIKIMEDIA AMSIX NEO TELECOM VIDEOPLATZA ALCATEL LUCENT and many researchers 1 2 3

Should you need commercial support in order to deploy ExaBGP in your organisation, please feel free to contact Exa Networks using sales AT exa-networks DOT co DOT uk

Want to know how the code is changing ? follow our Google + Community page where we discuss current developments. You can as well follow us on twitter, or subscribe to our low volume mailing list.

##Features

  • announce BGP route to IPv4 or IPv6 routers with a JunOS looking configuration file
    • IPv4/IPv6 (unicast, multicast, nlri-mpls, mpls-vpn) routes with arbitrary next-hops
    • MPLS (route-distinguisher), RFC 4659 (vpnv6)
    • flow routes (see [RFC 5575](http://tools.ietf.org/html/rfc5575 RFC 5575))
    • support for many recent drafts (multi-session, add-path, IPv6 FlowSpec, ...)
  • generate BGP updates from third party applications
  • parse BGP and generate BGP updates from your own program simply
    • track changes in the global routing table or your network.
    • temporary route redirection (adding more specific routes with different next-hop)
    • injection of flow routes to handle DDOS
  • runs on any Unix server (has no dependencies).
  • BSD licence, integrate ExaBGP in your own application stack !

ExaBGP does not perform any FIB manipulation, however it can call an application which will perform them. Please look at BIRD if this is what you are looking for.

##News

RFC / drafts support

  • complete RFC 5575 by :
    • providing support for flow-vpn
    • adding DCSP marking
    • adding traffic-action
  • implemented draft-raszuk-idr-flow-spec-v6-03
  • implemented draft-ietf-idr-flowspec-redirect-ip-00.txt

New features include

  • An external program to announce a service ( Thank you Vincent ! )
  • ExaBGP can accept incoming connections ( not production ready ! )
  • ExaBGP can decode incoming Flow routes
  • using "next-hop self" is supported via the API
  • new update code generation can group multiple NLRI, from different families, in one update packet
  • NOTIFICATION message generation using the API
  • API message control (limit diffusion to a subset of peers)
  • better --decode option to find out what a hex dump of a route mean
  • new internals ... many, including
    • large rewrite of non-optimal code
    • new non-blocking reactor
    • new Adj-RIB-In and Adj-RIB-Out with scalable watchdog feature
  • many small fixes, see the full CHANGELOG
  • and more ....

The configuration file format changed slightly from 3.1.x to 3.2.x, effort were made to make sure the previous configuration format would still work, however users are encouraged to check their configuration files.

##Usage

##More information

Should you need any help or have any question, please post on our mailing-list or ask on our G+ community

Follow our google community or twitter.

Please consult any of :

Development is done on python 2.7, the code is kept compatible with python 2.4 in ExaBGP 2.x.x and python 2.5 in ExaBGP 3.1.x. ExaBGP 3.2.x will rely on python 2.7, and we are likely to required python 3.4+ for ExaBGP 4.x.x

This programs does not have any dependences on any third party libraries and will run out of the box on any Unix system.

Get it

> wget https://github.com/Thomas-Mangin/exabgp/archive/3.2.5.tar.gz
> tar zxvf 3.2.5.tar.gz
> cd exabgp-3.2.5
> ./sbin/exabgp --help

##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

And some self promotion :

  • ExaProxy A non-caching HTTP proxy able to perform complex headers and answers manipulations

My blog may contain some BGP related information, but I tend to post more on G+ than I blog.

About

The BGP swiss army knife of networking

Resources

Stars

Watchers

Forks

Packages

No packages published