不少人对 IPv6 的印象停留在"地址不够用了所以要换"。真到手里要改,才发现卡住的从来不是地址长度,而是一整套思维方式要换:没有 ARP 了、没有广播了、NAT 这个用了二十年的"保护伞"没了、地址不用你一个个发了。
这篇文章按"先讲清概念 → 再对照差异 → 最后给一套能落地的完整配置"来组织。示例场景是一家双园区制造企业做双栈改造,覆盖路由器、交换机、防火墙、电脑终端四类设备的真实配置,以及每个设备上"和 IPv4 到底哪里不一样"。命令以华为 VRP 为主,思科 IOS 的差异点单独标注。
一、先搞懂 4 个基础概念(大白话版)
1.1 地址长什么样
IPv4 是 4 段十进制(192.168.1.1),IPv6 是8 段十六进制,冒号分隔:
2001:0db8:0000:0000:0000:0000:0000:0001全长 128 位。写起来太长,所以有两条压缩规则:
- 每段前导 0 可省略:
0db8→db8,0001→1 - 连续多段全 0 可用
::代替(全文中只能出现一次)
上面那个地址压缩后就是:
2001:db8::1⚠️ 新手最容易犯的错:把
::当成"任意多段"。它只能代表一段连续的 0,且一个地址里最多用一次。
1.2 前缀就是网段,而且/64是硬规矩
IPv4 里/24、/26随你切。IPv6 里,普通终端网段必须是/64——这不是习惯,是协议硬要求:
- SLAAC(无状态自动配置)依赖
/64,因为接口 ID 固定占后 64 位 - 某些机制的组播地址映射也按
/64算
所以你拿到运营商给的/48,意味着你有2^16 = 65536个/64子网可用。地址规划的思路从"省着用"变成"按功能随便切"。
| 你拿到 | 可用于终端的子网数 | 相当于 IPv4 的什么 |
|---|---|---|
/64 | 1 个网段 | 一个/24的感觉 |
/56 | 256 个/64 | 常见的企业/家宽分配 |
/48 | 65536 个/64 | 标准企业站点分配 |
1.3 地址类型:广播被彻底取消了
IPv6没有广播,这是和 IPv4 最本质的区别之一。取而代之的是组播和任播。
| 类型 | 前缀/示例 | 对应 IPv4 的什么 | 说明 |
|---|---|---|---|
| 全球单播 GUA | 2000::/3,如2408:xxxx::/32 | 公网地址 | 可全球路由,运营商分配 |
| 链路本地 LLA | fe80::/10 | 169.254.0.0/16 | 每个接口必配,只在本链路有效 |
| 唯一本地 ULA | fc00::/7 | 10/8、192.168/16 | 私网地址,但不建议当 NAT 用 |
| 组播 | ff00::/8 | 224.0.0.0/4 | 取代广播,NDP 全靠它 |
| 任播 | 从单播空间分配 | 无对应 | 多个节点同地址,就近响应 |
两个必须记住的组播地址:
ff02::1 本链路所有节点(相当于广播) ff02::2 本链路所有路由器💡
fe80::链路本地地址是 IPv6 的"地基":接口一ipv6 enable就自动生成,路由协议的邻居、下一跳、NDP 全部跑在它上面。很多"IPv6 配不通"的故障,根源就是 LLA 没起来或者被防火墙挡了。
1.4 地址从哪来?三种方式
| 方式 | 机制 | 类比 IPv4 | 适用场景 |
|---|---|---|---|
| 手工静态 | 管理员敲命令 | 手工配 | 服务器、网络设备等必须固定的节点 |
| SLAAC 无状态 | 路由器发 RA 通告前缀,终端自己生成后 64 位 | 无对应 | 办公终端、IoT,最省事 |
| DHCPv6 有状态 | 服务器下发完整地址+DNS | DHCP | 需要可管理、可审计的环境 |
关键差异:IPv4 的 DHCP 会把默认网关一起下发;而SLAAC 只能拿到地址和前缀,网关靠路由器周期性发 RA 自己通告。DNS 服务器在早期 SLAAC 里也拿不到,需要靠 **RDNSS(RFC 8106)**扩展——这也是很多企业最终选择SLAAC + DHCPv6 无状态(只发 DNS)或纯 DHCPv6的原因。
二、IPv4 vs IPv6:12 处关键差异全对照
这 12 条是改造时真正会"绊倒人"的地方,建议收藏。
| # | 维度 | IPv4 | IPv6 | 坑在哪 |
|---|---|---|---|---|
| 1 | 地址长度 | 32 位 | 128 位 | 前缀规划逻辑完全变了 |
| 2 | 地址解析 | ARP(广播) | NDP(ICMPv6 组播) | 防火墙禁了 ICMPv6 就全网瘫 |
| 3 | 广播 | 有 | 无,只有组播 | 组播要单独管(MLD Snooping) |
| 4 | 自动配置 | DHCP | SLAAC + DHCPv6 | 网关不走 DHCP,走 RA |
| 5 | NAT | 普遍使用 | 设计上不需要/不推荐 | 终端直接暴露公网地址 |
| 6 | IPsec | 外挂 | 原生支持(虽不强制启用) | 加密思路可简化 |
| 7 | 分片 | 中间路由器可分 | 只允许源端分(PMTUD) | 禁 ICMPv6 type 2 就断流 |
| 8 | 报头 | 变长,有校验和 | 定长 40 字节,无校验和 | 转发效率高,但更依赖 PMTUD |
| 9 | 私有地址 | 10/8等 + NAT | ULA + GUA 并存 | ULA 不该拿来做 NAT 出口 |
| 10 | DNS 记录 | A | AAAA(A 记录仍在) | 双栈下解析优先级影响体验 |
| 11 | 路由协议 | OSPFv2/RIP/BGP | OSPFv3/RIPng/BGP4+ | 配置对象从"网段"变"接口" |
| 12 | 地址冲突检测 | 免费 ARP | DAD(重复地址检测) | 地址冲突表现不同 |
第 2、5、7 条是生产事故高发区,后面配置部分会反复提到。
三、实战场景:双园区双栈改造
3.1 需求与拓扑
某制造企业,总部 + 分支各一个园区,通过专线互联。要求不改业务、不影响现网,先做双栈(IPv4 照跑,IPv6 并行上线),出口同时具备 IPv6 能力。
[互联网 / 运营商 IPv6 出口] | [出口防火墙 FW] | [核心路由器 R1] ------专线------ [分支路由器 R2] | | [核心交换机 SW] [分支交换机] / | \ | 办公VLAN 生产VLAN 服务器VLAN 办公VLAN (10) (20) (30) (110) | | | PC终端 工控终端 服务器3.2 地址规划(示例为教学地址,实际以运营商分配为准)
假设运营商分配前缀2408:xxxx:xxxx::/48:
| 位置 | VLAN | IPv6 网段 | 网关 | 分配方式 |
|---|---|---|---|---|
| 总部办公 | 10 | 2408:xxxx:xxxx:10::/64 | ::1 | SLAAC + RDNSS |
| 总部生产 | 20 | 2408:xxxx:xxxx:20::/64 | ::1 | DHCPv6 有状态(需审计) |
| 总部服务器 | 30 | 2408:xxxx:xxxx:30::/64 | ::1 | 手工静态 |
| 总部互联网段 | — | 2408:xxxx:xxxx:fe::/64 | — | 静态互联 |
| 分支办公 | 110 | 2408:xxxx:xxxx:110::/64 | ::1 | SLAAC + RDNSS |
| 专线互联 | — | 2408:xxxx:xxxx:ff::/64 | — | 静态互联 |
✅规划原则:网段号和 VLAN 号对齐(VLAN 10 →
:10::),运维时一眼能对上,这是 IPv6 规划最实用的一条经验。
四、完整配置(一):路由器
4.1 基础配置
<Huawei> system-view [Huawei] sysname R1 # 全局启用 IPv6(思科 IOS 需要 ipv6 unicast-routing 才开启转发) [R1] ipv6 # 上行口:连防火墙 [R1] interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0] ipv6 enable [R1-GigabitEthernet0/0/0] ipv6 address 2408:xxxx:xxxx:fe::2/64 [R1-GigabitEthernet0/0/0] quit # 下行口:连核心交换机(办公网段) [R1] interface GigabitEthernet 0/0/1 [R1-GigabitEthernet0/0/1] ipv6 enable [R1-GigabitEthernet0/0/1] ipv6 address 2408:xxxx:xxxx:10::1/64 # 关键:允许发 RA,否则终端拿不到网关 [R1-GigabitEthernet0/0/1] undo ipv6 nd ra halt [R1-GigabitEthernet0/0/1] quit⚠️ 与 IPv4 的第 1 处差异:IPv4 里接口配完地址就能通;IPv6必须ipv6 enable,否则链路本地地址都不生成,协议全跑不起来。这一行是最常见的漏配。
⚠️ 第 2 处差异:undo ipv6 nd ra halt(华为默认抑制RA)。终端要靠 RA 学网关,不开就等于"DHCP 不下发网关"。思科对应的是默认就发 RA,方向正好相反——跨厂商对接时最容易懵。
4.2 路由:静态 + OSPFv3
# 默认路由指向防火墙 [R1] ipv6 route-static ::/0 2408:xxxx:xxxx:fe::1 # 分支网段走专线 [R1] ipv6 route-static 2408:xxxx:xxxx:110::/64 2408:xxxx:xxxx:ff::2动态路由用 OSPFv3:
[R1] ospfv3 1 # ⚠️ 即使纯 IPv6 环境,router-id 仍是 32 位点分格式,必须手工指定 [R1-ospfv3-1] router-id 1.1.1.1 [R1-ospfv3-1] quit [R1] interface GigabitEthernet 0/0/1 # 配置挂在接口下,不是在 network 网段里宣告(与 OSPFv2 最大的不同) [R1-GigabitEthernet0/0/1] ospfv3 1 area 0⚠️ 与 IPv4 的第 3 处差异:OSPFv2 用network 192.168.1.0 0.0.0.255 area 0宣告网段;OSPFv3 改成在接口下直接ospfv3 1 area 0。而且OSPFv3 的 router-id 仍然写成 IPv4 格式,没有 IPv6 router-id 一说。另外 OSPFv3 的认证不再自带(靠 IPsec),安全性要另外考虑。
五、完整配置(二):交换机
5.1 VLAN 与三层接口
[Huawei] sysname SW-Core [SW-Core] vlan batch 10 20 30 [SW-Core] interface Vlanif 10 [SW-Core-Vlanif10] ipv6 enable [SW-Core-Vlanif10] ipv6 address 2408:xxxx:xxxx:10::1/64 [SW-Core-Vlanif10] undo ipv6 nd ra halt [SW-Core-Vlanif10] quit [SW-Core] interface Vlanif 20 [SW-Core-Vlanif20] ipv6 enable [SW-Core-Vlanif20] ipv6 address 2408:xxxx:xxxx:20::1/64 [SW-Core-Vlanif20] undo ipv6 nd ra halt [SW-Core-Vlanif20] quit # 接入端口 [SW-Core] interface GigabitEthernet 0/0/5 [SW-Core-GigabitEthernet0/0/5] port link-type access [SW-Core-GigabitEthernet0/0/5] port default vlan 105.2 DHCPv6 中继(生产网段要求可审计)
[SW-Core-Vlanif20] dhcpv6 relay destination 2408:xxxx:xxxx:30::10⚠️ 与 IPv4 的第 4 处差异:IPv4 的 DHCP 中继指向服务器的 IPv4 地址;DHCPv6 中继指向的也是地址,但要注意中继报文源地址。如果接口没配 GUA,中继会用 LLA(fe80::)作源,服务器可能无法回包——排障时先看源地址是不是fe80::开头的。
5.3 二层防护:从 IGMP/ARP 换成 MLD/ND
# 组播:IPv4 的 IGMP Snooping → IPv6 的 MLD Snooping [SW-Core] mld-snooping enable [SW-Core] vlan 10 [SW-Core-vlan10] mld-snooping enable [SW-Core-vlan10] quit # 地址欺骗防护:IPv4 的 DHCP Snooping/ARP 防护 → IPv6 的 ND Snooping [SW-Core] nd snooping enable [SW-Core] vlan 10 [SW-Core-vlan10] nd snooping enable⚠️ 与 IPv4 的第 5 处差异:IPv4 时代防私接、防 ARP 欺骗靠DHCP Snooping + DAI;IPv6 里对应的是ND Snooping / RA Guard / DHCPv6 Guard三件套。很多单位做 IPv6 改造时交换机上这层防护压根没配,等于内网裸奔。
🔒强烈建议加 RA Guard:防止内网有人乱发 RA 劫持流量(IPv6 版的"私接路由器")。
[SW-Core] interface GigabitEthernet 0/0/5 [SW-Core-GigabitEthernet0/0/5] ipv6 nd raguard role host
六、完整配置(三):防火墙
这是 IPv6 改造风险最高的一环,因为很多团队会把 IPv4 的安全策略直接复制过来,结果翻车。
6.1 接口与安全域
[USG] ipv6 [USG] interface GigabitEthernet 0/0/1 [USG-GigabitEthernet0/0/1] ipv6 enable [USG-GigabitEthernet0/0/1] ipv6 address 2408:xxxx:xxxx:fe::1/64 [USG-GigabitEthernet0/0/1] quit [USG] firewall zone untrust [USG-zone-untrust] add interface GigabitEthernet 0/0/16.2 安全策略(重点:ICMPv6 不能一刀切)
[USG] security-policy [USG-policy-security] rule name PERMIT_ICMPV6_NDP [USG-policy-security-rule-PERMIT_ICMPV6_NDP] source-zone trust [USG-policy-security-rule-PERMIT_ICMPV6_NDP] destination-zone untrust [USG-policy-security-rule-PERMIT_ICMPV6_NDP] service icmpv6 [USG-policy-security-rule-PERMIT_ICMPV6_NDP] action permit必须放通的 ICMPv6 类型(IPv4 时代"禁 ICMP"的习惯在这里是致命的):
| 类型 | 名称 | 不放通的后果 |
|---|---|---|
| 133 / 134 | RS / RA | 终端拿不到前缀和网关 |
| 135 / 136 | NS / NA | 代替 ARP,禁了就解析不到 MAC,全网不通 |
| 2 | Packet Too Big | PMTUD 失效,大包静默丢弃(网页打不开但不报错) |
| 128 / 129 | Echo Request / Reply | 无法 ping 测试 |
🚨这是第 6 处、也是最致命的一处差异:IPv4 里 ICMP 通常只影响 ping 和少量差错报文,禁了大不了不好排障;IPv6 里 ICMPv6 是控制平面的"承重墙"——NDP、PMTUD、MLD 全在上面。一刀切禁掉,表现是"地址都配好了但就是不通",且极难定位。
6.3 思维转变:NAT 没了
# IPv4 常见做法:出方向做源 NAT nat-policy → source-nat → easy-ip # IPv6:设计上不需要,直接用 GUA 出网 # 如果业务确实需要隐藏内网,才考虑 NAT64 / NPTv6⚠️ 第 7 处差异:不再有 NAT 之后,每一台终端都有全球可路由的地址。这意味着:
- 安全策略要从"默认被 NAT 挡着"改为"显式逐条放行"
- 服务器的 ACL 要按 IPv6 重写,不能沿用 IPv4 思路
- 内网拓扑通过地址规划会暴露(可用临时地址/隐私扩展缓解)
七、完整配置(四):电脑终端
7.1 Windows
图形界面:网卡属性 → 勾选Internet 协议版本 6 (TCP/IPv6)→ 填写地址/前缀长度/网关/DNS。
命令行(管理员):
# 静态地址netsh interface ipv6setaddress"以太网"2408:xxxx:xxxx:30::100/64# 默认路由netsh interface ipv6 add route ::/0"以太网"2408:xxxx:xxxx:30::1# DNSnetsh interface ipv6setdnsservers"以太网"static 2408:xxxx:xxxx:30::53# 查看netsh interface ipv6 show address netsh interface ipv6 show neighbors# 对应 IPv4 的 arp -a7.2 Linux
nmcli(推荐,主流发行版通用):
nmcli connection modify eth0 ipv6.method manual\ipv6.addresses2408:xxxx:xxxx:30::101/64\ipv6.gateway2408:xxxx:xxxx:30::1\ipv6.dns"2408:xxxx:xxxx:30::53"nmcli connection up eth0传统/etc/network/interfaces:
iface eth0 inet6 static address 2408:xxxx:xxxx:30::101 netmask 64 gateway 2408:xxxx:xxxx:30::1⚠️ 第 8 处差异:Linux 上ifconfig已基本被ip取代,而 IPv6 相关查看命令也换了一套——arp -n变成ip -6 neigh,route -n变成ip -6 route。另外要注意**隐私扩展(RFC 4941)**默认可能开启,终端会周期性生成临时地址,做地址审计时会发现"地址对不上"。
八、验证与排错:命令对照表
| 我想干什么 | IPv4 命令 | IPv6 命令(华为 / Windows / Linux) |
|---|---|---|
| 看接口地址 | display ip int brief | display ipv6 interface brief |
| 看路由表 | display ip routing-table | display ipv6 routing-table |
| 看邻居(MAC) | display arp | display ipv6 neighbors |
| 连通性测试 | ping x.x.x.x | ping ipv6 2408::1/ping -6 |
| 路径跟踪 | tracert x.x.x.x | tracert ipv6 2408::1/traceroute6 |
| 终端看邻居 | arp -a | netsh int ipv6 show neighbors/ip -6 neigh |
| 查看 RA | — | display ipv6 nd ra |
8.1 五个高频故障
| 现象 | 根因 | 处理 |
|---|---|---|
终端只有fe80::地址 | 没收到 RA | 检查undo ipv6 nd ra halt |
| 有地址但网关不通 | NDP 被挡 | 防火墙放通 ICMPv6 135/136 |
| 小包通、大包不通 | PMTUD 失效 | 放通 ICMPv6 type 2 |
| 拿到地址但没 DNS | RDNSS 未配/不支持 | 改用 DHCPv6 或配 RDNSS |
| 双栈下访问变慢 | IPv6 优先但质量差 | 调整地址选择策略表(netsh int ipv6 set prefixpolicy) |
💡 最后一个坑值得单独说:双栈环境下系统默认优先 IPv6,如果 IPv6 链路质量不佳(比如隧道、跨境),用户会感觉"网变慢了"。Windows 可用
netsh interface ipv6 show prefixpolicies查看优先级,这是 IPv4 时代完全不存在的问题。
九、迁移路线建议(踩过坑才有的顺序)
- 先双栈,不要硬切。IPv4 保持不动,IPv6 并行上线,业务无感知。
- 地址规划先行。网段号与 VLAN 对齐,为未来留足
/64空间。 - 从内网往外做:终端网段 → 服务器网段 → 出口 → 对外服务(AAAA 记录)。
- 安全策略重写,不要复制。IPv6 策略单独评审,重点确认 ICMPv6 放行范围。
- 补齐二层防护:ND Snooping + RA Guard + DHCPv6 Guard,别让内网裸奔。
- 监控和审计跟上:DHCPv6 日志、ND 表、流日志都要覆盖 IPv6,否则出问题无从查起。
- 最后再考虑 IPv6-only。纯 IPv6 环境需要 NAT64/DNS64 兜底访问 IPv4 资源,复杂度上一个台阶,不建议第一阶段做。
十、一句话总结
IPv6 改造真正的门槛,从来不是"记住 128 位地址",而是三件事:
- 控制平面换了——ARP 变 NDP,而 NDP 跑在 ICMPv6 上,所以禁 ICMPv6 = 自断经脉;
- 安全模型换了——NAT 这层"天然屏障"消失,每台终端都有公网地址,策略必须显式逐条放行;
- 配置对象换了——OSPFv3 在接口下配、网关靠 RA 通告、终端地址可能自己生成,不能照抄 IPv4 的肌肉记忆。
把这三件事想明白,剩下的就是按本文的四类设备配置逐台落地。
本文出自「小树的架构笔记」——两个数据中心云平台的一线运维经验,持续更新。
「DC 云平台架构实战」系列目录:
《两地三中心不是画图:业务系统承载的 3 个真实取舍》 |
《集中式 vs 分布式存储:数据库场景怎么选》 |
《两个数据中心一套 DNS:用 Anycast 把双活流量收敛到一个 IP》 |
《应用无状态化:容灾切换前必须拆掉的第一颗雷》 |
《数据库跨中心同步:切换丢不丢数据,取决于你选的复制模式》
参考与延伸阅读
- RFC 8200 — Internet Protocol, Version 6 (IPv6) Specification
- RFC 4861 — Neighbor Discovery for IPv6
- RFC 4862 — IPv6 Stateless Address Autoconfiguration (SLAAC)
- RFC 8106 — IPv6 Router Advertisement Options for DNS Configuration (RDNSS)
- RFC 4941 — Privacy Extensions for Stateless Address Autoconfiguration
文中地址段
2408:xxxx:xxxx::/48为教学示例,实际部署请使用运营商或 APNIC 分配的前缀。