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, delivers native IPv6 dual-stack to subscribers, and participates in routing via IS-IS, iBGP, 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
- IPv6 Dual-Stack — Native dual-stack for PPPoE subscribers via RA + DHCPv6-PD, RADIUS-driven (Framed-IPv6-Prefix WAN /64 + Delegated-IPv6-Prefix), announced upstream as an aggregate (IPoE DHCPv6 in development). See Routing
- 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 — IS-IS IGP, iBGP (native IPv4 + IPv6 sessions), and OSPF for subscriber route advertisement. See Routing
- Monitoring & Alerting — Prometheus + Alertmanager + frr_exporter stack in the management VRF for BGP and daemon-liveness alerting. See Monitoring
- 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
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@athenanetworks.com.au
- Development: dev@athenanetworks.com.au
- Repository: https://gitlab.athenanetworks.com.au/athenanetworks/athena-bng
License
Proprietary — Athena Networks Pty Ltd.