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.

Network Services Configuration

The Nokia BNG devices provide critical network services for subscriber connectivity, including DHCP servers, Carrier-Grade NAT (CGN), and IPv4/IPv6 dual-stack support. All services are configured within VPRN 9998 (inside/subscriber-facing) and VPRN 9999 (outside/internet-facing).

Service Architecture Overview

┌──────────────────────────────────────────────────────────┐
│                      BNG Router                          │
│                                                          │
│  ┌────────────────────────────────────────────────┐    │
│  │ VPRN 9998 (Inside/Subscriber Side)             │    │
│  │                                                 │    │
│  │  • DHCPv4 Server (100.80.0.0/29)               │    │
│  │  • DHCPv6 Server (2001:db8::/48)               │    │
│  │  • Subscriber Interface "services"              │    │
│  │  • Group Interface "gi"                         │    │
│  │  • NAT Inside (CGN)                             │    │
│  └────────────────────────────────────────────────┘    │
│                         │                                │
│                         │ NAT Translation                │
│                         ↓                                │
│  ┌────────────────────────────────────────────────┐    │
│  │ VPRN 9999 (Outside/Internet Side)              │    │
│  │                                                 │    │
│  │  • NAT Outside Pool (99.99.99.99)              │    │
│  │  • Interface to IPERF (172.19.1.2/30)          │    │
│  │  • Public Internet Gateway                      │    │
│  └────────────────────────────────────────────────┘    │
└──────────────────────────────────────────────────────────┘

DHCP Server Configuration

DHCPv4 Server

The BNG operates a DHCPv4 server to assign private IPv4 addresses to subscribers:
/configure service vprn "9998" dhcp-server dhcpv4 "suscriptores" admin-state enable

# Pool Selection
/configure service vprn "9998" dhcp-server dhcpv4 "suscriptores" pool-selection use-gi-address
/configure service vprn "9998" dhcp-server dhcpv4 "suscriptores" pool-selection use-pool-from-client

CGNAT Address Pool

/configure service vprn "9998" dhcp-server dhcpv4 "suscriptores" pool "cgnat"
/configure service vprn "9998" dhcp-server dhcpv4 "suscriptores" pool "cgnat" minimum-free percent 3

# DNS Servers
/configure service vprn "9998" dhcp-server dhcpv4 "suscriptores" pool "cgnat" options option dns-server ipv4-address [8.8.8.8 8.8.4.4]

# Lease Time (10 years for testing)
/configure service vprn "9998" dhcp-server dhcpv4 "suscriptores" pool "cgnat" options option lease-time duration 315446399

# Subnet Configuration
/configure service vprn "9998" dhcp-server dhcpv4 "suscriptores" pool "cgnat" subnet 100.80.0.0/29
/configure service vprn "9998" dhcp-server dhcpv4 "suscriptores" pool "cgnat" subnet 100.80.0.0/29 options option default-router ipv4-address [100.80.0.1]
/configure service vprn "9998" dhcp-server dhcpv4 "suscriptores" pool "cgnat" subnet 100.80.0.0/29 address-range 100.80.0.2 end 100.80.0.7
/configure service vprn "9998" dhcp-server dhcpv4 "suscriptores" pool "cgnat" subnet 100.80.0.0/29 exclude-addresses 100.80.0.1 end 100.80.0.1
Pool Name: cgnatSubnet: 100.80.0.0/29 (8 addresses)
  • Network: 100.80.0.0
  • Gateway: 100.80.0.1 (BNG)
  • Usable Range: 100.80.0.2 - 100.80.0.7 (6 addresses)
  • Broadcast: 100.80.0.7
DNS Servers:
  • Primary: 8.8.8.8 (Google)
  • Secondary: 8.8.4.4 (Google)
Lease Duration: 315446399 seconds (~10 years)Minimum Free: 3% (warning threshold)
The /29 subnet only provides 6 usable host addresses. In production, use larger subnets (e.g., /24, /22) to support more subscribers.

DHCPv6 Server

The BNG provides IPv6 addresses and prefix delegation:
/configure service vprn "9998" dhcp-server dhcpv6 "suscriptores_v6" admin-state enable
/configure service vprn "9998" dhcp-server dhcpv6 "suscriptores_v6" pool-selection use-pool-from-client
/configure service vprn "9998" dhcp-server dhcpv6 "suscriptores_v6" pool-selection use-link-address scope subnet

IPv6 Pool Configuration

