Today in our newest take on “older technology is better”: why NAT rules!

  • Justin@lemmy.jlh.name
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    2 months ago

    1:1 stateless NAT is useful for static IPs. Since all your addresses are otherwise global, if you need to switch providers or give up your /64, then you’ll need to re-address your static addresses. Instead, you can give your machines static private IPs, and just translate the prefix when going through NAT. It’s a lot less horrible than IPv4 NAT since there’s no connection tracking needed.

    This is something I probably should have done setting up my home Kubernetes cluster. My current IPv6 prefix is from Hurricane Electric, and if my ISP ever gives me a real IPv6 prefix, I will have to delete the entire cluster and recreate it with the new prefix.

    • Thiakil@aussie.zone
      link
      fedilink
      arrow-up
      0
      ·
      2 months ago

      It should only be needed if your ISP is brain-dead and only gives you a /64 instead of what they should be doing and also giving you a /56 or /48 with prefix delegation (I.e it should be getting both a 64 for the wan interface, and a delegation for routing)

      You router should be using that prefix and sticking just a /64 on the lan interface which it advertises appropriately (and you can route the others as you please)

      Internal ipv6 should be using site-local ipv6, and if they have internet access they would have both addresses.

      • Justin@lemmy.jlh.name
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        2 months ago

        Hurricane Electric gives me a /48.

        Site-local ipv6 would work here as well, true. But then my containers wouldnt have internet access. Kubernetes containers use Ipam with a single subnet, they can’t use SLAAC.

        • Thiakil@aussie.zone
          link
          fedilink
          arrow-up
          0
          ·
          2 months ago

          Point is, you should be able to have them have both. Or stick a reverse proxy in front that can translate. Unless they’re somehow meant to be directly internet reachable the public addresses could be autogenerated

          Full disclosure though I don’t know anything about kubernetes.

          • Justin@lemmy.jlh.name
            link
            fedilink
            English
            arrow-up
            0
            ·
            2 months ago

            Yeah, I wonder if there’s any proposals to allow for multiple IPV6 addresses in Kubernetes, it would be a much better solution than NAT.

            As far as I know, it’s currently not possible. Every container/Pod receives a single IPv4 and/or IPv6 address on creation from the networking driver.

      • dan@upvote.au
        link
        fedilink
        arrow-up
        0
        ·
        edit-2
        2 months ago

        My ISP does this right (provides a /56 for routing), but unfortunately both are dynamic and change periodically. Every time I disconnect and reconnect from the internet, I get a different prefix.

        I ended up needing to have ULAs for devices where I need to know the IPv6 address on my network (e.g. my internal DNS servers).

        • Thiakil@aussie.zone
          link
          fedilink
          arrow-up
          1
          ·
          2 months ago

          Indeed, that’s correct ula usage, but shouldn’t need nat rewriting. The global prefixes just need to be advertised by RA packets

          • dan@upvote.au
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            2 months ago

            Yeah I’m not using NAT, sorry for the confusion.

            My router doesn’t support RAs for a ULA range though, so I’m running radvd on my home server.

          • Thiakil@aussie.zone
            link
            fedilink
            arrow-up
            1
            ·
            2 months ago

            I use openwrt on my home network which uses dnsmasq for dhcp. It can give a static suffix which just works with the global prefix on the interface and the site local / ula prefix it uses

            • dan@upvote.au
              link
              fedilink
              arrow-up
              1
              ·
              2 months ago

              Note that Android doesn’t support DHCPv6, just in case you have Android devices and ever have to debug IPv6 on them.