The IPv4 address exhaustion myth
The market forces that beckoned their exhaustion also beckons their recycling.
The ‘exhaustion’ of IPv4 addresses is one of the boldest examples of hubris and lack of perspective in the engineering of the Worldwide Web. Wikipedia describes it in their classically uncritical prose:
IPv4 address exhaustion is the depletion of the pool of unallocated IPv4 addresses. Because the original Internet architecture had fewer than 4.3 billion addresses available, depletion has been anticipated since the late 1980s, when the Internet started experiencing dramatic growth. This depletion is one of the reasons for the development and deployment of its successor protocol, IPv6. IPv4 and IPv6 coexist on the Internet.
Why is this exhaustion a problem? It’s not easy to tell, because the article doesn’t even have a section explaining why you should care, even for technical audiences. Goes to show how much critical thinking penetrates computer science. Sadly, I’ll have to answer this question in my own words, despite being adversarial to this whole idea: It is assumed that every device needs to be publicly accessible by every other device on the entire Worldwide Web from around the world.
Why this is assumed to be necessary is beyond me, to be sure, but I do have several guesses. Early in the Web’s history, it was assumed to be true because, as a practical matter of fact, it was. The Web was small, and programmers took it for granted that it would always be true, baking those assumptions into their code. That this no longer holds is why we no longer use FTP, for example. Therefore, migrating away from this reality created some cognitive dissonance among programmers. On the other hand, the whole effort to create IPv6 to ‘solve’ this ‘problem’ has an intrinsic value-add in the minds of programmers, too. Did you jump to conclusions about IPv4 address exhaustion, and want to participate in the epic solution arc where we all come in and save the Internets? Come on in, it’s going to be fun and righteous. And now you have a few hundred people whose claim to fame is, in part, helping to build this completely unnecessary part of the Web, who go on to be very influential and would shudder with impenetrable dissonance at the mere suggestion that their work was pointless. It’s the classic problem with the academy identified by Curtis Yarvin.
The simple fact that in the current year IPv4 is as much of a necessary part of what we call Worldwide Web as IPv6 is the only proof necessary to show that IPv6 is unnecessary. Nonetheless, Wikipedia touts it uncritically as IPv4’s ‘successor protocol’, predestined by God to supplant it, somehow… someday. I’m not holding my breath.
If there ever was any practical issue posed by not having every laptop, desktop, mainframe and supermarket scanner hooked up with its own publicly knowable IP address so it could be reached by every other laptop, desktop, mainframe and supermarket scanner in the known Universe, it was already solved in the 1990s when all of this stuff started. A magical technology called Network Address Translation, or NAT, appeared at the behest of practical concerns over real problems, in the world of network security, as a trusty tool of firewalls. Not surprising that the real plumbers came up with this one.
If you couple NAT with DNS and the
Host: field of HTTP (or really any equivalent feature in any protocol), you arrive at an incredible fact: the entire Web could be two machines each pretending to be billions of others, and you wouldn’t be able to prove otherwise about one side if you were sitting on the other. This is because NAT obviates the bidirectionality of incoming requests, meaning a server could get a request from the same IP address and in reality it could be from one of countless computers. HTTP makes this cut both ways with the
Host: field, which is what allows a server with a single IP address to serve different websites on different domain names.
This isn’t just theory: there is a good chance your ISP doesn’t even give you a publicly routable IPv4 address at all. Instead they perform Carrier-Grade Network Address Translation (CGNAT), which allows them to allocate a non-public IP address that they then translate to a public IP address, while they sort out the routing between you and any other customers sharing that public address. Unless you are operating a server, this doesn’t impact your service at all. And if you do want to operate a server, it is possible for ISPs to sell you this without resorting to the blue sky insanity of IPv6. For one thing, they could charge a premium for a public IP, letting that premium be dictated by supply and demand. If that is too brittle (say, supply is really so short and demand is so high, which is unlikely, but whatever), the ISP could certainly sell you a port or a range of ports on a given IP, which you could then proxy to using an access port on their infrastructure. Unfortunately they won’t consider any of this, because business types rely on us eggheads to tell them straight about the technical state of affairs, and all of the eggheads have hypnotised themselves into thinking IPv6 is a divine inevitability.
In all of the time during the comeuppance of the Worldwide Web, it apparently never occurred to anyone at the IETF that these IP addresses constitute a market. Back in the day, they allocated over 16,000,000 addresses each to Apple and Ford Motors (for some reason). What is the bid/ask on those things? Does Ford know those things have value? Are they even on their balance sheet? Has it occurred to any telecom company to make a bid? And if ARIN would forbid it, why wouldn’t the government legislate to allow it, since it is such a thing of public interest? And to put it in a macro perspective, there are 8 billion humans on the planet right now, about less than twice as many IPv4 addresses. How much is an address really worth, in truth? Is an ideal of one per household not sufficient? What could possibly disrupt this equilibrium anyway, other than the insane hubris of American tech groups in the 1990s? So far, they’re the only actors I can think of that are screwing all this up.
So yeah. IPv4 address exhaustion is not a real problem. Honestly, it will never be a real problem, because most people do not need to be publicly reachable by everyone in the Universe by seven different ways depending on if you want to talk to their computer, their phone, or their microwave. Even if we lived in a hyper-socialist production-oriented utopia this would still be true, and it’s all the more hilarious that this myth is so established because it flies in the face of the basic reality where people consume far more than they produce, digitally speaking.
In my next issue on this subject, we’ll put IPv6 to bed, and this screed will serve as one of its major pillars of criticism. Suffice to say, it is an absolute banana split of immaculate complexity and blue sky insanity.