Prefix: 2001:db8:100::/56Purpose: Subscriber WAN-side IPv6 addresses
/configure service vprn "9998" dhcp-server dhcpv6 "suscriptores_v6" pool "IPv6" prefix 2001:db8:100::/56 preferred-lifetime 43200
/configure service vprn "9998" dhcp-server dhcpv6 "suscriptores_v6" pool "IPv6" prefix 2001:db8:100::/56 valid-lifetime 86400
/configure service vprn "9998" dhcp-server dhcpv6 "suscriptores_v6" pool "IPv6" prefix 2001:db8:100::/56 renew-time 21600
/configure service vprn "9998" dhcp-server dhcpv6 "suscriptores_v6" pool "IPv6" prefix 2001:db8:100::/56 rebind-time 36000
/configure service vprn "9998" dhcp-server dhcpv6 "suscriptores_v6" pool "IPv6" prefix 2001:db8:100::/56 prefix-type wan-host true
/configure service vprn "9998" dhcp-server dhcpv6 "suscriptores_v6" pool "IPv6" prefix 2001:db8:100::/56 prefix-type pd false
Timers:
  • Preferred Lifetime: 43200s (12 hours)
  • Valid Lifetime: 86400s (24 hours)
  • Renew Time: 21600s (6 hours)
  • Rebind Time: 36000s (10 hours)

DHCPv6 Options

# DNS Servers
/configure service vprn "9998" dhcp-server dhcpv6 "suscriptores_v6" pool "IPv6" options option dns-server ipv6-address [2001:4860:4860::8888 2001:4860:4860::8844]

# Prefix Delegation Limits
/configure service vprn "9998" dhcp-server dhcpv6 "suscriptores_v6" pool "IPv6" delegated-prefix minimum 56
/configure service vprn "9998" dhcp-server dhcpv6 "suscriptores_v6" pool "IPv6" delegated-prefix maximum 64
IPv6 DNS servers point to Google Public DNS (2001:4860:4860::8888 and 2001:4860:4860::8844).

DHCP Loopback Interface

A loopback interface hosts the DHCP servers:
/configure service vprn "9998" interface "loopback" admin-state enable
/configure service vprn "9998" interface "loopback" loopback true

# IPv4 DHCP Server
/configure service vprn "9998" interface "loopback" ipv4 local-dhcp-server "suscriptores"
/configure service vprn "9998" interface "loopback" ipv4 primary address 9.9.9.9
/configure service vprn "9998" interface "loopback" ipv4 primary prefix-length 32

# IPv6 DHCP Server
/configure service vprn "9998" interface "loopback" ipv6 local-dhcp-server "suscriptores_v6"
/configure service vprn "9998" interface "loopback" ipv6 address fd07:47::aaaa prefix-length 128

Carrier-Grade NAT (CGN)

The BNG implements deterministic NAT44 using an Integrated Service Adapter (ISA).

ISA Configuration

/configure isa nat-group 1 admin-state enable
/configure isa nat-group 1 redundancy active-mda-limit 1
/configure isa nat-group 1 session-limits watermarks low 80
/configure isa nat-group 1 session-limits watermarks high 90
/configure isa nat-group 1 mda 2/1
NAT Group ID: 1MDA Location: Slot 2, MDA 1 (ISA2-BB)Active MDA Limit: 1 (single active ISA)Session Watermarks:
  • Low: 80% (warning)
  • High: 90% (critical)
Purpose: Hardware-accelerated NAT processing

NAT Outside Configuration (VPRN 9999)

/configure service vprn "9999" admin-state enable
/configure service vprn "9999" customer "1"
/configure service vprn "9999" autonomous-system 65520

# NAT Outside Pool
/configure service vprn "9999" nat outside pool "dtpool" admin-state enable
/configure service vprn "9999" nat outside pool "dtpool" type large-scale
/configure service vprn "9999" nat outside pool "dtpool" nat-group 1
/configure service vprn "9999" nat outside pool "dtpool" mode napt
/configure service vprn "9999" nat outside pool "dtpool" large-scale subscriber-limit 8
/configure service vprn "9999" nat outside pool "dtpool" large-scale deterministic
/configure service vprn "9999" nat outside pool "dtpool" large-scale deterministic port-reservation 64
/configure service vprn "9999" nat outside pool "dtpool" address-range 99.99.99.99 end 99.99.99.99
Pool Name: dtpoolType: Large-scale (Carrier-Grade)Mode: NAPT (Network Address Port Translation)Outside IP: 99.99.99.99 (single public IP)Subscriber Limit: 8 subscribers per IPPort Reservation: 64 ports per subscriberDeterministic: Port assignments are predictable and reproducibleTotal Ports Available: 65536 ports
  • 8 subscribers × 64 ports = 512 ports allocated
  • Remaining ~65000 ports for dynamic allocation
Deterministic NAT allows law enforcement to trace subscriber activity by timestamp and port number.

