Show HN: We Implemented the IPv8 Internet-Draft in Linux, Libc, and BGP

turborigby1 pts0 comments

Internet Protocol Version 8 (IPv8): Comprehensive Architectural Assessment, Internet-Scale Failure Modes, and Ecosystem Disruption Analysis - GoonHost Blog | GoonHost — Tuff Niche VPS Hosting

Internet Protocol Version 8 (IPv8): Comprehensive Architectural Assessment, Internet-Scale Failure Modes, and Ecosystem Disruption Analysis<br>TurboRigby<br>•August 14, 2026<br>•6 min read

Show HN: We implemented the IPv8 Internet-Draft in the Linux Kernel, Musl Libc, and BGP

Target URL / Blog Post for Hacker News : https://goonhost.rocks/blog/implementing-ipv8-internet-draft

Suggested HN Titles :

Show HN: We implemented the IPv8 Internet-Draft in Linux, Libc, and BGP (Recommended)

We built the IPv8 IETF Draft in Linux and tested what happens to the Internet

IPv8: Building the 64-bit protocol in Linux 6.6 and breaking the global routing table

The Hook: Why We Built This

A few weeks ago, an Internet-Draft titled Internet Protocol Version 8 (IPv8) — draft-thain-ipv8-02 caught our eye.

The draft makes some extraordinary claims:

Zero Address Exhaustion : Every ASN holder automatically receives 4,294,967,296 host addresses ($2^{32}$).

100% Backward Compatibility : "IPv4 is a proper subset of IPv8... There is no flag day and no forced migration."

Total Network Management : Every packet is validated against DNS8 and WHOIS8; all elements are authorized via OAuth2 JWT tokens; and all core services (DHCP, DNS, NTP, Syslog, WHOIS, NAT, ACLs) are bundled into a single "Zone Server" .

Most network engineers would laugh this off as an April Fools RFC written by an enterprise architect on buzzword overdrive. But instead of just arguing on mailing lists, the team at goonhost.rocks decided to actually build the entire specification from scratch and test what happens when you deploy it across a distributed multi-AS network.

What We Built (Open Source Repositories)

We implemented the complete IPv8 stack from ring-0 kernel code up to user-space applications:

Linux Kernel 6.6 (GitLab Repo) :

Implemented native AF_INET8 (address family 46) supporting SOCK_STREAM (TCP8), SOCK_DGRAM (UDP8), and SOCK_RAW (RAW8).

28-byte IPv8 header parsing, 64-bit routing table lookups, and sysctl boundary drop rules (filter_internal_zones, filter_rine, filter_interior_links).

Musl Libc (GitLab Repo) :

Added sockaddr_in8, inet_pton8, inet_ntop8, getaddrinfo(), and getnameinfo() for 64496.10.0.0.1 format addresses.

iproute2 (GitLab Repo) :

Native ip -8 route and ip -8 addr management commands.

FRRouting (FRR) (GitLab Repo) :

BGP8 daemon with Multi-Protocol Extensions (AFI/SAFI) for peering and exchanging IPv8 routes.

IPv8 Zone Server Platform in Go (GitLab Repo) :

Implemented all 10 RFC sub-protocols: DHCP8 (options 224–230), DNS8 (TYPE_A8 88), SNTP Stratum-1, NetLog8 (UDP 514 telemetry), OAuth8 JWT server, WHOIS8 TCP 43/REST, ACL8, and XLATE8 stateful NAT.

Nginx & cURL (Nginx Repo | cURL Repo) :

Serving and requesting HTTP over 64-bit IPv8 endpoints (http://64497.20.0.0.254:80/).

10-Node QEMU Multi-AS Testbed :

4 Autonomous Systems (AS 64496, AS 64497, AS 64498, AS 64499 ) connected across multicast WAN/LAN segments, loaded with 112,000+ active FIB routes and continuous client traffic generation (trafficgen8).

The Results: The Good, The Bad, and The Catastrophic

The Good (In a Lab Environment)

In an isolated sandbox, the protocol works surprisingly smoothly:

curl -i http://64497.20.0.0.254/ returns HTTP/1.1 200 OK from Nginx across an inter-AS WAN mesh.

dhcp8c boots on an unconfigured interface, receives a dual-gateway lease (.254 Even / .253 Odd), and syncs its clock via NTP8 in 2.27 ms .

The Linux kernel fib_trie handled 112,117 active routes with sub-millisecond lookup latency under continuous traffic.

The Bad: Why It Breaks in the Real World

1. Path MTU (PMTUD) & Silent MSS Blackholing

IPv8 addresses add 4 bytes to source and 4 bytes to destination, expanding the IP header from 20 to 28 bytes .

On a standard 1500-byte MTU Ethernet link, standard IPv4 TCP packets (1460-byte payload + 20-byte TCP + 28-byte IPv8 = 1508 bytes ) exceed the MTU.

Because thousands of legacy middleboxes drop oversized packets without sending ICMP Fragmentation Needed messages, TLS handshakes and large file transfers hang indefinitely.

Fix : Every router and host on earth must enforce TCP MSS Clamping to 1452 bytes (or 1432 for 8to4 tunnels).

2. Multi-Homing & Asymmetric uRPF (BCP 38) Drops

In IPv8, your IP address is hard-coded to your primary ASN (64496.10.0.1). If you multihome with two upstream transit providers (Provider A and Provider B) and send outbound packets via Provider B:

Provider B’s ingress filters (strict uRPF / BCP 38) check if Provider B is the shortest path to AS 64496.

Since Provider A is the primary route, Provider B silently drops all your outbound traffic as spoofed packets.

3. Legacy Switch ASICs Punt to CPU Slow-Path

Fixed-function switch chips (Broadcom Tomahawk/Trident, Cisco Silicon One) in modern data centers have...

ipv8 internet draft linux repo provider

Related Articles