Comment by ahoef
One of the many missed opportunities of IPv6.
One of the many missed opportunities of IPv6.
I think it was bad timing. We might have been able to migrate to IPv6 wholesale when the Internet was much smaller in the early 90s. One thing that comes to mind is the kumbaya moment when everyone got together to switch from BGP v3 to BGP v4 to support CIDR.
> We might have been able to migrate to IPv6 wholesale when the Internet was much smaller in the early 90s.
In the early 1990s IPng/IPv6 was not yet invented, and when it was being considered they realized a flag-day (like (mostly) happened with NCP->IP) was unlikely:
We believe that it is not possible to have a "flag-day" form of
transition in which all hosts and routers must change over at
once. The size, complexity, and distributed administration of the
Internet make such a cutover impossible.
Rather, IPng will need to co-exist with IPv4 for some period of
time. There are a number of ways to achieve this co-existence
such as requiring hosts to support two stacks, converting between
protocols, or using backward compatible extensions to IPv4. Each
scheme has its strengths and weaknesses, which have to be weighed.
Furthermore, we note that, in all probability, there will be IPv4
hosts on the Internet effectively forever. IPng must provide
mechanisms to allow these hosts to communicate, even after IPng
has become the dominant network layer protocol in the Internet.
* https://datatracker.ietf.org/doc/html/rfc1726#section-5.5Not really.. IPv6 was theoretically ready in 1997. But, it was theoretical. It was still buggy. In 2000s Internet expansion skyrocketed and noone really cared about IPv6. Buggy, too different from IPv4, basically overengineered. They made prediction that was absolutly off.. And thats why adoption is crappy.
IPv6 is not overengineered. It is, in fact, simpler in design than IPv4.
I keep seeing people say this, but nobody ever takes the next step of proposing how this "missed opportunity" might have been fixed.
The reality is that there is no possible way IPv6 could have been designed that would both solve the IPv4 address exhaustion problem and natively interoperate with IPv4. When you send a packet to an IPv4 host, it needs to know where to send the response, and there simply aren't enough bits in the IPv4 header to fit more than 2^32 possible addresses.
You need something in the middle to translate between IPv6 and IPv4 addresses, and we already have that: it's called NAT64. It works the same way you would expect NAT to, and just like NAT on IPv4, there's no need to codify it as an explicit part of the IP protocol itself.