Skip to content
Thomas Mangin edited this page Sep 18, 2023 · 31 revisions

License CI PyPI Status PyPI PyPI Wheel Code style: black

Overview

For years, ISPs have used BGP and custom code to perform dynamic network changes. ExaBGP was designed to be an easy to script BGP based SDN application that does not get in the way.

Like every application, the software is not without fault but has seen large scale deployment.

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 or WanGuard, it provides network operators a cost effective DDOS protection solution.

Thanks to modern routers' flow balancing, ExaBGP can also be used to save you money on load balancers, some good information can be found here too.

Other uses include keeping an eye on network changes done as was done by RIPE or by other networks with GIXLG.

Want to learn more?

You should read the following use cases presented below to see if it could help you:

Documentation

You may find on this wiki the information you are looking for, if not, please feel free to report the issue on the issue tracker but feel free to contribute.

A list of all the wiki pages.

Migration

The configuration format of ExaBGP changed between 3.4 and 4.0 - more information here

Other BGP implementation

Perhaps ExaBGP is not what you need, in that case, please consider:

  • RustyBGP (Rust) Fantastic BGP implementation 👏!
  • BioRouting (Golang) BGP, IS-IS, OSPF - very robust implementation
  • Bird (C) trusted around the world, powerful route filtering language
  • FRR (C) was Quagga, Zebra. If you do not already know it, you should
  • More open source BGP implementation