Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/abelperezr/nokia-bng-lab/llms.txt

Use this file to discover all available pages before exploring further.

Device Inventory

The lab consists of 12 network elements deployed via Containerlab, including BNG routers, transport switches, subscriber devices, and telemetry infrastructure.

BNG Routers (ISP Edge)

Platform Details
  • Type: Nokia SR-7 chassis
  • Software: Nokia SR OS (SR-SIM) 25.10.R2
  • Management IPv4: 10.77.1.2
  • System Loopback: 1.1.1.1/32
  • Autonomous System: 65510
Hardware Configuration
  • Chassis: SR-7 platform
  • Control Modules: Slot A, Slot B (redundant CPM)
  • Line Cards:
    • Slot 1: IOM5-e
      • MDA 1: ME6-100gb-qsfp28 (100GE ports)
      • SFM: m-sfm6-7/12
    • Slot 2: IOM4-e-b
      • MDA 1: ISA2-bb (Integrated Services Adapter for NAT)
      • SFM: m-sfm6-7/12
Active Ports
  • 1/1/c1/1: To TX switch (hybrid mode, QinQ)
  • 1/1/c2/1: To iPerf server (hybrid mode)
Mapped Ports (host → container)
  • 56661 → 22 (SSH)
  • 56662 → 57400 (gRPC)
  • 56663 → 830 (NETCONF)
Configuration File: configs/sros/config-bng.txt
Platform Details
  • Type: Nokia SR-7 chassis
  • Software: Nokia SR OS (SR-SIM) 25.10.R2
  • Management IPv4: 10.77.1.3
  • System Loopback: 1.1.1.1/32
  • Autonomous System: 65510
Hardware Configuration
  • Identical to BNG1
  • Slot 1: IOM5-e with ME6-100gb-qsfp28
  • Slot 2: IOM4-e-b with ISA2-bb
Active Ports
  • 1/1/c1/1: To TX switch (hybrid mode, QinQ)
  • 1/1/c2/1: To iPerf server (hybrid mode)
Mapped Ports (host → container)
  • 56664 → 22 (SSH)
  • 56665 → 57400 (gRPC)
  • 56666 → 830 (NETCONF)
Configuration File: configs/sros/config-bng-2.txt

Transport Network

Platform Details
  • Type: Nokia SR Linux (IXR)
  • Software: SR Linux 25.10
  • Management IPv4: 10.77.1.16
  • Role: Core L2 transport switch
Active Interfaces
  • ethernet-1/1: BNG1 connection
  • ethernet-1/2: BNG2 connection
  • ethernet-1/3: Switch connection
Mapped Ports
  • 56676 → 22 (SSH)
Configuration File: configs/switch/srl.txt
Platform Details
  • Type: Nokia IXR-ec (7250 series)
  • Software: Nokia SR OS (SR-SIM) 25.10.R2
  • Management IPv4: 10.77.1.4
  • System Name: SWITCH-7250
Hardware Configuration
  • Slot A: cpm-ixr-ec
    • MDA: m4-1g-tx+20-1g-sfp+6-10g-sfp+
Active Ports
  • 1/1/1: To TX switch (hybrid, QinQ)
  • 1/1/3: To OLT (hybrid, QinQ)
Mapped Ports
  • 56667 → 22 (SSH)
  • 56668 → 57400 (gRPC)
  • 56669 → 830 (NETCONF)
Configuration File: configs/switch/switch.txt
Platform Details
  • Type: Nokia IXR-ec
  • Software: Nokia SR OS (SR-SIM) 25.10.R2
  • Management IPv4: 10.77.1.5
  • System Name: OLT-NOKIA
Hardware Configuration
  • Slot A: cpm-ixr-ec
    • MDA: m4-1g-tx+20-1g-sfp+6-10g-sfp+
Active Ports
  • 1/1/1: To Switch (hybrid, QinQ)
  • 1/1/2: To ONT1 (access mode, dot1q)
  • 1/1/3: To ONT2 (access mode, dot1q)
Mapped Ports
  • 56678 → 22 (SSH)
  • 56671 → 57400 (gRPC)
  • 56672 → 830 (NETCONF)
Configuration File: configs/olt/olt.txt

Subscriber Devices

