IPv6 Protocol · Topic 1 of 3

IPv6 Address Configuration on RouterOS

Learn the ways a RouterOS device gets IPv6 addresses: manual entries, EUI-64, address pools, SLAAC and DHCPv6, and how to read the address list.

  • 5 min
In a nutshell
  • IPv6 addresses are added with /ipv6 address add address=... interface=....
  • An interface can have a link local address and several global addresses at once.
  • eui-64=yes builds the interface ID from the MAC address.

What it is

An IPv6 interface can hold several addresses at once, and RouterOS can obtain them in several ways.

Every IPv6 interface has a link local address. It can also have one or more global or unique local addresses. This is normal and does not cause a conflict.

The ways to get an address are manual entry, EUI-64, SLAAC from a neighbouring router, DHCPv6, and an address built from a prefix pool.

Manual entryyou type itInterfaceether2Address listlink local plus global

How it works

RouterOS keeps all IPv6 addresses in one list that you manage under the /ipv6 address menu.

Manual addresses

You give a full address with its prefix length, and you name the interface.

/ipv6 address add address=2001:db8:1::1/64 interface=ether2
/ipv6 address print

Any address inside the prefix works. A manual global address on a LAN interface is the normal setup for a router that serves clients.

An address entry also has an advertise setting. When it is yes, RouterOS includes the prefix in Router Advertisements on that interface, so that hosts can build their own addresses by SLAAC. When it is no, the prefix stays private to the router.

EUI-64 addresses

You can ask RouterOS to build the interface ID from the MAC address of the interface.

/ipv6 address add address=2001:db8:1::/64 interface=ether2 eui-64=yes

Give only the prefix, and RouterOS adds the EUI-64 interface ID. The result is stable, but it exposes the MAC address.

Addresses from a pool

When an ISP delegates a prefix, you do not type the prefix. You store it in an IPv6 pool and refer to the pool in the address entry.

/ipv6 address add from-pool=isp-pool interface=bridge-lan

The address is built from the pool prefix, and it changes if the ISP changes the delegated prefix. This is covered in detail in the Interoperability chapter.

Addresses learned automatically

A router can accept a prefix from another router. The setting is under /ipv6 settings and is called accept-router-advertisements.

ValueEffect
noIgnore Router Advertisements
yesAccept them and build addresses and a default route
yes-if-forwarding-disabledAccept them only when the device is not forwarding

The last value keeps a router from learning its routes from a random neighbour, while still letting a host style device configure itself. Check the default on your RouterOS version before relying on it.

A WAN port can also run a DHCPv6 client to get an address or a prefix.

/ipv6 dhcp-client add interface=ether1 request=address,prefix pool-name=isp-pool

Reading the address list

The /ipv6 address print output shows flags in front of each entry.

FlagMeaning
GGlobal address
LLink local address
DDynamic, created by RouterOS or a client
XDisabled
IInvalid, for example when the pool prefix has gone

A link local address appears automatically for each interface, and you do not add it yourself. Dynamic entries come from SLAAC or from a DHCPv6 client.

ISP routersends RAether1accepts RADynamic addressflag D and GDefault routelearned

Duplicate address checks

When an address is added, the router checks that no other host on the link already uses it. This is Duplicate Address Detection, and it uses Neighbor Discovery messages. A duplicate address is not used.

Exam tip

Put the global address on the bridge or VLAN interface that clients use, not on an individual bridge port. Ports that belong to a bridge do not carry their own IP addresses.

What to remember for the exam

Seven facts cover most questions on this topic.

  • IPv6 addresses are added with /ipv6 address add address=... interface=....
  • An interface can have a link local address and several global addresses at once.
  • eui-64=yes builds the interface ID from the MAC address.
  • from-pool builds an address from a stored prefix, often from DHCPv6 prefix delegation.
  • advertise=yes puts the prefix in Router Advertisements so hosts can use SLAAC.
  • accept-router-advertisements controls whether the router learns addresses and routes from others.
  • In /ipv6 address print, G means global, L means link local and D means dynamic.
Watch out

A router that accepts Router Advertisements on a LAN port can be misled by a rogue device. Turn the setting off where you do not need it.

Common mistakes

These four mistakes appear often.

Adding the address to a bridge port. Put it on the bridge interface, because a port inside a bridge does not take its own address.

Typing the host address for an EUI-64 entry. Give only the prefix part, then set eui-64=yes.

Expecting SLAAC without advertise=yes. Clients cannot learn the prefix if the router does not announce it.

Forgetting that v6 needs the package. In RouterOS v6 the ipv6 package must be enabled. In v7 IPv6 is built in.

Check yourself

Work through these three questions.

  • Which command adds a manual IPv6 address to an interface?

    Use /ipv6 address add address=2001:db8:1::1/64 interface=ether2, changing the address and interface to suit.

  • What does advertise=yes do on an address entry?

    It includes the prefix in Router Advertisements so hosts on the link can build addresses by SLAAC.

  • What do the flags G, L and D mean in the address list?

    G is a global address, L is a link local address and D is a dynamic entry.

Topic 1 of 3 in IPv6 Protocol

Test yourself on IPv6 Protocol

The full MikroTik MTCIPv6E question bank has 486 questions, with timed practice exams and an explanation for every answer.

This study guide is independent and is not affiliated with, endorsed by, or sponsored by MikroTik. Vendor names, certification names and exam codes are trademarks of their respective owners and are used for identification only.