Skip to content

IPv6 地址分类与 EUI-64

IPv4 把地址粗暴地划成 A/B/C/D/E 类,网络与拓扑耦合在一起。IPv6 重新设计了地址架构,按用途划分类型,并把网络拓扑分离。本文讲解 IPv6 的四大地址类型、EUI-64 自动生成机制,以及 IPv6 相对 IPv4 在架构上的关键改进。


🗂️ IPv6 地址四大类型

类型前缀对应 IPv4 概念用途
全球单播 (GUA)2000::/3公网地址互联网可路由的全球唯一地址
链路本地 (LLA)FE80::/10169.254.x.x(APIPA)仅限同一链路通信,路由器不转发
唯一本地 (ULA)FC00::/7私网地址(10/172.16/192.168)内网使用,不向互联网路由
组播FF00::/8D 类组播 (224.0.0.0/4)一对多通信
任播—(复用单播空间)IPv4 无对应概念一对最近

⚠️ IPv6 没有广播地址

IPv4 既有单播也有广播(全网广播 255.255.255.255、子网广播 x.x.x.255)。IPv6 彻底取消广播,所有一对多通信都走组播。这是 IPv6 在效率和安全上的关键改进——避免广播风暴。


🌍 1. 全球单播地址 (GUA, Global Unicast)

前缀 2000::/3,即前 3 bit 为 001,对应地址范围:

text
0010 0000 ... ... = 2000::

0011 1111 1111 ... = 3FFF:FFFF:...

所以 GUA 覆盖:2000:: ~ 3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF

典型结构(以 /64 子网为例):

text
2001:0db8:abcd:0012:0000:0000:0000:0001
└──── 前 48 bit (全局前缀) ────┘└16bit┘└─ 后 64 bit (接口 ID) ─┘
                                 子网号

网络前缀部分:2001:0db8:abcd:0012/64
接口标识符::0000:0000:0000:0001

💡 前缀 48 vs 64

  • 前 48 bit:由 IANA→RIR→运营商分配的全球路由前缀。
  • 第 49~64 bit:子网号,由企业/站点内部划分。
  • 后 64 bit:接口标识符,标识链路上的一个接口。

前缀 FE80::/10仅限本链路,路由器不会转发LLA 报文到其他链路。

text
FE80:0000:0000:0000:xxxx:xxxx:xxxx:xxxx/10

特点

  1. 接口使能 IPv6 后会自动生成一个 LLA,无需手工配置就能与本链路设备通信。
  2. OSPFv3、路由协议邻居都使用 LLA 建立关系——即使接口没配 GUA,也能跑 OSPFv3。
  3. 路由的下一跳默认是 LLA,而不是 GUA。
  4. 不能跨链路访问(三层不可路由)。
text
AR1 ──g0───g0── AR2
LLA: FE80::1     LLA: FE80::2
GUA: 2001:12::1 GUA: 2001:12::2

OSPFv3 邻居:用 FE80 建邻
静态路由:ipv6 route 2001:3::/64 FE80::2 (下一跳用 LLA)

📝 LLA 与 ARP 的协作

LLA 天然"绑定"一个接口,下一跳写 LLA 就不用再递归查询出接口。这与 IPv4 默认用 GUA 作下一跳形成鲜明对比。


🏠 3. 唯一本地地址 (ULA, Unique Local)

前缀 FC00::/7FC00:: ~ FDFF::),等同于 IPv4 私网地址(10.0.0.0/8 等)。

text
FC00:0000:0000:0000:xxxx:xxxx:xxxx:xxxx/7
其中第 7 bit 区分:
  0 —— IANA 分配(保留未启用)
  1 —— 本地自行分配 (FD00::/8)

⚠️ ULA 的局限

ULA 地址在互联网上不可路由,功能上等价于 IPv4 私网。但 IPv4 的私网地址全球千篇一律(大量重复 192.168.1.0/24),ULA 通过引入全局 ID 增加唯一性,降低企业合并时的地址冲突概率。


👥 4. 组播地址 (Multicast)

前缀 FF00::/8

text
FFXX:....::/16
    └┬┘
   flag + scope

FF 后第一个字节的两位关键域

bit名称含义
高 4 bit (flag)0/10=永久组播;1=临时组播
低 4 bit (scope)0-F作用范围

常见 scope 取值

scope含义示例
1节点本地FF01::1
2链路本地FF02::1 所有主机、FF02::2 所有路由器、FF02::5 OSPFv3
5站点本地FF05::1
E全球FF0E::1

关键组播地址

text
FF02::1           本链路所有主机
FF02::2           本链路所有路由器
FF02::5           OSPFv3 组播
FF02::6           OSPFv3 DR/BDR 组播
FF02::1:FF00:0    请求节点组播(Solicited-Node)

💡 请求节点组播地址

作用是把"广播式 ARP 查询"收窄成"少数设备订阅的组播查询":

text
请求节点组播 = FF02::1:FF + 单播地址后 24 bit

含 GUA 2001:db8:1::2,对应 FF02::1:FF00:2
含 GUA 2001:db8:1::3,对应 FF02::1:FF00:3

只有后 24 bit 相同的设备才侦听同一组播,避免全网都被 ARP 请求打扰。


📍 5. 任播地址 (Anycast)

任播地址复用单播地址空间,不单独划前缀。多个接口配置同一个任播地址,路由器按最近原则把数据送到拓扑上最近的那个配置节点。

