Skip to content

IPv6 Setup — Juniper (JunOS 23.x)

This guide covers how to configure IPv6 with prefix delegation on Juniper JunOS 23.x routers for use with Zal Ultra ISP CRM.

⚠️ PREREQUISITES

  • Juniper router running JunOS 23.x or later
  • PPPoE server already configured and working with IPv4
  • RADIUS client configured and connected to Zal Ultra
  • Valid IPv6 prefix allocated from your upstream provider
  • Backup your router configuration before making changes

Architecture

Subscriber CPE (DHCPv6-PD Client)

Juniper Router (BNG / PPPoE Server + RADIUS Client)

Zal Ultra (RADIUS Server + Billing)

Step 1: Configure IPv6 Address Pool

junos
# Create IPv6 address assignment pool
set access address-assignment pool IPV6-PD-POOL family inet6
set access address-assignment pool IPV6-PD-POOL family inet6 prefix 2001:db8:1000::/40
set access address-assignment pool IPV6-PD-POOL family inet6 range IPV6-RANGE prefix-length 56
ParameterDescription
IPV6-PD-POOLName of the IPv6 pool
prefixYour allocated IPv6 prefix from upstream provider
prefix-lengthPrefix length delegated to each subscriber (e.g., 56)

Step 2: Configure Access Profile with IPv6

junos
# Create or modify access profile for PPPoE with IPv6
set access profile PPPoE-ACCESS-PROFILE authentication-order radius
set access profile PPPoE-ACCESS-PROFILE radius authentication-server <ZAL_ULTRA_IP>
set access profile PPPoE-ACCESS-PROFILE radius accounting-server <ZAL_ULTRA_IP>
set access profile PPPoE-ACCESS-PROFILE radius options nas-identifier "JUNIPER-BNG"

# Assign IPv6 pool to access profile
set access profile PPPoE-ACCESS-PROFILE address-assignment pool IPV6-PD-POOL

Step 3: Configure Dynamic Profile

junos
# Create dynamic profile for PPPoE subscribers with IPv6
set dynamic-profiles PPPoE-IPV6-PROFILE interfaces demux0 unit "$junos-interface-unit"
set dynamic-profiles PPPoE-IPV6-PROFILE interfaces demux0 unit "$junos-interface-unit" family inet6 address $junos-ipv6-address
set dynamic-profiles PPPoE-IPV6-PROFILE interfaces demux0 unit "$junos-interface-unit" family inet6 dhcpv6-options prefix-delegation pool IPV6-PD-POOL
set dynamic-profiles PPPoE-IPV6-PROFILE interfaces demux0 unit "$junos-interface-unit" family inet6 filter input IPV6-SUBSCRIBER-INPUT
set dynamic-profiles PPPoE-IPV6-PROFILE interfaces demux0 unit "$junos-interface-unit" family inet6 filter output IPV6-SUBSCRIBER-OUTPUT

Step 4: Configure Router Advertisement (RA)

junos
# Enable Router Advertisement on subscriber-facing interface
set protocols router-advertisement interface demux0 prefix 2001:db8::/64
set protocols router-advertisement interface demux0 managed-configuration
set protocols router-advertisement interface demux0 other-stateful-configuration
set protocols router-advertisement interface demux0 max-advertisement-interval 30

Step 5: Configure RADIUS Server

junos
# RADIUS server for IPv6 authentication
set access radius-server <ZAL_ULTRA_IP> secret <YOUR_RADIUS_SECRET>
set access radius-server <ZAL_ULTRA_IP> port 1812
set access radius-server <ZAL_ULTRA_IP> accounting-port 1813

# Enable IPv6 RADIUS attributes
set access radius-options enhanced-accounting

Step 6: Commit and Verify

junos
# Commit configuration
commit check
commit

# Show IPv6 routes
show route table inet6.0

# Show subscriber sessions
show subscribers summary

# Show DHCPv6 bindings
show dhcpv6 server binding

# Show address pool usage
show network-access address-assignment pool IPV6-PD-POOL

# Check RADIUS statistics
show network-access aaa statistics radius

Quick Reference

TaskCommand
Check IPv6 routesshow route table inet6.0
Check subscribersshow subscribers summary
Check DHCPv6 bindingsshow dhcpv6 server binding
Check pool usageshow network-access address-assignment pool
Check RADIUS statsshow network-access aaa statistics radius
Commit configcommit

Need Help?

If you need assistance with Juniper IPv6 configuration, please contact Onezeroart Support.

www.onezeroart.com