Ipv6 slaac default route

I've noticed that after updating to version 7.21.1, if IPv6 RA is enabled in the settings, it automatically creates a default route for the corresponding interface. This behavior didn't seem to exist in the older versions. How can I prevent it from automatically creating the default route? Or is it possible to specify the distance?

Thank you

First, "route from PD" is a hack. DHCPv6 doesn't have default route information. The checkbox "Add Default Route" in the DHCPv6 Client setting is a MikroTik invention. You only need that if RA fails to give you the default gateway.

The correct way to get the default route for none P2P situations (not PPPoE client, for example) is to turn on "Accept Router Advertisements", which results in what you see as "route from RA" in your screenshot. From 7.21 you can now limit the interfaces where RA is accepted, by creating an interface list:

image

Also note that 7.21.x and 7.22beta currently have a bug where the default route is not installed if RA does not advertise any prefix. In this situation, turning on "Add Default Route" on the DHCPv6 Client will be needed as a temporary workaround.

First, "route from PD" is a hack. DHCPv6 doesn't have default route information.

Yes, i see.

I have multiple WAN interfaces, and each interface receives RA routes. However, currently, there is no way to specify the distance for routes obtained via RA. This results in all received routes becoming ECMP routes. I want to specify a priority order, similar to how the routes obtained from the PD in the screenshot have different distances assigned.

If this isn't possible, is there a way to configure it to not install the routes (only receive the addresses), and obtain the routing information solely from the DHCPv6 client?

Wait a minute, is this the configuration from the same device as your other thread?

If yes, then according to this thread, your WAN is using PPPoE client interfaces, and not normal ethernet interfaces? When that is true, then:

  • You don't need to turn on "Accept Router Advertisements"! You can go to IPv6 -> Settings and change "Accept Router Advertisements" back to the default, which is "yes if forwarding is disabled":

    image

    Alternatively, if you have other non-PPPoE interfaces that should accept RA too, then you can keep the setting as "yes" but add a list of interfaces that contains only the necessary interfaces (not the PPPoE client interfaces) and specify the list under "Accept Router Advertisements On".

  • There is no need to get an IPv6 address with SLAAC for PPPoE, because the interface is point-to-point with only two ends, and the end that is your router already gets an IPv6 address from PPPoE. That address might be only a link-local address, it's not a problem, you can assign GUA addresses to other interfaces and the router will use those addresses when making outgoing connections. If you really need a GUA address on the PPPoE interface, request the address with DHCPv6 together with the prefix.

  • You can specify the distance for the default route in the PPPoE client interface settings, under the "Dial Out" tab. If you do that, you don't need the default route hack in the DHCPv6 Client setting anymore.

    image

You don't need and normally shouldn't use SLAAC/RA with PPPoE client interfaces!

Thank you for your reply. As you pointed out, I am indeed obtaining RA over PPPoE. However, my inquiry is less about a strict requirement for the RA address itself (since, as you mentioned, I can alternatively assign addresses from the PD pool; our ISP here only provides prefixes, not specific IP addresses), but rather a technical discussion.

Specifically, in a scenario with multiple Ethernet interfaces, how can one obtain multiple RA addresses (rather than being limited to designating just one interface for address acquisition) while also being able to specify the distance?

It would be useful to be able to set the administrative distance of an RA-received default route like we can for default routes received via other means, but I don’t think that’s currently an option. It’s worth suggesting as a feature request.

I have submitted a feature request and hope it will be considered. Thank you all for your replies.

1 Like

It would really be better if instead of the two current settings under IPv6 -> Settings, MikroTik add a menu/table IPv6 -> RA Client (similar to IPv6 -> DHCP Client), where we can add individual entry per interface (instead of using the current "Accept Router Advertisements On" interface list). In the entries we can then specify whether we only want the advertised prefix, or only the route, or both, and also set things like routing tables and distance per table for the default route.

And the interface selection for the individual entries can list interface lists too, in case we don't want too many duplicates. There are places where such combo is supported, for example under Bridge -> Ports -> Interface.

2 Likes

I think your solution is excellent.

For some time now, I've had the feeling that Mikrotik is heading down the modern software development path. A feature is put on the roadmap, it's done in a mostly acceptable but ultimately minimal/slightly broken way in the shortest possible time (more tickets equals higher productivity.) Then any issue or refinement that is invariably necessary gets treated as a new thing, with a lower priority, because it's just a refinement for something that mostly works, and goes back into the new feature pile.

An even better example would be the ipv6 subnet hinting.

1 Like

Wait, why is the address now being assigned by RA becoming xx:xx:xx:xx:200:ff:fe00:0? According to the EUI-64 format, this implies the MAC address is all zeros? It wasn't like this in older versions.

Because you are still in the configuration where you enabled "Accept RA" on the PPPoE client interface (which is totally unnecessary). PPPoE client interfaces of course have no MAC address, it's normal that you get an EUI-64 address corresponding to the all-zero MAC address.

You should create an interface list without the PPPoE interface and use the list for /ipv6 settings set accept-router-advertisements-on=. Or revert to the setting /ipv6 settings set accept-router-advertisements=yes-if-forwarding-disabled. And reboot.

You don't need a GUA or ULA address on the pppoe-outX interface for IPv6 to work. And the gateway information obtained with RA on the pppoe-outX interface is completely useless.

I see what you mean. However, with the exact same configuration, the assigned IP address in version 7.19 was different; it was calculated based on the PPPoE interface's link-local address. I'd like to confirm if this logic has been changed in the new version, or is this a bug?