• ThunderComplex@lemmy.today
    link
    fedilink
    arrow-up
    19
    ·
    1 day ago

    NAT is like package delivery IRL. If you’re a server and send a package to a client without NAT, that’s like sending a delivery boy to deliver pizza, goes straight from source to destination.

    But with NAT it’s like ordering a package online. It first will be delivered to a distribution center, and then a delivery warehouse in your area, and then the courier delivers packages to all people on his route.

    It’s way more complex and you now have a whole bunch of points of failure.

    • enumerator4829@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      8
      ·
      22 hours ago

      And yet, in the real world we actually use distribution centers and loading docks, we don’t go sending delivery boys point to point. At the receiving company’s loading docks, we can have staff specialise in internal delivery, and also maybe figure out if the package should go to someone’s office or a temporary warehouse or something. The receiver might be on vacation, and internal logistics will know how to figure out that issue.

      Meanwhile, the point-to-point delivery boy will fail to enter the building, then fail to find the correct office, then get rerouted to a private residence of someone on vacation (they need to sign personally of course), and finally we need another delivery boy to move the package to the loading dock where it should have gone in the first place.

      I get the ”let’s slaughter NAT” arguments, but this is an argument in favour of NAT. And in reality, we still need to have routing and firewalls. The exact same distribution network is still in use, but with fewer allowances for the recipient to manage internal delivery.

      Personal opinion: IPv6 should have been almost exactly the same as IPv4, but with more numbers and a clear path to do transparent IPv6 to IPv4 traffic without running dual stack (maybe a NAT?). IPv6 is too complex, error prone and unsupported to deploy without shooting yourself in the foot, even now, a few decades after introduction.

      • Pup Biru@aussie.zone
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        10 hours ago

        in the real world we actually use distribution centers and loading docks

        because we can pass packages in bulk between large distances… in routing, it’s always delivery boys: a single packet is a single packet: there’s no bulk delivery, except where you have eg a VPN packing multiple packets into a jumbo frame or something…

        the comment you’re replying to is only providing an analogy: used to explain a single property by abstraction; not the entire thing

        we can have staff specialise in internal delivery

        but that’s not at all how NAT works: its not specialising in delivery to private hosts and making it more efficient… it’s a layer of bureaucracy (like TURN servers and paperwork - the lookup tables and mapping) that adds complexity, not because it’s ideally necessary but just because of limitations in the data format

        routers still route pretty much exactly the same in IPv6 direct or NAT, but just at the NAT layer public IP and port is remapped to internal addresses and ports: the routing is still exactly the same, but now your router has to do extra paperwork that’s only necessary because of the scheme used to address

      • The_Decryptor@aussie.zone
        link
        fedilink
        English
        arrow-up
        3
        ·
        11 hours ago

        IPv6 is too complex, error prone and unsupported to deploy without shooting yourself in the foot, even now, a few decades after introduction.

        Which is purely down to people not testing things before releasing them, because the support is there but there’s layers of unnecessary stuff put in the way. Like I had an old ISP provided router that ran Linux, but the management UI was only ever tested against v4 networks so none of the v6 stuff was actually hooked up correctly.

        Support in desktops and mobile devices is effectively 100%, but even in embedded hardware there’s often full support, just not enabled correctly or tested.

    • rumba@lemmy.zip
      link
      fedilink
      English
      arrow-up
      21
      ·
      1 day ago

      That’s a great analogy for carrier grade nat.

      For regular nat it’s like the pizza is able to get all the way to your house but then has no idea who to go to so somebody has to answer the door and then take the pizza from the door to the person who ordered it themselves.

      And IPv6 is like the pizza delivery guy just walks right into the house up the steps into your bedroom and hands you the pizza directly.

      The best part is they each have the same exact problems you’d have in real life.

      • Blaster M@lemmy.world
        link
        fedilink
        English
        arrow-up
        11
        ·
        edit-2
        22 hours ago

        Let me one up this. IPv4 NAT is like the pizza guy has to deliver to you, but you live in a gated community with a strict no visitors policy, which does not allow you to even mention what unit you’re in, and none of the addresses in the community are registered with the post office or on Google Maps either. Instead, you tell the guardhouse you want to order, and they order the pizza for you. The pizza guy delivers to the guardhouse, and the guardhouse delivers the pizza to you.

        IPv6 (with firewalling) is like a normal gated community, you order the pizza and include the unit number, and the delivery driver can deliver your pizza directly, as long as the guardhouse approves.

        The difference is, with NAT, the guardhouse has to both guard (firewall) and route (keep track of all deliveries, and deliver) your packages, where with IPv6, the guardhouse (firewall) only has to guard (firewall) the packages.

        • Pup Biru@aussie.zone
          link
          fedilink
          English
          arrow-up
          3
          ·
          edit-2
          10 hours ago

          i kinda love that this explanation is so much more complex not because it adds nothing but precisely because it adds a lot of realism: NAT is actually just far more complexity and processing

      • ulterno@programming.dev
        link
        fedilink
        English
        arrow-up
        6
        ·
        23 hours ago

        Waiting for IPv8 when the delivery guy takes a slice and feeds it to me so I don’t need to worry about greasy fingers.

      • squaresinger@lemmy.world
        link
        fedilink
        arrow-up
        6
        ·
        1 day ago

        Perfect, perfect analogy. Like, seriously, I’ve hardly ever seen an analogy that works so flawlessly where even the implications just line up perfectly.

        I am in awe.

        • rumba@lemmy.zip
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 day ago

          I was eating salad in my bedroom 2:30 in the morning today.

          Me: Fuck, can’t sleep I’m hungry. You want anything? Wife: yeah, fill up my water bottle and bring me something to eat.

          I went downstairs, made two loaded salads and brought them up to the bedroom.

          I might in fact be getting old.

          • rothaine@lemmy.zip
            link
            fedilink
            arrow-up
            5
            ·
            1 day ago

            If you can eat a salad and then lay down without getting an explosion of acid reflux, maybe you aren’t old yet 😂