Show HN: We Implemented the IPv8 Internet-Draft in Linux, Libc, and BGP
goonhost.rocks
goonhost.rocks
There's only one thing in the article I disagree with:
> RIRs (ARIN, RIPE, APNIC) Go Financially Bankrupt
This is purely an argument of pragmatism, rather than having any technical merit. If a system works, and meaningfully improves over another system, I couldn't care less that people aren't able to effectively monetize it.
Their registration fees directly fund critical global Internet infrastructure: the WHOIS databases, RPKI trust anchors, root DNS servers, and policy governance. If their operational budget collapses by 90%, it's not a loss of "profit" - it means there is literally no one funded to maintain the authoritative registry of who owns which ASN and route origin authorizations.
And even setting governance and economics aside, the technical failure modes remain fatal: 28-byte header PMTU blackholing, uRPF collisions on multi-homed links, and ASIC slow-path punting on existing linecards.
So IPv8 can be available around year 2300 I guess :) (i have not inspected v8 RFC yet)
There would be no reason to adopt it if IPv6 were adopted.
And it turns out the simplicity of 'no NAT' still buys you nothing. It's very common for modern systems to run multiple network interfaces with connections having to be juggled between them. In that case, connection and session management falls to a higher level protocol, often in the application.
NAT-based compatibility strategies are widely deployed in the real world (most cell carriers and Google's IPv6-mostly corporate network use NAT to allow communication with the IPv4 world from IPv6 only devices).
Because it wasn’t implemented transparently at the OS. I can’t plug in to my ip6 only network and reach an ip4 address because end user OSes don’t implement clat transparently, even today in 2026, let alone 20 years ago.
Well over half of Google’s traffic is IPv6 in the USA, and it’s recently become over 50% of all Google’s traffic worldwide at weekends.
https://www.google.com/intl/en/ipv6/statistics.html#tab=per-... https://www.google.com/intl/en/ipv6/statistics.html
news to literally anyone on a mobile internet connection (which is most internet connections!)
My v6 endpoint is unreachable. My v4 one is fine.
I'd argue it has, but that's not the point. IPv4 is pretty much mandatory for most users of the internet. Yes, individual users probably neither know nor core whether they're on IPv4 or IPv6, but it's so difficult to run IPv6-only that you just wouldn't bother.
Trying to teach someone about how to use ULA vs. GUA only leads to headaches. In fact, I'd go so far as to say the reason why the internet became so ubiquitous was because of NAT -- static internal addressing is pretty much fundamental to an easy-to-use experience. Having multiple addresses on a host only makes things far more confusing, so people don't bother, because IPv4 just works.
Eh. It took quite a long time, but even HN has a v6 address these days:
$ dig +short news.ycombinator.com ANY
2606:7100:1:67::26
209.216.230.207That's a bummer!
Contrariwise, this USian has had solid IPv6 service from every ISP I've gotten residential service from for more than a decade now.
I would not need "a home LAN" at home; I would not need "Private IP address space"; I would not need NATing router technology; my router software and configuration would be far, far simpler if my devices were able to single-stack. I believe the source of a lot of connectivity errors and difficult Heisenbugs involve dual-stack problems.
My devices don't need lateral connectivity on the LAN except for the printer. I attempted shutting off IPv4 on the printer and it dropped off entirely. I can't understand that. It doesn't need to reach the outside world for any reason. My Chromebook and Android don't speak to each other, except for Quick Share, which shouldn't require IPv4 addressing.
Has anyone devised a protocol or scheme by which an IPv6-only device can seamlessly access IPv4-only devices through their ISP and not local support? In other words, opportunistically intercept connection attempts and interpose a tunnel? It seems like this would be a final component to just killing off IPv4, en masse, in people's homes.
Nah. We're not going to shut down IPv4 service for many, many decades. IPv6 is primarily an global-address-space-pressure-relief mechanism. In the next five, ten, fifteen years, enough end-user sites will have IPv6 GUA service that putting every end-user behind an IPv4 CGN and reducing the IPv4 GUA to end-user ratio to 50:1 or more will be a quite reasonable thing to do.
Any complaints you have about what you believe to be added complexity are mooted by one or more of the following:
1) End-users typically plug the magic internet router into the ISP-provided magic internet cable or box. They then magically get internet access in their house. They typically have no understanding of how any of this works.
2) Because the firewalls provided by Windows and OSX primarily care about which application is doing the network traffic, they're inherently IP version agnostic. I know that on the Linux side of things, nftables has been available for a decade and -by default- gives zero shits about the IP version of the traffic it's inspecting. So, for the three major consumer OSs it's easy to write firewall rules exactly once and have them apply regardless of what version of IP carries the traffic.
3) The major IP implementations were written years ago. That work's already been done. Removing one of those stacks is even more work.
NAT64 which is used extensively in cellular networks.
Odd.
Is the IPX + IP dual stack a terrible curse and a hack? [0]
IP + Ethernet? [1]
[0] If you think this isn't real, you're not old enough.
[1] Given that your focus is home networks, other than "legacy baggage" there's zero reason that switches and IP implementations couldn't eliminate Ethernet addresses and use IP as their lowest logical layer. Switches already have to maintain a "MAC address -> switch port" lookup table. Converting that to an "IP address -> switch port" lookup table is easy. With the removal of Ethernet addresses, the need for ARP is eliminated, so there's no need for hosts to remember MAC addresses. Things are much simpler without all that legacy baggage, don't you agree?
Anyway, IPX, and Ethernet MAC, are different protocols with unique aims. I guess IPX was routable. But it was proprietary; it was Novell's baby, and it was serving a particular purpose for their software and network architecture. There was no sin in running it parallel to IP stacks.
The sin in dual-stack IPv4 + IPv6 is that they're the same protocol. There is nothing different in their aims, their reach, their utility or their transit networks. They're all serving the same Internet purposes, and the same protocols are both on top and below them, layer-wise. Same old TCP, UDP, QUIC, etc.
So, the only reason 4 and 6 coexist is transitional support. The only reason 4 still needs support and dual-stacking is because of a lack of 6 support. When/if IPv6 is wholeheartedly embraced, then dual-stacking is obsolete.
I'd like to reiterate that dual-stacking is an administrative pain and possibly the source of some really crazy connectivity bugs. A dual-stack system is unnecessarily complex. Eliminating Ethernet and MAC addresses is a revolutionary idea that would simplify things. But today, it is realistic to eliminate IPv4 just by widening support for v6. And that's something we should be working towards.
I don't think anybody really disagrees with this but it's kind of pointless to mention because there is no alternative. IPv8 would also require a period of dual-stacking.
T-Mobile is already running 99% single-stack IPv6-only so I would say the transition works; it's just a matter of doing it.
This professional administrator disagrees.
> The sin in dual-stack IPv4 + IPv6 is that they're the same protocol. There is nothing different in their aims, their reach, their utility or their transit networks.
That same commentary applies to IP + IPX. Your understanding of IPX is poor. This was about the depth of analysis I was expecting. Pity.
> Eliminating MAC addresses is a novel idea. I have not seen it credibly suggested before. Surely some functionality would be lost?
No more than eliminating IPv4 addresses in the far future, and far less if that elimination was done today. Go read up. It'll probably take you a few weeks to get up to speed.
> But today, it is realistic to eliminate IPv4 just by widening support for v6.
lol.
Also there's a subsection about tier 1 networks and those are businesses.
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.
And when they picked a design, it indeed didn't have a flag day (https://datatracker.ietf.org/doc/html/draft-hinden-ipng-over...): IPng is a new version of IP which is designed to be an evolutionary step
from IPv4. It is a natural increment to IPv4. It can be installed as a
normal software upgrade in internet devices and is interoperable with
the current IPv4. Its deployment strategy was designed to not have any
"flag" days.
If saying "we can't have/didn't do a flag day" in the design documents, and then not having a flag day, isn't enough to stop you from arguing that v6 should have been engineered without a flag day, I have to wonder what v6 could possibly have done to make you happy with it.(I understand that the real reason here is either a) OSX went to version 10, so don't want to be behind, or b) many systems would pattern match on windows version 9*" so Windows 9 would be treated as 95/98.)
Mac OS was said to skip 9 on the way to 10 due to a combo of some Asian numerology (just as Western numerology often encourages skipping "unlucky" 13) and also trying to make a clean break more obvious between System 8 and OSX. (The X being the 10, as Apple's favorite way to write 10 for various reasons. Which is why "OSX" was always a misnomer, accidentally burning the version number into the operating system name. Part of why Apple has been trying to get everyone on the "macOS" brand lately to pull the version number back out.)
2, 4, 8 then 16.
Very nice.
LLMs might be able to hallucinate RFC text, but they certainly can't compile a patched Linux 6.6 kernel with a working AF_INET8 socket family, patch musl/iproute2/frr, spawn a 10-node QEMU mesh, and route 112,000 active FIB entries under live traffic.
The source code and commit history are right there in the GitLab repos - feel free to pull the kernel tree and run the test suite yourself.
A few weeks ago, the "Internet Protocol Version 8 (IPv8)" Internet-Draft (draft-thain-ipv8-02) caught our eye. The draft proposes replacing IPv4/IPv6 with a 64-bit hierarchical structure (ASN.Host), giving every 32-bit ASN holder 4.3 billion host addresses and consolidating DHCP, DNS, NTP, Syslog, OAuth, and WHOIS into a unified "Zone Server".
Instead of just debating the theoretical viability on mailing lists, our team at goonhost.rocks decided to implement the entire specification from scratch to see what happens when you deploy it across a distributed multi-AS network.
What we built: - Linux Kernel 6.6: Native AF_INET8 (family 46) socket layer, 28-byte packet routing, and sysctl boundary filters. https://gitlab.turborigby.xyz/goonhost-experiments/linux - Musl Libc: sockaddr_in8, inet_pton8, getaddrinfo() resolver support. https://gitlab.turborigby.xyz/goonhost-experiments/musl - iproute2: Native `ip -8 route` and `ip -8 addr` CLI tooling. https://gitlab.turborigby.xyz/goonhost-experiments/iproute2 - FRRouting: BGP8 daemon with Multi-Protocol Extensions (AFI/SAFI). https://gitlab.turborigby.xyz/goonhost-experiments/frrouting - IPv8 Zone Server (Go): 10-protocol platform (DHCP8, DNS8 TYPE_A8 88, SNTP, NetLog8, OAuth8, WHOIS8, XLATE8). https://gitlab.turborigby.xyz/goonhost-experiments/zoneserve... - Nginx & cURL: Patched for 64-bit IPv8 HTTP traffic. https://gitlab.turborigby.xyz/goonhost-experiments/nginx https://gitlab.turborigby.xyz/goonhost-experiments/curl
We set up a 10-node QEMU multi-AS testbed across 4 Autonomous Systems, pushed 112,000+ active routes into the kernel FIB, and ran continuous traffic generation.
While it works smoothly in an isolated lab, our report highlights several fundamental real-world failure modes: 1. PMTU & Silent MSS Blackholing (28-byte IP header breaks 1500-byte MTU paths without 1452-byte MSS clamping). 2. Asymmetric uRPF / BCP 38 drops on multi-homed ASNs. 3. Legacy DC switch ASIC/TCAM incompatibility (EtherType 0x88B8 punts to CPU exception path). 4. Monolithic Zone Server DDoS blast radius. 5. Systemic economic crises: RIR funding model collapse (90% revenue drop) and global BGP DFZ table explosion (3M–5M+ routes).
Full research report: https://cdnnn.goonhost.rocks/IPV8_RESEARCH_REPORT.md
Unlike boring corporate providers, we just actually have a sense of humor (or more accurately, the developer has overdosed on TikToks and brainrot reels).
Satirical branding doesn't mean the bare-metal servers or the kernel code aren't real.