2025-05-28

IPv6-Multicast-Address

1. 多播地址
2. IPv6多播地址结构
	2.1 4位标记: 0, R, P, T
	2.2 4位标记的可能组合列表
	2.3 4位范围: 限定多播地址复盖的范围
	2.4 多播数据包的转发范围图
	2.5 可变范围多播地址ff0x~~~
3. IPv4多播地址
	3.1 IPv4多播地址块
	3.2 与作用域多播地址一起使用的相对地址
4. 由IANA分配 (预定义IPv6多播地址)
5. IPv6 恳求节点多播地址
	5.1 IPv6 恳求节点多播地址结构
	5.2 多播以太网MAC地址
	5.3 3种关联地址对应关系
	5.4 多台IPv6设备共用相同的IPv6 恳求节点多播地址 
	5.5 众所周知的IPv6 多播地址与以太网 MAC 地址之间的对应关系 
6. 更多预设的MAC地址
	6.1 特殊的前⼋位字节位 
	6.2 IANA OUI 下的 MAC 地址分配
	6.3 ⽤于 PPP 的CF系列MAC
7. 多播侦听者发现功能 
8. ICMP,MLD,IGMP定义
9. 查看本机多播相关信息的命令

 推荐8年前出版的 IPv6 科普书籍: IPv6技术精要 [美] Rick Graziani 著
  • 第一版英文2012年出版, 夏俊杰 翻译版 2013年出版
  • 第二版英文2017年出版, 孙馀强 王涛译 2020年出版
下文是本书的学习笔记, 及扩展整理. 
距离第二版最初出版已过去8年, 书中提及的一些rfc已经废弃,被更新的文档取代. 
这也是该书最好的一点, 几乎所有重点概念都会注明关联的rfc文档编号. 方便查阅

1. 多播地址

多播机制为一对多, 单播机制为一对一。 
  • 多播寻址可用于链路层(2层),例如以太网多播, 
  • 也可用于互联网层(3层),例如 IPv4 或 IPv6 多播。
IPv6多播前缀 ff00::/8 等价于 IPv4 多播前缀224.0.0.0/4
发往多播群的IP多播数据包的源地址必须为单播 IP地址。 
多播 IP地址只能作为IP 数据包的目的地址,不能作为源地址。 

当流量接收主机仅限于子网内的部分设备时,多播机制要优于广播机制。 IP 多播数据包很有可能会被以太网交换机和网卡(NIC)过滤掉。 让交换机过滤多播帧,可通过以下方法来实现: 
  • IPv4 多播IGMP (Internet 组管理协议)(Internet Group Management Protocol)
  • IPv6 多播 MLD (多播侦听者发现)监听(Multicast Listener Discovery)
RFC 4007 IPv6 Scoped Address Architecture 规定了各种范围的IPv6 地址的特征、用途以及(相关 IPv6 多播数据包的)预期行为。 

2. IPv6多播地址结构

IPv6多播地址由以下4部分组成
1. (8位 前缀) ff00::/8, 即固定的 ff 开头
2. (4位 标记) 标记: 0, R, P, T
3. (4位 范围) 限定多播地址复盖的范围
4. (112位 群ID) 

2.1 4位标记: 0, R, P, T

4位标记: 预留 0 聚合 R 位 前缀 P 位 瞬时 T 位
0值表示: 预留位 未嵌入聚合点 不带前缀信息 由IANA分配 (预定义多播地址)
1值表示: 预留位 嵌入聚合点 基于网路前缀的地址 由多播应用程序(动态)分配的地址

2.2 4位标记的可能组合列表

4位标记 Hex 説明
0000 0 未嵌入聚合点 不带前缀信息 由IANA分配 (预定义多播地址)
0001 1 未嵌入聚合点 不带前缀信息 由多播应用程序(动态)分配的地址
0010 2 未嵌入聚合点 基于网路前缀的地址 由IANA分配 (预定义多播地址)
0011 3 未嵌入聚合点 基于网路前缀的地址 由多播应用程序(动态)分配的地址
0100 4 嵌入聚合点 不带前缀信息 由IANA分配 (预定义多播地址)
0101 5 嵌入聚合点 不带前缀信息 由多播应用程序(动态)分配的地址
0110 6 嵌入聚合点 基于网路前缀的地址 由IANA分配 (预定义多播地址)
0111 7 嵌入聚合点 基于网路前缀的地址 由多播应用程序(动态)分配的地址

2.3 4位范围: 限定多播地址复盖的范围

范围字段 4位范围 Scope 描述
0 预留 Reserved
1 本地接口 Interface 在当前节点内环回;这是单播环回地址的多播等效地址。
2 本地链路 Link-Local 链路本地范围跨越与相应单播范围相同的拓扑区域。不得路由转发
3 本地领域 Realm-Local 领域本地范围定义为大于链接本地范围,由网络拓扑自动确定,
且不得大于以下范围。 基于单播前缀范围
4 本地管理 Admin-Local 管理本地范围是必须进行管理配置的最小范围,
即不能从物理连接或其他非多播相关配置中自动派生出来。
5 本地站点 Site-Local 站点本地范围旨在跨越属于某个组织的单个站点。
6-7 未分配 Unassigned
7 汇聚点标记
8 本地组织 Organization 组织本地范围旨在涵盖属于单个组织的所有站点。
包含通过VPN通过广域网连接到异地的站点
9-D 未分配 Unassigned
E 公网范围 Global 全球范围涵盖互联网上所有可到达的节点——它是无限制的。
F 预留 Reserved

2.4 多播数据包的转发范围图

IPv6技术精要(第二版)(Page:155)图 7-3 IPv6 多播数据包的转发范围 
接口 – 链路 – 站点 – 单位 – 公网





范围为本地链路的IPv6 多播地址一般都是恳求节点多播地址或众所周知的多播地址,会以邻居发现协议消息或路由协议消息的目的地址示人。这部分是普通用户最长接触(无感接触)的多播地址. 每天都会用到, 但却感觉不到他的存在. 

