Hacker News new | ask | show | jobs
by ayewo 16 days ago
In your opinion, do you think Internet Protocol Version 8 (IPv8) [1] stands a chance to fix the mistakes of IPv6 after more than 20 years now?

Or there is too much inertia for IPv8 to overcome to become a truly backwards compatible extension / superset of IPv4?

Part of the reasons for the slow adoption of IPv6 was that it was never designed to be backwards compatible unlike IPv8.

1: https://www.ietf.org/archive/id/draft-thain-ipv8-00.html

3 comments

This IPv8 document is not a serious proposal. The entire family of documents was published by a single person without collaboration from anyone else at IETF, and there has not been any work to integrate feedback from other IERF contributors (last I was aware of).

Anyone can publish an IETF draft document, it doesn't mean it's a serious proposal under consideration or will ever actually be implemented.

> In your opinion, do you think Internet Protocol Version 8 (IPv8) [1] stands a chance to fix the mistakes of IPv6 after more than 20 years now?

IPv8 solves precisely zero of the problems that is causing a 'slow' roll out of IPv6 / replacement of IPv4:

"""

So it's a matter of mathematical and physical fact that to expand the address size, you must change the protocol, and that means two things immediately:

You have to change the version number.

You have to add new code to handle the new version.

Furthermore, you don't want to split the Internet in two, so you must design a method of interworking between the old version and the new version. Annoyingly, you need to do that in a way that can be done completely in machines that know about the new version, because other machines don't know anything at all about the new version, by definition. So,

You need a coexistence technique so that updated systems, with the new protocol, can connect to old systems that know nothing of the new protocol. Two minutes of thought show that this third requirement has only two solutions:

(3A) Dual stack, in which the new machines speak both the old (IPv4) and new (IPng) protocol.

(3B) Translation, in which something translates addresses between the old and new protocols.

[…]

Incidentally, "IPv8" proponents often ask why IPv6 didn't simply stick some extra bits on the front of IPv4 addresses, instead of inventing a whole new format. Actually, we tried that: the "IPv4-Compatible IPv6 address" format was defined in [RFC3513] but deprecated by [RFC4291] because it turned out to be of no practical use for coexistence or transition. The related "IPv4-Mapped IPv6 address" format is still valid and has a role in the POSIX socket API. Mappings of this kind also figured in the moderately successful coexistence technologies known as 6to4 [RFC3056, RFC3068] and Teredo [RFC4380], which have now been overtaken by events.

"""

* https://github.com/becarpenter/book6/blob/main/01.%20Introdu...

* Interview with author of article: https://www.youtube.com/watch?v=W3jkZ1Ulz-s

> Actually, we tried that

I'm always fascinated by how many people think IPv6 adoption would have gone lightning-fast if we just used This One Weird Trick, where said trick has actually been tried and didn't help. They usually refuse to back down even after you tell them so.

6to4 or NAT64 isn't the same thing as what all those IPv4+/5/7/8 people want, if that's what you were referring to. You don't actually own the IPv4-mapped-V6 address, as in packets don't get routed to you, they go to a relay that was notoriously flaky.
> You don't actually own the IPv4-mapped-V6 address, as in packets don't get routed to you, they go to a relay that was notoriously flaky.

6to4 is exactly ownership:

> For any 32-bit global IPv4 address that is assigned to a host, a 48-bit 6to4 IPv6 prefix can be constructed for use by that host (and if applicable the network behind it) by appending the IPv4 address to 2002::/16.

> For example, the global IPv4 address 192.0.2.4 has the corresponding 6to4 prefix 2002:c000:0204::/48. This gives a prefix length of 48 bits, which leaves room for a 16-bit subnet field and 64 bit host addresses within the subnets.

* https://en.wikipedia.org/wiki/6to4

The relaying is a necessity:

              OLD    DUAL   NEW     
            ----------------------
        OLD |  32  |  32  |  XX  |      
            |------|------|------|
       DUAL |  32  |  64  |  64  |
            |------|------|------|
        NEW |  XX  |  64  |  64  |
            ----------------------
* https://github.com/becarpenter/book6/blob/main/01.%20Introdu...

There's no way around it: a non-IPng-having node will have to go through a translation box of some kind.

> There's no way around it: a non-IPng-having node will have to go through a translation box of some kind.

Yes. Note that it doesn't need to be someone else's relay; anyone with IPv4 connectivity could easily route 2002::/16 into IPv4-land (without having to announce it in BGP for others to use). You could even announce 2002:aabb:ccdd::/48 as a more-specific in BGP if you wanted, although this was more exotic.

If I have 1.2.3.4 in ipv4 world, I want 1.2.3.4 in ipv6 world instead of a random new address. I want another ipv6 host to be able to send dst=1.2.3.4 and have it go directly to my ipv6 host. 6to4 isn't comparable to that, it's for translation to/from v4 like you said.
> If I have 1.2.3.4 in ipv4 world, I want 1.2.3.4 in ipv6 world instead of a random new address.

::ffff:1.2.3.4

* https://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresse...

By having 1.2.3.4 you also got 2002:1.2.3.4::/48 'for free' (per 6to4). So if you want to send things to 1.2.3.4 / ::ffff:1.2.3.4, you tell your router that it's available via 2002:1.2.3.4::/48.

Any idea that you think is clever and to 'just' do X and/or Y for IPng, and would work, has probably already been thought of and attempted in the last 20-30.

That IPv8 draft has stuff like oauth in it that don't make sense. I put together an IPv5 proposal based on all the old ones. https://news.ycombinator.com/item?id=48781622
All you've done there is reinvent v6 with a combination of dual stack, NAT64 and 6to4, plus add a flag day.

You haven't fixed any of the problems involved in deploying v6, and you added a step that was known 35 years ago to be impossible on the Internet. This isn't a useful contribution, it's just a waste of time that you could have spent on doing v6.