text
          Internet
             |
        ┌────┼────┐
       DNS1  DNS2  DNS3      (都配 2001:db8:abcd::53)
      近       远

特点

  1. 任播不能作为源地址(因为发送方不知道数据最终被哪个节点接收)。
  2. 任播地址不执行 DAD 重复地址检测——多个接口本来就用同一地址。
  3. 常用于 Anycast DNS、CDN、就近服务调度。

⚠️ 配置方式

在接口上配置单播地址后追加 anycast 关键字:

text
[Router-G0/0/0] ipv6 address 2001:db8:abcd::53/64 anycast

🧬 EUI-64:从 MAC 自动生成接口 ID

IPv6 接口标识符 64 bit 长,可以用 MAC 地址 + EUI-64 规则自动生成。

步骤

  1. MAC 地址(48 bit) 中间插入 FFFE(16 bit),得到 64 bit。
  2. 翻转 U/L 位(第 7 位,从低位数第 1 bit 为 LSB):0→11→0,表示"本地管理"。
text
MAC:           00-E0-FC-C5-6B-E9   (48 bit)

插入 FFFE:      00E0:FCFF:FEC5:6BE9

翻转 U/L 位:    02E0:FCFF:FEC5:6BE9   (第 1 字节 00 → 02)

📝 为什么翻转 U/L 位?

MAC 的第 7 bit 是 U/L(Universal/Local)位:

  • 0 = 全球唯一(出厂分配)
  • 1 = 本地管理

EUI-64 自动生成的接口 ID 是"由 MAC 改造而来",属于"本地衍生",按规范要把 U/L 位翻成 1。这样从 EUI-64 就能识别出"这是本地生成的",便于和真全球唯一接口 ID 区分。

配置

text
[Router] interface GigabitEthernet 0/0/0
[Router-G0/0/0] ipv6 enable
[Router-G0/0/0] ipv6 address 2001:db8:1::/64 eui-64

设备会用 2001:db8:1:: 前缀 + EUI-64 接口 ID 拼出完整 GUA 地址。


🏗️ IPv6 网络与拓扑的分离(对比 IPv4 的核心改进)

IPv4 把"网络"和"互联拓扑"耦合在同一前缀里:

text
IPv4:
AR1 ───── AR2
1.1.12.1   1.1.12.2 /24
   └──共同网段──┘
   既是"一条网络",也描述了"AR1 和 AR2 在同一链路"

IPv6 把这两个职责拆分

text
IPv6:
AR1 ───── AR2
GUA:  2001:12::1  GUA: 2001:12::2/64   ← "网络/路"
LLA:  FE80::1     LLA: FE80::2          ← "拓扑/由"

OSPFv3 用 LLA 建邻,路由下一跳写 LLA
GUA 用于业务通信
职责IPv4IPv6
谁承载网络前缀本身(如 10.1.12.0/24GUA 前缀
谁承载拓扑同一前缀LLA
下一条写什么GUALLA
改网络前缀会怎样邻居关系跟着变邻居用 LLA,网络前缀变了邻居不乱

⚠️ 这个分离的实战价值

  • 重新编址(换运营商)时,只改 GUA,LLA 不变,OSPFv3 邻居关系不中断。
  • 互联网地址不浪费在"互联链路拓扑"上——LLA 不占全球地址空间。

📋 配置速查

text
ipv6
#
interface GigabitEthernet0/0/0
 ipv6 enable
 ipv6 address 2001:db8:1::1/64               # 手工指定 GUA
 ipv6 address 2001:db8:2::/64 eui-64         # EUI-64 生成 GUA
 ipv6 address fe80::1 link-local             # 手工指定 LLA
 ipv6 address auto link-local                # 自动生成 LLA
 ipv6 address 2001:db8:abcd::53/64 anycast   # 任播
命令生成内容
ipv6 address X::Y/64手工静态 GUA
ipv6 address X::/64 eui-64前缀 + EUI-64 自动拼
ipv6 address fe80::1 link-local手工 LLA
ipv6 address auto link-local自动 LLA(基于 EUI-64)

💡 LLA 自动生成规则

未手工指定时,设备用 FE80:: + EUI-64(基于接口 MAC)自动生成 LLA。所以即使你只配了 ipv6 enable,接口也立刻有一个 LLA。


📚 常见问题

Q:GUA 和 LLA 能同时存在吗? 能,且通常都存在。一个接口可以同时配 1 个 LLA + 多个 GUA。

Q:ULA 能否跨互联网通信? 不能,运营商路由器不路由 ULA。如需对外通信要通过 NAT66(ULA ↔ GUA 转换)或部署 VPN。

Q:虽然有 ULA,IPv6 也需要 NAT 吗? 通常不推荐 NAT66,IPv6 地址充足是其核心价值。ULA 主要用于纯内网隔离。

🤖 AI伴学

IPv6 地址分类比 IPv4 的"按 A/B/C 类切分"更细致,初学者容易混淆 GUA/LLA/ULA/组播/任播的用途。建议用 AI 当陪练:

"我正在学 IPv6 地址分类。请随机给我 20 个 IPv6 地址,让我判断它们分别属于哪种类型(GUA/LLA/ULA/组播/任播),并说出判断依据。"

想了解如何用 AI 生成 IPv6 地址规划表并核对类型,请参考 实践任务:网络基础的 AI 辅助

真人撰写written by human