组播基础
IP传输的三种方式包括单播、组播和广播。在IP组播中,IP报文从一个源发出,被转发到一组特定的接收者。与传统的单播和广播相比,IP组播可以节约带宽、减少网络负载,被广泛应用于网络电视、远程教育、在线直播和多媒体会议等实时性要求较高的网络业务中。
如图1-1所示,网络中存在信息发送源和信息接收者。对信息感兴趣的用户提出信息需求,信息发送源发出的报文只有感兴趣的用户才会收到。
组播组:用IP组播地址进行标识。用户主机加入组播组后,成为该组播组成员,可以接收发往该组播组的组播数据。
组播源:信息的发送者。如图1-1中的Source。不同的组播源可以向同一个组播组发送报文,一个组播源也可以同时向多个组播组发送组播数据。
组播组成员:加入组播组的用户主机。如图1-1中的HostA和HostC。组播组成员是动态的,可以随时加入或离开组播组。
组播设备:支持组播功能的设备。如图1-1中的各个Device,既可以提供组播路由功能,也可以提供组成员管理功能。
针对不同的组播组成员,组播服务模型可以分为ASM(Any-Source Multicast,任意源组播)和SSM(Source-Specific Multicast,指定源组播)两种服务模型。两种服务模型使用不同的组播组地址范围。
ASM模型只针对组播组提供组播分发。组播组地址作为网络服务标识,任何组播源都可以向该组播组地址发送信息,接收者通过加入该组播组接收发往该组播组的组播报文。ASM模型中的组播组地址在整个组播网络中唯一。
SSM模型针对特定组播源和组播组进行组播数据分发。组播组成员在加入组播组时,可以指定接收或者不接收哪些组播源的数据。加入组播组后,成员主机只会接收到指定组播源发送到该组播组的组播数据。在SSM模型中,不同的组播源之间可以使用相同的组播组地址。
组播技术使用IP组播地址为组播源和组播组成员间的通信提供网络层组播。同时,使用组播MAC地址实现组播数据在本地物理网络中的正确传输。组播数据传输时,由于目的地址是一个成员不确定的组,所以需要将IP组播地址和组播MAC地址进行映射。
D类地址空间最高4位为1110,地址范围从224.0.0.0到239.255.255.255,由IANA(Internet Assigned Numbers Authority,互联网编号分配委员会)分配给IPv4组播使用。IPv4组播地址作如下划分:
IPv4组播地址划分
地址范围 |
含义 |
---|---|
224.0.0.0~224.0.0.255 |
永久组地址 |
224.0.1.0~231.255.255.255 233.0.0.0~238.255.255.255 |
ASM组播地址 |
232.0.0.0~232.255.255.255 |
缺省情况下的SSM组播地址 |
239.0.0.0~239.255.255.255 |
本地管理组地址 |
常见的永久组地址
永久组地址 |
含义 |
---|---|
224.0.0.0 |
未分配 |
224.0.0.1 |
网段内的所有主机和路由器 |
224.0.0.2 |
所有组播设备 |
224.0.0.3 |
未分配 |
224.0.0.4 |
DVMRP(Distance Vector Multicast Routing Protocol,距离矢量组播路由协议)路由器 |
224.0.0.5 |
OSPF(Open Shortest Path First,开放最短路径优先)路由器 |
224.0.0.6 |
OSPF指定路由器 |
224.0.0.7 |
ST(Shared Tree,共享树)路由器 |
224.0.0.8 |
ST主机 |
224.0.0.9 |
RIP-2(Routing Information Protocol version 2,路由信息协议版本2)路由器 |
224.0.0.11 |
移动代理 |
224.0.0.12 |
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器/中继代理 |
224.0.0.13 |
所有PIM(Protocol Independent Multicast,协议无关组播)设备 |
224.0.0.14 |
RSVP(Resource Reservation Protocol,资源预留协议)封装 |
224.0.0.15 |
所有CBT(Core-Based Tree,基于核树)路由器 |
224.0.0.16 |
指定SBM(Subnetwork Bandwidth Management,子网带宽管理) |
224.0.0.17 |
所有SBM |
224.0.0.18 |
VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议) |
IANA规定,IPv4组播MAC地址的高24位为0x01005e,第25位为0,低23位为IPv4组播地址的低23位,映射关系如图1-2所示。IPv4组播地址的高4位固定为1110,对应组播MAC地址的高25位。IPv4组播地址低28位中的低23位映射到组播MAC地址的低23位中,丢失的5位地址信息导致32个IPv4地址映射到同一个MAC地址上。
IPv6地址的长度为128位。IPv6组播地址总是以FF开头。
IPv6组播地址划分
地址范围 |
含义 |
---|---|
FF0x::/32 |
保留组地址 |
FF1x::/32(x不能是1或者2) FF2x::/32(x不能是1或者2) |
ASM组播地址 |
FF3x::/32(x不能是1或者2) |
缺省情况下的SSM组播地址 |
IPv6常用组播地址及含义
范围 |
IPv6组播地址 |
含义 |
---|---|---|
节点(或接口)本地范围 |
FF01::1 |
所有节点(接口)地址 |
FF01::2 |
所有路由器地址 |
|
链路本地范围 |
FF02::1 |
所有节点地址 |
FF02::2 |
所有路由器地址 |
|
FF02::3 |
未分配 |
|
FF02::4 |
DVMRP路由器 |
|
FF02::5 |
OSPF IGP路由器 |
|
FF02::6 |
OSPF IGP DR |
|
FF02::7 |
ST路由器 |
|
FF02::8 |
ST主机 |
|
FF02::9 |
RIP路由器 |
|
FF02::A |
EIGRP路由器 |
|
FF02::B |
移动代理 |
|
FF02::D |
所有PIM路由器 |
|
FF02::E |
RSVP封装 |
|
FF02::1:1 |
Link Name |
|
FF02::1:2 |
所有DHCP代理 |
|
FF02::1:FFXX:XXXX |
Solicited-Node地址,XX:XXXX表示节点IPv6地址的后24位 |
|
站点本地范围 |
FF05::2 |
所有路由器地址 |
FF05::1:3 |
所有DHCP服务器 |
|
FF05::1:4 |
所有DHCP中继 |
|
FF05::1:1000~FF05::1:13FF |
服务位置 |
IPv6组播MAC地址高16位为0x3333,低32位为IPv6组播地址的低32位。IPv6组播地址FF2E::F01E:1的MAC地址映射举例如图1-3所示。因此,在IPv6中会有更多的IPv6组播地址映射到同一个MAC地址。
在组播的发展过程中,形成了一套完整的协议来完成组播数据传输任务。IPv4组播主要包括如下协议:
IGMP(Internet Group Management Protocol,因特网组管理协议):负责IPv4组播成员的管理,运行在组播网络中与主机相连的网段。IGMP协议支持与上游组播路由协议的信息交互,通过组成员的加入和离开来实现组成员关系的维护和管理。IGMP支持3个版本:
IGMPv1:支持ASM模型,需要SSM Mapping技术的支持才能支持SSM模型。
IGMPv2:支持ASM模型,需要SSM Mapping技术的支持才能支持SSM模型。
IGMPv3:支持ASM模型和SSM模型。
PIM(Protocol Independent Multicast,协议无关组播):IPv4网络中的组播路由协议,实现组播数据的路由查找与转发。PIM协议主要包括以下两种:
PIM-DM(Protocol Independent Multicast Dense Mode,协议无关组播-密集模式):适合规模较小、组播组成员相对集中的网络。无需区分ASM模型和SSM模型。
PIM-SM(Protocol Independent Multicast Sparse Mode,协议无关组播-稀疏模式):适合任何形式的网络,尤其是网络规模较大和组成员相对分散的网络。根据数据和协议报文中的组播地址区分ASM模型和SSM模型。
IGMP Snooping(Internet Group Management Protocol Snooping,组播侦听者发现协议窥探):通过侦听上游三层设备和成员主机间的IGMP报文建立组播二层转发表,管理和控制组播报文在二层网络中的转发,有效抑制组播数据的扩散。
MSDP(Multicast Source Discovery Protocol,组播源发现协议):解决多个PIM-SM域之间的互连,共享各个PIM-SM间的组播源信息,实现组播报文的跨域转发。
IPv6组播主要包括如下协议:
MLD(Multicast Listener Discovery,组播侦听者发现协议):负责IPv6组播成员的管理,运行在组播网络中与主机相连的网段。MLD协议支持与上游组播路由协议的信息交互,通过组成员的加入和离开来实现组成员关系的维护和管理。MLD支持2个版本:
MLDv1:支持ASM模型,需要SSM Mapping技术的支持才能支持SSM模型。
MLDv2:支持ASM模型和SSM模型。
PIM(IPv6):IPv6网络中的组播路由协议,实现组播数据的路由查找与转发。适合任何形式的网络,尤其是网络规模较大和组成员相对分散的网络。根据数据和协议报文中的组播地址区分ASM模型和SSM模型。
MLD Snooping(Multicast Listener Discovery Snooping,组播侦听者发现协议窥探):通过侦听上有三层设备和成员主机间的MLD报文建立组播二层转发表,管理和控制组播报文在二层网络中的转发,有效抑制组播数据的扩散。
PIM设备
启用了PIM协议的设备,在PIM设备上执行组播报文的转发。
PIM接口
开启了PIM协议功能的接口称为PIM接口。接收组播报文的PIM接口称为上游接口;发出组播报文的PIM接口称为下游接口。上游接口所在网段称为上游网段;下游接口所在网段称为下游网段。
PIM网络和PIM域
PIM设备之间通过PIM接口相连,组成PIM网络。
PIM域
在某些PIM接口上设置“边界”,可以将一个大的PIM网络划分为多个PIM域。“边界”可以拒绝特定组播报文通过,或者限制PIM消息的传输。
RP(Rendezvous Point,汇聚点)
RP是PIM设备的功能角色,负责收集网络中的组播源信息,组成员信息。
C-RP(Candidate-RP,候选RP)
设备通过自举机制从C-RP中动态选出RP,使不同的RP服务于不同的组播组。
DR(Designated Router,指定路由器)
DR是PIM设备的功能角色,连接组播源的DR负责向RP汇报组播源的信息,称为源端DR;连接组成员的DR负责向RP汇报组成员的信息,称为成员端DR。
C-BSR(Candidate-BSR,候选BSR)
任何一台PIM设备都可以配置成C-BSR,从中选举出BSR。一旦BSR发生故障,其他C-BSR发起新一轮的选举产生新的BSR,从而避免业务中断。
BSR(Bootstrap Router,自举路由器)
BSR是PIM设备的功能角色,负责在PIM-SM域中收集并发布RP信息。BSR是通过C-BSR选举出来的。一个PIM-SM域只能有一个BSR,但是可以有多个C-BSR。
组播分发树
组播报文从一点传输到多点,转发路径呈现树型结构。此转发路径被称为组播分发树(MDT,Multicast Distribution Tree),有两种类型:
RPT(RP Tree,共享树):以RP为根,以连接组成员的DR为叶子。
SPT(Shortest Path Tree,最短路径树):以连接组播源的DR为根,以RP或连接组成员的DR为叶子。
(*,G)和(S,G)
(*,G)是任意源发往组G的报文对应的路由表项,任意源发往组G的报文对应的转发路径为RPT共享树。