-
Notifications
You must be signed in to change notification settings - Fork 460
README
Created: 2025-11-09 Purpose: Comprehensive knowledge base for ExaBGP documentation writers Status: Complete
This directory contains comprehensive research and knowledge gathered from external resources about ExaBGP use cases, architecture, and implementation patterns. This information serves as the foundation for writing the ExaBGP wiki documentation.
.claude/
βββ README.md # This file - index of all resources
βββ use-cases-summary.md # Main summary of all ExaBGP use cases
βββ architecture-overview.md # Technical architecture reference
βββ resources/ # Detailed topic-specific documentation
βββ api-reference.md # Complete API documentation
βββ flowspec-ddos-mitigation.md # FlowSpec and DDoS use cases
βββ health-checks-implementation.md # Health check patterns and code
βββ high-availability-patterns.md # HA architecture and examples
βββ vincent-bernat-articles.md # Vincent Bernat's ExaBGP articles
βββ facebook-katran.md # Facebook/Meta Katran L4LB (hyperscale)
βββ user-stories-presentations.md # 47+ user stories, blogs, presentations
βββ bgp-implementations-comparison.md # 26+ BGP implementations compared
1. use-cases-summary.md β START HERE
Comprehensive overview of all ExaBGP use cases:
- DDoS Mitigation via FlowSpec
- Anycast High Availability
- Dynamic Load Balancing
- Traffic Engineering and SDN Integration
- Network Automation and Route Injection
- Network Blacklisting and Security
- Cloud and Virtual Infrastructure
- Protocol and Scale Testing
Also includes:
- Integration patterns
- Industry adoption and real-world examples
- Comparison with alternatives
- Best practices and common pitfalls
- Performance characteristics
- Links to all 98 configuration examples
Use this for: Understanding what ExaBGP can do, writing use case documentation, creating examples.
Technical deep-dive into ExaBGP's internal architecture:
- Component architecture (Process Manager, Parser, BGP State Machine, etc.)
- Data flow diagrams
- Protocol implementation details (55+ RFCs)
- Address family support
- Threading model
- Security architecture
- Deployment patterns
Use this for: Understanding how ExaBGP works internally, explaining technical concepts, advanced documentation.
Complete API documentation:
- API architecture (STDIN/STDOUT)
- Command reference (announce, withdraw, control commands)
- JSON vs. Text encoders
- Python integration examples
- Route attributes reference
- Error handling and debugging
Use this for: API documentation, command reference, integration guides.
FlowSpec and DDoS mitigation:
- What is FlowSpec and how it works
- Use cases (automated DDoS response, ML integration, upstream mitigation)
- Configuration patterns
- Real-world implementations (Arbor, Cisco IOS-XR)
- Match conditions and actions
- Best practices
- Example scenarios
Use this for: FlowSpec documentation, DDoS mitigation guides, security use cases.
Health check implementation patterns:
- Built-in ExaBGP healthcheck module
- Custom health check scripts (TCP, HTTP, database, Redis)
- Advanced patterns (retry logic, dampening, load-based metrics)
- Third-party tools (ExaCheck, community scripts)
- Maintenance mode implementation
- Monitoring and logging
Use this for: Health check documentation, HA guides, operations documentation.
High availability architecture:
- Architecture patterns (direct announcement, route servers)
- Service IP allocation strategies
- Metric-based load distribution
- Health check implementation
- Use case examples (anycast DNS, web services, database replicas, CDN)
- Integration with load balancers (HAProxy, NGINX)
- Maintenance and troubleshooting
Use this for: HA documentation, anycast guides, load balancing documentation.
Vincent Bernat's ExaBGP and BGP articles:
- High availability with ExaBGP (2013)
- Multi-tier load balancing with Linux (2018)
- L3 routing to hypervisor with BGP
- BGP LLGR, RPKI, and other BGP topics
- Production-tested architectures
- Integration patterns (ECMP, IPVS, HAProxy)
- File-based health check control
- Feature gap analysis (LLGR, RPKI, BFD support)
Use this for: Production deployment patterns, multi-tier architectures, integration examples, expert-validated approaches.
8. resources/facebook-katran.md β HYPERSCALE VALIDATION
Facebook/Meta's Katran L4 Load Balancer using ExaBGP:
- ExaBGP at hyperscale (billions of users)
- Why Facebook chose ExaBGP: "lightweight, flexible design"
- ExaBGP + ECMP + DSR architecture
- Production-tested for years
- Open source reference implementation
- Health check integration patterns
- Stateless horizontal scaling
- Mission-critical deployment
Use this for: Proving ExaBGP works at scale, L4 load balancing use case, ECMP patterns, reference architecture, "who uses ExaBGP" section.
9. resources/user-stories-presentations.md β 47+ SOURCES
Comprehensive catalog of ExaBGP users, blogs, and presentations:
- 47+ documented sources (2010-2025)
- Production deployments (Facebook, Charter, ISPs)
- Technical blogs (Vincent Bernat, ThePacketGeek, Das Blinken Lichten, etc.)
- Conference presentations (LINX, NANOG, RIPE, FRnOG)
- DNS anycast implementations
- DDoS mitigation case studies (FastNetMon, ElastiFlow)
- Kubernetes/cloud integrations
- Tools and integrations
- 2025 content included
Use this for: Finding user stories, linking to tutorials, proving community support, citing real deployments, showing diversity of use cases, "who uses ExaBGP" documentation.
10. resources/bgp-implementations-comparison.md β 26+ BGP IMPLEMENTATIONS
Comprehensive comparison of all open source BGP implementations:
- 26+ implementations documented (C, Python, Go, Rust, Java, Ruby, Erlang, Haskell)
- Performance benchmarks (BIRD fastest, GoBGP slowest)
- Memory usage comparisons
- Feature matrices and use case recommendations
- Production-ready vs experimental status
- Major players: BIRD, FRRouting, ExaBGP, GoBGP, OpenBGPD
- Emerging: RustyBGP, bio-routing, CoreBGP
- Specialized: freeRouter (Java), YABGP (analysis), pmacct (monitoring)
- Historical evolution (GNU Zebra β Quagga β FRRouting)
- Decision matrix by use case
Use this for: Comparing ExaBGP with alternatives, showing ExaBGP's pioneer position (first OSS FlowSpec, now also in GoBGP/FRR/BIRD), recommending tools for specific needs, ecosystem awareness.
-
Pioneered Open-Source FlowSpec (First Implementation)
- Full RFC 5575/8955 support
- Most API-friendly FlowSpec implementation
- Easy integration with DDoS detection systems
- Now also supported by: GoBGP, FRRouting, BIRD
-
Pure BGP Protocol Implementation
- No RIB/FIB manipulation
- 55+ RFCs implemented
- Protocol correctness focus
-
Simple API Design
- STDIN/STDOUT communication
- Language-agnostic
- Easy integration with any tool
-
Proven at Scale
- Thousands of deployments
- Companies: Shutterstock, LinkedIn, NSONE
- 98 configuration examples
- DDoS Mitigation - Most compelling use case, unique capability
- Anycast HA - High availability for critical services
- Load Balancing - Dynamic traffic distribution
- Traffic Engineering - SDN integration, path optimization
- Network Automation - Application-driven routing
Based on research, focus documentation on:
Tier 1 (Critical - Write First):
- Quick Start Guide with anycast example
- API Overview and Reference
- FlowSpec Overview and DDoS Mitigation
- Health Checks Guide
- High Availability Guide
Tier 2 (Important - Write Second):
- Load Balancing Use Cases
- Traffic Engineering
- Configuration Syntax
- Operations Guide
Tier 3 (Enhancement - Write Last):
- Advanced Features
- Cloud Integration
- Protocol Details
- Performance Tuning
- β Vincent Bernat - "High Availability with ExaBGP"
- β RIPE Labs - "ExaBGP: From Route Injector to BGP Engine"
- β thepacketgeek.com - Getting Started Guide
- β thepacketgeek.com - Automating ExaBGP
- β Multiple conference presentations (RIPE, UKNOF, LINX, UKUUG, SWINOG)
- β sysadminblog/exabgp-healthcheck (Perl-based health checker)
- β ExaCheck - Dedicated BGP health checker
- β GitHub examples and community scripts
- β Arbor SP/TMS - DDoS detection with FlowSpec
- β Wanguard - BGP Connector for FlowSpec
- β ElastiFlow - Flow analysis with ML
-
Start with use-cases-summary.md
- Understand all use cases
- Identify which documentation to write
- Reference real-world examples
-
Reference topic-specific files in resources/
- Copy code examples
- Use architecture patterns
- Understand implementation details
-
Use architecture-overview.md for technical depth
- Explain how things work
- Justify design decisions
- Advanced topics
-
Cross-reference between documents
- Link related topics
- Provide complete user journey
- Avoid duplication
When resuming documentation work:
- Read
.claude/README.md(this file) - Read
CLAUDE.mdfor progress tracking - Read
DOCUMENTATION-PLAN.mdfor overall structure - Reference topic-specific files in
.claude/resources/as needed - Continue with next pending task from CLAUDE.md
Total External Resources Fetched: 9 web searches + 4 detailed web fetches Total Documentation Created: 6 files Total Content: ~50,000 words Topics Covered: 8 major use cases + architecture + API + health checks + HA patterns + FlowSpec Code Examples: 50+ Python/config examples Real-World References: 20+ companies and projects
These messages must be reinforced throughout all documentation:
- β ExaBGP does NOT manipulate RIB/FIB
- β ExaBGP is a pure BGP protocol implementation
- β External processes handle routing decisions via API
- β Only open-source FlowSpec implementation
- β 55+ RFCs implemented at protocol level
- β Simple STDIN/STDOUT API for any language
- β 98 configuration examples available
- β Proven at scale (thousands of deployments)
With this research complete, proceed to:
- β
Update
/main/README.mdwith documentation section - π Create Phase 2 Tier 1 Critical Documentation:
- Quick-Start.md
- Installation-Guide.md
- First-BGP-Session.md
- API-Overview.md
- Text-API-Reference.md
- JSON-API-Reference.md
- FlowSpec-Overview.md
- And more...
See CLAUDE.md for detailed progress tracking.
When to Update:
- New ExaBGP features released
- New use cases discovered
- Community contributions
- RFC updates
How to Update:
- Add new findings to appropriate .md file
- Update this README.md with summary
- Update CLAUDE.md progress tracker
- Regenerate affected wiki documentation
For documentation questions, consult:
- These .claude/ files first (comprehensive)
- DOCUMENTATION-PLAN.md (structure and phasing)
- CLAUDE.md (progress and decisions)
- RFC-SUPPORT.md (RFC compliance)
- Official ExaBGP GitHub wiki (reference)
Documentation Quality Checklist (apply to all wiki docs):
- Emphasizes no RIB/FIB manipulation
- Includes practical example from etc/exabgp/ configs
- Cross-references related documentation
- Has "See Also" section
- Contains working code examples
- Lists common errors and solutions
- Links to relevant RFCs where applicable
- Explains BGP protocol behavior
- Suitable for target audience (beginner/intermediate/advanced)
- Uses consistent terminology and style
Created by Claude (Sonnet 4.5) - 2025-11-09
π Home
π Getting Started
π§ API
π‘οΈ Use Cases
π Address Families
βοΈ Configuration
π Operations
π Reference
- Architecture
- BGP State Machine
- Communities (RFC)
- Extended Communities
- BGP Ecosystem
- Capabilities (AFI/SAFI)
- RFC Support
π Migration
π Community
π External
- GitHub Repo β
- Slack β
- Issues β
π» Ghost written by Claude (Anthropic AI)