组播的设计和部署.docx
- 文档编号:6357106
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:23
- 大小:215.13KB
组播的设计和部署.docx
《组播的设计和部署.docx》由会员分享,可在线阅读,更多相关《组播的设计和部署.docx(23页珍藏版)》请在冰豆网上搜索。
组播的设计和部署
1组播设计
1.1概要
宽带的发展、多媒体的相关服务需求,带来了带宽的急剧消耗和网络拥挤问题。
IP组播技术实现了IP网络中点到多点、多点到多点的高效数据传送,能够有效地节约网络带宽、降低网络负载,从而缓解了网络瓶颈。
利用网络的组播特性可以方便地提供一些新的增值业务,包括在线直播、网络电视、远程教育、远程医疗、网络电台、实时视/音频会议等互联网的信息服务领域。
随着网络建设规模的加大,组播技术也开始由面向局域网的技术向面向广域网的技术演进,在这个过程中,原有的组播技术已有部分不适合发展而逐步退出,也有一些技术由于业务需求而不断开发出来。
随着应用的普及,组播技术的需求也在不断变化和发展中。
例如,更多的点到多点组播业务使特定源组播模型(SSM)的组播成为业务发展的新需求;而MPLSVPN业务的实施也要求在MPLSVPN中实施组播业务的传送;随着网络规模的扩大,组播的跨域实施也成为新的需求;在维护上,用户已不满足于尽力而为的IP组播,而要求组播提供更高的服务质量和可靠性。
华为3Com公司产品在满足基本组播业务需求的基础上,还针对以上需求,支持跨域组播、PIM-SSM、组播VPN、AnyCastRP等关键组播技术,以满足在各种类型网络上全面部署组播服务的业务需要。
1.2组播模型选择
目前市场上存在两大类IP组播模型:
ASM(Any-SourceMulticast)和SSM(Source-SpecificMulticast),而且IP组播市场的趋势是SSM日渐盛行。
ASM模型
ASM模型就是任意源组播模型。
在该模型中,任意发送者都可以不成为组播源,众多接收者通过加入由组播组地址标识的主机组,从而获得组播信息。
在ASM模型中,接收者无法预先知道组播源的位置,接收者可以在任意时间加入或离开该主机组。
SSM模型
SSM模型和ASM模型完全不同,根本区别是接收者已经通过其他手段预先知道了组播源的具体位置,因此SSM可以直接在组播源和接收者之间建立SPT(ShortestPathTree),而不是像ASM那样先建立RPT(RendezvousPoint-rootedTree)而后再根据需要转换到SPT。
此外,SSM模型使用了和ASM不同的组播地址范围。
源特定组播SSM是IP组播技术中的一项新兴技术,这项技术针对组播业务的特点进行了设计,提供了更优化的网络性能。
SSM模型使得IP组播实现更为容易管理和部署,不存在跨自治域问题,并且随着支持IGMPV3的组播接收端主机和组播服务器应用增多,SSM这种点到多点的应用会比ASM这种多点到多点的应用越来越多。
一个具有SSM功能的网络相对于传统的ASM网路来说,具有非常突出的优越性。
网络中不在需要汇聚点(RP),也不在需要共享树或RP的映射,具有极高的分发树建立效率,同时网络中也不再需要MSDP协议以完成RP与RP之间的源发现。
因此SSM比ASM有很大优势。
1.3组播协议选择
IP组播协议主要有用于主机注册的组播组管理协议,和用于组播选路转发的组播路由协议。
和组播相关的协议在网络中的应用位置如下图所示。
组播相关协议的应用位置
1.3.1组播组管理协议选择
在接收者主机和组播路由器之间通常采用组播组管理协议IGMP(InternetGroupMembershipProtocol),该协议定义了主机与路由器之间建立和维护组播成员关系的机制。
IGMP目前包含三个版本,分别是v1、v2和v3,而且新版本完全兼容旧版本。
IGMPv1中定义了基本的组成员查询和报告过程,IGMPv2在此基础上添加了组成员快速离开的机制,IGMPv3中增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。
IGMP组播成员管理机制是针对第三层设计的,在第三层,路由器可以对组播报文的转发进行控制,只要进行适当的接口配置和对TTL值的检测就可以了。
但是在很多情况下,组播报文要不可避免地经过一些二层交换设备,尤其是在局域网环境里。
如果不对二层设备进行相应的配置,则组播报文就会转发给二层交换设备的所有接口,这显然会浪费大量的系统资源。
此时,IGMP监听(IGMPSnooping)可以解决这个问题。
1.3.2组播路由协议选择
组播路由器之间运行组播路由协议,组播路由协议用于建立和维护组播路由,并正确、高效地转发组播数据包。
组播路由建立了一个从数据源端到多个接收端的无环数据传输路径,即构建分发树结构。
对于ASM模型,可以按照单播路由一样将组播路由也分为域内和域间两大类。
域内组播路由目前已经相当成熟,在众多的域内路由协议中,PIM(ProtocolIndependentMulticast)可以和任何单播路由协议协同工作,使用单播路由表实现RPF的校验,与协议无关。
没有独立的组播路由表,不必发送组播路由的更新,节省系统资源。
因此PIM(ProtocolIndependentMulticast)是目前应用最多的协议。
按照接收者紧密程度,PIM分为密集模型(PIM-DM)、稀疏模型(PIM-SM)两种。
DM模型采用基于源构建分发树,称之为源树,简单的说就是在路由器上对每个源和组播组建立最优路径,使用最短路径的方式(SPF)选择路径。
优点是延时小,不过由于保存的路由信息大,很消耗系统资源。
因此适用与小型网络。
SM模型基于RP构建分发树,也可称之为共享树。
跟源树不同,它在网络中会选取一个点(RP)作为公共根,所有的组播报文都需要从这个点来进行传送,所以它没有(S,G)项,只有(*,G)项,表明所有有多个源。
它选择的路径就不一定是最优路径,但它对网络资源的占用会比源树少。
因此较适用于大型网络。
在ASM模型中,域间路由的首要问题是路由信息如何在自治系统AS(AutonomousSystem)之间传递。
由于不同自治系统可能属于不同的运营商,因此需要一种机制能发现其他域内的组播源,这就需要域间路由协议MSDP(MulticastSourceDiscoveryProtocol)和MBGP组播扩展。
对于SSM模型(PIM-SSM),没有域内和域间的划分,由于接收者预先知道组播源的具体位置,因此只需要借助稀疏PIM构建的通道即可实现组播信息传输。
按照上面的比较,对于不同的网络模型,可按照如下原则进行组播路由协议选择
小型网络可采用PIM-DM来部署IP组播。
中、大型网络采用PIM-SM部署IP组播。
如果采用PIM-SM,则对于跨自治域的情况,必须额外部署MSDP协议。
此外MP-EBGP可用来做跨域的RPF检查。
1.4组播协议原理简介
1.4.1组播组管理协议
IGMP
在接收者主机和组播路由器之间通常采用组播组管理协议IGMP(InternetGroupMembershipProtocol),该协议定义了主机与路由器之间建立和维护组播成员关系的机制。
IGMP协议是IP组播在末端网络上使用的主机对路由器的信令机制,分为两个功能部分:
主机侧和路由器侧。
接收者主机向所在的共享网络报告组成员关系,处于同一网段的所有使能了IGMP功能的路由器选举出查询器,查询器周期性地向该共享网段发送组成员查询消息,接收者主机接收到该查询消息后进行响应以报告组成员关系,查询器依据接收的响应来刷新组成员的存在信息。
所有参与组播传输的接收者主机必须实现IGMP协议。
参与IP组播传输的主机可以在任意时间、任意位置、成员总数不受限制地加入或退出组播组。
支持组播的路由器不需要也不可能保存所有主机的成员关系,它只是通过IGMP协议了解每个接口连接的网段上是否存在某个组播组的接收者,即组成员。
而各主机只需要保存自己加入了哪些组播组。
IGMP目前包含三个版本,分别是v1、v2和v3,而且新版本完全兼容旧版本。
IGMPv1中定义了基本的组成员查询和报告过程,IGMPv2在此基础上添加了组成员快速离开的机制,IGMPv3中增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。
其中,IGMPv1和v2适用于ASM模型,而SSM模型必须要得到IGMPv3的支持。
IGMPSnooping
IGMP组播成员管理机制是针对第三层设计的,在第三层,路由器可以对组播报文的转发进行控制,只要进行适当的接口配置和对TTL值的检测就可以了。
但是在很多情况下,组播报文要不可避免地经过一些二层交换设备,尤其是在局域网环境里。
如果不对二层设备进行相应的配置,则组播报文就会转发给二层交换设备的所有接口,这显然会浪费大量的系统资源。
IGMP监听(IGMPSnooping)可以解决这个问题。
IGMP监听的工作原理如下:
主机发出IGMP成员报告消息,这个消息是给路由器的;在IGMP成员报告经过交换机时,交换机对这个消息进行监听并记录下来,形成组成员和接口的对应关系;
交换机在收到组播数据报文时,根据组成员和接口的对应关系,仅向具有组成员的接口转发组播报文。
IGMP监听可以解决二层环境中的组播报文泛滥问题,但要求交换机具有提取第三层信息的功能;其次,要求交换机对所有的组播报文进行监听和解读,这会产生很多的无效工作;此外,组播报文监听和解读工作也会占用大量的CPU处理时间。
SSMMapping
SSM映射是SSM特性的扩展功能,通过在路由器上配置SSM静态映射信息,为配置了IGMPv1或IGMPv2的主机提供支持SSM的功能服务。
SSMMapping应用组网图
如图所示,对于网络拓扑中的主机,主机HostA、HostB不支持IGMPv3,仅仅会向RouterA发送IGMPv1或v2报告消息。
如果希望实现SSM功能,一种解决方案是升级主机上的IGMP版本为v3以支持SSM;另一种解决方案是通过在查询器RouterA上使能SSMMapping,并静态配置特定组播源/组的SSMMapping策略,从而实现不升级主机IGMP版本的情况下提供特定源/组组播报文转发。
当查询器接收到的IGMPv1或v2报告消息(*,G)时,SSM-Mapping对组地址G进行检查,继而进行如下处理:
如果G不在SSM组地址范围内,按照原有IGMPV1/V2正常流程处理。
如果G在SSM组地址范围内,但查询器没有SSMMapping的相关配置,则丢弃该报告消息(*,G)。
如果G在SSM组地址范围内,且查询器配置了SSMMapping的匹配策略,则依照映射策略将收到的IGMPV1/V2报文转换成一个或者多个IncludeSources(S,G)项,之后就可以像收到了IGMPv3报文一样处理,从而实现SSM的功能。
1.4.2组播路由协议
PIM
PIM(ProtocolIndependentMulticast)称为协议无关组播,表示为IP组播提供路由的单播路由协议可以是静态路由、RIP、OSPF、IS-IS、BGP等,组播路由和单播路由协议无关,只要单播路由协议能产生路由表项即可。
RPF(ReversePathForwarding)称为逆向路径转发,是组播转发的一种模式。
它首先检查收到的数据包的源IP、接口,和单播路由表IP和接口相比较,如果信息包可通过单播路由从收到接口返回到源站点,那么RPF检查成功,就认为这个组播包是从正确路径而来;否则,将组播包作为冗余报文丢弃。
借助RPF转发机制,PIM实现了在网络中传递组播信息。
为了描述上的方便,我们把由支持PIM协议的组播路由器所组成的网络称为PIM组播域。
ASM(Any-SourceMulticast)模型目前包括PIM-DM和PIM-SM两种模式;虽然SSM(Source-SpecificMulticast)模型和ASM模型是完全对等的,但是能够借助PIM-SM的部分技术来实现。
1.4.2.1.1PIM-DM
PIM-DM(ProtocolIndependentMulticastDenseMode)称为协议独立组播-密集模式,属于密集模式的组播路由协议,适用于小型网络。
在这种网络环境下,组播组的成员相对比较密集。
PIM-DM假设网络中的每个子网都存在至少一个对组播源感兴趣的接收站点,因此组播数据包被扩散到网络中的所有点,与此伴随着相关资源(带宽和路由器的CPU等)的消耗。
为了减少这些宝贵网络资源的消耗,密集模式组播路由协议对没有组播数据转发的分支进行Prune剪枝操作,只保留包含接收者的分支。
为了使剪掉的有组播数据转发需求的分支能够重新接收组播数据流,剪掉的分支可以周期性地恢复成转发状态。
为了减少等待被剪掉的分支恢复成转发状态的延时时间,密集模式组播路由协议使用Graft嫁接机制主动恢复组播报文的转发。
这种周期性的扩散和剪枝现象是密集模式协议的特征,只能适合规模较小的局域网。
密集模式采用的“扩散—剪枝”技术在广域网上是不可取的。
一般说来,密集模式下数据包的转发路径是“有源树”——以“组播源”为根、组播组成员为枝叶的一棵树。
由于有源树使用的是从组播源到接收者的最短路径,因此也称为最短路径树SPT(ShortestPathTree)。
1.4.2.1.2PIMSM
PIM-SM(ProtocolIndependentMulticastSparseMode)称为协议独立组播-稀疏模式,属于稀疏模式的组播路由协议,主要用于组成员分布相对分散、范围较广、大规模的网络。
稀疏模式默认所有主机都不需要接收组播包,只向明确需要组播包的主机转发。
PIM-SM不依赖于特定的单播路由协议,而是使用现存的单播路由表进行RPF检查。
PIM-SM模型实现组播转发的核心任务是构造并维护一棵单向共享树。
共享树选择PIM中某一路由器作为公用根节点,称为汇聚点RP(RendezvousPoint))。
组播数据通过RP延共享树向接收者转发。
引入RP进行组播转发,减少了数据报文和控制报文占用的网络带宽,降低了路由器的处理开销。
在接收侧,连接信息接收者的路由器向该组播组对应的RP发送组加入消息,加入消息经过一个个路由器后到达根部(即RP汇聚点),所经过的路径就变成了此共享树RPT的分支。
发送端如果想要往某组播组发送数据,首先由第一跳路由器向RP汇聚点进行注册,注册消息到达RP后触发源树建立。
之后组播源把数据发向RP汇聚点,当数据到达了RP汇聚点后,组播数据包被复制并沿着RPT树传给接收者。
复制仅仅发生在分发树的分支处,这个过程能自动重复直到数据包最终到达接收者。
RP是PIM-SM域中的核心路由器,在小型并且简单的网络中,组播信息量少,全网络仅依靠一个RP进行信息转发即可,此时可以在SM域中各路由器上静态指定RP位置。
但是更多的情况下,PIM-SM网络规模都很大,通过RP转发的组播信息量巨大,为了缓解RP的负担同时优化共享树的拓扑结构,不同组播组应该对应不同的RP,此时就需要自举机制来动态选举RP,此时需要配置自举路由器BSR(BootStrapRouter)。
BSR是PIM-SM网络里的管理核心,负责收集网络中Candidate-RP(C-RP)发来的Advertisement宣告信息,然后将为每个组播组选择部分C-RP信息以组成RP-Set集(即组播组和RP的映射数据库),并发布到整个PIM-SM网络,从而网络内的所有路由器(包括DR)都会知道RP的位置。
RP和BSR在网络中的位置如下图所示。
RP和BSR之间的通讯示意图
一个网络(或某管理域)内部只能选举出一个BSR,但可以配置多个Candidate-BSR(C-BSR)。
这样,一旦BSR发生故障后,其余C-BSR能够通过自动选举产生新的BSR,从而确保业务免受中断。
同样,一个PIM-SM域内也可以配置多个C-RP,由BSR机制计算出和每个组播组对应的RP。
1.4.2.1.3PIM-SSM
SSM模型和ASM模型是两个对等的概念,并且是两个完全对等的模型。
SSM模型为指定源组播提供了解决方案,通过IGMPv3来维护主机与路由器之间关系。
鉴于PIM-DM模式以扩散/剪枝方式构建以组播源为根的SPT分发树,虽然SPT树路径最短,但是分发树建立过程效率较低,不适合大中型网络。
在实际应用中,通常采用PIM-SM模式中的一部分技术实现SSM模型。
由于接收者已经通过其他渠道(如广告咨询等)知道了组播源S的具体位置,因此SSM模型中无需RP节点,无需构建RPT树,无需源注册过程,同时也无需MSDP来发现其他PIM域内的组播源。
和ASM模型相比,SSM模型仅需要IGMPv3和PIM-SM部分子集的支持,SSM模型在PIM网络内的工作过程可以简单地概括为:
邻居发现、DR选举、构建SPT树。
此外,SSM模型使用了和ASM不同的组播地址范围,232.0.0.0~232.255.255.255为SSM使用的组播地址范围。
MSDP
适用前提:
域内组播路由协议必须是PIM-SM。
MSDP仅对ASM(Any-SourceMulticast)模型有意义。
MSDP是基于多个PIM-SM域互连而开发的一种域间组播解决方案。
PIM-SM组播域中,组播源只负责向本地RP(RendezvousPoint)注册,因此RP知道且仅知道本域内每个组播组的所有信源。
如果能够加载一种机制,使不同域的RP共享其组播源信息,那么就能够将远端域内的活动信源信息传递给本地域内的接受者,从而就有可能实现组播报文跨域转发。
MSDP成功的实现了这一构想,在各个域的RP之间建立MSDP对等体关系,从而使它们能够在域间相互转发数据包,共享组播源信息。
当某PIM-SM域内存在激活组播源S时,该域内的RP是能够借助组播源注册过程了解到组播源S的存在。
如果其他ISP管理的PIM-SM域也想从该组播源获取信息,则两个PIM-SM域内的路由器之间需要形成MSDP对等体关系。
如下图所示。
MSDP对等体示意图
PIM-SM1网络具有激活组播源S,该网络内的RP1通过组播源注册过程了解到组播源S的具体位置,并向其他PIM-SM域内的MSDP对等体(即RP节点)周期性地发送SA(SourceActive)消息。
SA消息中包括组播源S的IP地址、组播组地址G和生成消息的RP地址,还包含域1内RP收到的第一个组播数据。
SA消息被转发并最终到达所有MSDP对等体,这样某PIM-SM域内的组播源S信息就会被传递到所有PIM-SM域。
MSDP对等体通过对SA消息进行RPF检查,只接受从正确路径上接收到的SA消息并进行转发,从而避免SA消息传递环路;另外,可以通过在MSDP对等体之间配置Mesh全连接组(MeshGroup),避免SA消息在MSDP对等体之间泛滥。
假如PIM-SM4域中的RP4接收到该SA消息,则检查对应组播组是否有接收者存在,如果有接收者则向组播源S逐跳发送(S,G)加入消息,从而构建了一棵基于组播源S的SPT树,而PIM-SM4域中RP4和接收者之间为RPT树。
使用MSDP进行域间组播时,一旦RP接收到组播源S的信息后就不再需要依赖其他PIM-SM域内的RP。
这时接收者可以跨越中途各PIM-SM域内的RP,而直接加入基于组播源的SPT树。
使用MSDP还可以实现AnycastRP。
所谓AnycastRP是指通过在相同PIM-SM域内两个具有相同地址的RP之间形成MSDP对等体关系,从而实现域内RP之间的负载分担和冗余备份。
在同一个PIM-SM域内,在多个路由器的某接口(通常是Loopback接口)上都配置C-RP功能,并且这
些接口具有相同IP地址,这些接口之间形成MSDP对等体关系,如下图所示。
AnycastRP典型组网图
组播源S通常选择距离最近的RP进行注册,形成SPT树;而接收者也向距离最近的RP发送Join加入消息以构建RPT树,因此组播源注册的RP可能不是接收者加入的RP,为了实现RP之间的信息一致,这些互为MSDP对等体的RP之间通过相互发送SA消息,了解对方的注册源信息,最终让每个RP了解到整个PIM-SM域内的所有组播源。
这样,各RP上所带的接收者都可以接收到整个PIM-SM域内的所有组播源发出的组播数据。
由于RP之间借助MSDP互通信息,而组播源或接收者分别向就近RP发起注册或RPT加入,因此可以实现RP负载分担。
一个RP失效后,其上原先注册的组播源和加入的接收者会自动选择另一个就近RP进行注册和加入操作,从而实现了RP冗余备份。
MP-BGP
目前,BGP4协议应用于域间单播路由。
为了实现域间组播路由信息的传输,需对BGP4协议作出修改,也就是说,合理的解决方案是增强BGP4协议的功能,而非构建一种新的协议。
RFC2858详细说明了BGP多协议扩展。
扩展的BGP(如MBGP、BGP4+)同时携带IPv4单播路由信息和其它网络层协议(如组播和IPv6等)信息。
MBGP能使单播和组播路由信息相互交换,但被储存在不同的路由表中。
由于MBGP是BGP4的增强版本,所以BGP4支持的普通路由策略和配置方法都可应用于组播模式。
MBGP在BGP4中引入了两个新的路径属性以支持更新报文组播:
●l多协议可达NLRI:
MP_REACH_NLRI(MultiprotocolReachableNetworkLayerReachabilityInformation)。
●l多协议不可达NLRI:
MP_UNREACH_NLRI(MultiprotocolUnreachableNetworkLayerReachabilityInformation)。
这两种属性都是可选非过渡(Optionalnon-transitive)的,因此,不提供多协议功能的BGP可以忽略这两个属性的信息。
上述两种属性携带地址族标识(AFI,AddressFamilyIdentifier)和子地址族标识(SAFI,SubsequentAddressFamilyIdentifier)。
SAFI是NLRI信息的补充,1表示NLRI信息是单播模式,2表示NLRI信息是组播模式。
添加上述两种属性后,MBGP就能包括多协议信息。
MBGP同时支持单播和组播模式,为两种模式构建不同的网络拓扑结构,同时还能提供相应的路由策略。
因此,MBGP能根据路由策略组成不同的域间单播/组播路由。
一个重要的概念就是,MBGP传播的路由仅仅用于组播路由器的RPF检查,MBGP不为组播数据转发提供任何支持。
1.5组播转发机制
在组播模型中,源主机向IP数据包目的地址字段内的组播组地址所表示的主机组传送信息。
和单播模型不同的是,组播模型必须将组播数据包转发到多个外部接口上以便能传送到所有接收站点,因此组播转发过程比单播转发过程更加复杂。
为了保证组播信息包在网络中传输,组播必须依靠单播路由表或者单独提供给组播使用的单播路由表(如MBGP组播路由表)进行转发,同时为了避免接口上收到来自不同对端的相同组播信息,对组播信息包的接收接口进行一定的检查,这种检查机制就是大部分组播路由协议进行组播转发的基础——RPF(ReversePathForwarding)检查。
组播路由器根据源地址来判断组播报文是否来自指定接口,即RPF检查通过比较组播报文实际到达的接口和应该到达的接口来确定报文入接口是否正确。
如果该路由器在SPT有源树上,则接收到的组播报文应该到达的接口朝向组播源;若该路由器在RPT共享树上,则接收到的组播报文应该到达的接口将朝向RP。
当组播数据包到达路由器时,如果RPF检查通过,数据包则按照组播转发项进行转发;否则,数据包被丢弃。
组播RPF(ReversePathForwarding)路由选择策略分为最长匹配规则和优先级规则两种:
最长匹配规则是指在“组播静态路由、MBGP、单播路由”三种路由中选择掩码最长的;优先级规则是指在上述三种路由中选择优先级最高的。
如果优先
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 部署