Skip to content
MikroTik RouterOS Docs

IPv6 Neighbor Discovery Configuration

For the impatient: enable IPv6 router advertisements on your LAN interface so clients get addresses via SLAAC.

/ipv6 address add address=2001:db8:1::1/64 interface=bridge advertise=yes

Verify clients receive addresses:

/ipv6 neighbor print

What this does: IPv6 Neighbor Discovery (ND) replaces ARP from IPv4 and enables Stateless Address Autoconfiguration (SLAAC). RouterOS acts as a Router Advertisement Daemon (RADVD), announcing network prefixes so clients automatically configure their IPv6 addresses.

When to use this:

  • Providing IPv6 connectivity to LAN clients
  • Enabling SLAAC for automatic address configuration
  • Advertising DNS servers over IPv6
  • Configuring ND Proxy for routing between segments

Prerequisites:

  • IPv6 package enabled (included by default in v7)
  • An IPv6 prefix from your ISP or tunnel broker
  • Basic understanding of IPv6 addressing

Add an IPv6 address to your LAN interface with router advertisement enabled.

/ipv6 address add address=2001:db8:1::1/64 interface=bridge advertise=yes

The advertise=yes flag tells RouterOS to include this prefix in Router Advertisements, enabling SLAAC for clients.

Check the Neighbor Discovery settings for the interface.

/ipv6 nd print

Expected output:

Flags: D - dynamic, X - disabled, I - invalid
0 interface=bridge ra-interval=3m20s-10m ra-delay=3s mtu=unspecified
reachable-time=unspecified retransmit-interval=unspecified
ra-lifetime=30m ra-preference=medium hop-limit=unspecified
advertise-mac-address=yes advertise-dns=yes managed-address-configuration=no
other-configuration=no

Check which prefixes are being advertised.

/ipv6 nd prefix print

Expected output:

Flags: D - dynamic, X - disabled, I - invalid
0 D interface=bridge prefix=2001:db8:1::/64 valid-lifetime=4w2d
preferred-lifetime=1w autonomous=yes

Verify clients are receiving addresses and appearing in the neighbor table.

/ipv6 neighbor print

Expected output:

Flags: R - ROUTER
# INTERFACE ADDRESS MAC-ADDRESS STATUS
0 bridge 2001:db8:1::a1b2:c3d4:e5f6:7890 AA:BB:CC:DD:EE:FF reachable
1 bridge fe80::aabb:ccff:fedd:eeff AA:BB:CC:DD:EE:FF reachable

Provide automatic IPv6 addresses to all LAN clients:

# Add IPv6 address to LAN interface
/ipv6 address add address=2001:db8:1::1/64 interface=bridge advertise=yes
# Verify ND is enabled (should be automatic)
/ipv6 nd print
# Clients will automatically get addresses like:
# 2001:db8:1::aabb:ccdd:eeff:1122

Include DNS server information in Router Advertisements (RDNSS):

# Enable DNS advertisement (default is yes)
/ipv6 nd set [find interface=bridge] advertise-dns=yes
# Configure DNS servers (these will be advertised)
/ip dns set servers=2606:4700:4700::1111,2001:4860:4860::8888

Clients supporting RFC 8106 will automatically use these DNS servers.

DNS advertisement options:

  • yes - Advertise configured DNS servers from /ip dns
  • no - Don’t include DNS in Router Advertisements
  • self - Advertise the router’s own link-local address as DNS server (router must be running DNS)
# Advertise router as DNS server (requires /ip dns enabled)
/ipv6 nd set [find interface=bridge] advertise-dns=self

For networks requiring DHCPv6 instead of SLAAC:

# Tell clients to use DHCPv6 for addresses
/ipv6 nd set [find interface=bridge] managed-address-configuration=yes
# Optionally keep SLAAC disabled
/ipv6 address set [find interface=bridge] advertise=no

Use SLAAC for addresses but DHCPv6 for DNS and other options:

# Keep managed=no (SLAAC for addresses)
# Enable other-configuration for DHCPv6 options
/ipv6 nd set [find interface=bridge] other-configuration=yes

To receive an IPv6 address from an upstream router via SLAAC:

# Enable accepting Router Advertisements (important for v7)
/ipv6 settings set accept-router-advertisements=yes
# Note: By default this is "yes-if-forwarding-disabled"
# Change to "yes" if you have forwarding enabled

For faster client configuration or reduced network traffic:

# Faster initial client configuration
/ipv6 nd set [find interface=bridge] ra-interval=20s-1m
# Longer router lifetime (how long clients consider this router valid)
/ipv6 nd set [find interface=bridge] ra-lifetime=1h

Enable ND Proxy to allow routing between segments while appearing on the same link:

# Enable proxy on specific address
/ipv6 address set [find address~"2001:db8:1::"] nd-proxy=yes

Let RouterOS automatically generate the host portion from the interface MAC address:

