组播基础

IP传输的三种方式包括单播、组播和广播。在IP组播中,IP报文从一个源发出,被转发到一组特定的接收者。与传统的单播和广播相比,IP组播可以节约带宽、减少网络负载,被广泛应用于网络电视、远程教育、在线直播和多媒体会议等实时性要求较高的网络业务中。

组播基本概念

如图1-1所示,网络中存在信息发送源和信息接收者。对信息感兴趣的用户提出信息需求,信息发送源发出的报文只有感兴趣的用户才会收到。

组播数据传输示意图

image.png

组播组:用IP组播地址进行标识。用户主机加入组播组后,成为该组播组成员,可以接收发往该组播组的组播数据。

组播源:信息的发送者。如图1-1中的Source。不同的组播源可以向同一个组播组发送报文,一个组播源也可以同时向多个组播组发送组播数据。

组播组成员:加入组播组的用户主机。如图1-1中的HostA和HostC。组播组成员是动态的,可以随时加入或离开组播组。

组播设备:支持组播功能的设备。如图1-1中的各个Device,既可以提供组播路由功能,也可以提供组成员管理功能。

组播服务模型

针对不同的组播组成员,组播服务模型可以分为ASM(Any-Source Multicast,任意源组播)和SSM(Source-Specific Multicast,指定源组播)两种服务模型。两种服务模型使用不同的组播组地址范围。

ASM模型

ASM模型只针对组播组提供组播分发。组播组地址作为网络服务标识,任何组播源都可以向该组播组地址发送信息,接收者通过加入该组播组接收发往该组播组的组播报文。ASM模型中的组播组地址在整个组播网络中唯一。

SSM模型

SSM模型针对特定组播源和组播组进行组播数据分发。组播组成员在加入组播组时,可以指定接收或者不接收哪些组播源的数据。加入组播组后,成员主机只会接收到指定组播源发送到该组播组的组播数据。在SSM模型中,不同的组播源之间可以使用相同的组播组地址。

组播地址

组播技术使用IP组播地址为组播源和组播组成员间的通信提供网络层组播。同时,使用组播MAC地址实现组播数据在本地物理网络中的正确传输。组播数据传输时,由于目的地址是一个成员不确定的组,所以需要将IP组播地址和组播MAC地址进行映射。

IPv4组播地址

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,虚拟路由器冗余协议)

IPv4组播MAC地址

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地址上。

IPv4组播地址与IPv4组播MAC地址映射关系

image.png

IPv6组播地址

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地址

IPv6组播MAC地址高16位为0x3333,低32位为IPv6组播地址的低32位。IPv6组播地址FF2E::F01E:1的MAC地址映射举例如图1-3所示。因此,在IPv6中会有更多的IPv6组播地址映射到同一个MAC地址。

IPv6地址与组播MAC地址映射

image.png

IPv4组播协议

在组播的发展过程中,形成了一套完整的协议来完成组播数据传输任务。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组播协议

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域。“边界”可以拒绝特定组播报文通过,或者限制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共享树。

(S,G)是源S发往组G的报文对应的路由表项,源S发往组G的报文对应的转发路径为SPT最短路径树。