Appearance
IPv6 Setup — MikroTik (RouterOS v7.x)
This guide covers how to configure IPv6 with prefix delegation on MikroTik RouterOS v7 for use with Zal Ultra ISP CRM.
⚠️ PREREQUISITES
- MikroTik RouterOS v7.x or later installed
- 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)
↓
MikroTik Router (PPPoE Server + DHCPv6 Server + RADIUS Client)
↓
Zal Ultra (RADIUS Server + Billing)Step 1: Enable IPv6 Package
On RouterOS v7, IPv6 is built-in and enabled by default. For older versions, verify:
bash
# Check if IPv6 package is enabled
/system package print
# If disabled, enable it and reboot
/system package enable ipv6
/system rebootTIP
On RouterOS v7, IPv6 is built-in and does not require a separate package. You can skip this step.
Step 2: Create IPv6 Pool
Create an IPv6 address pool for prefix delegation to subscribers.
bash
# Create the IPv6 pool for prefix delegation
/ipv6 pool add name=ipv6-pd-pool prefix=2001:db8:1000::/40 prefix-length=56
# Verify the pool
/ipv6 pool print| Parameter | Description |
|---|---|
name | A descriptive name for the pool (e.g., ipv6-pd-pool) |
prefix | Your allocated IPv6 prefix from your upstream provider |
prefix-length | The prefix length to delegate to each subscriber (e.g., /56 or /64) |
PREFIX LENGTH GUIDE
| Prefix Length | Subnets per Subscriber | Recommended For |
|---|---|---|
/48 | 65,536 subnets | Enterprise / Business subscribers |
/56 | 256 subnets | Residential (recommended) |
/64 | 1 subnet | Single network / Simple setups |
Step 3: Create PPPoE Profile with IPv6
Update your existing PPPoE profile or create a new one to include IPv6 support.
bash
# Modify existing PPPoE profile to add IPv6 pool
/ppp profile set default-encryption \
use-ipv6=yes \
dhcpv6-pd-pool=ipv6-pd-poolOr create a new profile:
bash
/ppp profile add name=pppoe-ipv6-profile \
local-address=10.0.0.1 \
remote-address=pppoe-pool \
use-ipv6=yes \
dhcpv6-pd-pool=ipv6-pd-pool \
dns-server=8.8.8.8,8.8.4.4Step 4: Enable IPv6 on PPPoE Interface
bash
# Add IPv6 address to the interface facing subscribers
/ipv6 address add address=2001:db8::1/64 interface=bridge-local advertise=yes
# Enable Neighbor Discovery (ND) for SLAAC
/ipv6 nd set [find] advertise-dns=yes managed-address-configuration=no other-configuration=yesStep 5: Configure IPv6 RADIUS Attributes
Ensure your RADIUS setup sends the correct IPv6 attributes:
bash
# RADIUS client should already be configured for IPv4
# IPv6 attributes are sent automatically when PPP profile has use-ipv6=yes
# Verify RADIUS is sending IPv6 attributes
/radius printCommon RADIUS IPv6 Attributes:
| Attribute | Description |
|---|---|
Framed-IPv6-Prefix | Assigns a routed IPv6 prefix to the subscriber |
Framed-IPv6-Pool | Specifies the IPv6 pool name to use |
Delegated-IPv6-Prefix | Delegates a prefix for subscriber's downstream network |
Framed-Interface-Id | Sets the interface identifier for the subscriber |
Step 6: Configure IPv6 Firewall
bash
# Basic IPv6 firewall rules
/ipv6 firewall filter
add chain=input action=accept connection-state=established,related comment="Accept established/related"
add chain=input action=accept protocol=icmpv6 comment="Accept ICMPv6"
add chain=input action=drop in-interface=pppoe-* comment="Drop all other input from PPPoE"
add chain=forward action=accept connection-state=established,related comment="Accept established/related forward"
add chain=forward action=accept protocol=icmpv6 comment="Accept ICMPv6 forward"
add chain=forward action=drop connection-state=invalid comment="Drop invalid forward"Step 7: Verify IPv6 Connectivity
bash
# Check IPv6 addresses
/ipv6 address print
# Check active PPPoE sessions with IPv6
/ppp active print detail
# Ping test
/ping 2001:4860:4860::8888 count=4
# Check IPv6 routes
/ipv6 route print
# Check IPv6 pool usage
/ipv6 pool print
# Check Neighbor Discovery
/ipv6 nd printQuick Reference
| Task | Command |
|---|---|
| Check IPv6 addresses | /ipv6 address print |
| Check IPv6 routes | /ipv6 route print |
| Check PPPoE sessions | /ppp active print detail |
| Check IPv6 pool | /ipv6 pool print |
| Check ND settings | /ipv6 nd print |
| Ping IPv6 host | /ping 2001:4860:4860::8888 |
Need Help?
If you need assistance with MikroTik IPv6 configuration, please contact Onezeroart Support.