2.5 可变范围多播地址ff0x~~~

Variable Scope Multicast Addresses
These permanently assigned multicast addresses are valid over all scope ranges.  
This is shown by an "X" in the scope field of the address that means any legal scope value.
这些永久分配的多播地址在所有范围范围内均有效。
地址范围字段中的“X”表示任何合法的范围值。
As defined in [RFC4291], IPv6 multicast addresses which are only different in scope represent different groups.  
Nodes must join each group individually.
根据 [RFC4291] 的定义,仅范围不同的 IPv6 多播地址代表不同的组。
节点必须单独加入每个组。
部分可变范围对照表
Node Address(es) Link Address(es) Site Address(es) variable scope Description
ff01::c ff05::c ff0x::c SSDP
ff01::fb ff02::fb ff05::fb ff0x::fb mDNSv6
ff01::fc-ff01::fd ff02::fc-ff02::fd ff05::fc-ff05::fd
ff01::100-ff01::177 ff02::100-ff02::177 ff05::100-ff05::177
ff01::181-ff01::184 ff02::181-ff02::184 ff05::181-ff05::184 ff0x::181-ff0x::184 PTP
ff01::18c ff02::18c ff05::18c ff0x::18c CAPWAP
ff01::201-ff01::202 ff02::201-ff02::202 ff05::201-ff05::202
ff01::204-ff01::206 ff02::204-ff02::206 ff05::204-ff05::206
ff01::2c0-ff01::2ff ff02::2c0-ff02::2ff ff05::2c0-ff05::2ff ff0x::2c0-ff0x::2ff Garmin Marine
ff01::300 ff02::300 ff05::300 ff0x::300 Mbus
ff01::400-ff01::4ff ff02::400-ff02::4ff ff05::400-ff05::4ff
ff01::3486 ff02::3486 ff05::3486 ff0x::3486 IFSF Heartbeat
ff01::bac0 ff02::bac0 ff05::bac0 ff0x::bac0 BACnet
ff01::1:1000/118 ff02::1:1000/118 ff05::1:1000/118 ff0x::1:1000/118 SLPv2
ff01::2:0-ff01::4:ffff ff02::2:0-ff02::4:ffff ff05::2:0-ff05::4:ffff
ff01::b:0-ff01::b:ffff ff02::b:0-ff02::b:ffff ff05::b:0-ff05::b:ffff ff0x::b:0-ff0x::b:ffff Bitcoin
ff01:0:0:0:0:db8::/96 ff02:0:0:0:0:db8::/96 ff05:0:0:0:0:db8::/96 ff0x:0:0:0:0:db8::/96 文档地址

3. IPv4多播地址

本地网络控制块 (224.0.0.0 - 224.0.0.255 (224.0.0/24))  部分内容整合到後面的IPv6多播對照表中.

3.1 IPv4多播地址块

IPv4的D类地址范围, 244.0.0.0/4 (224.0.0.0~239.255.255.255)
地址范围被划分为多个块,每个块分配有特定的用途或行为。 
IP 多播地址范围 描述 可路由 C/ *數 地址數量
224.0.0.0 224.0.0.255 本地子网 (由IANA分配) 24 1 254
224.0.1.0 224.0.1.255 互联网络控制 (由IANA分配) 是的 24 1 254
224.0.2.0 224.0.255.255 AD-HOC块1 应用程序 是的 65024
224.1.0.0 224.1.255.255 保留 16 1 65534
224.2.0.0 224.2.255.255 SDP/SAP块 (已棄用) 私人會話 是的 16 1 65534
224.3.0.0 224.4.255.255 AD-HOC块2 应用程序 是的 16 2 131068
224.5.0.0 224.255.255.255 保留 16 251 16449034
225.0.0.0 231.255.255.255 保留 8 7 117440498
232.0.0.0 232.255.255.255 特定源组播 是的 8 1 16777214
233.0.0.0 233.251.255.255 GLOP 寻址 是的 16515072
233.252.0.0 233.255.255.255 AD-HOC块3 应用程序 是的 14 1 262142
234.0.0.0 234.255.255.255 基于单播前缀 是的 8 1 16777214
235.0.0.0 238.255.255.255 保留 8 4 67108856
239.0.0.0 239.255.255.255 行政范围 是的 8 1 16777214

3.2 与作用域多播地址一起使用的相对地址

Relative Addresses used with Scoped Multicast Addresses
(*)  It is only appropriate to use these values in explicitlyconfigured experiments; they MUST NOT be shipped as defaults in implementations.  
See [RFC3692] for details.
(*) 这些值仅适用于明确配置的实验;它们不得在实现中(现实中)作为默认值提供。
详情请参阅 [RFC3692] 分配有用的实验和测试数字 
这些地址在域名服务 (Domain Name Service) 的 MCAST.NET 和 224.IN-ADDR.ARPA 下列出。
请注意,在以太网或 IEEE 802 网络上使用时,IP 多播地址的低 23 位将放置在以太网或 IEEE 802 网络多播地址 1.0.94.0.0.0 的低 23 位中。 (即多播MAC地址前三段: 01-00-5E)
请参阅“IANA 以太网地址块”部分。
Address(es)  Description  References 
0 SAP Session Announcement Protocol 会话公告
1 MADCAP Protocol 多播地址动态客户端分配协议 [RFC2730]
2 SLPv2 Discovery 服务位置协议
3 MZAP
4 Multicast Discovery of DNS Services
5 SSDP 简单服务发现协议 [UPnP_Forum]
6 DHCP v4
7 AAP
8 MBUS 用于本地协调的消息总线 [RFC3259]
9 UPnP 通用即插即用 论坛 [UPnP_Forum]
10 MCAST-TEST-NET-2 文档 [RFC6676]
11-252 Unassigned 未分配
253 Reserved 保留
254 RFC3692-style Experiment (*) 实验 [RFC4727]
255 Unassigned 未分配

