公众号旧文
互联网是怎么从 IPv4 无缝过渡到 IPv6 的?
从 IPv4 过渡到 IPv6,不是像系统升级那样,点一下更新并重启,全世界就可以直接从 IPv4 变成 IPv6。
互联网更像是一辆正在高速行驶的汽车,你不能停下来,只能一边开,一边把发动机换掉。
没有停机,没有统一指挥,大多数人都不知道这件事正在发生,而且已经持续了二十年。
一、为什么要过渡?因为 IP 不够用了
IPv4 的问题,说到底就三个字:不够用。
它的地址总量是 2³²,大约 43 亿。 在互联网早期,这几乎是无限资源。
但后来发生了三件事:
- 智能手机爆发
- 家庭设备激增(电视、摄像头、IoT)
- 云计算快速扩张
结果就是 IP 地址不够分了。
于是,NAT 这个补丁方案出现了。
一个公网 IP,后面挂一堆设备,通过端口区分。
它确实延长了 IPv4 的寿命,但也带来了副作用:
- 端口映射复杂
- P2P 连接困难
- 网络结构越来越别扭
如果你用过 NAT VPS,会深有体会。
二、IPv6 的思路很简单
既然不够用,那就多给。
IPv6 的地址是 2¹²⁸,数量大到不可能用完。
所以它的设计理念变了,不再共享,而是人人都有。
每台设备,都可以拥有一个公网地址。
三、但难点从来不是设计,而是怎么切换
如果互联网可以停机,那事情就简单了,关掉 IPv4,启用 IPv6。
但现实显然是不可能的。
全球数十亿设备,不可能同时升级。
所以唯一的办法是 IPv4 和 IPv6 长期共存。
这也是为什么,IPv6 推了二十年,IPv4 依然还在。
四、那从IPv4到IPv6是怎么切换的?
这场迁移,主要靠三种方式完成。
1. 双栈:两个世界同时存在
一台设备,同时拥有 IPv4 和 IPv6。
访问网站时:
- 优先 IPv6
- 不通再用 IPv4
这个过程完全自动,你几乎无感。
所以客观现实是,你不是切换到 IPv6,而是在同时使用两个世界。
2. 隧道:借路而行
如果网络本身没有 IPv6怎么办?
那就套一层,把 IPv6 数据包封装进 IPv4 里传输。
就像把一封信装进另一个信封再寄。
很多内网穿透、组网工具,本质就是这个思路。
所以 IPv6 并不一定要原生支持,也可以借道 IPv4。
3. 协议转换:找个翻译
比如 NAT64 / DNS64。
场景是:
你在 IPv6 网络 但要访问一个 IPv4 网站
系统会:
- 生成一个“假的” IPv6 地址
- 在网关把请求翻译成 IPv4
- 帮你完成访问
整个过程,你同样完全感知不到。
五、现实世界,是一锅大杂烩
现在的互联网,并不是在替换,而是已经变成一个混合系统:
- 一些网站已经支持 IPv6
- 一些仍然只支持 IPv4
- NAT 网络依然大量存在
- 各种隧道和转换在背后工作
它们不是替代关系,而是叠加关系。
六、一个细节:你未必真的在用 IPv6
即使系统设置了 IPv6 优先,也不一定真的用它。
因为现代系统采用了Happy Eyeballs(快乐眼球算法),
IPv6 和 IPv4 几乎同时尝试,谁快用谁,
所以你不会感觉到切换。
这也是为什么很多人以为自在用 IPv4,但已经在部分流量上用上了 IPv6。
七、从折腾网络的角度看
IPv4 的世界,是挤出来的:
- NAT
- 端口复用
- 各种绕路
而 IPv6,则是原生设计的:
- 每个设备一个公网 IP
- 不需要端口映射
- 网络结构更直接
很多现代组网工具,本质上是在 IPv4 世界里,模拟 IPv6 的体验。
八、最后一句话总结
IPv4 到 IPv6,从来不是一次简单的升级。
而是一场没有终点的迁移:
- 双栈在维持兼容
- 隧道在填补空白
- 转换在弥合断层
它没有开关,也不会彻底完成,至少在我们的有生之年,不会。
扩展阅读
每天看我的文章,你一定已经知道 IP 是谁负责分配的了,那域名呢?