BGP swiss army knife
Project description
Introduction
ExaBGP allows engineers to control their network from commodity servers. Think of it as Software Defined Networking using BGP.
It can be used to announce ipv4, ipv6, vpn or flow routes (for DDOS protection) from its configuration file(s). ExaBGP can also transform BGP messages into friendly plain text or JSON which can be easily manipulate by scripts and report peer announcements.
It supports IPv4, IPv6, mpls, vpls, bgp-ls, flowspec and more.
Installation
Prerequisites
ExaBGP requires a recent python 3 version (3.7 or later recommended). It includes/vendors its dependencies.
Using pip
Use pip to install the packages:
pip install -U exabgp exabgp --help
Without installation
curl -L https://github.com/Exa-Networks/exabgp/archive/4.2.3.tar.gz | tar zx ./exabgp-4.2.3/sbin/exabgp --help
Feedback and getting involved
#exabgp: irc://irc.freenode.net:6667/exabgp (unmonitored)
Twitter: https://twitter.com/#!/search/exabgp
Mailing list: http://groups.google.com/group/exabgp-users
Issue tracker: https://github.com/Exa-Networks/exabgp/issues
Code Repository: https://github.com/Exa-Networks/exabgp
Versions
- Version explained:
major : codebase increase on incompatible changes
minor : increase on risk of code breakage during a major release
bug : increase on bug or incremental changes
- Version 4.2.3:
Fix: issue with sending data toward API reported by: jkldgoefgkljefogeg
Fix: bug in spin prevention (true vs True)
Fix: peer and local ID for show neighbor commands
- Version 4.2.2:
Fix: issue with new respawn feature breaking the API
- Version 4.2.1:
Feature: use vendored ip_address module for healthcheck
Feature: respawn option under the process (disable re-starting the api program on failure)
Feature: support for single announcement for the healthcheck
- Version 4.2.0:
Feature: Support additional sub-type of BGP-Prefix-SID for SRv6-VPN patch by: Hiroki SHIROKURA
Fix: issue with pypi release (can not pip install) reported by: Thomas Faivre
Fix: on ‘restart’ config could improperly interference with current config which leads to inconsystent state and crash patch by: Alexander Petrovsky
Feature: “rate-limit” (per neighbor) limit the number of BGP message(s) handled per second
Feature: support draft-ietf-idr-flowspec-redirect-02 (previously only simpson was supported) patch by: Eli Lindsey
Feature: BGP LS IPv6 parsing support patch by: Tinus Flagstad
Feature: healthcheck handle loopback for non-Linux machines
Fix: use local IP for router-id when the peer is auto-deteted (and not the remote IP)
Fix: potential python3/python2 bytes vs string issues when generating updates
Fix: label is mandatory when using RD, force it, and perform better checks on the configuration
Fix: sending route-refresh message via the API was broken reported by: Konrad Zemek
Fix: make sure exabgpcli does not hang when exabgp.api.ack is set to False patch by: basyron
Fix: not correctly recording AFI for next-hop self use
Fix: removal of ip address by healthcheck patch by: wavezhang
Fix: healthcheck on ^C during time.sleep, exit gracefully
Fix: healthcheck do not fail if the IP address exist when we are trying to add it
Fix: healthcheck correctly remove the IP address on going down if it was added
Fix: bug when parsing passive keyword alone (was false not true)
Fix: was not always terminating with error code 0 when all was good patch by: badrabubker
CHANGE: large change to the configuration code (should not have any effect but the devil is in the details)
CHANGE: using next-hop self could lead to route generated with a IPv6 next-hop in the IPv4 next-hop This COULD have been accepted by peers. This version does prevent such generation.
CHANGE: resolve symlink when reading the file and not when parsing the configuration reported by: juise (with alternative patch - thank you)
CHANGE: the reactor was changed from using select to poll (removing the 1024 limit on connections)
CHANGE: rewrote setup.py, moving release code into another file
- Version 4.1.5:
Deleted: could not install via pip install
- Version 4.1.4:
Deleted: could not install via pip install
- Version 4.1.3:
Deleted: could not install via pip install
- Version 4.1.2
Feature: exabgpcli autocomplete
Fix: exabgpcli was not correctly removing data on the pipe in case of issues
- Version 4.1.1
CHANGE: some message are now printed using the log routes option and not parser anymore
Fix: bug with functional testing code when using python3 patch by: Cooper Lees
Fix: bug with ExaBGP cli not working reported by: jlixfeld (thank you to Cooper Lees for providing time and a test env. to reproduce)
- Version 4.1.0
CHANGE: when redifining a single parameter option using inheritence the value will be replaced
CHANGE: FlowSpec TRUE and FALSE value have been updated to use the latest RFC and are therefore inverted from previous versions
CHANGE: an invalid netmask for a network will now cause ExaBGP to fail the parsing of the route (it can stop ExaBGP from starting with bad routes)
Feature: support for extended next-hop (RFC 5549)
Feature: implemented API for “clear adj-rib out” and “flush adj-rib out”
Fix: regression pointed in #873 patch: Malcolm Dodds
Fix: do not crash when trying to be helpful in presenting notification message reported by: Adam Jacob Muller
Fix: issue while handling ranged neighbors patch: Wenxin Wang
Fix: accumulating families when using multiple peers patch: Martin Topholm (reviewed)
Fix: could not reload configuration reported by: gbock
Feature: better RFC5575bis support, better treat as withdraw patch: Christoph Loibl
Fix: Fix issue when using peer ASN discovery patch: Zac Medico
Fix: MD5 encoding reported by: Adam Jacob Muller (with an initial idea for a patch)
Fix: ignore unknown BGP-LS SID reported by: MosesN
Fix: badly deciding when to send or not AddPath from parsing the Capability reported by: ivan-balan
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file exabgp-4.2.3.tar.gz
.
File metadata
- Download URL: exabgp-4.2.3.tar.gz
- Upload date:
- Size: 394.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 564f459b3dcb90021ec78bfc9d71e594734f8fc9cc4a81edcf19470dec6950f2 |
|
MD5 | e8514a1c911545e681af90ae764db988 |
|
BLAKE2b-256 | c8b263ab7173c28c3963ace5595f7b59cd5051b39ed5f2dbd50e09b65e489b11 |