4. 由IANA分配 (预定义IPv6多播地址)

RFC 2375 “IPv6 Multicast Address Assignments”记载了最初分配的IPv6 永久多播地 址。 IPv6 多播地址列表由 IANA 维护,详见 IANA 的IPv6 多播地址空间注册表。 
以下是部分主要内容, 整理出的对照表, 方便查阅.
Scope IPv6 Multicast 以太网多播MAC IPv4 Multicast Description Reference
Local ff01::1 01-00-5e-00-00-01 224.0.0.1 All Nodes Address
所有节点地址 (范围内广播)
[RFC4291]
寻址体系结构
Link ff02::1 33-33-ff-00-00-01
Local ff01::2
224.0.0.2 All Routers Address
所有路由器地址
Link ff02::2 33-33-ff-00-00-02
Site ff05::2
Local ff01::fb 01-00-5e-00-00-fb 224.0.0.251 mDNSv6
多播DNSv6 (UDP:5353)
mDNS 常用于未部署本地 DNS 服务器的小型网络
[RFC6762]
多播DNS
Link ff02::fb 33-33-ff-00-00-fb
Site ff05::fb
Link ff02::3
224.0.0.3 Unassigned 未分配
Link ff02::4
224.0.0.4 DVMRP Routers (Distance Vector Multicast Routing Protocol)
距离矢量多播路由协议
[RFC1075]
Link ff02::5 33-33-ff-00-00-05 224.0.0.5 OSPFIGP (开放最短路径优先 内部网关协议) [RFC2328]
OSPFv2
Link ff02::6 33-33-ff-00-00-06 224.0.0.6 OSPFIGP Designated Routers 指定路由器
Link ff02::7
224.0.0.7 ST Routers 流传输 路由器 (Stream) [RFC1190]
[RFC1819]
Link ff02::8
224.0.0.8 ST Hosts 流传输 主机
Link ff02::9 33-33-ff-00-00-09 224.0.0.9 RIP Routers (路由信息协议) 路由器 [RFC2080]
Link ff02::a 33-33-ff-00-00-0a 224.0.0.10 EIGRP Routers 思科增强型内部网关路由协议 [RFC7868]
Link ff02::b
224.0.0.11 Mobile-Agents 移动代理
Link ff02::c (ff0x::c)
239.255.255.250 SSDP (Simple Service Discovery Protocol) [UpnP_Forum]
Link ff02::d
224.0.0.13 All PIM Routers 所有 (协议无关多播) 路由器
Link ff02::e
224.0.0.14 RSVP-ENCAPSULATION (资源预留协议) 封装
Link ff02::f (ff0x::130)

UpnP 通用即插即用 (Universal Plug and Play) [UPnP_Forum]
Link ff02::10

All-BBF-Access-Nodes (Broadband Forum)
所有 (宽带论坛 系列协议) 接入节点
[RFC6788]
Link ff02::11

All-Homenet-Nodes 所有 家庭网络 节点 [RFC7788]
Link ff02::12
224.0.0.18 VRRP 虚拟路由器冗馀协议
Virtual Router Redundancy Protocol
[RFC9568]
(VRRP)v3
Link ff02::13
224.0.0.119 ALL_GRASP_NEIGHBORS 邻居
GeneRic Autonomic Signaling Protocol
[RFC8990]
通用自主信号
Link ff02::14
224.0.0.122 Network Virtualization Overlay (NVO) BUM Traffic
网络虚拟化复盖 (NVO) BUM 流量
EVPN Broadcast, Unknown Unicast, or Multicast (BUM)
[RFC9624]
Link ff02::16
-
33-33-ff-00-00-16
01-00-5e-00-00-16
-
224.0.0.22
All MLDv2-capable routers (Multicast Listener Discovery)
类似 IPv4 的 (IGMPv3)互联网组管理协议
[RFC9777]
(MLDv2)
Link ff02::1a
224.0.0.69 all-RPL-nodes 低功耗有损路由
Routing Protocol for low - power and Lossy Networks
[RFC6550]
Link ff02::6a
224.0.0.106 All-Snoopers 所有监听器 多播路由器发现 [RFC4286]
Link ff02::6b
224.0.0.107 PTP-pdelay (Precision Time Protocol )精确时间协议 延迟
Link ff02::6c
224.0.0.108 Saratoga
Link ff02::6d
224.0.0.109 LL-MANET-Routers
链路本地-移动自组网 路由器 (MANET)
mobile mesh network 或 mobile ad hoc network
[RFC5498]
Link ff02::6e
224.0.0.110 IGRS (Intelligent Grouping & Resource Sharing)
信息设备智能互联与资源共享协议 简称[闪联]标准

Link ff02::6f
224.0.23.63 iADT Discovery
Link ff02::1:1

Link Name 链路名称
Link ff02::1:2
224.0.0.12 All_DHCP_Relay_Agents_and_Servers
所有 DHCP 中继代理和服务器
客户端侦听UDP546. 服务器侦听UDP547.
[RFC8415]
(DHCPv6)
Link ff02::1:3 01-00-5e-00-00-fc 224.0.0.252 Link-local Multicast Name Resolution
LLMNR可在本地链路上用DNS数据包的格式来执行IP名称解析.
[RFC4795]
(LLMNR)
Link ff02::1:4
224.0.0.36 DTCP Announcement 公告 (有待确认) 数字传输内容保护?
Link ff02::1:5

afore_vdp
Link ff02::1:6
224.0.0.111 Babel (避免环路的距离矢量路由协议) [RFC8966]
Link ff02::1:7
224.0.0.117 DLEP Discovery (Dynamic Link Exchange Protocol) [RFC8175]
Link ff02::1:ff00:0/104

Solicited-Node Address 请求节点地址 [RFC4291]
Link ff02::2:ff00:0/104

Node Information Queries 节点信息查询 [RFC4620]
Site ff05::1:3
224.0.1.141 All_DHCP_Servers (动态主机配置协议) [RFC8415]
Site ff05::1:4

