文档库 最新最全的文档下载
当前位置:文档库 › IPv6组播技术白皮书

IPv6组播技术白皮书

IPv6组播技术白皮书
IPv6组播技术白皮书

IPv6组播技术白皮书

关键词:IPv6,组播,MLD,PIM,Embedded RP,SSM

摘要:本文介绍了IPv6组播地址和IPv6组播协议等技术要点。

缩略语:

缩略语英文全名中文解释DM Dense

Mode 密集模式

ICMP Internet Control Message Protocol 互联网控制报文协议IGMP Internet Group Management Protocol 互联网组管理协议MBGP Multicast Border Gateway Protocol 组播边界网关协议

MLD Multicast Listener Discovery 组播侦听者发现协议MLD Snooping Multicast Listener Discovery Snooping 组播侦听者发现协议窥探MSDP Multicast Source Discovery Protocol 组播源发现协议

PIM Protocol Independent Multicast 协议无关组播

Point 汇集点

RP Rendezvous

SM Sparse

Mode 稀疏模式

Multicast 指定信源组播

SSM Source-Specific

目录

1 概述 (3)

2 IPv6组播技术实现 (3)

2.1 IPv6组播地址 (3)

2.1.1 IPv6组播地址格式 (3)

2.1.2 永久分配的IPv6组播地址 (4)

2.1.3 基于单播前缀的IPv6组播地址 (5)

2.1.4 内嵌RP地址的IPv6组播地址 (6)

2.1.5 IPv6 SSM组播地址 (7)

2.1.6 IPv6组播MAC地址 (7)

2.2 IPv6组播协议 (8)

2.2.1 组播组管理协议 (8)

2.2.2 组播路由协议 (8)

3 参考文献 (9)

1 概述

作为IPv4协议的替代,IPv6协议使用128位的地址结构解决了IP地址不足的问题,

同时对一些特性进行了优化处理。出现于IPv4时代的组播技术,由于其有效解决了

单点发送、多点接收的问题,实现了网络中点到多点的高效数据传送,能够大量节

约网络带宽、降低网络负载,因此在IPv6中的应用得到了进一步的丰富和加强。

IPv6组播与IPv4组播的最大不同在于IPv6组播地址机制的极大丰富,而其它诸如组

成员管理、组播报文转发以及组播路由建立等与IPv4组播基本相同。因此,本文将

重点介绍组播地址对IPv6的支持情况;对于IPv6组播协议,只对其与IPv4组播协议

的异同进行大致的介绍。

2 IPv6组播技术实现

2.1 IPv6组播地址

在介绍IPv6组播地址之前,先简单回顾一下IPv6的地址结构:IPv6地址的长度为

128比特,由使用冒号分隔的八节16比特的十六进制数表示,例如:

FEDC:BA98:7654:3210:FEDC:BA98:7654:3210。

2.1.1 IPv6组播地址格式

IPv6组播地址用来标识一组接口,一般这些接口属于不同的节点。一个节点可能属

于0到多个组播组。发往组播地址的报文被组播地址标识的所有接口接收。

图1IPv6组播地址格式

IPv6组播地址的格式如图1所示,其中各字段的含义如下:

(1) 0xFF:最高8比特为11111111,标识此地址为组播地址。

(2) Flags:4比特。如图2所示,Flags字段中各位的取值如下:

图2Flags字段格式

z最高位为保留位,必须为0。

z R位取0表示非内嵌RP的组播地址;取1则表示内嵌RP的组播地址,此时P、T位也必须置1。

z P位取0表示非基于单播前缀的组播地址;取1则表示基于单播前缀的组播地址,此时T位也必须置1。

z T位取0表示永久分配组播地址;取1则表示非永久分配的组播地址。

(3) Scope:4比特。用来标识此组播组的应用范围,其取值及含义如表1所示。

表1Scope字段的取值及其含义

取值含义

0、3、F 保留(reserved)

1 接口本地范围(interface-local scope)

2 链路本地范围(link-local scope)

