2. IPv6协议基础与地址规划
IPv6不是简单地把IPv4地址从32位扩展到128位,它同时改变了报文的封装方式、地址的层次语义以及终端获取地址的机制。在园区双栈工程中,如果只记住“地址变长了”,后续做前缀分配、网关设计和地址表规划时就会缺少依据。本节从报文结构入手,落到地址类型、前缀分配和园区双栈地址规划,最终给出一份可直接参考的地址规划表设计方法。
一、IPv6报文结构:固定头与扩展头分离
IPv6报文由“IPv6基本头 + 扩展头(0个或多个)+ 上层载荷”组成。基本头固定40字节,字段比IPv4更少,去掉了校验和、分片相关字段和选项字段,把可变部分交给扩展头处理。基本头的关键字段包括:版本(4位,值为6)、流量类别(8位,用于QoS标记)、流标签(20位,用于标识同一业务流)、载荷长度(16位,指基本头之后的总长度)、下一个头(8位,指示紧随其后的头类型)、跳数限制(8位,相当于IPv4的TTL)以及源地址和目的地址(各128位)。
“下一个头”字段是理解IPv6封装的关键:它既可以指向TCP(6)、UDP(17)、ICMPv6(58)等上层协议,也可以指向逐跳选项头(0)、路由头(43)、分片头(44)、目的选项头(60)等扩展头。多个扩展头按顺序串联,形成一条“头链”,直到某个“下一个头”指向真正的上层协议。这种设计让中间路由器在多数情况下只需处理基本头,转发效率更高,也让新功能可以通过新增扩展头实现,而不必改动基本头格式。
与园区工程关系最直接的是ICMPv6(下一个头=58)。邻居请求/邻居通告(NS/NA)承担了IPv4中ARP的地址解析功能,路由器请求/路由器通告(RS/RA)承担了地址自动配置和默认网关下发功能,路径MTU发现也依赖ICMPv6。因此双栈园区中不能简单沿用“过滤所有ICMP”的策略,否则IPv6邻居发现和地址自动配置会直接失效。
二、IPv6地址类型:单播、组播与任播
IPv6取消了广播地址,所有“一对多”通信由组播承担。地址分为三大类:单播(标识单个接口)、组播(标识一组接口,前缀ff00::/8)和任播(标识一组接口,但报文只送达最近的一个)。园区中最常用的是单播地址,它又细分为几种:
- 全球单播地址(GUA):目前全球可路由前缀为2000::/3,园区通常从运营商或上级机构获得一段,如2408:8200:1234::/48。GUA用于终端对外通信和业务访问。
- 链路本地地址(LLA):前缀fe80::/10,每个启用IPv6的接口自动生成,仅在本链路有效。它是邻居发现、路由协议对等体建立的基础,也是园区设备管理面常用的稳定地址。
- 唯一本地地址(ULA):前缀fc00::/7,常用fd00::/8自行分配,类似IPv4私网地址,适合园区内部服务器、管理网段等不需要公网访问的场景。
- 环回地址:::1/128,对应IPv4的127.0.0.1。
- 未指定地址:::/128,用于地址配置前或DAD检测源地址。
组播地址中需要记住几个固定地址:ff02::1表示链路本地所有节点,ff02::2表示链路本地所有路由器,ff02::1:ff00:0/104是请求节点组播地址前缀,用于NS报文的目的地址。理解请求节点组播,才能理解为什么IPv6邻居发现不需要广播。
三、前缀分配方法:从/48到/64的层次划分
IPv6地址规划的核心是“按层次分配前缀”,而不是逐台设备分配地址。典型园区从上级获得一段/48或/56,然后按“区域—楼栋—楼层/业务—VLAN”逐级划分。一个常用的划分逻辑是:
上级分配:2408:8200:1234::/48
├─ 核心与互联:2408:8200:1234:0000::/64
├─ 办公区 A 栋:2408:8200:1234:0100::/64
├─ 办公区 B 栋:2408:8200:1234:0200::/64
├─ 数据中心: 2408:8200:1234:1000::/64
├─ 无线用户: 2408:8200:1234:2000::/64
└─ 管理网: 2408:8200:1234:f000::/64
这里有一个必须遵守的工程约定:终端所在的VLAN网段应使用/64前缀。原因是SLAAC(无状态地址自动配置)规定接口标识为64位,终端通过RA获得/64前缀后自行拼接接口标识。如果给终端网段分配/72或/80,SLAAC将无法正常工作,只能改用DHCPv6。因此规划时应把/64作为“一个广播域/一个VLAN”的标准粒度,/48到/64之间保留的16位用于子网编号,足以支撑数万个VLAN。
前缀分配还要考虑聚合。同一楼栋的多个VLAN尽量落在同一个/56或/60内,这样核心路由表可以只保留一条聚合路由,减少路由条目。例如A栋使用2408:8200:1234:0100::/56,其下再分0101、0102等/64给不同楼层,核心只需发布0100::/56。
四、园区双栈地址规划原则
双栈园区的地址规划不是“IPv4一套、IPv6再随便来一套”,而应让两套地址在管理维度上尽量对齐,降低运维认知负担。建议遵循以下原则:
- VLAN与IPv6子网一一对应:一个VLAN对应一个/64,VLAN ID与IPv6子网编号建立可读映射,例如VLAN 110对应子网0101::/64,便于排障时快速定位。
- 网关地址固定化:每个/64内约定网关使用::1或::254,例如2408:8200:1234:0101::1。统一约定后,终端、DHCPv6和静态路由都容易书写。
- 基础设施使用LLA或ULA:设备互联、路由协议对等体优先使用链路本地地址,管理地址使用ULA或规划内的GUA,避免因运营商前缀变更导致管理中断。
- 服务器地址静态规划:对外服务使用GUA并尽量静态配置或DHCPv6保留,内部服务可用ULA,避免SLAAC随机化带来的地址漂移。
- 预留扩展空间:每个区域预留至少一个/56,避免后期新增楼栋时前缀不连续、无法聚合。
五、实战地址表设计
下面给出一份园区双栈地址规划表的示例(参数为教学示例,实际项目需按运营商分配和业务规模调整)。表中同时列出IPv4与IPv6,便于双栈对照。
| 区域/用途 | VLAN | IPv4 网段 | IPv6 前缀 | IPv6 网关 | 地址分配方式 |
|---|---|---|---|---|---|
| 核心互联 | — | 10.0.0.0/30 | 2408:8200:1234:0000::/64 | LLA | 静态 |
| 办公A栋1层 | 110 | 10.10.1.0/24 | 2408:8200:1234:0101::/64 | ::1 | SLAAC + DHCPv6 |
| 办公A栋2层 | 120 | 10.10.2.0/24 | 2408:8200:1234:0102::/64 | ::1 | SLAAC + DHCPv6 |
| 无线用户 | 200 | 10.20.0.0/22 | 2408:8200:1234:2000::/64 | ::1 | SLAAC + DHCPv6 |
| 数据中心服务器 | 300 | 10.30.0.0/24 | 2408:8200:1234:1000::/64 | ::1 | 静态 / DHCPv6保留 |
| 网络设备管理 | 999 | 10.99.0.0/24 | fd00:1234:999::/64 | ::1 | 静态 |
掌握报文结构、地址类型和前缀分配逻辑后,下一步就可以在设备上落地:接口启用IPv6、配置地址、下发RA或DHCPv6,并用display ipv6 interface、display ipv6 routing-table等命令验证地址与路由是否符合规划表。地址规划表是后续所有配置和排障的基准,建议在项目开工前完成评审并冻结版本。