Skip to content

IPv6 与过渡技术

基于 HTTP 现代标准 · 核于 2026-06

速查

  • 诞生动机:IPv4 只有 32 位 ≈ 43 亿个地址,1983 年投用,早已耗尽(IANA 顶级地址池 2011 年分完,各区域注册局陆续告罄)。IPv6 是治本方案。
  • 地址规模:IPv6 用 128 位,即 2¹²⁸ ≈ 3.4×10³⁸(约 340 涧)个地址——地球每粒沙子都能分到天文数量级的地址。
  • 书写格式8 组、每组 16 位(4 个十六进制数),冒号 : 分隔,如 2001:0db8:0000:0000:0000:ff00:0042:8329
  • 零压缩两条规则:① 每组前导零可省004242);② 连续的全零组:: 折叠,全址只能用一次(否则无法还原)。
  • 前缀 /64:IPv6 子网标准固定/64——前 64 位是网络前缀,后 64 位是接口标识(IID)。
  • 核心优势:海量地址 → 端到端直连、无需 NATSLAAC 无状态自动配置;固定 40 字节首部取消首部校验和、路由器不再分片,转发更快;可选 IPsec
  • 地址类型:全局单播(公网可路由)、链路本地 fe80::/10(本网段自动生成,必有)、唯一本地 fc00::/7(内网,类比私有地址)、组播 ff00::/8
  • 没有广播:IPv6 废弃广播,全部用组播替代(如「所有节点」ff02::1),更省资源。
  • 三大过渡技术双栈(同时跑 IPv4/IPv6,最平滑)、隧道(6in4 把 IPv6 包封进 IPv4,用协议号 41)、翻译(NAT64 + DNS64 让纯 IPv6 客户端访问纯 IPv4 服务)。
  • 部署现状:截至 2026-06,约 50% 的用户通过原生 IPv6 访问 Google,印度 / 法国 / 德国超 70%;可用 caniuse / Google IPv6 统计实时查询。
  • 规范状态:核心规范 RFC 8200(2017)已是互联网标准 STD 86,取代旧版 RFC 2460。

一、为什么需要 IPv6:IPv4 地址耗尽

IPv4 地址是 32 位,理论上限约 43 亿(2³²)。这个数字在 1983 年协议投用时看似充裕,但随着设备爆炸式增长(PC → 手机 → IoT),地址很快不够分。

IPv4 早已分完

IANA 的顶级 IPv4 地址池在 2011 年即告分配完毕,此后各区域互联网注册局(RIR)也相继耗尽可分配段。我们今天还能上网,靠的是 NAT(多设备共用一个公网地址)等「续命」手段——但 NAT 破坏了端到端连通性,治标不治本(NAT 细节见NAT 与 DHCP)。

IPv6 把地址长度从 32 位直接拉到 128 位,地址空间从 2³² 暴增到 2¹²⁸ ≈ 3.4×10³⁸。这不是「翻几倍」,而是多了约 7.9×10²⁸ 倍——足够给地球上每一粒沙子都分配海量地址。地址耗尽问题被从根上解决。

二、IPv6 地址表示与零压缩

一个完整的 IPv6 地址由 8 组组成,每组 16 位(写成 4 个十六进制数),组间用冒号 : 分隔:

2001:0db8:0000:0000:0000:ff00:0042:8329
└──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘
 16位  16位 ...                      共 128 位

128 位写全又长又难记,于是有两条零压缩规则,可层层简化:

步骤规则示例
原始完整 8 组2001:0db8:0000:0000:0000:ff00:0042:8329
规则①每组省略前导零2001:db8:0:0:0:ff00:42:8329
规则②连续全零组:: 折叠2001:db8::ff00:42:8329

:: 全址只能用一次

:: 代表「一段连续的全零组」,但整个地址里只允许出现一次。如果出现两次(如 2001::25de::cade),解析器就无法判断每个 :: 各代表几组零,地址无法唯一还原——这是初学者最常见的错误。

