组播地址简介
为了使组播源和组播组成员进行通信,需要提供网络层组播,使用IP组播地址。为了在本地物理网络上实现组播信息的正确传输,需要提供链路层组播,使用组播MAC地址。必须存在一种技术将IP组播地址映射为组播MAC地址。
IPv4组播地址
IANA(Internet Assigned Numbers Authority,互联网编号分配委员会)将D类地址空间分配给IPv4组播使用。IPv4地址一共32位,D类地址最高4位为1110,因此地址范围从224.0.0.0到239.255.255.255,具体分类及含义见表1。
表1 IPv4组播地址的范围及含义:
表2 常见的永久组地址列表:
IPv6组播地址
IPv6地址长度是128位,在RFC4291中对组播地址的定义如图1所示。
图1 IPv6组播地址的格式
和IPv4组播地址相比,IPv6组播地址有了明确的Group ID字段用于标识组播组。
- 0xFF:最高8位为11111111,标识此地址为组播地址。即IPv6组播地址总是以FF开头。
- Flags字段(4位),用来标识组播地址的状态。格式如下:
图2 Flags字段格式
Scope字段(4位):用来标识组播组的应用范围,例如是只包含同一本地网络、同一站点、同一机构中的节点,还是包含全球地址空间内的任何节点。其含义如下:
表4 Scope字段的取值及含义
Group ID(112位):组播组标识号。用来在由Scope字段所指定的范围内唯一标识组播组,该标识可能是永久分配的或临时的,这由Flags字段的T位决定。
固定的IPv6组播地址的范围及含义如表5、表6。
表5 IPv6组播地址的范围及含义
表6 IPv6常用组播地址范围及含义
IPv4组播MAC地址映射关系
以太网传输IPv4单播报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播数据时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用IPv4组播MAC地址,即IPv4组播地址映射到链路层中的地址。
IANA规定,IPv4组播MAC地址的高24位为0x01005e,第25位为0,低23位为IPv4组播地址的低23位,映射关系如图3所示。例如组播组地址224.0.1.1对应的组播MAC地址为01-00-5e-00-01-01。
图3 IPv4组播地址与IPv4组播MAC地址的映射关系
IPv4组播地址的前4位是固定的1110,对应组播MAC地址的高25位,后28位中只有23位被映射到MAC地址,因此丢失了5位的地址信息,直接结果是有32个IPv4组播地址映射到同一MAC地址上。例如IP地址为224.0.1.1、224.128.1.1、225.0.1.1、239.128.1.1等组播组的组播MAC地址都为01-00-5e-00-01-01。网络管理员在分配地址时必须考虑这种情况。
IPv6组播MAC映射关系
IPv6组播MAC地址的高16位为0x3333,低32位为IPv6组播地址的低32位。如图4所示,是IPv6组播地址FF01::1111:1的MAC地址映射举例。
图4 IPv6组播地址的MAC地址映射举例
可见IPv6中会有更多的组地址使用同一个MAC地址。