Thomas Mangin

ExaBGP - A new Tool to Interact with BGP

Author image
Thomas Mangin

3 min read

0 Please read the article before liking.
11
Article lead image

ExaBGP is a new application designed to provide an easy way for programmers and system admistrators to interact with BGP networks.


ExaBGP is a new application designed to provide an easy way for programmers and system admistrators to interact with BGP networks. The program is designed to allow the injection of arbitrary routes into a network, including IPv6 and FlowSpec.

Introduction
 
Many security professionals are currently using NetFlow to monitor their network and react to DDOS attacks. By centralising their traffic information in one place, they are able to corrolate the information and detect more and more advanced attacks.
 
Many networks then use BGP to blackhole the destination IP of the attack at their edge, protecting their network core but still allowing the attacker to succeed. 

RFC 5575 , better known as FlowSpec, was designed to help security professionals react to such attacks in a more fine grained manner, by allowing precise filtering rules to be deployed, through BGP, to routers with advanced ASICS features.

ExaBGP is currently the only open source implementation of a route injector able to generate and propagate Flow Routes. 

Getting Started
 
ExaBGP is available on Google Code   and will run on most Unix flavours with any recent version of python 2 (2.4 to 2.7).
 
Simply untar the code into /opt, or any directory of your choice, then edit one of the template files in the etc/bgp folder to reflect what you want to do, and finally test your configuration calling “bin/bgpd” with your configuration as the first parameter.

What does it look like ...  

The configuration contains the usual BGP information fields; Cisco, Juniper, Quagga and BIRD users should find their mark very quickly.

A mixed IPv4/Flow configuration would look like the following:
 
neighbor 192.168.127.128 {
  description "a quagga test peer";
  router-id 192.168.127.1;
  local-address 192.168.127.1;
  local-as 65000;
  peer-as 65000;
  graceful-restart;
 

  static {
    route 10.0.3.0/24 {
      next-hop 10.0.255.254;
      community [ 30740:30740 30740:0 ];
      local-preference 200;
    }
    route 10.0.5.0/24 next-hop 10.0.255.254 local-preference 200;
  }
  flow {
    route slow-down-the-proxy-for-the-office {
      match {
        source 10.0.0.1/32;
        destination 192.168.0.1/32;
        destination-port >8080&<8088 =3128;
        source-port >1024;
        protocol tcp;
      }
      then {
        rate-limit 9600;
      }
    }
  }
}

 
We would love to hear from you...

The program wiki  has more information on how to install and configure the application.

As usual, comments and feedback are welcome. Feel free to use the site's bug tracker to contact us.

You can as well email or jabber the author at thomas.mangin AT exa-networks.co.uk

About the author

Thomas Mangin is Technical Director at Exa Networks Limited, a  B2B ISP based in the north of England.

Homepage: http://thomas.mangin.com/

0 Please read the article before liking.
11

You may also like

View more

About the author

Author image
Thomas Mangin Based in Bradford UK

Comments 11

The comments section is closed for articles published more than a year ago. If you'd like to inform us of any issues, please contact us.

Profile picture

Anonymous

Could anybody name several vendors who supports FlowSpec technology? <br />And what is the percent of transit AS, that have already implemented it?

Profile picture

Thomas Mangin

Depending when you read this, at least Juniper and Alcatel

Profile picture

Ivan

Recent versions of Cisco IOS XR and IOS XE on CRS and ASR9K already support FlowSpec

Profile picture

Thomas

Yvan, yes, Cisco recently implemented flowspec .. but the article is from 2010, 4 years ago.

Profile picture

Keshav

I have requirement for a flowspec capable device for some testing within the lab. We have a few Cisco and Juniper routers that don't support flowspec. Is ExaBGP something that I can use along with my existing routers to fill in that gap? Can someone please clarify? Thanks.

Profile picture

Thomas Mangin

You can use ExaBGP to both generate and parse flow routes. Cisco tested FlowSpec interop. with ExaBGP ( http://www.slideshare.net/bduvivie/cisco-live-milan-bgp-advance-2015 slide 59 ).

Profile picture

Keshav Prabhakar

Awesome! Thank you! You just brightened up my day. :) I'll keep you all posted on how things go.

Profile picture

Hajar

Hello Thomas,thank you for the Exabgp project. I installed exabgp on Ubuntu 14.04LTs ,and and couldn't find configuration files , I only find this exabgp folders: ./usr/local/lib/python2.7/dist-packages/exabgp ./usr/local/etc/exabgp ./usr/local/etc/exabgp

Profile picture

Thomas Mangin

Profile picture

Antony

hi thomas, Does this exabgp supports BGP-LS ? thanks, Antony

Profile picture

Thomas Mangin

Hi Antony, Not in any useful way at the moment. Thomas