IPv4 与 IPv6 的十个关键差异
把 IPv6 当成"地址变长了的 IPv4"是最常见的误解。它是一次协议层面的重构。下面十个差异,覆盖了日常部署与排障中真正会碰到的变化。
1. 地址长度:32 位 → 128 位
| 地址长度 | 数量级 | 写法 | |
|---|---|---|---|
| IPv4 | 32 位 | 约 43 亿 | 192.0.2.1 |
| IPv6 | 128 位 | 约 3.4×10³⁸ | 2001:db8::1 |
128 位不是为了"多",而是为了够用且能分层:前 64 位表示位置(网络),后 64 位表示设备,两级就完成了定位。
2. 报头:变长带校验和 → 固定 40 字节
| IPv4 报头 | IPv6 报头 | |
|---|---|---|
| 长度 | 20~60 字节(含选项) | 固定 40 字节 |
| 首部校验和 | 有 | 无 |
| 选项处理 | 首部内选项字段 | 独立的扩展头链 |
| 关键字段 | TTL、协议、标识/标志/片偏移 | Hop Limit、Next Header、Flow Label |
删除校验和是因为链路层与传输层已有校验,中间路由器不必每跳重算,转发更快。所有可选项改为扩展头(逐跳选项、路由、分片、目的选项等),中间路由器只在必要时才解析,这是 IPv6 转发效率更高的核心原因之一。
3. 分片:路由器可分片 → 只有源端分片
- IPv4:路径上的路由器可以分片。
- IPv6(RFC 8200):分片只能由发送方做。中间路由器遇到过大报文,返回 ICMPv6「Packet Too Big」,由源端调整。
这条变化带来一个经典故障:如果链路上某个防火墙丢弃了 ICMPv6「Packet Too Big」报文,大包会静默消失(表现为"小页面能开、大文件传不动、TLS 握手偶发卡住")。IPv6 要求链路最小 MTU 为 1280 字节,正是为这种情况留出兜底。
4. 地址配置:DHCP 为主 → SLAAC 为主
| 方式 | IPv4 | IPv6 |
|---|---|---|
| 自动配置 | DHCPv4 | SLAAC(路由器通告 RA 驱动) |
| 集中管理 | DHCPv4 | DHCPv6(有状态/无状态) |
| 依赖协议 | ARP | ICMPv6(NDP) |
IPv6 设备插上网线就能通过 RA 自动获得前缀并生成地址,不需要 DHCP 服务器也能上网。这也是很多 IPv6 网络"什么都没配就能通"的原因。
5. 广播:消失
IPv4 有广播地址 255.255.255.255 和子网广播;IPv6 没有广播,一律用组播代替:
- 「找所有邻居」→ 组播到
ff02::1 - 「找所有路由器」→ 组播到
ff02::2 - 「找某一个地址」→ 请求节点组播
ff02::1:ffxx:xxxx
结果是链路噪声显著降低——ARP 那种"喊醒全楼问一句"的场景在 IPv6 里不存在。
6. ARP:被 NDP 取代
IPv6 用邻居发现协议 NDP(RFC 4861)统一承担地址解析、邻居可达性检测、路由器发现、重定向。它跑在 ICMPv6 之上,用组播而非广播。
附带一个有用的新能力:DAD(重复地址检测)。设备在正式启用一个地址前,会先问一句"有人用这个地址吗",避免 IPv4 时代常见的地址冲突。
7. NAT:常态 → 设计上不需要
IPv4 世界 NAT 是必需品,IPv6 设计上假设每台设备都有公网地址,因此:
- 无需端口映射就能从外网访问内网设备;
- P2P、VoIP、在线协作不再需要打洞;
- 端到端加密更容易真正端到端。
但要注意:没有 NAT 不等于没有防火墙。IPv6 网络同样需要状态化防火墙,只是策略从"默认拒绝入站 + 端口映射"变成"默认拒绝入站 + 明确放行"。绝不能因为"没有 NAT 保护"就认为 IPv6 裸奔。
8. IPsec:可选 → 协议栈应支持
IPv4 中 IPsec 是可选扩展;IPv6 规范要求节点应支持 IPsec(RFC 4294 最初写作"必须",RFC 6434 起调整为 SHOULD)。
需要强调的是:"支持 IPsec"不等于"默认加密"。IPv6 流量默认仍是明文,加密与否取决于是否真的配置了安全关联。任何"IPv6 天生加密所以安全"的说法都是错误的。
9. 最小 MTU:576 → 1280 字节
| IPv4 | IPv6 | |
|---|---|---|
| 链路最小 MTU | 576 字节 | 1280 字节 |
| 路径 MTU 发现 | 推荐 | 必需(且不可关闭) |
很多隧道/TUN 设备默认 MTU 1500,承载 IPv6 时未预留开销,就会触发前文提到的 PMTUD 黑洞。遇到"能 ping 通、网页打不开"的 IPv6 故障,MTU 值得优先怀疑。
10. 地址类型:广播 → 任播
| IPv4 | IPv6 |
|---|---|
| 单播 / 组播 / 广播 | 单播 / 组播 / 任播 |
任播让"一个地址、多地服务"成为标准能力,DNS 根、公共解析服务、CDN 都依赖它。这是 IPv4 时代需要靠 BGP 技巧才能勉强实现的能力,到了 IPv6 成为协议原生语义。
小结对照表
| 维度 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32 位 | 128 位 |
| 报头 | 20~60 字节,含校验和 | 40 字节固定,无校验和 |
| 分片 | 路由器可分片 | 仅源端分片 |
| 自动配置 | DHCPv4 | SLAAC / DHCPv6 |
| 广播 | 有 | 无(组播替代) |
| 地址解析 | ARP | NDP(ICMPv6) |
| NAT | 常态 | 不需要 |
| IPsec | 可选 | 协议栈应支持 |
| 最小 MTU | 576 | 1280 |
| 名称解析 | A 记录 | AAAA 记录 |
最重要的结论
IPv6 与 IPv4 是两套不兼容的协议。 它们能在一台设备上共存(双栈),但不会互相"翻译",除非显式部署 NAT64 之类的过渡技术。所以"上 IPv6"从来不是开关,而是一次端到端的连通性检查:终端、网关、链路、DNS、服务器,每一环都要真的支持。
下一篇:《地址规划与子网划分》,进入进阶篇。