IPv6 地址架构详解
本文档基于 RFC 4291,梳理了 IPv6 编址的核心模型与规范。作为网络工程师,理解这些基础概念对于排查路由问题、设计网络拓扑至关重要。
1. 概述
本规范定义了 IPv6(互联网协议第 6 版)的编址架构。文档涵盖了编址模型、文本表示、单播/任播/多播地址定义,以及节点的必备地址要求。它替代了早期的 RFC 3513。
2. IPv6 编址
IPv6 地址是 128 位的标识符,用于标记接口或接口集合。地址主要分为三类:
- 单播 (Unicast):标识单个接口。数据包交付至该地址对应的唯一接口。
- 任播 (Anycast):标识一组接口(通常属于不同节点)。数据包交付给'最近'的一个接口,由路由协议决定。
- 多播 (Multicast):标识一组接口。数据包交付给该组内的所有接口。
注意:IPv6 中不存在广播地址,其功能已完全由多播取代。
在地址字段命名上,若名称后接"ID"(如子网 ID),指该字段内容;若接'前缀',则指从左侧开始直至该字段的全部位。
2.1 地址模型
所有 IPv6 地址均分配给接口而非节点。每个接口必须至少拥有一个链路本地单播地址。一个接口可同时拥有多个不同类型的地址。对于不与其他非邻居节点通信的接口(如点到点接口),无需配置作用域大于链路的单播地址。
当前模型沿用 IPv4 习惯,即子网前缀与一条链路关联,同一链路可分配多个前缀。即使仅用于本地通信,也必须配置链路本地地址(如 FE80::/10)以确保基础可达性。
2.2 地址的文本表示
IPv6 地址有三种常规文本形式:
-
首选格式:
x:x:x:x:x:x:x:x,每段为 1~4 位十六进制数。- 示例:
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 - 规则:前导零可省略,但每段至少保留一位。
- 示例:
-
零压缩语法:用
::替换连续的一个或多个 16 位零组。每个地址中::只能出现一次。- 示例:
2001:DB8::8:800:200C:417A::1(回环)::(未指定)
- 示例:
-
IPv4 兼容混合格式:
x:x:x:x:x:x:d.d.d.d。- 示例:
::13.1.68.3或::FFFF:129.144.52.38
- 示例:
2.3 地址前缀的文本表示
采用类似 CIDR 的记法:ipv6-address/prefix-length。
| 前缀描述 | 合法表示 | 非法表示 |
|---|---|---|
| 60 位前缀 | 2001:0DB8::CD30::/60 | 2001:0DB8::CD3/60 |
错误原因:压缩后的段必须保持 16 位对齐,且 :: 扩展后前缀长度需准确。
当同时表示节点地址及子网前缀时,可直接组合:


