Appearance
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| Parameter | Description |
|---|---|
IPV6-PD-POOL | Name of the IPv6 pool |
prefix | Your allocated IPv6 prefix from upstream provider |
prefix-length | Prefix 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-POOLStep 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-OUTPUTStep 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 30Step 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-accountingStep 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 radiusQuick Reference
| Task | Command |
|---|---|
| Check IPv6 routes | show route table inet6.0 |
| Check subscribers | show subscribers summary |
| Check DHCPv6 bindings | show dhcpv6 server binding |
| Check pool usage | show network-access address-assignment pool |
| Check RADIUS stats | show network-access aaa statistics radius |
| Commit config | commit |
Need Help?
If you need assistance with Juniper IPv6 configuration, please contact Onezeroart Support.
