Internet centralization and the original sin of NAT

(dreamstation.systems)

64 points | by robinpie 10 hours ago ago

49 comments

  • solatic 2 hours ago ago

    > There’s lots of things you can blame for killing the open Internet, but I think NAT was one of the earliest. Running a server used to be trivial: run an executable, tell people your address, done... It also trained everyone to think client‐server is natural. “My device talks to The Cloud which talks to other devices” feels normal, when that feeling originated as an artifact of address scarcity.

    A lot of this feels like a requiem for the days when the only people on the Internet were "high-computer-skill" type folks. Most people will gravitate to "user-friendly" solutions: Gmail and other managed email providers were popular because they didn't stop working when you shut down your computer to save electricity, when your server's hard drive crashed, when you upgraded your computer to something with a faster processor, more RAM, and a newer operating system. It was hard enough to educate laypeople about URLs and email addresses (AOL keywords, anyone?), let alone a combination of random numbers in an IP address, or convincing people to register domain names.

    Yes, NAT shoved fences into a network that was all about connecting everybody. But we'd still end up with server-client cloud architectures, even if we had started with IPv6 in the beginning. ISPs would have just sold highly restrictive firewalls as part of their home-install basic boxes, and we'd still have ended up with those fences.

  • elric 6 hours ago ago

    Calling NAT the original sin is a serious exaggeration. Carrier Grade NAT (CGNAT) is a truly evil concept that restricts the freedoms of the CGNATed users. But regular NAT is fine as long as you can control it. "No one wanting to bother with port forwarding" is largely a matter of shitty UX on the home gateway side and laziness on the side of the operator. Same with UPnP.

    If anything, NAT has saved millions of wildly insecure devices running unpatched old Windows versions from getting pwned the second they connect to the open internet.

    • mort96 4 hours ago ago

      Yeah NAT is still "every household gets a public IP address". This is a perfectly good foundation for an open Internet. You can still host servers in your home. I did this a lot as a kid and learned a ton from it. It's maybe not super elegant but it works.

      Going to a model of "you don't get a public IP address, all traffic must go through servers other people host for you" is what finally kills the open Internet. It's okay enough for cell phones where it's a hack to work around TCP/IP's lack of roaming support, but it should be illegal to deploy as residential Internet.

    • orbital-decay 5 hours ago ago

      >If anything, NAT has saved millions of wildly insecure devices running unpatched old Windows versions from getting pwned the second they connect to the open internet.

      I don't think NAT being a janky ad hoc firewall does anyone a service. It shields the devices enough to keep the developers oblivious about security, but not enough to stop them from connecting to arbitrary hosts. This perpetuates the humongous botnet ecosystem.

    • preisschild 4 hours ago ago

      > If anything, NAT has saved millions of wildly insecure devices running unpatched old Windows versions from getting pwned the second they connect to the open internet.

      Its definitely the opposite. People started ignoring security because its "natted" anyways, even though NAT was never supposed to be security-critical. Thats what firewalls are for.

      • elric 4 minutes ago ago

        People (by which I mean average computer users) didn't "start ignoring security", they never bother to unignore it in the first place. Early Windows editions didn't even ship with a firewall at all, people were rawdogging the internet out of the box without ever stopping to consider the consequences.

    • NoMoreNicksLeft 6 hours ago ago

      >If anything, NAT has saved millions of wildly insecure devices running unpatched old Windows versions from getting pwned the second they connect to the open internet.

      This might not be a good thing. Perhaps if there had been no protection for those odious operating systems, they'd have died the horrible deaths they earned decades ago. We should only want to protect things we intend to keep, after all, and none of us wanted to keep that garbage.

      • mikewarot 2 hours ago ago

        All of the current OS choices are insecure by design. The all operate programs with the ambient authority of the user. While this was fine for the corporate world of AT&T in the 1970s, and the classroom in the 1980s, it's insane to use it in the era of ubiquitous persistent megabit Internet connectivity, and mobile code.

        I know of zero systems that can survive exposure to the raw Internet, unpatched and without administrative oversight, with uptimes of years.

  • mittensc 7 hours ago ago

    I remember times before NAT and SSL

    You could share things easily, sure, but anyone could get hacked pretty easily and very targetted.

    After NAT, sharing was still easy lots of 'piracy' apps, various messengers with NAT passthrough

    Both before and after you needed to be technical, you can't ask someone that doesnt know about computers to set up an FTP server, and if they did it would be a nightmare and they'd likely share their whole drive

    Same goes for anything else.

    Anyway, we'll get the whole non-nat with IPv6, let's see what that brings

    • teekert 7 hours ago ago

      It brings the requirement for a firewall on every endpoint with a unique address. My Phone often has an ipv6 address (found out this holiday wen I couldn't resolve one of sites because of an orphan ipv6 entry nobody noticed), and has little problems. Perhaps there is also "firewalling" on the router and the phone can't even have incoming connections. Not sure. In any case, the phone seems to do fine.

      • gatio 4 hours ago ago

        > Perhaps there is also "firewalling" on the router and the phone can't even have incoming connections. Not sure.

        Correct. Every home wifi router worth its salt will firewall incoming connections by default, whether v4 or v6. It's then possible (unless it's some shitty ISP-provided locked down device) to add specific allow rules, or allow all for a particular client.

        egress is typically wide open, although sometimes they lock down particular protocols by default (eg. smtp, bittorrent)

      • mittensc 7 hours ago ago

        > Not sure. In any case, the phone seems to do fine.

        That's mostly because a phone is very locked down, can you run an accessible ftp server on your phone?

        It's also not windows

        • c0balt 5 hours ago ago

          For android, the answer is yes (without rooting being required).

      • kijin 7 hours ago ago

        Phone OSs tend to pay a lot more attention to security than the crap they put on consumer-grade routers, "smart" TVs and cheap webcams.

        I would invest in a proper firewall for the entire home before opening up anything to the world, IPv6 or not.

    • eru 7 hours ago ago

      > Anyway, we'll get the whole non-nat with IPv6, let's see what that brings

      I'll believe it when I see it. So far it doesn't look like IPv6 will win anytime soon.

      • silon42 6 hours ago ago

        I absolutely plan to NAT my home, I don't see a good reason to do otherwise.

        I don't see a reason why my machine addresses should change over time... then again, most shouldn't have direct internet access anyway, a http proxy on firewall should be enough.

      • lstodd 6 hours ago ago

        Well, any 3G or later mobile backbone is SIP+SCTP over IPv6. So in many ways it won already

        • hdgvhicv 3 hours ago ago

          My phone, on 4g, is not IPv6

          At home it can be if I connect t to my ip6 ssid, but there’s a stateful firewall which may as well nat.

        • eru 4 hours ago ago

          Weird, I used to remember that going to test-ipv6.com on my mobile (on 4G and 5G) used to fail all the tests. But today it passes.

          Well, good to know!

  • miki123211 3 hours ago ago

    The designers of the internet made one fundamental mistake, namely applying meatspace norms to cyberspace.

    In the "real world", you don't really need that much security. Your actual security comes from the fact that all the worst criminals are already locked up, most of the would-be criminals are afraid of being locked up, and if somebody does actually commit a crime, they will get locked up and won't be able to do it again for a good while. A lot of real-world security is about post-factum detection (think alarms, CCTV, panic buttons etc), because in the real world, detection and prevention are two sides of the same coin.

    This only works because if a real-world crime happens, the criminal by definition is in the same location as the victim, and law enforcement cares most about the community they serve. If the criminal is across the world, as is the case in cyberspace, even if it's a friendly country, it's often "not their problem". This means internet systems need actual security, and NAT provides exactly that.

    If not for NAT, we'd all need a firewall, and things would be almost if not exactly the same. In the real world, "leave things relatively open, because locks are mostly for keeping honest people honest" is a valid strategy. This strategy doesn't work on the internet.

  • 7 hours ago ago
    [deleted]
  • arisudesu 6 hours ago ago

    > Why you don’t have a FTP server

    May be due to US DoD holding large amounts of IPv4 for no reason

    • 5 hours ago ago
      [deleted]
  • g023 5 hours ago ago

    I miss the old days of ICQ and just dragging a file onto the person you are sending your file and bam, done like dinner.

  • Pesthuf 4 hours ago ago

    Sending files to another would be easy if only the services that allow doing this - over WebRTC - didn’t sell out to sketchy advertisers constantly. I have to look up which service is still good to use every time.

    • dboreham 4 hours ago ago

      That's because they're actually not "sending files to another". A hairpin service has to be provided for double NATed scenarios and a rendezvous service has to be provided for all cases. There's no magic about WebRTC that makes it actually p2p.

  • Sha1rholder 8 hours ago ago

    Time to set up IPV6.

    • TZubiri 7 hours ago ago

      Or just use an ipv4 address. It works I swear

      • Sha1rholder 6 hours ago ago

        In regions where IPv4 addresses are scarce, you may not even have a single public IPv4 address. I'm fortunate to have one, but still needs NAT.

        • hdgvhicv 3 hours ago ago

          IPv4 costs are tiny compared to the cost of providing an internet connection.

          • Sha1rholder an hour ago ago

            Not every place is the same.

  • rugby_poppeye 7 hours ago ago

    NAT made distinction between PCs and servers too broad.

  • dboreham 4 hours ago ago

    People have forgotten, or weren't alive, but NAT was created and deployed originally by users. The problem they were solving wasn't "how do we stop running out of addresses" but rather "how do we save money". That's because early ISPs had hit on the idea of charging more for more address space, as a way to differentiate between small and large customers. So you could buy a cheaper service with one IP and use NAT to get your whole organization online.

  • Uptrenda 5 hours ago ago

    Author is right about everything. Also: IPv6 doesn't fix this, it just introduces a new problem. IPv6 machines end up with local firewalls + stateful firewalls on the router. That router doesn't let in inbound cons. There is a part of UPnP that lets you add "pin holes" (it works like you expect) -- but the drawbacks are its kind of obscure, poorly implemented, and not guaranteed to be enabled.

    The idea of router sounds simple and like it should implement some standard protocols. But in practice -- a lot of it is a mishmash of proprietary, ad hoc shitware. Something I never hear spoken about is the deep packet inspection filter component of the router firmware. It's a part of the router that decides on what traffic is allowed / not, and almost no company publishes this part. So you're not even in control of your own Internet traffic, tiny blobs of code written by some company get to decide if something is allowed or not.

    If that sounds sus AF and kind of a bad idea -- well, it is. You can always run 100% open software with open-wrt. But the thing is -- the Internet isn't just your part of it. It's a network of networks, and all those shitty routers, with all that shitty firmware, is deeply ingrained within the entire Internet. That's millions of devices that would need to be replaced to fix the issue.

  • TZubiri 7 hours ago ago

    Related comment from another thread

    https://news.ycombinator.com/item?id=49454785

    > Even more ironic is that NAT got normalized as a security feature — “your devices are hidden!” — which is one of the things that made people resist the thing that would fix it.

    That tracks. I briefly looked into the Tailscale website and I thought maybe I was wrong, maybe it's not a NAT/ddns toolchain, maybe it's something more complex that I'm too dumb to understand. But if my thesis that it's NATware is right, it makes sense to market it as a security product, it fooled me for one, but it also passes as a quality product for an organization, and they feel they are getting a security product when they are actually signing the purchase request of a developer that is applying networking techniques they learned from managing a videogame server.

    • wmf 7 hours ago ago

      I'm having trouble decoding this but Tailscale is a VPN that can traverse NAT when necessary. Arguably Tailscale wouldn't be needed if NAT didn't exist but considering the timeline I'm not going to declare a conflict of interest.

      • TZubiri 3 hours ago ago

        You are describing the product technically, but I find how it is used more important. Do you use it? What do you use it for? If empirically most users use it to host a server on a machine with firewalled IP, then that's more descriptive than its technical featureset as listed on the tin.

    • rcxdude 3 hours ago ago

      The fact that it's a VPN is also pretty important, despite the utility of it also dealing with NAT headaches for you.

      The main selling point is acting as a relatively efficient private overlay network, giving you a consistent private network even as devices move between different internet connections. (Something that NAT makes a bit harder but you don't get for free even if NAT isn't a factor)

    • jochem9 6 hours ago ago

      I'm using tailscale to tunnel from an hetzner vm to my home, so that the vm can use my home connection for certain traffic. Traverses NAT and GNAT.

      It just works: connect devices and they immediately show up in their portal. Most config is just clicking, but more advanced things can be configured as well. Definitely feels like a high quality product, not just something thrown together by a developer that learned a few network techniques.

      • TZubiri 3 hours ago ago

        >"that the vm can use my home connection for certain traffic. "

        Huh. Why are you doing this, is the datacenter IP being (rightfully) blocked by some service to avoid abuse? Is your usecase breaking some services ToS?

        Certainly adding more fire to the "never a GOOD reason to use this" thesis

  • vbezhenar 7 hours ago ago

    I'm still not convinced that IPv6 is a good thing. I think that we should have doubled down on sharing IP addresses. Both for consumbers (NAT) and for servers (NAT, TLS/HTTP reverse-proxying). It just solves all problems with IP address exhaustion. And the fact that consumers can't just directly connect to each other is a feature.

    • sedivy94 6 hours ago ago

      IPv6, in a way, takes the concept of a MAC address and puts it on steroids. This became evident to me when I learned about EUI-64 addresses. And then my brain melted when I learned that any interface can be assigned an arbitrary number of unique addresses with varying purposes or contexts because the address space is truly *that big*.

      When I consider that quality of IPv6’s design, it communicates to me an old and ideal vision of what we thought the internet would and should be - a hyper-connected, shared infrastructure where [Layer 3] identity is universally unique such that connectivity between any two arbitrary nodes is possible (which obviously isn’t true for NAT w/ overload).

      I’m just a lowly SysAdmin who finally decided to get his CCNA - so I’m a nobody - but as I worked through the material I felt like I was paging through a history book or biography of how the Internet’s life came to be and all the mistakes made along the way. Most features felt like patches for design considerations that were overlooked. Examples: DHCP Snooping, STP’s various * Guards, and the mere fact that Layer 2 and Layer 3 addresses are distinct concepts.

      I don’t think there’s any disagreement that NAT was co-opted as a security feature. I never hear that said in a positive way, either. I think if we were to start over, with IPv6 as the default assumption, the tools we’d develop for network security would look very different, but not at all impossible or any more difficult.

      But again - I’m a nobody. Just thinking out loud here.

      • 1718627440 3 hours ago ago

        > the mere fact that Layer 2 and Layer 3 addresses are distinct concepts.

        If it weren't you couldn't have the same IP over several interfaces.

    • platesmead 7 hours ago ago

      When I want to debug reachability concerns, it's a shame that I can only use ping/traceroute between the non-NAT peers, and then have to SSH to my reverse proxy to do yet another ping to the backend. Similar for tcpdump.

      This is the cost to splitting your routing between layer 3 and 4.

      I'm now IPv6 everywhere, and so I get to just use ping. Much simpler.

      Further, protecting IPv6 services is simpler, because I can terminate (m)TLS on the backend. With a reverse proxy on another host, I have to have yet another means of securing the proxy-backend path. Yet more complexity!

      > And the fact that consumers can't just directly connect to each other is a feature.

      Consumers should be protected by firewalls. That's independent of routing.

    • Almondsetat 7 hours ago ago

      P2P communication is also a feature, which an entire class of applications would love to make use of. Instead, we need to spawn (and PAY for) TURN and STUN servers

    • titularcomment 6 hours ago ago

      Reverse proxies work because they're not behind restrictive NATs, and having a few central servers that are not behind Symmetric NAT is a surefire way to establish an ISP-granted monopoly. Even if that somehow worked, this completely breaks P2P for consumers (which I think you intend) as well as torrenting without, again, a central NAT-punching TURN-like server. So yeah, address exhaustion is done but so is the Internet as we know it.

    • mr8031 7 hours ago ago

      ipv6 is a window for every buttock. I don't see this as a good thing.