Show HN: 我们在Linux、Libc和BGP中实现了IPv8互联网草案

Hacker News Top 产品

摘要

goonhost.rocks团队在Linux内核、Musl libc、iproute2、FRRouting和Go区域服务器中实现了IPv8互联网草案,并将其部署在一个拥有112k+条路由的10节点多AS测试平台上。它在隔离的实验环境中运行正常,但在现实场景中则会失效。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/08/14 15:29

# GoonHost — 无与伦比的 VPS 杂烩与专用 Goy KVM 服务器 来源:https://goonhost.rocks/blog/implementing-ipv8-internet-draft ## Show HN:我们在 Linux 内核、Musl Libc 和 BGP 中实现了 IPv8 Internet-Draft ## 起因:我们为什么构建这个 几周前,一份题为 **Internet Protocol Version 8 (IPv8) — draft-thain-ipv8-02 (https://www.ietf.org/archive/id/draft-thain-ipv8-02.html)** 的 Internet-Draft 引起了我们的注意。 该草案提出了一些非同寻常的主张: - **零地址耗尽**:每个 ASN 持有者自动获得 **4,294,967,296 个主机地址**($2^{32}$)。 - **100% 向后兼容**:“IPv4 是 IPv8 的真子集……没有旗标日,也没有强制迁移。” - **全面网络管理**:每个数据包都通过 DNS8 和 WHOIS8 验证;所有元素都通过 OAuth2 JWT 令牌授权;所有核心服务(DHCP、DNS、NTP、Syslog、WHOIS、NAT、ACL)都捆绑到一个 **“Zone Server”** 中。 大多数网络工程师会把这当作一个由企业架构师在流行词超速驱动下写出的愚人节 RFC,一笑了之。但 `goonhost.rocks` 团队没有只在邮件列表中争论,而是决定真正**从头构建整个规范**,并测试将其部署到分布式多 AS 网络中会发生什么。 --- ## 我们构建了什么(开源代码仓库) 我们从 ring-0 内核代码到用户空间应用程序,实现了完整的 IPv8 协议栈: 1. **Linux 内核 6.6(GitLab 仓库 (https://gitlab.turborigby.xyz/goonhost-experiments/linux))**: - 实现了原生 `AF_INET8`(地址族 46),支持 `SOCK_STREAM`(TCP8)、`SOCK_DGRAM`(UDP8)和 `SOCK_RAW`(RAW8)。 - 28 字节 IPv8 头解析、64 位路由表查找,以及 sysctl 边界丢弃规则(`filter_internal_zones`、`filter_rine`、`filter_interior_links`)。 2. **Musl Libc(GitLab 仓库 (https://gitlab.turborigby.xyz/goonhost-experiments/musl))**: - 为 `64496.10.0.0.1` 格式的地址添加了 `sockaddr_in8`、`inet_pton8`、`inet_ntop8`、`getaddrinfo()` 和 `getnameinfo()`。 3. **iproute2(GitLab 仓库 (https://gitlab.turborigby.xyz/goonhost-experiments/iproute2))**: - 原生 `ip -8 route` 和 `ip -8 addr` 管理命令。 4. **FRRouting(FRR)(GitLab 仓库 (https://gitlab.turborigby.xyz/goonhost-experiments/frrouting))**: - BGP8 守护进程,支持多协议扩展(AFI/SAFI),用于对等互联和交换 IPv8 路由。 5. **用 Go 编写的 IPv8 Zone Server 平台(GitLab 仓库 (https://gitlab.turborigby.xyz/goonhost-experiments/zoneserver))**: - 实现了全部 10 个 RFC 子协议:DHCP8(选项 224–230)、DNS8(TYPE_A8 88)、SNTP Stratum-1、NetLog8(UDP 514 遥测)、OAuth8 JWT 服务器、WHOIS8 TCP 43/REST、ACL8 和 XLATE8 有状态 NAT。 6. **Nginx 和 cURL(Nginx 仓库 (https://gitlab.turborigby.xyz/goonhost-experiments/nginx) | cURL 仓库 (https://gitlab.turborigby.xyz/goonhost-experiments/curl))**: - 通过 64 位 IPv8 端点(`http://64497.20.0.0.254:80/`)提供和请求 HTTP 服务。 7. **10 节点 QEMU 多 AS 测试平台**: - 4 个自治系统(**AS 64496、AS 64497、AS 64498、AS 64499**)通过组播 WAN/LAN 网段相连,加载了 **112,000+ 条活动 FIB 路由**,并持续生成客户端流量(`trafficgen8`)。 --- ## 结果:好的、坏的和灾难性的 ### 好的方面(在实验室环境中) 在隔离的沙盒环境中,该协议运行得出奇地顺畅: - `curl -i http://64497.20.0.0.254/` 在跨 AS WAN 网状网络中从 Nginx 返回 `HTTP/1.1 200 OK`。 - `dhcp8c` 在未配置的接口上启动,获得双网关租约(`.254` 偶数 / `.253` 奇数),并通过 NTP8 在 **2.27 ms** 内同步时钟。 - Linux 内核 `fib_trie` 在持续流量下处理了 **112,117 条活动路由**,查找延迟低于毫秒级。 --- ### 坏的方面:为什么它在现实世界中会崩溃 #### 1. 路径 MTU(PMTUD)与静默 MSS 黑洞 IPv8 地址给源地址增加 4 字节、给目的地址增加 4 字节,使 IP 头从 20 字节扩展到 **28 字节**。 - 在标准 1500 字节 MTU 以太网链路上,标准 IPv4 TCP 数据包(1460 字节负载 + 20 字节 TCP + 28 字节 IPv8 = **1508 字节**)超过了 MTU。 - 由于成千上万的旧式中间盒会丢弃超大包而不发送 ICMP `Fragmentation Needed` 消息,TLS 握手和大文件传输会无限期挂起。 - **修复方案**:地球上每台路由器和主机都必须强制执行 **TCP MSS 钳制到 1452 字节**(8to4 隧道则为 1432 字节)。 #### 2. 多宿主与不对称 uRPF(BCP 38)丢包 在 IPv8 中,你的 IP 地址被硬编码到你的主 ASN(`64496.10.0.1`)。如果你使用两个上游传输提供商(提供商 A 和提供商 B)进行多宿主,并通过提供商 B 发送出站数据包: - 提供商 B 的入站过滤器(严格 uRPF / BCP 38)会检查提供商 B 是否是到达 AS 64496 的最短路径。 - 由于提供商 A 是主要路由,**提供商 B 会将你的所有出站流量当作欺骗数据包静默丢弃**。 #### 3. 旧式交换机 ASIC 将数据包抛给 CPU 慢路径 现代数据中心中的固定功能交换芯片(Broadcom Tomahawk/Trident、Cisco Silicon One)的 TCAM 微码硬编码支持 32 位 IPv4(`0x0800`)和 128 位 IPv6(`0x86DD`)。它们不知道 EtherType `0x88B8` 是什么。 - 数据包无法在硬件中以线速(400Gbps/800Gbps)交换。 - 交换机会将 IPv8 帧抛给控制平面 CPU 异常队列,导致大量丢包,吞吐量从 400Gbps 降至 <10Gbps。 #### 4. 单体 Zone Server 成为 DDoS 目标 将 DHCP、DNS、NTP、Syslog、OAuth2 认证和 NAT 放入一个“Zone Server”网关,就创造了终极单点故障。对端口 8080 或端口 53 发起的简单 UDP 反射攻击,会同时摧毁整个公司的时间同步、动态寻址、令牌验证和互联网出口。 --- ### 灾难性的:RIR 和 Tier-1 上游提供商的经济崩溃 #### 1. RIR(ARIN、RIPE、APNIC)财务破产 - RIR 是非营利组织,资金来源是基于所持有 IP 空间规模的阶梯式年费。 - 在 IPv8 下,注册一个 **32 位 ASN**(每年 100–500 美元)就能获得 **43 亿个可路由 IP 地址**。 - 地址数量与费用脱钩,导致 RIR 的运营收入下降 **75% 至 90%**。 - 数十亿美元的 IPv4 二级转让市场(每个 IP 40–55 美元)一夜之间被抹去。 #### 2. 投机性的“抢夺 32 位 ASN”狂潮 因为 1 个 ASN = 43 亿个 IP,域名抢注者和垃圾邮件发送者会争先恐后地囤积成千上万个 32 位 ASN,在几年内耗尽全球 ASN 注册表。 #### 3. Tier-1 传输利润毁灭与核心 TCAM 爆炸 - **DFZ 路由爆炸**:如今全球 BGP 表约有 115 万条路由。在 IPv8 中,如果 115,000+ 个 ASN 宣告 Tier-1 和 Tier-2 子网,默认自由区(Default-Free Zone)将扩展到 **3,000,000 至 5,000,000+ 条活动路由**,迫使全球骨干网更换线卡,耗费数十亿美元。 - **RINE 对等互联收入损失**:IPv8 的 RINE 强制要求(`100.0.0.0/8`)迫使区域对等互联免费,剥夺了 Tier-1 传输提供商(Lumen、Arelion、N

