1IPV6组播地址

RFC4291定义组播地址格式如下;

|       8      | |  |                    112                                |
    -------+----+------+---------------------------------------------+
     |11111111|flgs|scop|                 group ID                          |
    ------+-----+-------+--------------------------------------------+



组播地址高8bit为固定值FF,此高8bit4bitflgs位,4bit为组播组的泛洪范围。


flgs位为4bit: |0|R|P|T|

flgs位的高1bit为保留,必须设置为0

T位如果为置0表示永久分配或者是well-known组播地址,如果置1表示临时分配动态的地址,不固定。

P位如果置1的话表示此组播地址是一个基于单播前缀的ipv6组播地址。默认为0,如果P位设置为1,那么T位必须为1

R位如果置1的话表示此组播地址是一个内嵌RP地址的ipv6组播地址。默认为0


4bitscope位来限制组播组的传播范围。


0 reserved
        1 Interface-Local scope
        2--链路本地范围        3 reserved
        4-管理本地范围        5--站点本地范围        6 (unassigned)
        7 (unassigned)
        8-组织本地范围        9 (unassigned)
        A (unassigned)
        B (unassigned)
        C (unassigned)
        D (unassigned)
        E--全局范围的        F


112bit为组播地址的可用组ID


举例:link-local范围的组播地址,并且是well-known地址;


所有节点的组播地址:

所有路由器的组播地址:FF02:0:0:0:0:0:0:2

Solicited-Node组播地址:

所有OSPF路由器组播地址: FF02:0:0:0:0:0:0:5

所有OSPFDR路由器组播地址: FF02:0:0:0:0:0:0:6

所有RIP路由器组播地址: FF02:0:0:0:0:0:0:9

所有PIM路由器组播地址: FF02:0:0:0:0:0:0:D


注:FF02开头,FF固定格式,flgs位都为0,表示此组播地址不是一个基于单播的组播地址也不是一个内嵌RP的组播地址,而是一个固定的well-know的组播地址。传播范围为类型2 link-local范围。


2IPV6组播地址的新格式:基于单播前缀的组播地址(RFC3306


|      8     | 4 | 4 |   8    |   8  |            64         |    32   |
    --------+-----+------+------------+--------+---------------------+------------+
     |11111111|flgs|scop|reserved| plen | network prefix | group ID |
     --------+-----+------+------------+--------+---------------------+------------+

8bitFF固定值

4bit flgsP为和T位必须为1,表示此组播地址是一个基于单播前缀的组播地址。

scop,限制范围同上。

8bit保留位,必须为0

plen位,8bit。表示前缀的具体长度。(最长长度为64

Network prefixt,表示具体的前缀长度。

Group id32bit的组播组ID


举例:比如现在有IPV6地址2002::2/64地址,那么它所用上面方法得到的组播地址为;

FF3X:0040:2002::Y(X为组播限制的范围,Y为组ID)用这种方法可以实现全internet网组播地址的不冲突,原因在于没有机构去分配组播地址,但是由IANA分配单播前缀,这样通过单播前缀融入到组播地址中就可以实现不冲突。


3SSM地址格式:RFC3306定义

基于单播前缀的组播地址也定义了SSM地址的格式;固定SSM地址的flag位里P=1plen=0network prefix=0、所以SSM地址的格式如下;


|      8     | 4 | 4 |   8    |   8  |            64         |    32   |
    --------+-----+------+------------+--------+---------------------+------------+
     |    0 |        0                | group ID |
     --------+-----+------+------------+--------+---------------------+------------+

得到SSM组播地址的范围为FF3X::/32X为组播限制的范围。每个SSM地址格式为FF3X::/96


4、内嵌RP地址的IPV6组播地址;

内嵌RP地址的IPV6组播地址,当组播路由器收到这样组播组的数据包就可以检测出该组的RP地址;


| 20 bits | 4 |          64       |   32   |
    ------+----------+
     |xtra bits|RIID|plen| network prefix | group ID |
    +---------+----+----+----------------------+----------+

8bitFF

flgs位必须设置为0111。也就是R P Tbit都设置为1。所以高20bit固定值为FF7X:0.

RIID,4bit RIID表示此内嵌RPipv6地址接口ID

plen8bit长度,表示此RP地址的前缀长度。

Network prefix,表示RP的前缀。

32bit为组播组ID


举例:比如一个RP地址为2022::2/64,那么依据上面的原则得到内嵌此RP地址的组播地址为;

FF7X:0240:2022::Y(x为组播限制范围,y为组播ID)



IPv6组播MAC地址

IPv6组播MAC地址以0x3333开头,低32位为IPv6组播地址的低32位,最终形成48比特的组播MAC地址。如图6所示,IPv6组播地址FF1E::F30E:101所对应的组播MAC地址为33-33-F3-0E-01-01。