IPv4 地址约 40 亿个,已无法满足互联网与物联网高速发展的需求。IPv6(Internet Protocol version 6,互联网协议第 6 版) 以 128 位地址大幅扩充地址空间。本文先梳理 IPv4 与 IPv6 的差异与 IPv6 地址结构,再系统讲解三种 IPv6 改造方案(双栈、协议映射、应用层代理)的原理与取舍,并介绍当前应用程度与演进,属网络专项里的下一代协议主题。
IPv4 是互联网通信协议第 4 版,也是当前最广泛应用的版本。数据包报头包含源地址、目的地址、TTL(Time To Live,生存时间)、数据包校验、总长度、偏移量等信息。
| 维度 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32 位,十进制书写 | 128 位,十六进制书写 |
| 网络划分 | 子网掩码、网络号 + 主机号 | 前缀长度 + 网络接口 ID |
| 回环地址 | 127.0.0.1 | ::1 |
| 浏览器访问 | IP + 端口直接访问 | 地址需用中括号括起来再加端口 |
IPv6 地址结构:前 48 位为前缀 ID(相当于 IPv4 子网掩码的作用),中间 16 位为子网 ID,最后为主机接口 ID(可由主机 MAC 地址直接生成)。由于 IPv6 地址难以记忆,实际使用中更依赖域名解析。
IPv6 推广需要硬件到应用的整体调整,必须支持四种访问关系:IPv4 客户端访问 IPv4/IPv6 服务端、IPv6 客户端访问 IPv6/IPv4 服务端。三种改造方案:
| 方案 | 原理 | 特点 |
|---|---|---|
| 双栈(Dual Stack) | 应用、链路、支撑、终端系统同时支持并处理 IPv4 与 IPv6 两套协议栈 | 改造最彻底,成本最大 |
| 协议映射 | DNS64 + NAT64 做地址转换 | 满足部分需求,属过渡方案 |
| 应用层代理 | 通过代理层转发 | 有场景局限,属过渡方案 |
文字说明:双栈模式下服务端同时支持 IPv4 与 IPv6 两套协议栈,IPv6 客户端通过 DNS 获取 IPv6 地址访问服务端出口,IPv4 客户端维持原有请求响应模式、DNS 返回 IPv4 地址,最彻底但人力、技术与资源成本都高;协议映射模式是过渡方案,以 DNS64 改写解析、NAT64 做地址转换,满足部分需求。
文字说明:以 IPv6 客户端访问 IPv4 服务端为例:客户端请求 IPv6 域名,DNS64 Server 先查询权威 DNS 是否有 IPv6 地址;因服务端只支持 IPv4,DNS64 Server 取得 IPv4 解析结果后改写成 IPv6 地址返回客户端;客户端请求该 IPv6 地址,流量先经过 NAT64 接入设备把 IPv6 地址转换为 IPv4 地址访问服务端;服务端返回的数据包再由 NAT64 转换成 IPv6 传回客户端。对用户无感知,但服务端侧做了两层数据包转换,链路较长。
服务端同时支持 IPv4 与 IPv6:IPv6 客户端通过 DNS 获取 IPv6 地址访问服务端出口;IPv4 客户端维持原有请求响应模式,DNS 返回 IPv4 地址。这是最彻底的方案,但人力、技术与资源成本都很高。
以 IPv6 客户端访问 IPv4 服务端为例(时序见上文图):
对用户无感知,但服务端侧做了两层数据包转换,链路较长。
通过应用层代理层转发流量,可实现 IPv4/IPv6 之间的互通,但有场景局限(如仅适用于 HTTP 等应用层协议、性能与兼容性受限),属于过渡方案。
文字说明:IPv6 的核心价值是解决地址枯竭。其推广受限于全链路改造成本,经历从"标准化但应用少"到"地址枯竭催生需求"再到"双栈平滑过渡 + 过渡方案补齐"的过程,当前主流做法是双栈平滑过渡,协议映射(DNS64/NAT64)与应用层代理作为过渡方案解决特定场景。
docs/运维/04-Nginx/。