几个特殊地址记一下

  • 未指定地址 ::(全零,等价 IPv4 的 0.0.0.0
  • 回环地址 ::1(等价 IPv4 的 127.0.0.1,即 localhost)
  • URL 中带端口:IPv6 地址含冒号,写进 URL 时必须用方括号包裹,如 http://[2001:db8::1]:8080/

前缀 /64:网络与接口的分界

IPv6 用 CIDR 前缀表示网络部分(与 IPv4 一致,CIDR 见上一页)。与 IPv4 子网大小灵活不同,IPv6 的单个子网标准固定为 /64

2001:db8:abcd:0012 : 0000:0000:0000:0001 / 64
└────── 前缀(64 位)──────┘ └─── 接口标识 IID(64 位)───┘

前 64 位标识网络(由 ISP / 路由器下发),后 64 位是接口标识,可由设备依据网卡 MAC(EUI-64)或随机方式自动生成——这正是下文 SLAAC 的基础。

三、IPv6 的核心优势

IPv6 不只是「地址更多」,它借重新设计修掉了 IPv4 的多个历史包袱:

维度IPv4IPv6
地址长度32 位(≈43 亿)128 位(≈3.4×10³⁸)
地址表示点分十进制 192.168.1.1冒号十六进制 2001:db8::1
首部长度可变 20~60 字节,14 个字段固定 40 字节,字段更精简
首部校验和有(每跳重算,耗时)取消(交给链路层 / 传输层)
分片路由器可沿途分片仅源主机分片,路由器不分片
地址配置多靠 DHCP / 手动SLAAC 无状态自动配置
NAT普遍依赖(地址不够)端到端直连,原则上无需 NAT
广播无(改用组播)
IPsec可选附加设计内建(现为推荐项)

下面挑几条对前端 / 运维最有感的展开:

  • 端到端无需 NAT:地址海量,每台设备都能拿到全局可路由地址,通信双方可直连,无需 NAT 转换。这简化了 P2P、回调、实时通信等场景的网络模型。
  • SLAAC 无状态自动配置:设备接入网络后,先自动生成链路本地地址,再监听路由器发来的**路由通告(RA)**获取网络前缀,自己拼出全局地址——无需 DHCP 服务器即可上网(与有状态的 DHCPv6 互补,见NAT 与 DHCP)。
  • 简化的固定首部:IPv6 首部定长 40 字节,并取消了首部校验和字段;同时规定路由器不再分片(分片只由源主机完成)。两者都减少了路由器的逐包处理开销,转发更高效
  • 内置 IPsec:IPv6 设计之初将 IPsec 列为体系一部分,提供加密与认证能力(注:后续标准已将「强制实现」降级为推荐,并非每个实现都默认启用)。

首部校验和为何能去掉

IPv4 首部校验和需要每经过一跳就重算一次(因 TTL 等字段在变),是路由器的一项固定开销。IPv6 认为链路层(如以太网 FCS)和传输层(TCP/UDP 校验和)已能保证完整性,故整层去掉,把算力还给转发——这是「简化首部」最典型的体现。

四、IPv6 地址类型

IPv6 用地址前缀区分作用范围,前端调试时最常打交道的是前两类:

类型前缀作用范围类比 / 说明
全局单播2000::/3(常见 2001:全球公网可路由,类比 IPv4 公网地址
链路本地fe80::/10仅本链路每个接口必有,自动生成,不跨路由器
唯一本地(ULA)fc00::/7组织内部类比 IPv4 私有地址(10.x / 192.168.x)
组播ff00::/8一组接口一对多,替代广播

链路本地地址你天天见

执行 ifconfig / ip addr 时那个 fe80:: 开头的地址就是链路本地地址——它在接口启用时自动生成、必然存在,用于同一网段内的邻居发现(NDP)、路由通告等底层通信,但不能跨路由器,因此不会出现在公网。

IPv6 没有广播,全用组播

IPv4 的广播(向网段内所有主机发包)在 IPv6 中被彻底废弃。需要「一对多」时一律用组播:发往特定的组播组地址,只有加入该组的接口才会收到。例如 ff02::1 是「本链路所有节点」、ff02::2 是「本链路所有路由器」。这避免了广播打扰无关主机,更高效。

五、过渡技术:IPv4 与 IPv6 如何共存

IPv4 与 IPv6 不能直接互通(首部格式、地址长度都不同),而全球切换无法一夜完成,于是有三类过渡技术让两者长期共存:

①双栈 dual-stack          ②隧道 tunneling           ③翻译 translation
设备同时跑 v4 + v6      v6 包封进 v4 包穿越          v6 客户端 ↔ v4 服务
┌──────────┐           ┌────────────────────┐      ┌─────┐  NAT64  ┌─────┐
│ IPv4 IPv6│           │[IPv4[ IPv6 payload ]]│      │ v6  │ ──────▶ │ v4  │
└──────────┘           └────────────────────┘      └─────┘  DNS64  └─────┘
 各走各的,最平滑        跨越只支持 v4 的中间网络      让纯 v6 网访问纯 v4 资源
  • 双栈(Dual-Stack):主机 / 路由器同时启用 IPv4 和 IPv6 两套协议栈,对端是谁就用对应协议。这是最平滑、最推荐的过渡方式,缺点是要同时维护两套地址与配置。
  • 隧道(Tunneling):当两个 IPv6 节点之间隔着只支持 IPv4 的网络时,把 IPv6 报文封装进 IPv4 报文穿越过去,到对端再解封。典型如 6in4(用 IPv4 协议号 41 承载),以及自动隧道 6to4、可穿越 NAT 的 Teredo 等。
  • 翻译(NAT64 + DNS64):让纯 IPv6 客户端访问纯 IPv4 服务。NAT64 在 IPv6 与 IPv4 间做地址 / 协议转换(常用知名前缀 64:ff9b::/96 嵌入 IPv4 地址);DNS64 则在客户端只查到 A 记录、没有 AAAA 记录时,合成一条 AAAA 记录指向 NAT64,使纯 IPv6 端「以为」对方支持 IPv6。两者配合是当下移动网络纯 IPv6 化的主流方案(还有 464XLAT 等组合)。

选哪种?看你卡在哪一步

两端都能升级 → 双栈最省心;中间网络还是 IPv4 → 隧道打通;一端是回不去的纯 IPv4 老服务 → NAT64/DNS64 翻译。三者常叠加使用,共同支撑长达数十年的渐进迁移。

六、IPv6 部署现状

IPv6 标准早已成熟(RFC 8200 是互联网标准 STD 86),但部署是渐进的

  • 全球占比:据 Google 官方 IPv6 统计,截至 2026-06约 50% 的用户已通过原生 IPv6 访问其服务;印度、法国、德国等已超 70%
  • 区域不均:移动网络(运营商纯 IPv6 + NAT64)推进最快;部分地区与老旧企业网仍以 IPv4 为主。
  • 前端如何确认:用 caniuse、Google IPv6 采用率页面查全球进度;本机可访问 test-ipv6.com 检测自己是否已具备 IPv6 连通性。

前端要不要操心 IPv6

绝大多数场景不用——浏览器、DNS(AAAA 记录见DNS 记录类型)、HTTP 栈都已透明支持 IPv6,应用层代码无感。但有两点要留神:① 在 URL / 配置里手写 IPv6 字面量务必用方括号 [...] 包裹再加端口;② 服务端 / 日志里拿到的客户端 IP 可能是 IPv6 格式,做 IP 解析 / 白名单时别只按 IPv4 的点分十进制来判断。

小结

本页从 IPv4 地址耗尽这一根本矛盾切入,讲清了 IPv6 的设计与落地:

  • 动机:IPv4 仅 32 位 ≈ 43 亿地址,2011 年起陆续耗尽;IPv6 用 **128 位(2¹²⁸≈3.4×10³⁸)**从根上解决。
  • 表示:8 组 16 位、冒号分隔;零压缩两规则——省前导零 + :: 折叠连续零组(仅一次);子网标准前缀 /64
  • 优势:海量地址带来端到端无 NATSLAAC 自动配置;固定 40 字节首部 + 取消校验和 + 路由器不分片让转发更快;可选 IPsec。
  • 地址类型:全局单播、链路本地 fe80::、唯一本地、组播 ff00::废弃广播、改用组播
  • 过渡:双栈(最平滑)、隧道(6in4 等穿越 IPv4 网)、NAT64/DNS64(纯 IPv6 访问纯 IPv4)三管齐下;全球原生 IPv6 占比已约半数。

理解了 IPv6 的地址结构与过渡机制,我们就能进一步讨论数据包如何在这些地址之间被选路转发——这正是下一页路由原理与路由器/网关的主题。

上一页:子网掩码与 CIDR 划分 | 下一页:路由原理与路由器/网关