Deprecated (2003-03-12) 已弃用
Site ff05::1:5
224.0.1.186 SL-MANET-ROUTERS 站点本地-移动自组网 路由器
mobile mesh network 或 mobile ad hoc network
[RFC6621]

ff02::fb为IPv6 mDNS (多播DNS)地址。
mDNS 是一种零配置服务,用来将主机名称解析为 IP地址。
mDNS 常用于未部署本地 DNS 服务器的小型网络。
RFC 6762 MulticastDNS

ff02::1:3 为本地网段内的所有 LLMNR(本地链路多播名称解析,Link-Local Multicast Name Resolution)主机地址。
LLMNR 可在本地链路上用 DNS 数据包的格式来执行IP 名称解析。
RFC 4795 Link-Local Multicast Name Resolution

5. IPv6 恳求节点多播地址

ff02::1:ff00:0/104 (Solicited-Node Address) 恳求(或翻译为请求)节点多播地址
IPv6 设备会为接口的每个IPv6 公网单播地址、本地唯一地址以及本地链路地址,自动创建并分配一个IPv6 恳求节点多播地址。
前缀 ff02::1:ff00:0/104 加 对应IPv6单播地址的后24位.
目的地址为IP 多播地址的第3层(多播)数据包在第2层以太网内传播时, 会被封装为目的 MAC 地址为多播地址的以太网(多播)帧 (IP多播地址与多播 MAC 地址之间有一种特殊的对应关系)。
这样就有了以下3种地址: 后面会详述3者的关系.
IPv6 单播地址 > 恳求节点多播地址 > 以太网多播 MAC 地址 

5.1 IPv6 恳求节点多播地址结构

恳求节点多播地址属于多播地址, 所以前16位和所有多播地址定义一致.
  • 1. [ff] (8位 prefix 前缀) ff00::/8, 即固定的 ff 开头
  • 2. [0] (4位 flag 标记) 标记: 0, R, P, T 
  • 3. [2] (4位 Scope 范围) 限定多播地址复盖的范围
后面的112位群ID分为如下几个部分
  • 4. [::] (79位 zeroes) 这里填充79位0 
  • 5. [1:ff] (9位 one) 这里填充9位1
以上共104位固定为恳求节点多播前缀: ff02::1:ff00:0/104 
  • 6. (24位 unicast) 这里是对应单播地址的后24位
由以上6部分组成128位的IPv6恳求节点多播地址

5.2 多播以太网MAC地址

IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters
(RFC 9542  IEEE 802 参数的 IANA 注意事项以及 IETF 协议和文档使用) 规定:
预留以33-33 打头的以太网 MAC 地址(33-33-xx-xx-xxxx),将其作为封装 IPv6 多播数据包的以太网多播帧的目的 MAC 地址。
前缀 33-33 加 对应 IPv6肯求节点多播地址 的后32位 组成48位的 [以太网多播MAC地址]
按照[RFC2464](IPv6 数据包在以太网上的传输)中的规定⽤于 IPv6 多播。
多播 MAC 地址属于⾏政分配的 SLAP (IEEE 802 结构化本地地址规划)

5.3 3种关联地址对应关系

IPv6 单播地址 > 恳求节点多播地址 > 以太网多播 MAC 地址 
  • 只要启用IPv6, 就会自动生成或获取到IPv6单播地址;  
  • 只要有了单播地址, 又会自动生成恳请节点多播地址; 
    •  (固定前缀 ff02::1:ff00:0/104 加上 对应的IPv6单播地址 后24位) 
  • 只要有了恳请节点多播地址, 还会自动生成对应的多播MAC地址. 
    • (固定前缀 33-33- 加上 对应的IPv6恳请节点多播地址 后32位)

3种关联地址对应关系图
IPv6 单播地址 > 恳求节点多播地址 > 以太网多播 MAC 地址 

   


5.4 多台IPv6设备共用相同的IPv6 恳求节点多播地址

由于多个IPv6单播地址的后24位有可能相同, 生成的恳求节点多播地址就相同.
因此可能会出现多台设备监听同一个IPv6 恳求节点多播地址的情况,但这并不会引发任何问题。

在目的地址为 IPv6恳求节点多播地址的高层协议消息(如ICMPv6 邻居恳求消息)中,一般都会包含一个名为“目标 IPv6 地址”的字段。
收到这种高层协议消息时,只有既定的目标 IPv6 设备会做进一步处理,因为其网卡的IPv6 单播地址与消息中的“目标 IPv6 地址”字段值匹配。
其他的IPv6 设备则会被丢弃,因为其网卡的IPv6 单播地址与消息中的“目标 IPv6 地址”字段值不匹配,即便其也监听同一个IPv6 恳求节点多播地址。

5.5 众所周知的IPv6 多播地址与以太网 MAC 地址之间的对应关系

众所周知的IPv6多播地址也有对应的以太网多播MAC地址, 对应关系整理在前面表格里.
4. 由IANA分配 (预定义IPv6多播地址)
在以太网内用多播机制而不是广播机制传递数据(IPv6 数据包)的主要优点是, IPv6 主机的以太网 NIC 可根据目的多播 MAC 地址,来确定是否将以太网多播帧“体内”的数据转交给高层协议处理。 

6. 更多预设的MAC地址

  •  33-33 开头的多播MAC地址 用于IPv6. 
  •  01-00-5E 为前缀则构成IPv4的多播 MAC 地址. 
除了這些多播用途, 还有如下这些预设的MAC地址.

6.1 特殊的前⼋位字节位

6 个⼋位字节的 48 位 MAC 的第⼀个⼋位字节的底部(最低有效)四位具有特殊 含义如图1所⽰,下⾯分别称为 M、X、Y 和 Z 位。 

M bit: 此位通常称为“组”或“多播”位。
  • [0] 如果为零,则表示 MAC 地址为单播。
  • [1] 如果为一,则表示地址为组播(多播或广播)。