Platform Details
  • Type: Linux container
  • Image: ghcr.io/abelperezr/ont-ds:0.2
  • Management IPv4: 10.77.1.6
  • Group: leaf
Configuration
  • Connection Type: IPoE (DHCP-based)
  • VLAN ID: 150
  • Physical Interface: eth1
  • LAN Interface: eth2
  • MAC Address: 00:D0:F6:01:01:01
  • User Password: test
Mapped Ports
  • 56673 → 22 (SSH)
  • 8081 → 8080 (Web UI)
Connects To: OLT port 1/1/2 → BNG1
Platform Details
  • Type: Linux container
  • Image: ghcr.io/abelperezr/ont-ds:0.2
  • Management IPv4: 10.77.1.7
  • Group: leaf
Configuration
  • Connection Type: PPPoE
  • PPP Username: test@test.com
  • PPP Password: testlab123
  • VLAN ID: 150
  • Physical Interface: eth1
  • LAN Interface: eth2
  • MAC Address: 00:D0:F6:01:01:02
  • User Password: test
Mapped Ports
  • 56674 → 22 (SSH)
  • 8082 → 8080 (Web UI)
Connects To: OLT port 1/1/3 → BNG2
Platform Details
  • Type: Linux container
  • Image: ghcr.io/srl-labs/network-multitool
  • Management IPv4: 10.77.1.17
  • Group: leaf
Configuration
  • Connected to ONT1 eth2 (LAN side)
  • IPv6 SLAAC enabled
  • Dual-stack capable
Mapped Ports
  • 56677 → 22 (SSH)
Interface: eth1 (connected to ONT1:eth2)

Support Infrastructure

Platform Details
  • Type: Linux container (FreeRADIUS)
  • Image: ghcr.io/srl-labs/network-multitool
  • Management IPv4: 10.77.1.10
  • Group: server
Configuration Files
  • /etc/raddb/clients.conf - BNG client definitions
  • /etc/raddb/radiusd.conf - Server configuration
  • /etc/raddb/mods-config/files/authorize - User database
Clients Defined
  • BNG1: 10.77.1.2
  • BNG2: 10.77.1.3
  • Shared Secret: testlab123
User Database
Platform Details
  • Type: Linux container
  • Image: ghcr.io/openconfig/gnmic:latest
  • Management IPv4: 10.77.1.12
  • Group: server
Configuration
  • File: configs/gnmic/config.yml
  • gNMI Username: admin
  • gNMI Password: lab123
  • Targets: BNG1, BNG2, Switch, OLT
  • Output: Prometheus exporter
Platform Details
  • Type: Linux container
  • Image: prom/prometheus
  • Management IPv4: 10.77.1.13
  • Group: server
Configuration
  • File: configs/prometheus/prometheus.yml
  • Scrape Interval: Defined per target
  • Port: 9090 (mapped to host)
Targets
  • gNMIc exporter endpoint
Platform Details
  • Type: Linux container
  • Image: grafana/grafana:10.3.5
  • Management IPv4: 10.77.1.14
  • Group: server
Configuration
  • Port: 3030 (mapped from 3000)
  • Admin Password: admin
  • Anonymous Access: Enabled
  • Datasource: Prometheus (10.77.1.13:9090)
  • Dashboards: Pre-configured BNG metrics
Provisioned Content
  • configs/grafana/datasource.yml
  • configs/grafana/dashboards.yml
  • Dashboard JSON files in configs/grafana/dashboards/
Platform Details
  • Type: Linux container
  • Image: ghcr.io/srl-labs/network-multitool
  • Management IPv4: 10.77.1.15
Network Configuration
  • eth1: 172.19.1.1/30 (connected to BNG1)
    • Gateway: 172.19.1.2
  • eth2: 172.20.1.1/30 (connected to BNG2)
    • Default route via BNG1
Mapped Ports
  • 56675 → 22 (SSH)
Purpose: Traffic generation and throughput testing

Physical Connections

