Setting up an IPv6 ULA address and advertising prefix: Bug or something else?

Hi -

I’m trying to set RouterOS to advertise an IPv6 ULA prefix for internal (LAN) use, and add an address. It works perfectly well, but every time the router restarts, the address vanishes.

I don’t know whether I’m doing something wrong, or whether I’ve discovered a bug in RouterOS (tested up to and including 7.15.1) - any advice would be greatly appreciated.

Here’s the relevant configuration I have:

/ipv6 pool
add name="Internal ULA" prefix=fdfe:48c8:4451::/64 prefix-length=64

/ipv6 nd
set [ find default=yes ] dns=fdfe:48c8:4451::1,fdfe:48c8:4451::2 hop-limit=64 \
    interface=bridge other-configuration=yes
# There is a stateless DHCPv6 server on the LAN specifying additional options

/ipv6 address
add address=::1:1 from-pool="Internal ULA" interface=bridge

The configuration above works well, but the specified address disappears from the configuration every time the router is rebooted. Am I doing something wrong - is there a better or more proper way to achieve this, for example? Alternatively, is this a bug?

Cheers

I’ve setup IPv6 ULA address and advertising on some vlan interface using info in this blog
not sure it will help in your particular setup, since there’s no ipv6 pool and DHCPv6 server involved.

If your pool only has a /64 prefix (which means it can only give out in total only ONE prefix, with prefix-length also set to 64) then you should either skip the pool all together, and directly input fdfe:48c8:4451::1:1/64 as the address under the /ipv6 address entry. Or if you still want to use the pool, increase its prefix to /48 (that is fdfe:48c8:4451::/48 as value for “prefix” instead of fdfe:48c8:4451::/64).

I would still prefer the first solution. Normally you use ULA addresses because you want the prefix to be predictable. But if you get the /64 prefix from a pool larger than /64 then that prefix will change every time you made any change on the underlying interface (got a new prefix from the pool).