Getting Started Overview
This section covers installation, initial configuration, and basic operation of AthenaBNG.
What You'll Learn
- Installation — Build from source, install via Debian package, or use Ansible
- Quick Start — Get a minimal system running in minutes
- Architecture — Understand the system design and component interactions
- Basic Configuration — Enable services and configure core settings
Prerequisites
Before you begin, ensure you have:
- Debian 13 (Trixie) system with Linux 6.x kernel
- Root or sudo access for installation and service management
- Network interfaces for management, subscriber trunk, and upstream
- Rust 1.82+ (if building from source)
- Python 3.12+ (for REST API and SNMP)
Installation Methods
AthenaBNG can be installed in three ways:
1. Build from Source (Recommended for Development)
git clone https://gitlab.athenanetworks.com.au/athenanetworks/athena-bng.git
cd athena-bng
make install-all
Pros: Full control, latest code, development-friendly Cons: Requires Rust toolchain, longer build time
2. Debian Package (Recommended for Production)
make deb
dpkg -i ../athenabng_0.1.0_amd64.deb
Pros: Standard package management, clean installation Cons: Requires building on a compatible system
3. Ansible Playbook (Recommended for Multi-Host Deployment)
cd ansible
cp inventory.ini.example inventory.ini
# Edit inventory.ini with your hosts
ansible-playbook -i inventory.ini playbook.yml
Pros: Automated, idempotent, multi-host support Cons: Requires Ansible
Directory Structure
After installation, AthenaBNG uses this layout:
/opt/athena-bng/
├── bin/ # Compiled binaries
│ ├── abngd # Core daemon
│ ├── abng-demux # VLAN demux daemon
│ ├── abng-dhcpd # DHCP server
│ ├── abng-qos # QoS orchestrator
│ ├── abng # CLI
│ └── ...
├── etc/ # Configuration
│ ├── running-config.yaml # Active configuration
│ ├── candidate-config.yaml # Staged changes
│ └── config-archive/ # Rollback history
├── run/ # Runtime files
│ ├── abngd.sock # IPC socket
│ └── ...
├── log/ # Log files
│ ├── abngd.log
│ ├── abng-demux.log
│ └── ...
├── lib/ # Libraries and data
└── var/ # Variable data (sessions DB, etc.)
Service Management
All services are managed via systemd:
# Start all services
systemctl start AthenaBNG.target
# Check status
systemctl status AthenaBNG.target
# View logs
journalctl -u abngd -f
journalctl -u abng-demux -f
Next Steps
- Installation — Detailed installation instructions
- Quick Start — Get a minimal system running
- Architecture — Understand the system design
- Configuration — Configure services