2. IPv6地址架构与双栈编址规划

IPv6不是简单地把IPv4地址从32位扩展到128位,它同时改变了地址的层次语义、分配方式和主机标识生成机制。理解这些差异,是后续做动态路由和双栈工程规划的前提。本节从地址类型、子网划分、双栈分配策略三个层面展开,并给出一个可复用的编址规划案例。

一、IPv6地址类型与结构

IPv6单播地址由全局路由前缀 + 子网ID + 接口标识(IID)三段构成。典型运营商分配场景下,用户获得一个 /56 或 /48 前缀,其中 /64 作为标准子网边界,接口标识固定为64位。这一约定非常重要:SLAAC(无状态地址自动配置)依赖64位IID,若子网前缀长度不是 /64,SLAAC将无法正常工作。

常见地址类型包括:

  • GUA(全局单播地址):2000::/3 范围内,用于公网可达通信,是双栈环境中的主力地址。
  • ULA(唯一本地地址):FC00::/7,类似IPv4私网地址,用于内部通信,不经过公网路由。
  • LLA(链路本地地址):FE80::/10,每接口自动生成,用于邻居发现、路由协议报文,始终存在。
  • 组播地址:FF00::/8,替代IPv4广播,如 FF02::1(所有节点)、FF02::2(所有路由器)、FF02::5/6(OSPFv3)。
  • 任播地址:从单播空间分配,多个节点共享同一地址,路由选择最近节点,常用于DNS根和CDN。

需要特别区分的是:IPv6没有广播地址,ARP被NDP(邻居发现协议)取代,NDP通过ICMPv6在链路本地地址上完成地址解析和重复地址检测(DAD)。

二、子网划分方法

IPv6子网划分的核心思路是“按位切分前缀,保留 /64 作为终端子网”。假设运营商分配 2001:db8:acad::/48,则可用16位子网空间,理论上可划分 2^16 = 65536 个 /64 子网。工程中通常按“区域—楼层—功能”三级划分,而不是一次性用尽。

例如:

2001:db8:acad:0000::/64   核心互联
2001:db8:acad:0010::/64   办公区A
2001:db8:acad:0020::/64   办公区B
2001:db8:acad:0100::/64   服务器区
2001:db8:acad:0200::/64   无线访客
2001:db8:acad:0F00::/64   管理网段

这种“跳号分配”保留了扩展余量:每个功能区预留一段连续子网,后续新增楼层或业务时无需重新规划。相比IPv4中常见的 /24 切分,IPv6子网数量充足,规划重点从“节省地址”转向“可读性与可聚合性”。

三、双栈环境下的地址分配策略

双栈意味着同一接口同时运行IPv4和IPv6协议栈,但两套地址的分配逻辑并不相同。工程上推荐以下策略:

  • IPv6优先,IPv4兜底:终端通过SLAAC或DHCPv6获取GUA,同时保留DHCPv4地址。应用层遵循RFC 6724地址选择规则,优先使用IPv6。
  • 服务器双栈固定地址:服务器不使用SLAAC随机IID,而是手工配置或DHCPv6固定分配,便于ACL和监控。
  • 管理网段独立:设备管理地址使用独立子网,IPv4和IPv6管理地址成对规划,避免混用业务地址。
  • DNS双记录:同一主机名同时发布A和AAAA记录,客户端根据自身栈能力选择。
双栈不是“两套网络各管各的”,而是共享同一物理链路和路由域。规划时要确保IPv4和IPv6的拓扑、VLAN、路由策略保持一致,否则会出现“IPv6通、IPv4不通”或反向的割裂现象。

四、编址规划案例

某园区网获得运营商前缀 2001:db8:1000::/48,内部使用私有IPv4 10.10.0.0/16。规划目标:核心、办公、服务器、无线、管理五类区域,每类预留16个 /64 子网。

区域IPv6子网IPv4子网分配方式
核心互联2001:db8:1000:0000::/6410.10.0.0/24手工
办公区2001:db8:1000:0010::/6410.10.10.0/24SLAAC + DHCPv4
服务器区2001:db8:1000:0100::/6410.10.100.0/24DHCPv6固定 + 静态
无线访客2001:db8:1000:0200::/6410.10.200.0/24SLAAC + DHCPv4
管理网段2001:db8:1000:0F00::/6410.10.250.0/24手工

该方案中,IPv6子网ID采用“区域号+预留位”的十六进制编码,例如办公区从 0010 开始,服务器区从 0100 开始,管理网段固定在 0F00。这样从地址本身就能判断设备归属,便于排障和ACL编写。IPv4侧则沿用原有 /24 划分,保持双栈映射关系清晰。

双栈编址规划:前缀切分与区域映射 运营商分配前缀 2001:db8:1000::/48 子网ID空间(16位) 0000 ~ FFFF 终端子网边界 /64(IID 64位) 区域子网映射 核心互联 :0000::/64 办公区 :0010::/64 服务器区 :0100::/64 无线访客 :0200::/64 管理 :0F00::/64 双栈地址映射关系 区域 IPv6 地址 IPv4 地址 分配方式 核心互联 2001:db8:1000:0000::/64 10.10.0.0/24 手工 办公区 2001:db8:1000:0010::/64 10.10.10.0/24 SLAAC+DHCPv4 服务器区 2001:db8:1000:0100::/64 10.10.100.0/24 DHCPv6固定 无线访客 2001:db8:1000:0200::/64 10.10.200.0/24 SLAAC+DHCPv4 子网ID采用区域编码,保留扩展余量;IPv4与IPv6子网一一对应,便于双栈排障

从图中可以看出,IPv6规划的关键不是“算够不够用”,而是“编码是否可读、是否可聚合、是否给未来留出连续空间”。双栈环境下,IPv4和IPv6的子网边界尽量对齐,能让路由汇总、ACL策略和故障定位都更简单。完成编址规划后,下一步才是把地址配置到接口、启用路由协议并验证双栈连通性。