此含义与 X、Y 和 Z 位的值无关。

X bit: 此位也称为“通用/本地”位(以前称为“本地/全局”位)。
  • [0] 如果该位为零,则表示 MAC 地址为全局地址,由 IEEE 分配前缀的所有者控制。
  • [1] 如果该位为 1,并且 IEEE 802 结构化本地地址规划 (SLAP) 有效,则 MAC 地址的性质可由 Y 位和 Z 位选择性地确定,如下所述。
以前,如果该位为 1,则表示 MAC 地址被视为“本地”地址,由本地网络运营商分配和控制。

Y&Z : 如果 X 位为零,则这两个位没有特殊含义。
如果 X 位为 1,且 IEEE 802 结构化本地地址规划 (SLAP) 有效, 则这两个位将原本统一的“本地”MAC 地址空间划分为四个象限,如下所示,下文将进一步说明:


0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Quadrant 象限 . . . . Z Y X M . . . . . . . . . . . . . . . .
Administratively Assigned 行政分配 0 0 1
Extended Local 扩展本地 0 1 1
Reserved 保留 1 0 1
Standard Assigned 标准分配 1 1 1

EUI-48 单播标识符 00-00-5E 0000 0 0 0 0 0000 0000 0101 1110
IPv4多播MAC 01-00-5E 0000 0 0 0 1 0000 0000 0101 1110
IPv6多播MAC 33-33 0011 0 0 1 1 0011 0011
用于PPP的CF多播前缀 CF- 1100 1 1 1 1

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

6.2 IANA OUI 下的 MAC 地址分配

  • 以 00-00-5E 为前缀构成单播 MAC 地址,
  • 以 01-00-5E 为前缀构成多播 MAC 地址,
  • 以 02-00-5E 为前缀构成单播改进型 EUI-64 地址,
  • 以 03-00-5E 为前缀构成多播改进型 EUI-64 地址。

摘錄 6.4. 以太网本地网络模块的扩展
通过将 IP 地址的低 23 位放入以太网多播地址 01-00-5E-00-00-00(十六进制)的低 23 位中,即可将 IP 主机组地址映射到以太网多播地址。
由于 IP 主机组地址有 28 个有效位,因此多个主机组地址可能映射到同一个以太网多播地址。
为 IPv4 多播分配 2^23 个地址范围: 
01-00-5E-00-00-00 ⾄ 01-00-5E-7F-FF-FF

6.3 ⽤于 PPP 的CF系列MAC

声明从 CF-00-00 到 CF-FF-FF 的 3 个⼋位字节值为 
IANA 可分配给软件供应商⽤于 PPP 的“OUI” [RFC1661] 
PPP Vendor Specific OUI Options
PPP 供应商扩展 [RFC2153] 使用 IEEE 标准 OUI(组织唯一标识符)来指示供应商特定的功能。
有关联系 IEEE 的详细信息,请参阅 [RFC1700]。
希望将其 IEEE 802 OUI 用于 PPP 供应商扩展的供应商应向 IANA 注册其 OUI。
不需要 IEEE 分配的 OUI 的供应商可以向 IANA 申请“CF0000”范围之外的 PPP 特定 OUI,该范围的“本地分配”位和“广播/多播”位均设置为 1。
有关详细信息,请参阅 [RFC2153]。

The CFxxxx Series
[RFC2153] 描述了一种在没有分配合适的常规 OUI 时使用“伪 OUI”实现特定目的的方法。
这些注册表位于 PPP 参数 IANA 网页上。CF 系列注册表已被 [RFC5342] 关闭。
(SLAP)IEEE 802 结构化本地地址规划, (LLDP) 链路层发现协议.
请参阅:[IANA registry ppp-numbers]。

7. 多播侦听者发现功能

IPv6 路由器要借助多播侦听者发现(MLD)功能,来发现特定子网内的IPv6 多播客 户端(多播侦听设备)。 
在IPv4 网络环境中,IPv4 多播路由器会借助 Internet 群管理协议(IGMP),来管理 多播(接收设备)群。

MLD 定义于RFC 2710 “Multicast Listener Discovery for IPv6"。
MLDv2 定义于RFC 3810 “Multicast Listener Discovery Version 2 (MLDv2) for IPv6” 
MLDv1 支持ASM (Any Source Multicast) 模型, 
而MLDv2 可以直接支持SSM (Source-Specific Multicast) 模型。 
MLD 消息与所有其他的IPv4 和IPv6数据包一样,其源地址也必须是单播地址。 

8. ICMP,MLD,IGMP定义

ICMPv6 是Internet Control Message Protocol Version 6 的缩写, 是一种控制和诊断协议,用于在IPv6 网络中进行管理和诊断。
MLD (Multicast Listener Discovery) 则是ICMPv6 的一个子协议, 负责在IPv6 网络中建立、维护组播组成员关系。 
IGMP(Internet Group Management Protocol)是IPv4 网络中的组播协议, 
MLD 可以理解为IGMP 的IPv6 版本。他们的功能和工作原理是相同的,只是报文格式不同。 
MLDv1 对应IGMPv2,MLDv2 对应IGMPv3。 
IGMP 用于IPv4组播,而ICMPv6 除了用于IPv6组播, 还增加了网络诊断和错误报告。 

9. 查看本机多播相关信息的命令

Windows 查看本機加入多播群, 包含 的 ff 開頭的IPv6, 224 開頭的IPv4
 > netsh interface ipv6 show joins
 > netsh interface ipv4 show joins

Windows 查看邻居缓存, 包含IPv6 ff 與 3333; IPv4 224 與 01005e
 > netsh interface ipv6 show neighbors
 > netsh interface ipv4 show neighbors

Linux及MacOS 系统 显示 加入的多播设备群
 $ netstat -g
 $ ip -6 maddr show 

Linux 查看邻居缓存
 $ ip -6 neigh show 
MacOS 查看邻居缓存
 $ ndp -a 



