Comment by kstrauser

Comment by kstrauser 19 hours ago

18 replies

Exactly! IPv4 management is hideous compared to IPv6 once you grok it. The sooner you upgrade to it, the sooner you can deprecate horrid mitigations like NAT.

LegionMammal978 19 hours ago

Out of curiosity, what parts of NAT management tend to be so horrible in practice?

  • kstrauser 19 hours ago

    The fact that it exists. I was a network engineer before NAT became a common thing and remember how it use to be when nodes on the network were legitimately peers. NAT is a bletcherous band-aid for the fact there are more people than 32 bit numbers. Now we're seeing true abominations like CGNAT. That stuff needs to be lost to the realm of scary legends told late at night.

    • LegionMammal978 18 hours ago

      I was asking about practical issues, not just complaints of subjective ugliness. While I'll grant that CGNAT can be pretty bad (though not entirely indefensible for mobile networks), I don't think we can ever return to "every node being a peer" in any case, not when any typical network will have a firewall that denies incoming connections.

      • nobody9999 17 hours ago

        >I don't think we can ever return to "every node being a peer" in any case, not when any typical network will have a firewall that denies incoming connections.

        Forgive me if I'm missing something here, but how is that any different WRT IPv4 vs. IPv6?

        In both cases, except for those services one wishes to expose to the Internet (assuming one has a use-case for that), all incoming connections should be blocked, IPv4 or IPv6.

        Or are you arguing that NAT masquerade confers some sort of security benefit on one's network that precludes the necessity of blocking incoming connections?

        I'd argue that NAT (N:1 or 1:1) doesn't provide any security benefit. Nor does IPv4+NAT reduce the complexity of firewall rules as compared with IPv6.

        In fact, I'd posit that NAT makes things more complicated and not less. That said, you can use NAT/NPT[0] with IPv6 (along with ULA/SLAAC) if you really want.

        As such, I'd say that IPv6 provides the best and worst of IPv4, plus additional benefits.

        IF we ever get completely off IPv4, that will be a good day.

        [0] https://en.wikipedia.org/wiki/Network_address_translation#NA...

        • LegionMammal978 14 hours ago

          I don't think I'm disagreeing with you regarding firewalls: what I was trying to say is that "every node being a peer" isn't a good argument against NAT, since these days it holds neither in IPv4 nor in IPv6, now that everything has a firewall in front of it.

          > In fact, I'd posit that NAT makes things more complicated and not less.

          Sure, it clearly adds some iota of additional work, but I've never seen it as being the worst thing in the world. I'm young enough to have never witnessed the legendary paradise of globally-reachable static IPs for everything, so it seems more like "just the way things are". And yet there is widespread hatred against the existence of NAT, and I can't tell if it's primarily ideological, or if NAT is causing real practical difficulties for many setups. (Though at least the issues with CGNAT are easy to see. And also with broken NAT implementations.)

          Meanwhile, one might argue that things like SLAAC in IPv6 can similarly add conceptual difficulties compared to IPv4. E.g., "How do I identify some particular device in my network, if its link-local IP is changing on a regular basis?" (To which the answer is something DNS-like, I guess?) So switching a network's internal operations from NATted IPv4 to NATless IPv6, with all of its different mechanisms, would seem like more of a tradeoff than an unequivocal win.

    • mort96 18 hours ago

      I mean adding IPv6 support doesn't make nodes "legitimate peers". NAT still exists in a v4+v6 world; there will always be a distinction between "nodes with a public v4 address" and "nodes without a public v4 address".

mort96 19 hours ago

You're missing the point, I believe intentionally. You can't get away from IPv4 as long as you have users who can't access IPv6-only servers. All your users and potential users can access IPv4-only servers.

  • cesarb 18 hours ago

    > All your users and potential users can access IPv4-only servers.

    Not all servers are user-accessible. For instance, a database server or a NAS server might only be accessed by other servers within the same organization. Using IPv6 between these internal-only servers, instead of RFC 1918 addresses, can simplify things.

    • ta1243 18 hours ago

      And can make things far more complex too. You now need people to understand both ipv4 (for your public facing) and ipv6 (for your internal ones).

      Instead you could just choose ipv4 only and reduce a lot of complexity. Sure there are also downsides -- if you're in a large org and are running out of RFC1918 space, or you're rationing it to smaller than /24 networks, that can be a pain (I don't see a benefit of more than 256 host addresses on a subnet as that's already far to large a broadcast domain)

    • mort96 18 hours ago

      Obviously. I thought it was clear enough that I was takling about public-facing servers, since I talked about the capabilities of users' devices.

  • rstuart4133 13 hours ago

    > You can't get away from IPv4 as long as you have users who can't access IPv6-only servers.

    That depends on your definition of "can't get away from". Your users can live on a IPv6 only lan and have the IPv4 world available to them. IPv6 supports 4 in 6 - ie you can embed IPv4 addresses in IPv6, so all you need is a gateway that translates IPv4 to IPv6 for them.

    I've done it. At a conference, to unsuspecting users. All phones support IPv6 well, so they didn't notice. Not one complaint - I was blown away by how well it all worked.

    It was done because some noisy attendees insisted on being assigned routable IP addresses. That can be difficult to provide with IPv4 for obvious reasons, whereas ISP's will happily hand you thousands of billions of IP{v6 routable addresses, for free.

    I set up the gateway myself, rolling my own using a linux box I had lying around. Adding the 4 in 6 capabilities is maybe an hours work on top of all the other setup you have to do on the box, and that includes googling to find what tools you need and how to configure them. It's not hard.

  • zokier 19 hours ago

    On the other hand only your edge load balancers need dual-stack, everything behind them can be v6-only.

  • simoncion 19 hours ago

    I think you're misunderstood what you quoted:

    > It's a terrible it to start a new project in 2024 without IPv6 support though.

    That does not preclude ALSO supporting IPv4.

    Remember that for many technical folks out there, the default is "Only do IPv4 support" which is (IMO) just batshit stupid.

    (Do also note that the sentence immediately prior to the one you quoted is "I didn't recommend dropping IPv4.".)

    • mort96 18 hours ago

      As you know, we have two options:

      1. Support IPv4 and IPv6.

      2. Support only IPv4.

      #2 has essentially no downsides and is radically simpler.

      That's my point. It's not terrible to start a new project without IPv6 support, because adding IPv6 support adds a ton of complexity for almost no benefit.

      I never claimed or insinuated that you recommend dropping IPv4. If I thought your recommendation was to drop v4, my argument about the complexity of dual-stack would've made no sense.

      • simoncion 17 hours ago

        > I never claimed or insinuated that you recommend...

        Check my handle. I'm not who you seem to think I am.

        > ...adding IPv6 support adds a ton of complexity for almost no benefit.

        That doesn't at all match my experience with IPv6 support in greenfield projects for the past decade+. You actually have to do extra work to make them IPv4-only. Remember that the statement you initially responded to said "It's a terrible it to start a new project in 2024..."