Comment by kstrauser

Comment by kstrauser 10 months ago

24 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 10 months ago

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

  • kstrauser 10 months 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 10 months 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 10 months 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...

      • MerManMaid 10 months ago

        IPv4 as well as IPv6 was designed with endpoint to endpoint communication in mind so when NAT was conceived (originally intended to be a stop-gap while we moved to IPv6) we also had to re-write many other protocols and create many new ones since NAT broke IPv4's design principle (each IP needs to be unique)

        This has lead to many context specific problems as many of the re-written protocols don't work as well not to mention the added complexities of protocols designed specifically with NAT in mind. As another network engineer I can attest to the problems this has caused. Pretty much everything from overlay VPN networks, VoIP solutions, security and ACLS, and just our day to day maintenance tasks are complicated by NAT. It has gotten so out of hand that many of us have dedicated NAT routers just handling NAT translation.

        It's so weird to me that so many people in our industry spout scalability but then laugh off IPv6... How the heck do you guys plan to communicate to the ever increasing amount of smart devices? IPv4 literally ran out a space years ago...

    • mort96 10 months 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 10 months 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.

  • rstuart4133 10 months 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.

  • cesarb 10 months 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 10 months 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 10 months 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.

  • simoncion 10 months 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 10 months 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 10 months 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..."

      • throw0101a 10 months ago

        > #2 has essentially no downsides and is radically simpler.

        If you're with AWS, you'll be charged for IPv4 public addresses:

        * https://aws.amazon.com/blogs/aws/new-aws-public-ipv4-address...

        If you want to 'own' IPv4 addresses, that'll cost you as well:

        * https://auctions.ipv4.global

        Certainly some will be needed for 'legacy' purposes for the foreseeable future, but the more you can reduce the use of them at your edge, the less money you'll be shelling out.

  • zokier 10 months ago

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