IPv6 agnostic blog

IPv6 设计中的失误与错失的良机 - 第一部分

2025年2月15日,阅读时长约7分钟

本文不代表现在、过去或未来雇主的观点。文章中的观点仅代表我个人。

这是一系列关于我思考为什么 IPv6 失败的文章。之前的文章。计算机网络历史上大多数网络协议都失败了。《RFC5218》定义了一个成功的协议应该具备的要素。

我个人从 1998 年起就从事 IPv6 标准化和实现工作。浪费了 27 年时间。至少我可以声称一路走来学到了一些东西。不知道 ATM、X.25、IPX、DecNet、OSI、Apollo 等的发明者们有什么感受。:-) IPv6 至少与它们为伍。“失败”的定义有很多,我保留采取对抗立场的权利,并且我确实承认 IPv6 存在有效的用例。

在 IPv6 工作的早期,我们花费大量时间思考从流行的 IPv4 互联网到 IPv6 互联网的过渡。IPv6 经过精心设计,添加了最少的新功能,以确保轻松过渡。但仍然要有足够的吸引力来取代 IPv4。人们认为,更大的地址空间和重新启用的端到端透明网络将非常有价值,足以推动过渡。

在过去的 30 年里,不同的权衡可能不会产生影响。没有直接的技术缺陷阻止了 IPv6 的部署。尽管如果 IPv6 是一个更优秀的协议,并解决了 IPv4 无法解决的问题,它会更容易被接受。具有讽刺意味的是,现在情况恰恰相反。有些问题可以在 IPv4 中解决,但在 IPv6 中很难解决。至少在不诉诸 NAT 和 NAPT 等“IPv4 方法”的情况下是如此。本文将探讨这些问题。

网络中的政治

网络协议也是政治(请阅读 Laura DeNardis 的著作)。IPv6 的设计经过精心选择,具有一定的价值观。最初的提案“Simple Internet Protocol”最初于 1992 年撰写,后来以 RFC8507 的形式发布。其背后的基本价值观与最初的 IP 协议非常相似。它应该是端到端透明的,任何人都可以与任何人通信,状态应该保存在端点中,网络应该像打开灯泡一样简单(这是在无线网络出现之前)。IPv6 的设计采用了更简单的头部,旨在实现即插即用配置。有点像亚当和夏娃犯罪前的世界。:-)

并且要不惜一切代价避免任何形式的 NAT!

IPv6 设计失误

现在,欢迎来到 30 年的演变…… 以下列表并非严格按时间顺序排列:

if (ip->ip_version_and_header_length != 0x45)
  silently_drop();

IPv6 扩展头部经过明确设计,使其难以在硬件中解析。其目的是避免中间盒窥探目标选项。当然,世界不是这样运作的,而且我们现在知道,做到这一点的唯一方法是加密。IPv6 扩展头部消耗的邮件列表“空间”几乎比任何其他主题都多。它很难实现,并导致网络崩溃和故障。它们在网络中具有显着更高的丢弃概率,最重要的是,在有限的领域之外,它们几乎没有实际用途。IPv6 设计者应该怎么做? 不要在 IPv6 中添加对扩展头部和选项的支持。

下次

在下一期中,我计划谈谈:

© 2025 Ole Trøan · 由 Hugo & Coder 强力驱动。