4 管理本地范围(admin-local scope)

5 站点本地范围(site-local scope)

6、7、9~D 未分配(unassigned)

8 机构本地范围(organization-local scope)

E 全球范围(global scope)

(4) Group ID:112比特,组播组标识号。用来在由Scope字段所指定的范围内

唯一标识组播组,该标识可能是永久分配的或临时的,这由Flags字段的T

位决定。

2.1.2 永久分配的IPv6组播地址

根据RFC 4291,目前已被永久分配的IPv6组播地址如表2所示。

表2永久分配的IPv6组播地址

名称地址说明

保留组播地址z FF0x:: 不能分配给任何组播组

z FF01::1(节点本地)

-

所有节点组播地址

z FF02::1(链路本地)

名称地址说明

所有路由器组播地址z FF01::2(节点本地)

z FF02::2(链路本地)

z FF05::2(站点本地)

-

被请求节点组播地址z FF02::1:FFxx:xxxx 由在被请求节点单播或任播地址的低24位前增加地址前缀FF02::1:FF00::/104而得,如4037::01:800:200E:8C6C对应于FF02::1:FF0E:8C6C

说明:

表2中的x代表0~F的任意一个十六进制数。

2.1.3 基于单播前缀的IPv6组播地址

RFC 3306中规定了一种动态分配IPv6组播地址的方式——基于单播前缀的IPv6组

播地址。这种IPv6组播地址中包含了其组播源网络的单播地址前缀,通过这种方式

分配全局唯一的组播地址。

图3基于单播前缀的IPv6组播地址格式

基于单播前缀的IPv6组播地址的格式如图3所示,其中各字段的含义如下:

(1) Flags字段的R位置0,P、T位则分别置1,表示基于单播前缀的组播地

址。

(2) Reserved:8比特。保留字段,必须为0。

(3) Plen:8比特。表示网络前缀的有效长度(单位为比特)。

(4) Network prefix:64比特。表示该组播地址所属子网的单播前缀,有效长度

由Plen字段指定。

(5) Group ID:缩短为32比特,含义不变。

说明:

其它字段的介绍请参见“2.1.1 IPv6组播地址格式”一节。

例如:单播前缀为3FFE:FFFF:1::/48的网络分配基于单播前缀的组播地址为

FF3x:30:3FFE:FFFF:1::/96(x表示任意合法的Scope)。

2.1.4 内嵌RP地址的IPv6组播地址

1. 地址格式

嵌入式RP(Embedded RP)是IPv6 PIM中特有的RP发现机制,该机制使用内嵌

RP地址的IPv6组播地址,使得组播路由器可以直接从该地址中解析出RP的地址。

图4内嵌RP地址的IPv6组播地址格式

如图4所示,内嵌RP地址的IPv6组播地址使用基于单播前缀的IPv6组播地址格式,

其中各字段的含义如下:

(1) Flags字段的R、P和T位均置1,表示内嵌RP地址的组播地址。

(2) Reserved:4比特。保留字段,必须为0。

(3) RIID:4比特。表示RP地址的接口ID。

(4) Plen:8比特。表示RP地址前缀的有效长度(单位为比特)。

(5) Network prefix:64比特。表示RP地址前缀,有效长度由Plen字段指定。

(6) Group ID:缩短为32比特,含义不变。

说明:

其它字段的介绍请参见“2.1.1 IPv6组播地址格式”一节。

2. 计算规则

内嵌于IPv6组播地址中的RP地址的计算规则如下:

(1) 先将IPv6组播地址Network prefix字段的前Plen位作为RP地址的网络前

缀;

(2) 再将IPv6组播地址RIID字段填充到RP地址的最低4位;

(3) 最后,将RP地址的所有剩余位补0。

例如:对于IPv6组播地址FF7E:F40:2001:DB8:BEEF:FEED::1234,内嵌于其中的

RP地址的前缀为Network prefix字段的前Plen(这里为0x40 = 64 bits)位,最低4

