PPPoE IPv6 metric value not being assigned to default route

On a multihomed setup, I'm noticing that my PPPoE IPv6 interface is not having the metric value of 1 set. Looking at ip -6 route I can see that the default route is configured as:

default from 2001:470:xxxx:xx::/64 dev 6in4-henet proto static metric 20 pref medium
default from 2001:470:xxxx::/48 dev 6in4-henet proto static metric 20 pref medium
default from 2001:4d48:ad5d:xxxx::/56 via fe80::f60f:1bff:fe17:d400 dev pppoe-wan proto static metric 512 pref medium

The 512 value is the problem because I also have a HE IPv6 tunnel and this is applying the metric of 20 on the default route, which is overriding the PPPoE route and causing issues. I can turn off the default route setting, but then mwan3 will fail to route accordingly. I could set the tunnel interface to something higher than 512, but then it seems I'm just working around the main problem with metric values not being honoured on the PPPoE interface.

How can I make sure the default route applies the metric 1? This is set on the interface, but it is not applying as shown on the IPv6 route table. Equally, I can't configure a static route, because the link-local IPv6 address on the PPPoE interface changes each time the interface comes up.

It would appear when the interface is DHCPv6 client, the metric value doesn't apply, where as on 6in4 or static, it does.

Any ideas?

It would appear the metric option does not apply on IPv6 interfaces when set to DHCPv6 which my PPPoE IPv6 interface is. The HENET interface being 6in4 does appear to apply the metric value.

How can you set the metric value on the route configured for the PPPoE interface?

It would appear I am not the only person noticing this:

  • You will likely need to implement some form of IPv6 masquerading such as NETMAP or NAT6 for mwan3 to work properly across multiple WAN interfaces.
    NAT6 is potentially a controversial suggestion for many, but realistically without BGP, it is often required for IPv6 multihoming. Currently mwan3 does not implement any IPv6 masquerading as part of it's configuration. This is something that needs to be configured outside of mwan3 itself.

What you see in routing table metrics doesn't matter too much, as it is source routing and eventually will affect only locally generated traffic.

I'm not so sure. I'm having issues with my primary IPv6 PPPoE, if I disable the HE tunnel interface it works fine. It suggests, that the traffic might be going through the wrong interface because of the metrics. I am already doing NAT6.

If you are already doing NAT6 these rules will have no effect, as the clients' address is not the GUA defined there in the "from" field.
How are you choosing the egress gateway? Do you use mwan3 or something else?

I am using mwan3, but IPv6 has never been solid with it. I've had issues with PPPoE IPv6, connectivity breaking after around 2 hours and to be honest gave up and gone back to 6in4, creating two HE tunnels under different IPv4 endpoints which static routes on each WAN for each, which at least seems to work. I've also had to downgrade mwan3 to 2.8.16, because 2.10 doesn't seem to work with IPv6 compared to 2.8.