Skip to main content

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

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

ComponentTechnologyVersion
Core DaemonsRustEdition 2024
Async RuntimeTokio1.x
REST APIPython FastAPI3.12+
PPPoEaccel-ppp1.13+
DHCP/IPoEabng-dhcpd (built-in)
RoutingFRRouting10.x
QoSCAKE qdiscKernel built-in
FirewallnftablesKernel built-in
SNMPnet-snmp + AgentX

Getting Help

License

Proprietary — Athena Networks Pty Ltd.