AthenaBNG Documentation
Welcome to the AthenaBNG documentation — a comprehensive guide to the software-based Broadband Network Gateway for Australian ISPs and telcos.
What is AthenaBNG?
AthenaBNG is a cost-effective, software-based Broadband Network Gateway (BNG) built on Debian 13 Linux. It terminates PPPoE and IPoE/DHCP subscriber sessions, dynamically creates QinQ VLAN sub-interfaces, applies per-subscriber QoS via CAKE, integrates with RADIUS for AAA (including Change of Authorization), supports CGNAT VRF steering, and participates in routing via BGP and OSPF.
Designed for small-to-medium Australian ISPs and telcos (1,000–50,000 subscribers) as a cost-effective alternative to hardware BNGs like Juniper MX or Cisco ASR.
Key Features
- PPPoE Termination — Full PPPoE session lifecycle with accel-ppp integration
- DHCP/IPoE — RADIUS-driven IP address assignment with Option 82 support
- Dynamic VLAN Creation — Automatic QinQ VLAN interface creation from subscriber packets
- Per-Subscriber QoS — CAKE qdisc with per-subscriber rate limiting and overhead profiles
- RADIUS AAA — Authentication, authorization, accounting with Change of Authorization (CoA) support
- CGNAT — Carrier-Grade NAT with VRF steering via nftables
- Routing — BGP and OSPF integration for subscriber route advertisement
- REST API — FastAPI-based management interface with JWT authentication
- SNMP Monitoring — Custom MIB for integration with existing NOC tools
- CLI — JunOS-style interactive shell with tab completion and pipe filters
Architecture at a Glance
Upstream / Transit ─┐
(BGP/OSPF peers) │
│ ┌──────────────────────────────────────┐
├─→│ AthenaBNG Host │
│ │ (Debian 13 Linux) │
│ │ │
│ │ ┌─────────────────────────────────┐ │
│ │ │ abngd (Core Daemon) │ │
│ │ │ Session Manager · Config · CoA │ │
│ │ └──┬──────────────────────────────┘ │
│ │ │ │
│ │ ┌──┴──────────────────────────────┐ │
│ │ │ accel-ppp abng-dhcpd CAKE │ │
│ │ │ (PPPoE) (DHCP) (QoS) │ │
│ │ └──┬──────────────────────────────┘ │
│ │ │ │
│ │ ┌──┴──────────────────────────────┐ │
│ │ │ abng-demux (VLAN Demux) │ │
│ │ │ Dynamic QinQ interface creation │ │
│ │ └──┬──────────────────────────────┘ │
│ │ │ │
│ └─────┼────────────────────────────────┘
│ │
Subscriber Access ──┴─ ───────┴── eth1 (trunk, QinQ tagged)
(QinQ tagged)
Quick Navigation
- Getting Started — Installation, quick start, and basic configuration
- CLI Reference — Complete CLI command reference with examples
- Configuration — All configuration options explained
- Features — Deep dives into each feature
- Architecture — System design and internals
- Administration — Operations and troubleshooting
- REST API — API endpoints and integration
- SNMP — SNMP monitoring and MIB reference
System Requirements
- OS: Debian 13 (Trixie) with Linux 6.x kernel
- Rust: 1.82+ toolchain (for building from source)
- Python: 3.12+ (for REST API and SNMP agent)
- RAM: Minimum 4GB, recommended 8GB+ for 10,000+ subscribers
- Storage: 50GB+ for logs and session database
Technology Stack
| Component | Technology | Version |
|---|---|---|
| Core Daemons | Rust | Edition 2024 |
| Async Runtime | Tokio | 1.x |
| REST API | Python FastAPI | 3.12+ |
| PPPoE | accel-ppp | 1.13+ |
| DHCP/IPoE | abng-dhcpd (built-in) | — |
| Routing | FRRouting | 10.x |
| QoS | CAKE qdisc | Kernel built-in |
| Firewall | nftables | Kernel built-in |
| SNMP | net-snmp + AgentX | — |
Getting Help
- Documentation: You're reading it! Use the sidebar to navigate.
- NOC Support: noc@athena.net.au
- Development: dev@athenanetworks.com.au
- Repository: https://gitlab.athenanetworks.com.au/athenanetworks/athena-bng
License
Proprietary — Athena Networks Pty Ltd.