NAT Outside Interface

/configure service vprn "9999" interface "to_iperf" admin-state enable
/configure service vprn "9999" interface "to_iperf" ipv4 primary address 172.19.1.2
/configure service vprn "9999" interface "to_iperf" ipv4 primary prefix-length 30
/configure service vprn "9999" interface "to_iperf" sap 1/1/c2/1:0 admin-state enable

NAT Policy

/configure service nat nat-policy "natpol" pool router-instance "9999"
/configure service nat nat-policy "natpol" pool name "dtpool"

# Application Layer Gateways
/configure service nat nat-policy "natpol" alg pptp true
/configure service nat nat-policy "natpol" alg rtsp true
/configure service nat nat-policy "natpol" alg sip true
ALGs (Application Layer Gateways) provide NAT traversal support for protocols that embed IP addresses in the payload (PPTP, RTSP, SIP).

NAT Inside Configuration (VPRN 9998)

/configure service vprn "9998" admin-state enable
/configure service vprn "9998" customer "1"
/configure service vprn "9998" management allow-ftp true
/configure service vprn "9998" management allow-ssh true
/configure service vprn "9998" management allow-netconf true
/configure service vprn "9998" management allow-grpc true

# Large-Scale NAT Inside
/configure service vprn "9998" nat inside large-scale nat44 max-subscriber-limit 8
/configure service vprn "9998" nat inside large-scale nat44 deterministic prefix-map 100.80.0.0/29 nat-policy "natpol" admin-state enable
/configure service vprn "9998" nat inside large-scale nat44 deterministic prefix-map 100.80.0.0/29 nat-policy "natpol" map 100.80.0.0 to 100.80.0.7
/configure service vprn "9998" nat inside large-scale nat44 deterministic prefix-map 100.80.0.0/29 nat-policy "natpol" map 100.80.0.0 to 100.80.0.7 first-outside-address 99.99.99.99
Prefix Map: 100.80.0.0/29 → 99.99.99.99Inside Addresses: 100.80.0.0 - 100.80.0.7 (subscriber private IPs)Outside Address: 99.99.99.99 (single public IP)Max Subscribers: 8Deterministic Mapping:
  • Each inside IP gets a fixed port range on 99.99.99.99
  • Port allocation is predictable and reversible
  • Enables logging and traceability

NAT IP Filter

A filter ensures only private subscriber traffic is NAT’d:
/configure filter ip-filter "10" default-action accept

# Allow traffic to/from NAT pool (bypass NAT)
/configure filter ip-filter "10" entry 1 match dst-ip address 100.80.0.0
/configure filter ip-filter "10" entry 1 match dst-ip mask 255.255.255.248
/configure filter ip-filter "10" entry 1 action accept

# NAT all other traffic from subscriber pool
/configure filter ip-filter "10" entry 2 match src-ip address 100.80.0.0
/configure filter ip-filter "10" entry 2 match src-ip mask 255.255.255.248
/configure filter ip-filter "10" entry 2 action nat
This filter is applied to the SLA profile ingress, ensuring all subscriber traffic undergoes NAT translation.

Subscriber Interface Configuration

The subscriber interface defines IP addressing and DHCP relay:

IPv4 Subscriber Interface

/configure service vprn "9998" subscriber-interface "services" admin-state enable
/configure service vprn "9998" subscriber-interface "services" wan-mode mode128

# IPv4 Configuration
/configure service vprn "9998" subscriber-interface "services" ipv4 allow-unmatching-subnets true
/configure service vprn "9998" subscriber-interface "services" ipv4 default-dns [8.8.8.8 8.8.4.4]
/configure service vprn "9998" subscriber-interface "services" ipv4 address 100.80.0.1
/configure service vprn "9998" subscriber-interface "services" ipv4 address 100.80.0.1 prefix-length 29
/configure service vprn "9998" subscriber-interface "services" ipv4 dhcp gi-address 100.80.0.1

IPv6 Subscriber Interface

/configure service vprn "9998" subscriber-interface "services" ipv6 allow-unmatching-prefixes true
/configure service vprn "9998" subscriber-interface "services" ipv6 delegated-prefix-length variable
/configure service vprn "9998" subscriber-interface "services" ipv6 prefix 2001:db8:100::/56 host-type wan
/configure service vprn "9998" subscriber-interface "services" ipv6 prefix 2001:db8:200::/48 host-type pd
/configure service vprn "9998" subscriber-interface "services" ipv6 link-local-address address fe80::7e20:64ff:fe84:8365
The variable delegated-prefix-length allows the DHCPv6 server to assign /56 or /64 prefixes based on subscriber requirements.