2025-05-02

IPv6

1. 二层MAC地址解析
2. 数据包
	2.1 包大小
	2.2 途中分片
	2.3 关于分片举个栗子
	2.4 报头
3. IPv6地址
	3.1 IPv6地址类型
	3.2 Multicast
	3.3 单播地址 Unicast
	3.4 IPv6 地址的状态
	3.5 IPv6 地址的作用域
	3.6 IPv6地址池
	3.7 IPv6地址分配
4. 其他差异
	4.1 IPSec安全
	4.2 隐私
	4.3 路由聚合
	4.4 QoS 品质服务
	4.5 对移动特性的支持
5. 小结
	5.1 首先的是成本
	5.2 升级意愿
	5.3 IPv6 升级进行时
	5.4 相关链接

 IPv6与IPv4对比, 深入了解IPv6

1. 二层MAC地址解析

  • IPv4 利用 ARP (地址解析协议) 缓存来维护IPv4地址与二层MAC地址的关系列表. 
  • IPv6 使用 NDP (邻居发现协议) 来互连本地设备, 并将它们连接到本地网络的互联网网关。
Windows下使用如下命令, 可以看到2种地址与MAC的对应关系列表. 
 > arp -a
 > netsh interface ipv6 show neighbors

2. 数据包

2.1 包大小

  • IPv4 最大包 65535 (2^16-1), 最小MTU:68.
  • IPv6 最大包 4294967295 (2^32-1), 最小MTU:1280.
MTU 最大传输单元 (maximum transmission unit)
IPv6规定最小 MTU 为 1,280 个八位字节,但“强烈建议”主机使用路径 MTU 发现功能,以充分利用大于最小 MTU 的 MTU。
补充, 一些家用路由器默认MTU为1500. 若需要手动设置, 可参考这个数值.

2.2 途中分片

  • IPv4 以尽力送达位目的, 中途路由器可以拆包重组后继续传输. 
  • IPv6 与 IPv4 不同,中途路由器不会对大 MTU 的 IPv6 数据包进行分片,这完全由源节点负责。

2.3 关于分片举个栗子

就像发送包裹, 途中上飞机, 发现包裹太大, 超过中途路由器的MTU. 
  •  若是 IPv4 就会拆开包裹, 装进几个小盒子里, 重新打包继续发. 你不知道有多少路由器把你的包裹重新打包过. 
  •  而 IPv6, 就会返回ICMPv6消息: 包裹超重, 无法空运. 
    •   原节点收到消息后可以改用陆运, (其他路由途径, 支持足够大MTU); 
    •   或者按照发现的空运标准重新打包, 继续发空运(最短路径路由). 
这么看IPv6数据包不止支持更大的包, 包裹运输也更让人放心.

2.4 报头

  • IPv4 可变长度报头(20~60字节)。扩展功能使用扩展选项支援, 但总报头限制在60字节以内, 扩展能力有限. 
  • IPv6 固定长度报头(40字节)。扩展功能使用扩展报头实现, 可以无限扩展. 
IPv6 固定长度的报头, 简化了路由, 提高了效率. 使用扩展报头, 支持无限扩展能力. 

3. IPv6地址

一个设备可以有多个接口, 一个接口可以有多个IPv6地址和一个IPv4地址.
IPv6可以使用全0和全1的子网及接口. 

注: 
IPv6 任何包含系统的网段都应该保持/64 前缀.
因为/64前缀长度是支持无状态地址自动分配的前提.
虽然这不是强制的, 但这是推荐的也是当前主流的做法. 

3.1 IPv6地址类型

IPv6地址 主要由如下3种类型
  • 单播地址 Unicast: 单一目标, 唯一标识. 
  • 任播地址 Anycast: 同类设备共同使用的 单播地址. 只有最近的设备应答. 
  • 多播地址 Multicast: 同类设备共同使用的 多播地址. 多设备都会收到. 

未指定地址 Unspecified address (::/128)
表示未获得有效IP. 全0的地址,[::0]. 不能被分配给任何节点,也不能作为目的地址。
在主机初始化且没有取得自己的地址时,未指定地址可以用在IPv6报文的源地址字段, 例如重复地址探测时,NS报文的源地址就是未指定地址。
个人想法: 这个地址是否必要, 功能是否可以用链路本地地址取代.  链路本地地址可以自动生成, 同一个链路不同主机生成相同地址的概率很低, 即使冲突了, 也可以在DAD阶段发现后重新生成. 

Anycast
分配给多台设备的单播地址.  发送到任播地址的数据包只传送给配置了该地址的其中一台最近的设备. 主要为DNS和Http服务, 但业界尚未实施过.  
与普通的单播地址很难分辨. DNS等服务在多播地址有应用.  
目测这类地址可能会废弃(若没有更好的使用方式). 

3.2 Multicast

