Skip to content

IPv6 详解

IPv6(Internet Protocol version 6)是下一代互联网协议,旨在解决 IPv4 地址枯竭问题。


目录


为什么需要 IPv6

IPv4 地址耗尽

对比项IPv4IPv6
地址长度32 位128 位
总地址数约 43 亿约 340 涧(3.4×10^38)
地球人均约 0.5 个约 4.8×10^28 个

IPv6 优势

  • 海量地址空间 — 地球上的每一粒沙子都可以有唯一地址
  • 简化的报头 — 更高效的路由
  • 内置安全 — IPsec 强制支持
  • 更好的移动性 — 优化的移动性支持
  • 消除 NAT — 真正的端到端连接

IPv6 地址格式

IPv6 地址由 128 位组成,分为 8 组,每组 4 位十六进制数:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

完整格式

2001:0db8:85a3:0000:0000:8a2e:0370:7334
├───┬── ─── ─── ─── ─── ─── ─── ───
  1    2    3    4    5    6    7    8

冒分十六进制

每组 4 位十六进制数,组之间用冒号分隔:

十六进制二进制
120010010000000000001
20db80000110110111000
385a31000010110100011
400000000000000000000
500000000000000000000
68a2e1000101000101110
703700000001101110000
873340111001100110100

IPv6 地址简化规则

规则一:前导零省略

每组的前导零可省略,但每组至少保留一位数字:

2001:0db8:0000:0000:0000:0000:0000:0001

2001:db8:0:0:0:0:0:1

规则二:双冒号压缩

连续的全零组可用 :: 替代,每个地址只能使用一次:

2001:db8:0:0:0:0:0:1

2001:db8::1

规则三:IPv4 内嵌型

IPv4 地址可嵌入 IPv6 地址后 32 位:

::ffff:192.168.1.1
::ffff:c0a8:0101    (相同,十六进制表示)

简化示例

原始地址简化后
2001:0db8:0000:0000:0000:0000:0000:00012001:db8::1
fe80:0000:0000:0000:0000:0000:0000:0001fe80::1
2001:0db8:85a3:0000:0000:8a2e:0370:73342001:db8:85a3::8a2e:370:7334

IPv6 地址类型

单播(Unicast)

一对一通信,发送到单个接口。

类型前缀说明
全球单播2000::/3互联网可路由的公有地址
链路本地fe80::/10仅在同一链路/网段通信
唯一本地fc00::/7, fd00::/8私有组织内部使用
环回::1/128本机回环地址

组播(Multicast)

一对多通信,发送到一组接口。

前缀用途
ff00::/8所有组播地址
ff02::1所有节点(链路本地)
ff02::2所有路由器(链路本地)
ff01::1所有节点(本地)

任播(Anycast)

一对最近,一个地址对应多个接口,路由到最近的一个。

多个服务器配置相同任播地址

    路由到最近的一个

IPv6 地址类型速查

┌─────────────────────────────────────────────────────┐
│ IPv6 地址类型                                       │
├─────────────┬───────────────────────────────────────┤
│ 单播         │ 全球单播 (2000::/3)                    │
│             │ 链路本地 (fe80::/10)                   │
│             │ 唯一本地 (fc00::/7)                    │
│             │ 环回地址 (::1)                         │
├─────────────┼───────────────────────────────────────┤
│ 组播 (ff00::/8) │ ff02::1 所有节点                    │
│             │ ff02::2 所有路由器                     │
├─────────────┼───────────────────────────────────────┤
│ 任播         │ 从单播地址空间分配                     │
└─────────────┴───────────────────────────────────────┘

IPv6 特殊地址

地址相当于 IPv4用途
::1/128127.0.0.1本机回环地址
::/1280.0.0.0未指定地址
::ffff:0:0/96-IPv4 映射地址
2001:db8::/32-文档示例地址
fe80::/10169.254.x.x链路本地地址
fc00::/710.x.x.x唯一本地地址

文档示例地址

根据 RFC 3849,文档中应使用以下地址:

bash
2001:db8::/32  - 文档示例专用

注意

这些地址不可在实际网络中使用!


IPv6 过渡技术

双协议栈(Dual Stack)

设备同时支持 IPv4 和 IPv6,根据目标地址自动选择:

┌─────────────────────────────────┐
│         双协议栈主机            │
├───────────────┬─────────────────┤
│   IPv4 协议栈  │   IPv6 协议栈   │
└───────┬───────┴───────┬────────┘
        │               │
        ↓               ↓
   IPv4 网络        IPv6 网络

隧道技术

将 IPv6 包封装在 IPv4 中传输:

技术说明
6to4自动隧道,2002::/16
TeredoNAT 后的 IPv6 连接
ISATAP站点内自动隧道
IPsec隧道模式可封装 IPv6

NAT64/DNS64

允许纯 IPv6 客户端访问 IPv4 服务器:

IPv6 客户端 → NAT64 网关 → IPv4 服务器

            DNS64 将 A 记录转换为 AAAA

IPv6 配置与检测

检查系统 IPv6 支持

bash
# Linux/Mac
ip -6 addr show
ifconfig | grep inet6

# Windows
netsh interface ipv6 show address

# 检测连接
ping6 ipv6.google.com

常见 IPv6 测试地址

地址用途
ipv6.google.comGoogle IPv6 测试
test-ipv6.comIPv6 连通性测试
2001:db8::1文档示例
ff02::1本地所有节点

中国 IPv6 发展

根据 CNNIC 报告,中国 IPv6 部署率约 10-15%,主要集中在运营商骨干网络。家用路由器和终端设备支持仍在推广中。