I don't think this statement will ever be false in my lifetime.
I'm not an RFC author, but something like "All existing IPv4 addresses will be reachable under the 0.0.0.0.0.0.0.0.0.0.0.0 prefix in the IPv6 Standard" seems like it would've made migration relatively trivial.
The draft standard is 26 years old. The official standard is 7 years old, and we are still reading articles about how "not all enterprises or applications are ready for IPv6 yet."
This question is coming from a place of genuine confusion and curiosity - I really don't get it. Did the authors of the standard just assume that migration and adoption would be easier than they've turned out to be? Was it a fairness issue where somehow this would have granted dominion over huge swaths of the new address space to existing players?
1. some OSes can listen on ipv6-mapped-ipv4 automatically when some application listens on ipv4
2. app is updated to listed on both ipv4 and ipv6
3. at various companies, the updated app fails to start, because it listened on ipv4, which automatically listened on ipv6, and then it tried to listen on ipv6 and failed because the port was already in use
4. The problem is weird and confusing, and the easiest fix is to just disable ipv6 everywhere: in the app, in the OS, everywhere. Then the app works again.
5. The config changes remain untouched for many years (subtle config issue, don't touch!)
I think ipv6 would be more widespread if various auto-adaptation mechanisms were never introduced: 6to4, teredo, etc. I personally experienced this in my teens, one day my browser took 30 seconds to start loading any web page, and just disabling ipv6 everywhere fixed it, and for the next couple years browsers disabled ipv6 by default (whereas they previously were agnostic), and macOS also did a similar thing where it reduced ipv6 enablement by default for a few years, also domains like google.com and facebook.com removed AAAA records they previously had for a few years. They just can't tolerate 1% to 3% of users breaking due to ipv6 mis-config. Adoption would have been much smoother and faster overall, without these significant contributors to automatic-possibly-broken ipv6.(Yes IPv6 works fine now, with happy-eyeballs, and DHCPv6, and pretty much only real-native ipv6 used anywhere)
The embedding doesn't help with compatibility. IPv4 still can't access IPv6. IPv6 can't access IPv4. It actually breaks NAT64, which depends on special prefix.
Also, extending IPv4 address space has the problem that bake the misallocation into IPv6. IPv4 is broken in the small chunks that makes the routing table large. It also means that new organizations will have a hard time getting address space cause they need to get IPv4 addresses.
"IPv4 still can't access IPv6. IPv6 can't access IPv4."
I guess my point is that these statements represent choices made by humans. Leaving the decimal representation aside, I don't get why they made these choices. If every IPv4 address were a valid IPv6 address, then these statements wouldn't be true.
If 32 bit IPv4 addresses are valid IPv6 addresses without fiddly NAT64/DNS64 shenanigans, then (it seems to me) IPv4-only clients could blithely continue to interact with the IPv4-accessible internet via IPv6-only servers, routers, etc. indefinitely. They can putter along accessing only a subset of available resources forever and everyone can passive-aggressively roll their eyes at them and close support tickets saying "upgrade to IPv6 if you want to see the rest of the internet, it just works."
That's what I mean by backwards compatible. Everyone who says "it can't be done, it has to be this way" is asserting that there's no better alternative to NAT64/DNS64 and running two entirely separate networking stacks in parallel. I don't buy that there was no simpler way to accomplish packing 32 bits into a space that can contain 128 bits. And if "supporting IPv6" simply meant "upgrading your networking software to the latest version, which transparently handles both IPv4 and IPv6 traffic for you" then networking and server teams have no excuse to avoid deploying IPv6 support for 26 years.
I recognize that 128 bit addresses will be truncated and packets misdirected or rejected if handled by a 32 bit networking stack. I recognize that clients upgrading too early will fail and need to fall back. But making it unnecessarily difficult for servers and routers to handle IPv4 traffic in an IPv6-only context led us to where we are today.
To illustrate my point: ascii text works just fine, with no translation layer required, when parsed and transmitted as UTF-8.
Compare the packets. https://www.networkacademy.io/ccna/ipv6/ipv4-vs-ipv6
> Did the authors of the standard just assume that migration and adoption would be easier than they've turned out to be?
No, but IPv4 and IPv6 can be used together (they're separate protocols) so there was no need for that.
This already exists. 2020:abcd:abcd::192.168.0.1 is a valid IPv6 address. Most applications will parse it just fine.
NAT64 has been around for ages and mostly works, but is pretty ugly so few people want to actually deploy it.
You mean RFC 4291's ::ffff:0:0/96?
* https://www.rfc-editor.org/rfc/rfc4291.html#section-2.5.5
* https://www.iana.org/assignments/iana-ipv6-special-registry/...
That would have gotten rid of the CNI overlay networks. It would also made barrier between the internal and external networks. It would require running NAT64 and DNS64 in most clusters.
Seems a bit strange to me that they didn't, given how you'll want to use some sort of ingress anyway, so IPv4 could be delegated to those edge points.
Yet another horrible hack to avoid having to actually learn IPv6.
Why not stop this bullshit and just transition to IPv6??
Usually because your provider does not fully support IPv6 yet, which is the case at least with Azure and AWS, likely Google as well.
> However not all enterprises or applications are ready for IPv6 yet
Ah yeah, there it is. Please, just fucking prioritize upgrading to IPv6 and be done with it. Frustrating.
Cloud providers need to hurry up as well, Azure still doesn't fully support v6 on their app services (web servers) either. It's in public preview but has been a roadmap item for longer. It also comes with certain caveats like what tiers can use it.
rfc's have been written and forgotten, please calm down
"Answer: We go through every place that 4-byte IPv4 addresses appear, and allow 16-byte IPv6 addresses in the same place."
As though this is any easier than just introducing IPv6 as a new, parallel protocol that does not have to interoperate (because IPv4 still works). I'm sure he can update his software and systems but what about the thousands of other programs and billions of other machines.
Wow. reserved means “kept aside”. Once someone starts using them, they stop being kept aside.
This means that de-facto they are private addresses now. I suppose it’s a pragmatic choice.
But, wow, so much for having interactions in relevant standards bodies, multistakeholder engagements, etc. Why bother. Classy. /s