位与RIID字段同为0xF,其余位均为0,如图5所示。

图5嵌入式RP计算举例

3. 应用举例

假设网络管理员想在2001:DB8:BEEF:FEED::/64网段中设置RP,则内嵌RP地址的

IPv6组播地址为FF7x:y40:2001:DB8:BEEF:FEED::/96,可分配32比特的Group

ID,内嵌于其中的RP地址为2001:DB8:BEEF:FEED::y/64。

如果网络管理员想在IPv6组播地址中保留更多可分配的Group ID,可以选择更短的

RP地址前缀:譬如取Plen = 0x20 = 32 bits,则此时内嵌RP地址的IPv6组播地址

为FF7x:y20:2001:DB8::/64,可分配64比特的Group ID,内嵌于其中的RP地址为

2001:DB8::y/32。

说明:

本节中的x表示任意合法的Scope,y代表1~F的任意一个十六进制数。

2.1.5 IPv6 SSM组播地址

IPv6 SSM组播地址也使用基于单播前缀的IPv6组播地址格式,其中的Plen字段和

Network prefix字段均取0。按照这个规定,IPv6 SSM组播地址范围为FF3x::/32(x

表示任意合法的Scope)。

2.1.6 IPv6组播MAC地址

IPv6组播MAC地址以0x3333开头,低32位为IPv6组播地址的低32位,最终形成48

比特的组播MAC地址。如图6所示,IPv6组播地址FF1E::F30E:101所对应的组播

MAC地址为33-33-F3-0E-01-01。

图6IPv6组播地址的MAC地址映射举例

2.2 IPv6组播协议

IPv6支持的组播协议包括MLD、MLD Snooping、IPv6 PIM和IPv6 MBGP等。

2.2.1 组播组管理协议

MLD协议源自IGMP协议——MLDv1对应于IGMPv2,MLDv2对应于IGMPv3。与

IGMP协议采用IP协议号为2的报文类型不同,MLD协议采用ICMPv6(IP协议号为

58)的报文类型,包括MLD查询报文(类型值130)、MLDv1报告报文(类型值

131)、MLDv1离开报文(类型值132)和MLDv2报告报文(类型值143)。MLD

协议与IGMP协议除报文格式不同外,协议行为完全相同。

同样地,MLD Snooping与IGMP Snooping协议也基本相同。

2.2.2 组播路由协议

IPv6 PIM协议与IPv4 PIM协议除报文中IP地址结构不同外,其它协议行为基本相

同,IPv6 PIM也支持SM、DM和SSM这三种模式。

IPv6 PIM发送链路本地范围的协议报文(包括PIM Hello、Join-Prune、Assert、

Bootstrap、Graft、Graft-Ack和State-refresh报文)时,报文的源IPv6地址使用发

送接口的链路本地地址;IPv6 PIM发送全球范围的协议报文(包括Register、

Register-Stop和C-RP Advertisement报文)时,报文的源IPv6地址使用发送接口

的全球单播地址。

IPv6组播并不支持MSDP协议,如果需要接收来自其它IPv6 PIM域的组播数据,有

以下两种实现方式:

z通过其它方式(譬如广告等)直接获取其它IPv6 PIM域内的组播源地址,使用IPv6 PIM-SSM发起指定源组的加入;

z使用嵌入式RP机制,通过嵌入RP地址的IPv6组播地址来获取其它IPv6 PIM域内的RP地址,向其它域内的RP发起组加入。

对于域间IPv6组播路由信息的传递,则可以使用IPv6的MBGP协议,其与IPv4的

MBGP协议也基本相同。

3 参考文献

z RFC 4291:IP Version 6 Addressing Architecture

z RFC 3306:Unicast-Prefix-based IPv6 Multicast Addresses

z RFC 3956:Embedding the Rendezvous Point (RP) Address in an IPv6 Multicast Address

Copyright ?2008 杭州华三通信技术有限公司版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

本文档中的信息可能变动,恕不另行通知。

相关文档