exabgp v4.0.0 – The BGP swiss army knife of networking.

Changelog Version 4.0.0:
* Change: move and install healthcheck in bin
* Change: removed old environment support ( DEBUG_* )
* Change: configuration logging is now disabled by default
* Change: all API commands returns an ‘done’ or ‘error’ message after running
patch from: Jérôme Marteaux
* Change: when API commands are failing, returns a ‘error’ message
patch from: Jérôme Marteaux
* Change: md5 is now called md5-password
* Change: always use neighbor local address for next-hop self (and not router-id for on IPv4 connections)
* Feature: add support for upstart
patch by: Pierre-Yves Kerembellec
* Feature/Fix: Port of bagpipe EVPN code
patch by: Thomas Morrin
* Feature: EVPN RT5 support
patch by: Diego Garcia del Rio
* Feature: Can use numerical values for Flow elements
requested by: jpan613 (on github)
* Feature: show route (extensive) can take a neighbor as parameter
requested by: jtkdpu
* Feature: allow to run exabgp from python -m exabgp
* Change: ExaBGP is now run as user/group exabgp/exabgp with the systemd service file.
patch by: Vincent Bernat
* Change: Update are now grouped by default
* Change: Configuration format
– all deprecated name remove
– no more process group within neighbor
* Change: Change the API configuration syntax and format
– default changed
* JSON is now the default API encoder
* JSON now use high resolution time
– syntax changes to the Text API format
* added direction of message
* change received/sent to receive/send
* add extra informatiom (detail here)
– syntax changes to the JSON API format
* add direction to object
* pid, ppid are now numbers and not string
* remove deprecated ‘ip’ from neighbor
* rename ‘restart flags’ to be ‘restart-flags’
* rename ‘address family flags’ to be ‘address-family-flags’
* format change for notification and shutdown message
* VPLS endpoint, base, offset, and size are now numbers and not strings
* nlris are now a list and not nrli indexed object
* ipv4/ipv6 nlri without label or rd are now a list of nlri (as string) and not key to empty objects
* nlris with label or rd are returned as a list of objects
* Change: remove all ExaBGP 2.0 compatibily environment variables
* Change: include time when we log to file (and not application)
* Change: ttl-security is now called outgoing-ttl
* Change: the reactor does not exit if there is no peer configured
patch by: Jordan Gedney
* Fix: JSON reporting of VPLS ( endpoint, base, offset, and size were mixed up during printing )
* Fix: Do shutdown when waiting for a new connection to a peer
* Fix: Bad ASN enconding when ASN4 is not negotiated
reported by: Orangefish on github
* Fix: Shutdown when waiting for a new outgoing connection to establish
* Fix: JSON counter
reported by:
* Fix: JSON flow printing for source and destination
* Fix: Do not always locate exabgp.env
reported by: Florian Obser
* Fix: Correctly drop root privileges
reported by: Florian Obser
* Fix: validation of flow routes
* Fix: Python differences between Unix version breaking process forking
reported by: Raphael Mazelier
* Fix: Allow = with flowspec singleton
reported by: Pavel Odintsov
* Fix: selfcheck feature
* Fix: do not refuse to parse multiple MP attributes in an update
* Fix: possible bug with attribute information due to caching
reported by: Colin Petrie
* Fix: issue with unknown capabilities
reported by: Sandy Breeze
* Fix: notification messages were not passed to the API
reported by: Florian Obser
* Fix: ExaBGP was crashing if it could not write to a logfile
reported by: Pavel Odintsov
* Fix: only grouping IPv4 routes
reported by: Sergey Viuchny (stroboscope)
* Fix: Flow redirect to nexhop encoding
reported by: Mickael Marchand (Thank you to Peng Xiao and Nicolas Fevrier for their help)
* Fix: remove useless PYTHONPATH in sbin/exabgp
reported by: Håvard Eidnes
* Fix: add semi-colon in syslog ouput
* Fix: parsing multiple NLRI in flow routes
reported by: Dmitry Onuchin
* Fix: bad parsing of flow routes / missing support for exact bit matches
reported by: hengchai
reported by: Dmitry Onuchin
* Fix: reading large buffered data from helper process caused truncation
reported by: qqTYXn7
* Fix: better –version output
patch by: Ebben Aries
* Fix: mistakenly made a function private breaking some ASN4 code path
reported by: Victor Sudakov
* Fix: the ttl-security parameter didn´t really work. Fixed for outgoing connections now.
patch by: Borja Marcos
* Fix: AS4Path Message Registration
patch by: Adam Twardowski
* Fix: ASN4 boundary off by one
* Fix: Bad peer IP when using show routes
patch by: Wayne Tucker
* Fix: broken route-refresh command
reported by: Bryan Schwerer
* Fix: handle mulitple bits of flags in flow routes (Fragments and TCPFlags)
reported by: Pavel Odintsov
* Fix: does not use label information when handling the RIB
reported by: choisuibun
* Fix: healthcheck removes added IPs on exit
patch by: Ben Agricola
* Fix: Bad encoding of capability when multiple families are used for add-path
reported by: Alexander Bespalov
* Fix: support non ASN4 use of AS_TRANS (AS23456)
reported by: Todd Crane
* Fix: the json format would not allow normal parsers to extract all the NLRIs
reported by: Marco Marzetti
* Feature: Allow single line flow route
requested by: Pavel Odintsov
* Feature: add support for rpm packaging
patch by: Arun Babu Neelicattu
* Feature: manually sending EOR
pach by: Charles Ng
* Feature: add per neighbor connection port
requested by: dbarrosop
* Feature: support MIN_TTL for incoming connection (for OS with support – FreeBSD)
requested by: Borja Marcos
* Feature: md5-ip allows to override local-address for the MD5 calculations
requested by: Bryan Benson
* Feature: allow setting process umask via exabgp.daemon.umask
patch by: Bryan Le Gear


exabgp v4.0.0

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.

* 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.

Usage and Download from git:

Source: https://github.com/Exa-Networks