I pulled out this as the most salient point in the article: IPV6 designers assumed that IPV4 would be phased out completely in a short period of time, for some definition of a short period of time, and IPV6 would completely replace internet networking.
I think it was protocol design hubris: we are fixing SO MUCH STUFF that people will flock to this irresistible shining trophy of protocol design.
And now it's been ... almost ... 30 years.
Which means what is really necessary is a new IP protocol that will somehow, SOMEHOW (don't ask me how, I don't effing know) speak seamlessly to IPV4 and IPV6, and be so irresistible that people will want to migrate off of both.
I almost wonder if what is necessary isn't a formally predesigned protocol. What is needed is someone, somewhere, to come up with an approach that becomes a grassroots, and the industry rushes towards it. I don't even know if such a thing is possible anymore, IPV4 land may at this point be complexity theory/mathematically impossible to make a N+1 umbrella protocol of any real "elegance".
> Which means what is really necessary is a new IP protocol that will somehow, SOMEHOW (don't ask me how, I don't effing know) speak seamlessly to IPV4 and IPV6
You don't know how, and nobody knows how, because it's not possible to do. v4 simply does not support addresses longer than 32 bits. If it did, we wouldn't need v6 in the first place.
Choosing not to do something that's impossible isn't hubris. Hubris is criticizing the people who knew what they were doing without realizing how little of the problem domain you yourself understand.
> You don't know how, and nobody knows how, because it's not possible to do.
I think you misunderstood the comment, but at first reading, I did too.
But on consideration, I do not think @AtlasBarfed meant that this hypothetical IPv12 or whatever (7 through to 10 are taken) would be able to talk to both in one protocol.
It's well established that no seamless extension of the IPv4 4-octet address space was possible. I know, a lot of people still don't get that, but honestly, to the majority of people working in tech today, all this stuff is black magic that just happens. Either they learn, or they don't and can be ignored. That's OK. We have to live with that and move on.
The real, the big question here is: was there some single obvious thing that IPv6 failed to do or failed to include that has made its uptake so slow? It's taken some 30 years to reach approximately half the IP market. That is not just "not good" - that's terrible.
What IMHO apenwarr's blog post was trying to get at was the complexity of connection schemes needed, and how a new protocol with an integral way of of constructing virtual networks, connected over the public internet into cohesive wholes via some form of built-in redirection or mapping layer, would have made it a far more compelling offering.
I have seen others saying this, but I can't find any links any more. I welcome other pointers to articles not merely pointing out problems -- there are lots of those -- but proposing solutions.
Based on "speak seamlessly to IPV4 and IPV6", I don't think I did. At the very least it would need to speak seamlessly to v4, which as you say is obviously not possible for any address length bigger than 32 bits.
> The real, the big question here is: was there some single obvious thing that IPv6 failed to do or failed to include that has made its uptake so slow? It's taken some 30 years to reach approximately half the IP market. That is not just "not good" - that's terrible.
Is it terrible though? Obviously it would be nice if it were faster, but what's the expected deployment time for something like v6?
There are about 30 billion network devices, arranged in hundreds of millions of separate networks managed by as many separate people. Noone has authoritative control over all of them. There's no hard deadline for v6 deployment (we saw with Y2K how much a deadline helps). Network effects work against it, and that's unavoidable because of v4's 32-bit limits.
I don't think humanity has ever tackled a migration project of this scope and scale before. So how can you know that it's going terribly?
I don't think there's an obvious thing we missed either, at least not in the set of things which work and are actually possible to do. I've talked to a lot of people about this, and their suggestions are basically either: not possible ("just get everyone to switch over all at once"), broken ("just pad v4 with some zeros"), or something v6 already did (frequently NAT64 or 6to4 but described in weird terms). Either there's a big conspiracy to keep the obvious thing a secret, or it doesn't exist.
> I welcome other pointers to articles not merely pointing out problems -- there are lots of those -- but proposing solutions.
Sigh... yes please. But solutions are hard, especially to unsolvable problems. Making a clickbaity article that points out the problems and says "somebody should have solved them" is easy, and as you can see from the response to this article and djb's each time they're posted, that's all people are interested in anyway.
I am not a network engineer (any more, thank the hypothetical deities) so I have no skin in this game.
But in the 1990s, I moved networks from IPX/SPX, or NetBEUI, or AppleTalk, or DECnet, and almost any combinations thereof, to IP. I added IP on top of existing networks. I migrated systems from 10base-2 to 10base-T to 100base-T. I stitched together WANs. Then I moved IP networks from static to DHCP, from no name resolution to DNS to WINS, and so on.
I am not a total rookie to this stuff.
So when you say
> I don't think humanity has ever tackled a migration project of this scope and scale before.
I have to disagree.
The IP rollout itself was bigger, and yet, it happened much, much faster.
We moved the networked world from a dozen protocols to IP, then we totally re-architected how IP worked, from static networks to `hosts` files to name resolution to dynamic IPs and dynamic name resolution.
Then we rejigged it all again for a world of proxies and gateways, and firewalls, and NAT.
You make out like this is some vast super-hard thing, but in fact, the world of networking is way older than many people in the modern IP-only world realise, and we've rebuilt it over and over and over again repeatedly.
When a new technology comes along that offer compelling advantages, then the world moves to it, not in one smooth operation but incrementally and piecemeal, but it happens.
It hasn't happened to IPv6 and my argument, and much more importantly the arguments of the Avery Pennarun here and of Dan Bernstein, are that it hasn't happened because IPv6 isn't good enough.
It's good but it only fixes 1 problem and that one, while big and important, is not the whole problem and it's not even the most important problem because there are workarounds for simple IP address starvation, and the workarounds are _good_ workarounds with their own advantages, and some of those advantages are compelling.
The world has, overall and on average, decided that IPv4 is good enough to mean it's not worth the pain of moving. It's better to fix what it already has.
It is the same issue as Plan 9 vs Unix.
Plan 9 is better by almost every objective measure, but Unix is good enough, so the world decided to stay with Unix rather than the pain of moving.
For me, what is an interesting question here is "could we fix Plan 9 to make it worth moving to?" The Plan 9 people don't care, though.
Similarly, although it's not my area, it's an interesting line of questioning to ask "what is wrong with IPv6 that the world didn't move to it, and can we fix that?"
But when someone proposes it, the IPv6 proponents treat it as heresy, not as a simple, relevant question.
I don't think the original rollout of the v4 internet really counts as a migration project, because there was no "NetBEUI internet" or "AppleTalk internet" to migrate from in the first place. IPX/SPX/NetBEUI/AppleTalk/DECnet all either run on only a single L2 network, or were only used in small, local groups of networks. Nothing existed that linked every network on the planet together in a single shared address space. You can't migrate a global network from one protocol to another when the global network you're migrating from doesn't exist yet; that's a new deployment, not a migration.
As a result, network effects [in the economic sense of the term] worked in favor of deploying v4, but they work against deploying any replacement to v4.
You could argue that it required migrating local networks, and it did, but migrating from IPX/etc to IP is fundamentally simpler than migrating v4 to v6, because you only need to worry about your local network -- which you have full authoritative control over and can mandate a migration deadline for. You didn't need to worry about maintaining compatibility with the IPX Internet either, because there wasn't one.
Note that I'm drawing a distinction between a network and an internet. IPX/etc only did the former, IP does both. The level of challenge in migrating a network (even multiple of them) is very different to migrating an entire internet, due to the interconnectivity or lack thereof between the networks.
You're also talking about a time when there were three orders of magnitude fewer networked computers, and relatively little networked software except for the vendor software that came with the network stacks in the first place, which wasn't expected to be compatible with any other network protocol.
Moving from static networks and hosts files to DNS and DHCP, is all L4 stuff, and could be done without changing L3. Similarly with firewalls and NAT: there's no need to change L3 to implement those and their deployment is a local-network-only project.
You make a good point that the 90s had far more technological change -- it must have been interesting to live through. But it was technological change that was fundamentally easier to deploy because it only involved making local changes on each network, not changes on all networks. v6 doesn't have that luxury because v6 is replacing the IP address, which is the one thing that goes end-to-end through all of the networks.
So yeah, that's my argument for not agreeing that the original rollout of v4 was bigger or harder than v6, even though it involved more technological changes. It's not the technical difficulty but the sheer scale of the deployment -- v6 needs to deal with far, far more software, devices, networks and involved people than anything v4 had to deal with in the 90s -- and the strength of the network effects that worked in v4's favor but which are working against v6.
> Similarly, although it's not my area, it's an interesting line of questioning to ask "what is wrong with IPv6 that the world didn't move to it, and can we fix that?"
I don't think it's fair to say that the world didn't move to v6, because the world is moving to v6. It's gone from 50 million users to 2.3 billion users in the last 10 years. That's about the number of people that were using v4 at the start of those 10 years.
I'm not treating these questions as heresy, it's just that we keep seeing the same broken takes over and over and it gets very tiring. Things like "v6 would have been deployed in 5 years if they had just added some zeros to the beginning of v4 addresses", from somebody who doesn't have a clue how to make that work and who doesn't know enough to realize that it can't work. There are dozens of people like that just in the comments to this article alone. You can't expect posts like that to be taken seriously by anyone that knows what they're talking about.
> It's good but it only fixes 1 problem
It's interesting that you say this, because the person I replied to above said "I think it was protocol design hubris: we are fixing SO MUCH STUFF that people will flock to this irresistible shining trophy of protocol design."
Is it fixing too much stuff or too little stuff? You guys can't even agree on that!
I disagree with the overall point you're making here, but I can see that you are seriously committed to it, so I think that no amount of examples of internetworks from the 1980s and 1990s is going to persuade you: to you, I think they'd all be toy-scale and thus irrelevant.
Networking in the 1980s and early 1990s was all small LANs, for the vast majority of users, and for PC-type kit.
But there were internetworks, yes. DEC ran a global network; DEC tech support was my first experience of true worldwide follow-the-sun support, where the techs on 3 different continents could pick up my case from a single shared database and help me move it forward.
I was sysadmin of the London node of a DECnet internet that spanned Oslo, Copenhagen, Stockholm and Helsinki. No IP links between the sites, just DECnet.
Companies were running global IPX internetworks: that is how the problems with scaling Netware 3's bindery database arose, which is why Novell developed NDS and Netware 4.
Yes, it was a thing. Updating and modernising it was hard.
...okay, I guess that was a bit of a wall of text, sorry about that. This was actually an interesting line of conversation for once, rather than picking apart yet another "just put 2^128 numbers into 2^32 holes, it'll be fine" post.
I think it was protocol design hubris: we are fixing SO MUCH STUFF that people will flock to this irresistible shining trophy of protocol design.
And now it's been ... almost ... 30 years.
Which means what is really necessary is a new IP protocol that will somehow, SOMEHOW (don't ask me how, I don't effing know) speak seamlessly to IPV4 and IPV6, and be so irresistible that people will want to migrate off of both.
I almost wonder if what is necessary isn't a formally predesigned protocol. What is needed is someone, somewhere, to come up with an approach that becomes a grassroots, and the industry rushes towards it. I don't even know if such a thing is possible anymore, IPV4 land may at this point be complexity theory/mathematically impossible to make a N+1 umbrella protocol of any real "elegance".