Skip to content
Thomas Mangin edited this page Nov 10, 2025 · 41 revisions

ExaBGP Wiki

Welcome to the comprehensive ExaBGP documentation. This wiki covers everything from beginner setup to advanced features and production deployments.

⚠️ Documentation Status

This wiki was authored by Claude (Anthropic AI) and has not yet been fully reviewed by Thomas Mangin (ExaBGP author).

While comprehensive and based on ExaBGP source code, RFCs, and community resources, this documentation may contain errors or inaccuracies. Use with appropriate caution and verify critical details against the source code and official RFCs.

Found an issue? Please report it: https://github.com/Exa-Networks/exabgp/issues

Important Notice

ExaBGP does NOT manipulate the RIB (Routing Information Base) or FIB (Forwarding Information Base).

ExaBGP is a pure BGP protocol implementation that:

  • Implements the BGP-4 protocol and modern extensions
  • Provides JSON/text API for external process communication
  • Maintains internal routing information
  • Does NOT install routes into the kernel routing table
  • Does NOT modify forwarding tables

If you need FIB manipulation, consider alternatives like BIRD, FRRouting, or Quagga.

Version Compatibility

ExaBGP has different major versions with important differences:

  • 4.x (Recommended): Current stable release. All documentation examples work as-is.
  • 5.x/main (Development): Adds ACK feature. Requires configuration changes for 4.x code. See Version Differences.
  • 3.x (Deprecated): No longer maintained. Migration guide available.

New users: Start with ExaBGP 4.x unless you specifically need 5.x features.

Quick Navigation

New to ExaBGP?

⭐ Most Popular Feature: Health Checks

Zero-Code Health Checks Built-In! ExaBGP includes a production-ready exabgp healthcheck module - no custom scripting required:

# Automatically announce/withdraw routes based on service health
exabgp healthcheck --cmd "curl -sf http://localhost/health" --ip 10.0.0.1/32

Why health checks matter: ExaBGP's killer feature is automatic route announcement/withdrawal based on service health. Your application controls its own BGP routing - announce when healthy, withdraw when failing. No manual intervention, no external monitoring required.

Configuration

API Documentation

Address Families

Basic Address Families

FlowSpec

L3VPN

EVPN

BGP-LS

Other Address Families

Use Cases

Features

Capabilities

Communities

  • Communities - Standard, Extended, and Large Communities (RFC 1997, 4360, 8092)

Attributes & Other

Tools

Operations

Integration

Reference

Migration

Community

External Resources

Configuration Examples

Browse 98 configuration examples organized by:

  • User experience level (Beginner/Intermediate/Advanced)
  • Use case (DDoS/Anycast/VPN/etc)
  • Feature (FlowSpec/EVPN/BGP-LS/etc)
  • Protocol family (IPv4/IPv6/VPN/etc)

About This Documentation

This documentation is organized to help users at all levels:

  • Beginners: Start with Getting Started
  • Operators: Focus on Use Cases and Operations
  • Developers: Explore API and Development sections
  • Reference: Use the A-Z indices for quick lookups

Every document includes:

  • Clear table of contents
  • Practical examples from the 98 configuration files
  • Cross-references to related docs
  • Common errors and solutions
  • Version compatibility notes (4.x vs 5.x)

RFC Compliance

ExaBGP implements 55+ RFCs including:

  • Core BGP-4 (RFC 4271) - Protocol only, no RIB/FIB manipulation
  • Multiprotocol BGP (RFC 4760) - Multiple address families
  • FlowSpec (RFC 5575) - Traffic filtering
  • EVPN (RFC 7432) - Ethernet VPN
  • BGP-LS (RFC 7752) - Link State distribution
  • SRv6 (RFC 9514) - Segment Routing over IPv6
  • And many more...

See RFC Information for the complete list.


Need Help? Join our Slack community or file an issue.


πŸ‘» Ghost written by Claude (Anthropic AI)

Clone this wiki locally