Skip to content

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 reboot

TIP

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
ParameterDescription
nameA descriptive name for the pool (e.g., ipv6-pd-pool)
prefixYour allocated IPv6 prefix from your upstream provider
prefix-lengthThe prefix length to delegate to each subscriber (e.g., /56 or /64)

PREFIX LENGTH GUIDE

Prefix LengthSubnets per SubscriberRecommended For
/4865,536 subnetsEnterprise / Business subscribers
/56256 subnetsResidential (recommended)
/641 subnetSingle 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-pool

Or 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.4

Step 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=yes

Step 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 print

Common RADIUS IPv6 Attributes:

AttributeDescription
Framed-IPv6-PrefixAssigns a routed IPv6 prefix to the subscriber
Framed-IPv6-PoolSpecifies the IPv6 pool name to use
Delegated-IPv6-PrefixDelegates a prefix for subscriber's downstream network
Framed-Interface-IdSets 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 print

Quick Reference

TaskCommand
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.

www.onezeroart.com