IPv6 是什么
IPv6 用 128 位地址替代 IPv4 的 32 位,从根本上解决地址枯竭。它在设计上同时做了减法与加法:去掉广播与 IP 头校验和、把头部固定为 40 字节、规定中途路由器不再分片;同时引入 SLAAC 无状态自动配置、NDP 邻居发现与流标签。它与 IPv4 长期并行运行(双栈),不是一次性替换。
基本信息
| 地址长度 | 128 位,写成冒号分隔的十六进制 |
|---|---|
| 头部 | 固定 40 字节,取消了 IP 头校验和 |
| 自动配置 | SLAAC(RA 下发 /64 前缀),也可用 DHCPv6 |
| 地址解析 | NDP 邻居发现,取代 ARP |
| 规范 | RFC 8200(IPv6)、RFC 4291(寻址)、RFC 4862(SLAAC) |
与 IPv4 的差别
| 特性 | IPv6 做法 | IPv4 对照 |
|---|---|---|
| 地址空间 | 128 位,全球充足 | 32 位,长期依赖 NAT |
| 广播 | 取消,改用组播 | 有广播地址与广播风暴 |
| 分片 | 仅源端分片,中间路由器不分片 | 沿途可拆包 |
| 校验和 | IP 头不设校验和 | 头部含校验和 |
| 地址解析 | NDP(组织在 ICMPv6 中) | ARP |
查看 IPv6 状态
查看 IPv6 状态
ip -6 addr show # 看接口上的 v6 地址与 scope
ip -6 route show default # 默认路由通常由 RA 自动生成
sysctl net.ipv6.conf.all.disable_ipv6 # 0=启用,1=全局关闭
cat /proc/sys/net/ipv6/conf/all/accept_ra # 1=接受 RA;2=转发模式下也接受
ping6 -c 2 2606:4700:4700::1111 # 验证出网可达典型使用场景
- 双栈服务器对外提供 IPv6 入口,让 v6 客户端直连不走转换
- 云与容器网络:Kubernetes 双栈、IPv6-only 集群与 Service CIDR
- 物联网设备接入:地址充足,不必层层 NAT
- 故障定位:v4 正常而 v6 不通,多半是安全策略只配了一半
- 迁移评估:核对办公网、DNS、CDN、监控的 v6 就绪度
IPv6 取消 NAT 只是设计偏好,并不意味着内网设备可以直接暴露:全球单播地址能被外部直接扫描,防火墙仍必须是状态化默认拒绝。
迁移落地检查
- 核对 DNS 是否已发布 AAAA 记录,并确认 v6 地址在真实网络里可达
- 确认防火墙的 v6 策略与 v4 等强,而不是「默认全通」的裸奔状态
- 确认服务监听地址为 :: 或双栈,避免只绑定 0.0.0.0 时 v6 客户端连不上
- 抓包确认 v6 路径上的 MTU:v6 不允许中途分片,MTU 黑洞表现更明显
- 确认监控、日志、备份这些旁路系统同样支持 v6,否则排障会缺证据
常见误用
- 把 IPv6 前缀写死在应用配置里:前缀由运营商分配,可能随重拨变化
- 只在部分节点开 v6,用户侧表现为「有时能连、有时不能」,比全断更难查
- 用 SLAAC 自动生成的地址当服务器固定地址:地址会随 RA 变化,服务应配静态地址
- 以为开了 v6 就能关掉 v4:大量客户端仍是 v4-only,双栈要长期共存