All links are point-to-point Ethernet connections established by Containerlab.
Link IDEndpoint AEndpoint BDescription
1bng1:1/1/c1/1tx:ethernet-1/1BNG1 to TX transport
2bng2:1/1/c1/1tx:ethernet-1/2BNG2 to TX transport
3tx:ethernet-1/3switch:1/1/1TX to Switch aggregation
4switch:1/1/3olt:1/1/1Switch to OLT
5olt:1/1/2ont1:eth1OLT to ONT1 subscriber
6olt:1/1/3ont2:eth1OLT to ONT2 subscriber
7bng1:1/1/c2/1iperf:eth1BNG1 to iPerf (test)
8bng2:1/1/c2/1iperf:eth2BNG2 to iPerf (test)
9ont1:eth2pc1:eth1ONT1 LAN to PC1

Connection Diagram

                    ┌─────────────────┐
                    │   iPerf Server  │
                    │  172.19.1.1/30  │
                    │  172.20.1.1/30  │
                    └────────┬────────┘

                  ┌──────────┴──────────┐
                  │                     │
          ┌───────┴──────┐      ┌──────┴───────┐
          │     BNG1     │      │     BNG2     │
          │  10.77.1.2   │      │  10.77.1.3   │
          │1/1/c1/1      │      │     1/1/c1/1 │
          └───────┬──────┘      └──────┬───────┘
                  │                     │
                  └──────────┬──────────┘

                    ┌────────┴────────┐
                    │    TX Switch    │
                    │   10.77.1.16    │
                    │  ethernet-1/3   │
                    └────────┬────────┘

                    ┌────────┴────────┐
                    │     Switch      │
                    │   10.77.1.4     │
                    │     1/1/3       │
                    └────────┬────────┘

                    ┌────────┴────────┐
                    │       OLT       │
                    │   10.77.1.5     │
                    │ 1/1/2    1/1/3  │
                    └────┬─────────┬──┘
                         │         │
                    ┌────┴───┐ ┌──┴────┐
                    │  ONT1  │ │ ONT2  │
                    │10.77.1.6│ │10.77.1.7│
                    └────┬───┘ └───────┘

                    ┌────┴───┐
                    │  PC1   │
                    │10.77.1.17│
                    └────────┘

IP Addressing Scheme

Management Network (10.77.1.0/24)

All devices share the same management subnet for OOB access.
DeviceManagement IPAccess Method
BNG110.77.1.2SSH: localhost:56661
BNG210.77.1.3SSH: localhost:56664
Switch10.77.1.4SSH: localhost:56667
OLT10.77.1.5SSH: localhost:56678
ONT110.77.1.6SSH: localhost:56673
ONT210.77.1.7SSH: localhost:56674
RADIUS10.77.1.10SSH via mgmt network
gNMIc10.77.1.12API access
Prometheus10.77.1.13http://localhost:9090
Grafana10.77.1.14http://localhost:3030
iPerf10.77.1.15SSH: localhost:56675
TX10.77.1.16SSH: localhost:56676
PC110.77.1.17SSH: localhost:56677

BNG1 Subscriber Addressing

IPv4 Subscriber Pool (NAT Inside)
  • Network: 100.80.0.0/29
  • Gateway: 100.80.0.1
  • DHCP Range: 100.80.0.2 - 100.80.0.7
  • DHCP Server: 9.9.9.9 (loopback)
  • DNS: 8.8.8.8, 8.8.4.4
IPv6 Subscriber Pools
  • WAN Host: 2001:db8:100::/56
  • Prefix Delegation: 2001:db8:200::/48
  • DHCPv6 Server: fd07:47::aaaa
  • DNS: 2001:4860:4860::8888, 2001:4860:4860::8844
NAT Outside
  • Public IP Pool: 99.99.99.99/32
  • NAT Type: Deterministic NAT44 with port blocks
  • Port Reservation: 64 ports per subscriber
  • Subscriber Limit: 8 per address
iPerf Connection
  • BNG1 Interface: 172.19.1.2/30
  • iPerf Interface: 172.19.1.1/30

BNG2 Subscriber Addressing

IPv4 Subscriber Pool (NAT Inside)
  • Network: 100.90.0.0/29
  • Gateway: 100.90.0.1
  • DHCP Range: 100.90.0.2 - 100.90.0.7
  • DHCP Server: 9.9.9.9 (loopback)
  • DNS: 8.8.8.8, 8.8.4.4
IPv6 Subscriber Pools
  • Same as BNG1 (2001:db8:100::/56 and 2001:db8:200::/48)
