> Then we get to IPv6.
> Each router has a prefix from its upstream provider via DHCPv6-PD. Each downstream interface gets an address from that upstream's delegated prefix.
> Each host now has prefix information coming from two different routers, and installs two different prefixes. Hosts that use SLAAC or DHCPv6 get addresses dynamically, one from each upstream router.
> Devices that need static addresses like NFS servers have two addresses, one from each upstream provider's delegated prefix.
> Default route information is handed out dynamically to autoconfiguring hosts via RAs, since DHCPv6 isn't allowed to pass along default route information.
> For statically addressed hosts, a static default gateway can be configured to a VRRPv6 link-local v6 address, with all the chaos involved in having to statically assign link-local addresses.
> Now, when [ISP 1]'s link goes away, VRRPv6 can change priorities so that the default gateway flips to [ISP 2]'s router. Yay!
> Unfortunately, there's nothing that tells the downstream host "hey, stop using that address as a source address for connections". So, the host continues trying to use [ISP 1]'s prefixed address as a source IP for connections, even though the default gateway is now going out through [ISP 2]. [ISP 2], being a good network, sees what looks like IP spoofing going on, and drops the outbound packets.
> Host keeps trying ineffectively to establish an outbound connection using the [ISP 1] prefix address, because there's no way to signal the statically addressed host "hey, stop using that prefix as a source address, use the other address you have instead"
> Eventually, after enough failures, the user gives up and turns off IPv6.
☝️☝️☝️☝️☝️☝️☝️☝️☝️