# Add address with EUI-64 host part generation
/ipv6 address add address=2001:db8:1::/64 interface=bridge eui-64=yes advertise=yes

The router generates an address like 2001:db8:1::aabb:ccff:fedd:eeff/64 based on the interface MAC.

For faster address assignment in controlled environments:

# Skip DAD (only in trusted environments)
/ipv6 address add address=2001:db8:1::1/64 interface=bridge no-dad=yes

DAD Bypass Risk

Only use no-dad=yes in environments where you’re certain no address conflicts exist. Skipping DAD can cause silent connectivity issues if duplicates exist.

Stop advertising on a specific interface:

/ipv6 nd set [find interface=bridge] disabled=yes

Or stop advertising a specific prefix while keeping ND active:

/ipv6 address set [find interface=bridge] advertise=no
/ipv6 nd print where disabled=no

Expected: Shows interface with ND enabled.

/ipv6 nd prefix print

Expected: Shows dynamic prefix entry with autonomous=yes.

/ipv6 neighbor print where status=reachable

Expected: Client IPv6 addresses appear with reachable status.

From a client, ping the router:

Terminal window
ping6 2001:db8:1::1

Expected: Replies received.

SymptomCauseSolution
Clients not getting IPv6 addressesadvertise=no on IPv6 addressSet advertise=yes on the address
Clients not getting addressesND disabled on interfaceEnable: /ipv6 nd set [find interface=X] disabled=no
Router not accepting SLAAC addressesAccept RA disabled or conditionalSet /ipv6 settings set accept-router-advertisements=yes
SLAAC breaks when forwarding enabledv7 bug (fixed in 7.1+)Upgrade RouterOS or set accept-router-advertisements=yes
Addresses deprecated immediatelyadvertise=no was set after yesClients cache prefixes; disconnect/reconnect or wait for lifetime expiry
DNS not received via RAClient doesn’t support RDNSS (RFC 8106)Use DHCPv6 with other-configuration=yes
Duplicate address detectedTwo devices with same address or rogue RACheck for rogue RA sources; verify EUI-64 uniqueness; use no-dad=yes only if trusted
Neighbors stuck in “incomplete”Layer 2 issue (neighbor solicitation not reaching target)Check switch config, VLAN tagging, firewall rules for ICMPv6
Neighbors stuck in “stale”No recent communicationNormal state; will refresh on next communication attempt
Neighbors stuck in “delay”/“probe”Address resolution in progressWait briefly; if persistent, check ICMPv6 connectivity

Common Mistakes

  • Don’t forget advertise=yes - Adding an IPv6 address doesn’t automatically advertise it
  • Don’t confuse ND with IP neighbors - /ipv6 neighbor is ND; /ip neighbor is discovery protocol (MNDP/LLDP)
  • Don’t ignore accept-router-advertisements setting - Critical for receiving SLAAC as a client in v7
  • Don’t expect immediate prefix deprecation - Clients cache prefixes according to lifetime values
  • Don’t use very short lifetimes in production - Can cause address instability
StateDescription
tentativeAddress undergoing Duplicate Address Detection (DAD)
preferredAddress verified unique and active for all communication
deprecatedAddress valid but not used for new connections
invalidAddress expired, cannot be used
PropertyTypeDefaultDescription
interfacestring-Interface for ND (required)
disabledyes/nonoDisable ND on interface
ra-intervaltime range3m20s-10mUnsolicited RA interval
ra-delaytime3sDelay between solicited RAs
ra-lifetimetime30mRouter validity period (0 = not default router)
ra-preferencelow/medium/highmediumRouter selection priority
advertise-dnsyes/no/selfyesInclude DNS in RA
advertise-mac-addressyes/noyesInclude source link-layer address
managed-address-configurationyes/nonoTell clients to use DHCPv6 for addresses
other-configurationyes/nonoTell clients to use DHCPv6 for other info
mtuintegerunspecifiedAdvertised MTU
hop-limitintegerunspecifiedAdvertised hop limit
PropertyTypeDefaultDescription
addressIPv6/prefix-IPv6 address with prefix length
interfacestring-Interface to assign address
advertiseyes/nonoInclude prefix in Router Advertisements
eui-64yes/nonoAuto-generate host part from interface MAC
no-dadyes/nonoSkip Duplicate Address Detection
PropertyTypeDefaultDescription
prefixIPv6 prefix-Prefix to advertise
interfacestring-Interface for prefix
autonomousyes/noyesAllow SLAAC address generation
on-linkyes/noyesPrefix is on-link
valid-lifetimetime4w2dAddress validity period
preferred-lifetimetime1wPreferred address period
CommandDescription
/ipv6 nd printDisplay ND configuration
/ipv6 nd setModify ND settings
/ipv6 nd prefix printShow advertised prefixes
/ipv6 nd prefix default printShow default prefix settings
/ipv6 neighbor printDisplay neighbor table
/ipv6 settings printShow IPv6 global settings