You are missing a very important point: the correct fail-over setup, with PBR or not, functions very differently for IPv6 and IPv4. That's why two topics (this one for IPv6 and Connectivity checking and simple fail-over as core features for IPv4). And by the way, all IPv6 examples on https://openwrt.org/docs/guide-user/network/routing/examples/pbr_netifd look wrong, because the source IP question is essential for IPv6 (but taken care of automatically for IPv4) and is not even commented upon.
Let me explain the difference in more detail.
IPv4 is, realistically, always NATed in home and small-business networks. Hosts in LAN use their private IP address as a source to initiate connections to the outside world. The router is then responsible for making the correct routing decision, and for replacing this dummy internal IP with the IP address of the outgoing interface. That's where you can plug routes with different metrics, or, for complex setups where the routing decision depends on factors other than the destination IP and the set of interfaces that are up, policy-based routing. But both forum topics are about fail-over, and therefore exclude such complex setups. The linked thread (Set different Upstream for specific source IP) specifically asks for routing based on the (private) source IP, i.e. for simultaneous non-zero traffic on both WAN connections, and is therefore out of scope. For that task, policy-based routing is needed. For pure fail-over, it's overkill.
For IPv6, with multiple WANs, there are three possible setups.
First, let's consider the default OpenWRT IPv6 setup without any extra packages or configuration, which does not provide fail-over, and for me it is unclear where such "lump everything together" semantics would be useful at all. In the IPv6 world, all WANs provide delegated prefixes. OpenWrt creates router advertisement packets that tell the hosts in LAN all WAN delegated prefixes and the ULA prefix, and therefore these hosts will assign themselves one IP from each range. OpenWrt will then apply its default policy-based routing magic to look at the source IP of each packet, and route it into the corresponding WAN. The problem is, if both the fiber and the LTE are up, then hosts in LAN have absolutely no idea which of the source addresses to prefer - and that, unlike with IPv4, is their responsibility. So the worst-case result is: I can ping my hosts from some VPS, both on the address from the LTE range, and from the range assigned by the fiber ISP, but due to bad luck, they always use LTE for outgoing connections. For them, it's just 2405:8d40:c81:81c2::x
vs 2001:fd8:f09f:c24b::x
. Can you tell (without invoking whois
) which of these addresses is better? No, and there is no knob to tell them about that. And that's why the forum link that you provided (Set different Upstream for specific source IP) is irrelevant: it is for the IPv4 case, where such choice is done on the router.
For IPv6, the second possible setup (the current recommended fail-over setup with mwan3) requires IPv6 NAT or NPT, to isolate the hosts in LAN from the process of choosing the correct source address. In this setup, hosts in LAN have only one IPv6 address, from the ULA range. The router then applies the link-selection logic (i.e. routing), and translates the address into the globally-routable space suitable for the chosen link. It works, but in communities outside of this forum (e.g. Hacker News) this gets a fair "yuck" type of response just because of the NAT, and also comes with downsides such as these hosts preferring IPv4 when communicating with dual-stack servers (because IPv4 is preferable to ULA according to RFC 3484). Note that this yucky setup is inevitable if two WANs are to be used simultaneously, e.g. via load-balancing or "normal" destination-based routing.
The third setup, which is the subject of this feature request, is currently not implemented. It is identical to the first (default) setup, with the only difference being that prefixes for the irrelevant WANs (backup WAN if the primary WAN works, or the primary WAN if it only pretends to be up) are not included in the router advertisement packets. There is no NAT. And, because hosts in LAN have only one non-ULA IPv6 address, they never make the wrong choice of the source address. Then the default source-based routing magic in OpenWrt routes these packets to the correct link.