相似文章

告别ARP:纯IPv6网络上的IPv4服务

Lobsters Hottest

本文介绍了一份IETF草案提案,旨在在纯IPv6网络上消除ARP和IPv4子网,使IPv4能够作为纯粹的/32服务在IPv6基础设施上运行,无需翻译或隧道化,解决了ARP风暴和IPv4地址稀缺等运营痛点。

IPv6 覆盖网络之年

Hacker News Top

# IPv6 覆盖网络之年 来源:[https://www.defined.net/blog/year-of-the-ipv6-overlay-network/](https://www.defined.net/blog/year-of-the-ipv6-overlay-network/) [Nebula 1.10](https://github.com/slackhq/nebula/releases/) 现已发布,覆盖网络现已支持 IPv6,单台主机可配置多个 Nebula IP,采用全新证书格式等。本次发布凝聚了历时一年多的开发工作与众多 Pull Request 的成果;您可在 [Nebula v1.10 里程碑](http

我的ASN之旅系列(2024)

Hacker News Top

一份全面的初学者指南,介绍如何获取和配置自己的ASN和IP地址,涵盖BGP设置、成本和限制。

HomeLab #1: MikroTik 作为家庭路由器

Hacker News Top

实用指南:设置MikroTik路由器用于家庭实验室,涵盖如何识别ISP连接类型(IPoE与PPPoE)以及WAN IPv4地址(公网与CGNAT/DS-Lite),以便正确配置路由器。