用于标识一组接口, 且这些接口通常属于不同设备. 发送给多播地址的数据包会被传送到该多播地址标识的所有设备. 不同作用对应不同范围的局部多播. 包含全部节点的多播(取代IPv4的广播.
IANA分配的多播地址
Windows下查看本机加入的多播地址
 >netsh interface ipv6 show joins

3.3 单播地址 Unicast

一个设备可以有多个接口, 一个接口可以有多个IPv6地址和一个IPv4地址.
如下表, 除了回环地址, IPv4同一时间只能有1个地址. 
而IPv6的这些地址可以同时存在, 且全局单播地址还可以有多个. 也可以没有, 只保留链路地址, 内部服务使用. 
单播地址及应用场景范围




































颜色表示作用域 单播地址 Unicast IPv6 说明 相当于 IPv4





主机 环回地址
Loopback address
::1/128 始终存在的固定环回地址.
仅限主机内部使用
127.0.0.1/8





子网
(2层直达)
链路本地单播地址 (LLA)
Link-local unicast
FE80::/10 2层直达范围.
与IPv4的 (APIPA) 地址 (169.254.0.0/16) 类似
169.254.0.0/16





局域网
(可包含子网)
唯一本地单播地址 (ULA)
Unique local unicast
FC00::/7 企业内部(多个部门子网)IP
RFC4193,(2005)取代SLA站点本地地址.
10.0.0.0/8;
172.(16~31).0.0/12;
192.168.0.0/16;
100.(64~127).0.0/10






广域网 全局单播地址 (GUA)
global unicast address
2000::/3 IPv6互联网上全局可路由且可达地址
2000~3FFF开头的地址
公网IP


. . . . . . . . . . .

其中全球单播地址还分为如下2种
  • PA (Provider Aggregatable) 运营商可聚合, 普通用户通常获取到的IP地址
  • PI (Provider Indepedent) 不依赖特定运营商, 类似固定IP, 使用BGP协议联网, 可以自由地选择运营商(ISP}

3.4 IPv6 地址的状态

IPv6 主机通常通过与路由器交互并执行无状态 IPv6 地址自动配置来自动配置 IPv6 地址。
自动配置的地址在被(DAD)验证为唯一后,会处于以下一种或多种状态:
  • Valid 有效:已验证唯一性且可以发送和接收单播流量的地址。自动配置的地址具有由路由器分配的有效生命周期。
  • Preferred 首选:可用于新通信的有效地址。自动配置的地址也具有由路由器分配的首选生存期。
  • Deprecated 已弃用:无效的有效地址,无法用于新的通信。现有通信会话仍可使用已弃用的地址。
  • Invalid 无效:节点无法再发送或接收流量的地址。有效生存期到期后,地址将进入无效状态。
  • DAD 重复地址检测 Duplicate Address Detection 
补充: (Deprecated 已弃用)在当前的Windows11系统下,这种状态被翻译为(受到抨击), 备受吐槽. 
SLAAC 自动配置地址状态






时间 → 验证 优选 Preferred 废除 Deprecated 无效 Invalid

DAD 可以创建
新连接
不能创建
新连接
无连接
. . ← 有效 Valid → . .

3.5 IPv6 地址的作用域

Address%zone_ID, 出现在链路本地地址上. Windows系统用数字, Linux和Mac用接口名称.
个人主观吐槽以下, 这个区域ID突出地址以外, 不同的系统规则还不统一. 只是用于限制地址范围. 但地址本身有128位, 
完全可以用64位前缀的末尾子网作为不同区域的划分. 
或者64位接口ID生成规则里, 将末尾16位组为区域码. 
本地使用的 IPv6 地址的区域 ID
与全局地址不同,链路本地地址前缀可以重复使用。
链路本地地址前缀在每个链路上重复使用。
由于这种地址前缀重复使用功能,链路本地地址具有模糊性。
为了指定链路本地地址分配或位于哪个链路上,IPv6 使用了一个称为 zone identifier 区域标识符 (ID)(也称为 scope 范围 ID)的附加标识符。
区域 ID 指定一个区域,该区域是具有指定网络范围的连接部分。
RFC 4007 中指定的用于识别与本地使用地址关联的区域的语法如下:
Address%zone_ID
Address是本地使用的地址,zone_ID是一个表示区域的整数值(Windows), Linux和macOS系统可能是接口名称。
区域 ID 的值是相对于主机定义的。
因此,不同的主机可能会为同一物理区域确定不同的区域 ID 值。
例如,主机 A 可能选择 3 来表示所连接链路的区域,而主机 B 可能选择 4 来表示同一链路。

对于基于 Windows 的 IPv6 主机,本地使用地址的区域 ID 定义如下:

对于链路本地地址,区域 ID 通常是分配了该地址或将用作链路本地目标发送接口的接口索引。
接口索引是一个从 1 开始的整数,分配给 IPv6 接口,这些接口包括环回接口以及一个或多个隧道接口或 LAN 接口。您可以通过
 > netsh interface ipv6 show interface
命令的显示内容查看接口索引列表。

3.6 IPv6地址池

如下表, IPv6地址池数量级, 目前没有汉字或英文能够描述, 只能使用数字表示. 没有那么大的文字单位. 
按照目前建议的主流/64前缀的地址. 任何一个IPv6的子网能够分配的地址数量都是IPv4整个地址池的40亿个地址的40亿倍
由于 IPv6 的子网就有 64 位,攻击者就需要发送不现实的个数的 ping 才能了解网络映射。 全速全双工的 40Gbps 链路,需要 5000 年才能扫描完单个 64 位的子网。 









4 000 000 000 IPv4地址池(32bit) 2^32









8 000 000 000 世界人口总数约80亿






18 000 000 000 000 000 000 /64前缀子网地址池(64bit) 2^64
340 000 000 000 000 000 000 000 000 000 000 000 000 IPv6地址池(128bit) 2^128
10^39 10^36 10^33 10^30 10^27 10^24 10^21 10^18 10^15 10^12 10^9 10^6 10^3 10n



大陆称



百万 台湾称



quetta ronna yotta zetta exa peta tera giga mega kilo 英语名称



Q R Y Z E P T G M K 符号
. . . 2022 2022 1991 1991 1975 1975 1960 1960 1873 1795 启用时间

3.7 IPv6地址分配

先说IPv4地址分配, 有限的40亿地址, 分配初期就给美国保留了一半.  脑洞一下, 最初设计一个有限的IPv4地址池, 再自己保留一半, 这样是否有限制其他地区发展互联网的考量.  不过NAT的出现大大削弱了地址不足的窘境. 
IPv6 近乎无限的地址池, 要怎么分?
分配过程大致会按如下层次机构负责
  • 1. IANA 互联网号码分配机构 Internet Assigned Numbers Authority 
    • IANA 负责整个IPv6地址池的划分. 负责为5个RIR分配/8地址块. 
  • 2. RIR 地区性互联网注册机构 (Regional Internet Registries) 
    • RIR 从IANA获得的地址再切块, 分配给各地的(LIR, NIR)等机构… 5个RIR的管理范围如下
      • AfriNIC (African Network Information Center) 非洲网络信息中心
      • ARIN (American Registry for Internet Numbers) 美国互联网号码注册中心
      • APNIC (Asis-Pacific Network Information Center) 亚太地区网络信息中心
      • LACNIC (Latin America and Caribbean Network Information Center) 拉美及加勒比海地区网络信息中心
      • RIPE (R. IP Euro. Network Coordination Center) 欧洲IP资源网络协调中心
  • 3. LIR 本地互联网注册机构, NIR 国家/地区互联网注册机构
    • (LIR, NIR) 这一层次就 划分到具体的国家或地区了. (LIR, NIR)负责将地址分配到各地的 ISP等机构.
  • 4. 各地的ISP等机构在分配给企业或个人

截至2025年5月, 统计如下表, 仍然是近乎无限的地址数量... 每个国家或地区都是如此... 
IANA 将地址池切为8块, 其中一块作为全球单播地址使用, 占总池比例: 12.5000%
这1/8再切为许多块, 还有一部分保留中, 已分配数量占总池比例: 7.6200%
RIR 这其中已分配中的一小部分再分配给5个RIR, 占总池比例: 0.2000%
APNIC 其中一个RIR: APNIC 亚太区获得地址数, 占总池比例: 0.0500%
APNIC继续分配给该区域的各个国家及地区, 已分配占总池比例: 0.0033%
China 中国从亚太区获得已分配的近一半地址, 占总池比例: 0.0016%

统计数据来源

4. 其他差异

4.1 IPSec安全

IPv6 支持 Internet协议安全标准 (IPSec) 的认证和加密,支持端到端的安全。
IPv6的网络安全不像IPv4是可选项,IPv6里的网络安全项是强制性的。

4.2 隐私

  • IPv4 用于隐藏地址后八位的 IP 地址掩码
  • IPv6 使用随机临时地址的 IP 隐私扩展

4.3 路由聚合

由于IPv4发展初期的分配规划问题,造成许多IPv4地址分配不连续,不能有效聚合路由。 日益庞大的路由表耗用大量内存,对设备成本和转发效率产生影响,这一问题促使设备制造商不断升级其产品,以提高路由寻址和转发性能。
巨大的地址空间使得IPv6可以方便的进行层次化网络部署。 层次化的网络结构可以方便的进行路由聚合,提高了路由转发效率。

4.4 QoS 品质服务

  • IPv4 并没有专门的手段对QoS进行支持。
  • Ipv6 新增了流标记域,提供QoS保证。

4.5 对移动特性的支持

IPv6协议规定必须支持移动特性。
和移动IPv4相比,移动IPv6使用邻居发现功能可直接实现外地网络的发现并得到转交地址,而不必使用外地代理。
同时,利用路由扩展头和目的地址扩展头移动节点和对等节点之间可以直接通信,解决了移动IPv4的三角路由、源地址过滤问题,移动通信处理效率更高且对应用层透明。

5. 小结

  • IPv4 初代互联网协议, 以尽力送达为目的, 对于安全, 隐私, 品质, 管理等因素支持不足. 还有阴谋的地址不足问题. 
  • IPv6 升级版互联网协议, 修补了上面IPv4出现的设计问题, 地址更是增加到近乎无限(目前确实可以这么理解). 
这么多好处, 升级还这么缓慢?

5.1 首先的是成本

软件需要升级, 老旧的硬件需要更换. 还需要人设计开发新的软硬件, 制定并实施升级计划.
  • 软件: 主流的操作系统 (Windows, macOS, Linux) 都在约2000年前后支持了IPv6. 
  • 硬件: 对于普通用户主要是家用路由器, 调研数据表明
    • 2013年之前生产销售的家庭无线路由器普遍采用WIFI4标准,受限于架构等特性,无法支持IPv6
    • 2013年至2019年期间的产品,WIFI5标准成为主流,其中高端产品开始集成IPv6协议。 但是由于成本和芯片性能的限制,低端产品未能提供IPv6支持
    • 自2019年起,WIFI6标准的产品逐渐占据市场,此类路由器普遍支持IPv6协议,为用户提供了更高效稳定的网络体验。

5.2 升级意愿

  • 一般用户的好处并不明显。 除非有对外提供互联网服务的需要. 
  • 2012年新增了100.64.0.0/10的电信级私有地址池, 企业级的NAT应用使得 ISP 也不急于升级IPv6了.
  • 中小企业的网络服务迁移到电信机房比自己维护服务器划算的多. 也不需要额外申请独立地址. 是IPv4还是IPv6没啥区别. 
  • 大中型企业, 高科技行业不用说, 早都升级了吧. 一些传统大型企业, 大概也和ISP一样,有NAT就不急于升级IPv6.

国内4G, 5G基本上都能同时获取IPv4地址和IPv6地址了
家庭宽带的光猫默认路由模式下, 光猫只有链路地址, 没有全球单播IPv6地址.  
需要手动改为桥接模式, 由自己的电脑或路由器拨号, 即可获得全球单播地址了. 

5.3 IPv6 升级进行时

注: 如上维基百科里提到中国是目前已知唯一倡导单栈网络的国家. 
It is the only country known to advocate towards a single-stack network and had earlier in May 2021

李星:IPv6单栈互联网交换中心的思考(2022)
转载自:微信公众号“下一代互联网创新基地”(id:Cerpark) 

推动全球互联网向IPv6单栈演进 清华大学牵头的10项互联网标准获重大奖项2023/12/20

中国IPv6发展状况白皮书(2024)

IPv6 地址规划与分配(规划参考)

5.4 相关链接


Microsoft-Store-error

导航 (返回顶部) 1. Store初始化失败 1.1 为何要卸载Edge 1.2 如何卸载Edge 1.3 为何删除Edge会影响微软商店 2. 微软商店无法联网 2.1 解除网络隔离的办法有: 3. CheckNetIsolation解除网络隔离 3.1 查...