Group Interface Configuration

The group interface handles subscriber session management:
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" admin-state enable
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" radius-auth-policy "autpolicy"
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ingress-stats true
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" oper-up-while-empty true

IPv4 Group Interface

# uRPF Check
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv4 urpf-check mode strict-no-ecmp

# Neighbor Discovery
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv4 neighbor-discovery populate true

# DHCP Configuration
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv4 dhcp admin-state enable
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv4 dhcp server [9.9.9.9]
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv4 dhcp trusted true
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv4 dhcp gi-address 100.80.0.1

# DHCP Proxy
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv4 dhcp proxy-server admin-state enable
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv4 dhcp proxy-server emulated-server 100.80.0.1

# Lease Populate
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv4 dhcp lease-populate max-leases 131071

# Client Applications
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv4 dhcp client-applications dhcp true
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv4 dhcp client-applications ppp true
DHCP Server: 9.9.9.9 (loopback interface)GI Address: 100.80.0.1 (gateway inserted in DHCP responses)Proxy Mode: Enabled - BNG intercepts DHCP messagesEmulated Server: 100.80.0.1 (IP used in DHCP server identifier option)Max Leases: 131071 (maximum subscribers)Client Applications: DHCP and PPP (IPoE and PPPoE)uRPF Check: Strict mode prevents IP spoofing

IPv6 Group Interface

# uRPF Check
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv6 urpf-check mode strict-no-ecmp

# DHCPv6 Relay
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv6 dhcp6 pd-managed-route
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv6 dhcp6 relay admin-state enable
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv6 dhcp6 relay link-address 2001:db8:100::
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv6 dhcp6 relay server ["fd07:47::aaaa"]
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv6 dhcp6 relay client-applications dhcp true
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv6 dhcp6 relay client-applications ppp true

# DHCPv6 Proxy
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv6 dhcp6 proxy-server admin-state enable

# Router Advertisements
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv6 router-advertisements admin-state enable
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv6 router-advertisements options other-stateful-configuration true
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv6 router-advertisements options managed-configuration true
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipv6 router-advertisements prefix-options autonomous false
Router Advertisements are configured for managed configuration (M=1, O=1), directing subscribers to use DHCPv6 for address and option configuration.

IPoE Session Configuration

/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipoe-session admin-state enable
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipoe-session ipoe-session-policy "ipoe"
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipoe-session user-db "clientes"
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipoe-session session-limit 131071
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" ipoe-session sap-session-limit 131071

PPPoE Session Configuration

/configure service vprn "9998" subscriber-interface "services" group-interface "gi" pppoe admin-state enable
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" pppoe policy "pppoe"
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" pppoe session-limit 131071
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" pppoe sap-session-limit 131071
/configure service vprn "9998" subscriber-interface "services" group-interface "gi" pppoe user-db "clientes"

Subscriber Service Profiles

Service profiles define subscriber parameters and are applied via RADIUS or local configuration.

SLA Profile (100M)

See BNG Devices Configuration for full SLA profile details. Key Parameters:
  • Bandwidth: 100 Mbps (PIR/CIR)
  • Host Limits: 1 IPv4, 1 IPv6 WAN, 1 IPv6 PD
  • NAT Filter: IP filter “10” for CGN
  • QoS: Ingress/Egress policy “10”

Subscriber Profile

See BNG Devices Configuration for subscriber profile configuration. Key Parameters:
  • Accounting: RADIUS policy “accounting”
  • Interim Updates: Every 720 seconds
  • Optimized Stop: Enabled

Dual-Stack Operation

Private Addressing: 100.80.0.0/29 (CGNAT pool)NAT Translation: Deterministic NAT44 to 99.99.99.99DNS: 8.8.8.8, 8.8.4.4DHCP: Server on 9.9.9.9Gateway: 100.80.0.1

Traffic Flow Diagram

Subscriber ONT (100.80.0.2)
        |
        | Private IPv4: 100.80.0.2

   BNG VPRN 9998
   Group Interface "gi"
   (100.80.0.1)
        |
        | NAT Filter applied
        | NAT Policy "natpol"

   ISA NAT Group 1
   (NAT44 Translation)
        |
        | Public IPv4: 99.99.99.99:xxxxx

   BNG VPRN 9999
   NAT Outside Pool "dtpool"
        |
        | Interface to_iperf
        | 172.19.1.2/30

    Internet Gateway
    (172.19.1.1)

Configuration Files

The complete network services configuration is embedded within:
  • BNG1: configs/sros/config-bng.txt (lines 578-763)
  • BNG2: configs/sros/config-bng-2.txt (identical services)

Build docs developers (and LLMs) love