NAT Outside
  • Public IP Pool: 100.100.100.100/32
  • NAT Type: Deterministic NAT44 with port blocks
  • Port Reservation: 64 ports per subscriber
  • Subscriber Limit: 8 per address
iPerf Connection
  • BNG2 Interface: 172.20.1.2/30
  • iPerf Interface: 172.20.1.1/30

VLAN Design

Service VLANs

Purpose: Isolates all BNG1 (ISP 1) subscriber trafficVPLS Service ID: 50Active on Devices:
  • Switch: VPLS “to-tx-50”
    • SAP: 1/1/1:50.* (to TX)
    • SAP: 1/1/3:50.* (to OLT)
  • OLT: VPLS “bng1-agg”
    • SAP: 1/1/1:50.150 (to Switch, double-tagged)
    • SAP: 1/1/2:150 (to ONT1, single-tagged)
Encapsulation:
  • Outer VLAN: 50 (service identification)
  • Inner VLAN: 150 (subscriber VLAN)
  • Encapsulation type: QinQ (802.1ad)
Purpose: Isolates all BNG2 (ISP 2) subscriber trafficVPLS Service ID: 60Active on Devices:
  • Switch: VPLS “to-tx-60”
    • SAP: 1/1/1:60.* (to TX)
    • SAP: 1/1/3:60.* (to OLT)
  • OLT: VPLS “bng2-agg”
    • SAP: 1/1/1:60.150 (to Switch, double-tagged)
    • SAP: 1/1/3:150 (to ONT2, single-tagged)
Encapsulation:
  • Outer VLAN: 60 (service identification)
  • Inner VLAN: 150 (subscriber VLAN)
  • Encapsulation type: QinQ (802.1ad)
Purpose: Subscriber-facing VLAN on ONT devicesUsed By:
  • ONT1: Tagged VLAN 150 on eth1
  • ONT2: Tagged VLAN 150 on eth1
Mapping:
  • Combined with service VLAN (50 or 60) via QinQ
  • Single tag visible to ONT devices
  • Double tag (50.150 or 60.150) in core network

QinQ Encapsulation

The lab uses QinQ (802.1ad) for service multiplexing, allowing multiple ISPs to use the same underlying infrastructure with VLAN-based isolation.
VLAN Stack Example (ONT1 → BNG1):
  1. ONT1 sends traffic with VLAN 150
  2. OLT adds outer VLAN 50 → becomes 50.150
  3. Switch forwards 50.150 transparently
  4. TX forwards 50.150 to BNG1
  5. BNG1 receives capture-SAP matching 1/1/c1/1:. pattern

Port Mapping Summary

SSH Access Ports

DeviceHost PortContainer PortAccess Command
BNG15666122ssh admin@localhost -p 56661
BNG25666422ssh admin@localhost -p 56664
Switch5666722ssh admin@localhost -p 56667
OLT5667822ssh admin@localhost -p 56678
ONT15667322ssh user@localhost -p 56673
ONT25667422ssh user@localhost -p 56674
iPerf5667522ssh root@localhost -p 56675
TX5667622ssh admin@localhost -p 56676
PC15667722ssh root@localhost -p 56677

Management API Ports

DeviceHost PortContainer PortProtocol
BNG15666257400gRPC
BNG156663830NETCONF
BNG25666557400gRPC
BNG256666830NETCONF
Switch5666857400gRPC
Switch56669830NETCONF
OLT5667157400gRPC
OLT56672830NETCONF

Web UI Ports

ServiceHost PortContainer PortAccess URL
Grafana30303000http://localhost:3030
Prometheus90909090http://localhost:9090
ONT180818080http://localhost:8081
ONT280828080http://localhost:8082

Device Roles Summary

Device TypeCountPrimary Function
BNG (SR-7)2Subscriber session termination, DHCP, NAT
Transport Switch1L2 aggregation between BNGs
Access Switch1Aggregation between transport and OLT
OLT1Optical/fiber access termination
ONT2Customer premises equipment (CPE)
RADIUS1AAA services
Telemetry3gNMIc collector, Prometheus, Grafana
Test Equipment2iPerf server, PC1 client
All network devices support gNMI telemetry streaming for real-time monitoring and NETCONF/RESTCONF for configuration management.

Build docs developers (and LLMs) love