← Back to context

Comment by craftkiller

3 days ago

> if your Internet connection goes down and the router withdraws the prefix

My router advertises both the public prefix from my ISP and a ULA prefix for internal LAN connections (essentially the IPv6 equivalent to RFC-1918). This gives me stable local addresses that do not change and work without public internet access.

https://en.wikipedia.org/wiki/Unique_local_address

> My router advertises both the public prefix from my ISP and a ULA prefix for internal LAN connections

You'd think so, but you'd be wrong. If you have a GUA and a ULA, and the printer has both a GUA and a ULA, then your host is going to prefer the GUA when connecting to the printer.

So when a router withdraws a prefix, it's possible for your computer to still have a (stale) GUA while the printer only has a ULA. Whoops, and your printing is broken.

There is an RFC in review that would fix this: https://www.ietf.org/archive/id/draft-ietf-6man-rfc6724-upda... . It'll likely be approved in 2027, so you'd be able to use ULAs some time in the 2030-s once it trickles down.

  • Ditch advertising public addresses to local devices at all.

    Have the router issue ULAs only and let the router do stateless NPT (network prefix translation) only.

    Done, works great. Doesn’t matter what your internet connection is doing.

    Yes, your local devices will use the ULA to attempt to connect to Internet destinations if that’s the only v6 address they have. It works fine.

    • > Have the router issue ULAs only and let the router do stateless NPT (network prefix translation) only.

      This is an option, but ULAs are ranked _below_ IPv4 in address selection preferences. So your network will essentially operate in IPv4 mode: https://www.ietf.org/archive/id/draft-buraglio-6man-rfc6724-...

      Moreover, some devices will refuse to connect to IPv6 GUA with ULA addresses altogether.

      > Yes, your local devices will use the ULA to attempt to connect to Internet destinations if that’s the only v6 address they have. It works fine.

      You're half right. The devices will work fine because they won't be using IPv6 at all.

      As I said, IPv6 is a recursive WTF.

      How do I know that? I made a personal goal to create a dualstack demo network that is fully standards compliant and supports the bare minimum functionality that I would expect from a SOHO network. So far, I keep finding new and exciting breakages on every level.

      8 replies →

    • While this is going to be fine for many users, wouldn't this continue our reliance on STUN for UDP hole punching? I'd certainly prefer a world where peer-to-peer networking is less reliant on work-arounds created for the NAT era.

      1 reply →

  • That RFC does look like a nice improvement! Until then, since both devices have a ULA address, wouldn't simply deleting the printer from your phone/computer and re-adding it resolve the issue? Doing it when your public internet is down would probably even be best to ensure you're getting the ULA instead of GUA, thereby avoiding this issue entirely in the future.

    (Admittedly I haven't had a printer for over a decade and I have never printed from a phone, so maybe I am missing something.)

    • In practice, nobody uses IPv6 for printers, so it'll work just fine over IPv4.

      I used a printer as an example of a local device, it can be any other device: a smart lightbulb, a TV you're casting to, a SIP phone, etc. And I used Android as an example of a device where you can't easily change the source address selection preference.

      What is more shocking is that this problem has been known for three decades, yet somehow nobody cared enough to fix it. And it's far from the only issue.

      1 reply →