资源描述
XX工程技术方案建议书
1 组播设计
1.1 概要
宽带的发展、多媒体的相关服务需求,带来了带宽的急剧消耗和网络拥挤问题。IP组播技术实现了IP网络中点到多点、多点到多点的高效数据传送,能够有效地节约网络带宽、降低网络负载,从而缓解了网络瓶颈。利用网络的组播特性可以方便地提供一些新的增值业务,包括在线直播、网络电视、远程教育、远程医疗、网络电台、实时视/音频会议等互联网的信息服务领域。随着网络建设规模的加大,组播技术也开始由面向局域网的技术向面向广域网的技术演进,在这个过程中,原有的组播技术已有部分不适合发展而逐步退出,也有一些技术由于业务需求而不断开发出来。随着应用的普及,组播技术的需求也在不断变化和发展中。例如,更多的点到多点组播业务使特定源组播模型(SSM)的组播成为业务发展的新需求;而MPLS VPN业务的实施也要求在MPLS VPN中实施组播业务的传送;随着网络规模的扩大,组播的跨域实施也成为新的需求;在维护上,用户已不满足于尽力而为的IP组播,而要求组播提供更高的服务质量和可靠性。华为3Com公司产品在满足基本组播业务需求的基础上,还针对以上需求,支持跨域组播、PIM-SSM、组播VPN、AnyCast RP等关键组播技术,以满足在各种类型网络上全面部署组播服务的业务需要。
1.2 组播模型选择
目前市场上存在两大类IP组播模型:ASM(Any-Source Multicast)和SSM(Source-Specific Multicast),而且IP组播市场的趋势是SSM日渐盛行。
ASM模型
ASM模型就是任意源组播模型。在该模型中,任意发送者都可以不成为组播源,众多接收者通过加入由组播组地址标识的主机组,从而获得组播信息。在ASM模型中,接收者无法预先知道组播源的位置,接收者可以在任意时间加入或离开该主机组。
SSM模型
SSM模型和ASM模型完全不同,根本区别是接收者已经通过其他手段预先知道了组播源的具体位置,因此SSM可以直接在组播源和接收者之间建立SPT(Shortest Path Tree),而不是像ASM那样先建立RPT(Rendezvous Point-rooted Tree)而后再根据需要转换到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(Internet Group Membership Protocol),该协议定义了主机与路由器之间建立和维护组播成员关系的机制。IGMP目前包含三个版本,分别是v1、v2和v3,而且新版本完全兼容旧版本。IGMPv1中定义了基本的组成员查询和报告过程,IGMPv2在此基础上添加了组成员快速离开的机制,IGMPv3中增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。
IGMP的三个版本都适用于ASM模型。IGMPv3可以直接应用于SSM模型,而IGMPv1和IGMPv2需要在SSM-Mapping的支持下才可以应用于SSM模型。SSM-Mapping是SSM特性的扩展功能,通过在路由器上配置SSM静态映射信息,为配置了IGMPv1或IGMPv2的主机提供支持SSM的功能服务。
IGMP 组播成员管理机制是针对第三层设计的,在第三层,路由器可以对组播报文的转发进行控制,只要进行适当的接口配置和对 TTL 值的检测就可以了。但是在很多情况下,组播报文要不可避免地经过一些二层交换设备,尤其是在局域网环境里。如果不对二层设备进行相应的配置,则组播报文就会转发给二层交换设备的所有接口,这显然会浪费大量的系统资源。
此时,IGMP 监听(IGMP Snooping)可以解决这个问题。
1.3.2 组播路由协议选择
组播路由器之间运行组播路由协议,组播路由协议用于建立和维护组播路由,并正确、高效地转发组播数据包。组播路由建立了一个从数据源端到多个接收端的无环数据传输路径,即构建分发树结构。
对于ASM模型,可以按照单播路由一样将组播路由也分为域内和域间两大类。域内组播路由目前已经相当成熟,在众多的域内路由协议中,PIM(Protocol Independent Multicast)可以和任何单播路由协议协同工作,使用单播路由表实现RPF的校验,与协议无关。没有独立的组播路由表,不必发送组播路由的更新,节省系统资源。因此PIM(Protocol Independent Multicast)是目前应用最多的协议。按照接收者紧密程度,PIM分为密集模型(PIM-DM)、稀疏模型(PIM-SM)两种。
DM模型采用基于源构建分发树,称之为源树,简单的说就是在路由器上对每个源和组播组建立最优路径,使用最短路径的方式(SPF)选择路径。优点是延时小,不过由于保存的路由信息大,很消耗系统资源。因此适用与小型网络。
SM模型基于RP构建分发树,也可称之为共享树。跟源树不同,它在网络中会选取一个点(RP)作为公共根,所有的组播报文都需要从这个点来进行传送,所以它没有(S,G)项,只有(*,G)项,表明所有有多个源。它选择的路径就不一定是最优路径,但它对网络资源的占用会比源树少。因此较适用于大型网络。
在ASM模型中,域间路由的首要问题是路由信息如何在自治系统AS(Autonomous System)之间传递。由于不同自治系统可能属于不同的运营商,因此需要一种机制能发现其他域内的组播源,这就需要域间路由协议MSDP(Multicast Source Discovery Protocol)和MBGP组播扩展。
对于SSM模型(PIM-SSM),没有域内和域间的划分,由于接收者预先知道组播源的具体位置,因此只需要借助稀疏PIM构建的通道即可实现组播信息传输。
按照上面的比较,对于不同的网络模型,可按照如下原则进行组播路由协议选择
小型网络可采用PIM-DM来部署IP组播。
中、大型网络采用PIM-SM或PIM-SSM部署IP组播。
如果采用PIM-SM,则对于跨自治域的情况,必须额外部署MSDP协议。
如果采用PIM-SSM,则对于跨自治域的情况,不须额外部署MSDP协议。
此外MP-EBGP可用来做跨域的RPF检查。
1.4 组播协议原理简介
1.4.1 组播组管理协议
1.4.1.1 IGMP
在接收者主机和组播路由器之间通常采用组播组管理协议IGMP(Internet Group Membership Protocol),该协议定义了主机与路由器之间建立和维护组播成员关系的机制。
IGMP协议是IP组播在末端网络上使用的主机对路由器的信令机制,分为两个功能部分:主机侧和路由器侧。接收者主机向所在的共享网络报告组成员关系,处于同一网段的所有使能了IGMP功能的路由器选举出查询器,查询器周期性地向该共享网段发送组成员查询消息,接收者主机接收到该查询消息后进行响应以报告组成员关系,查询器依据接收的响应来刷新组成员的存在信息。
所有参与组播传输的接收者主机必须实现IGMP协议。参与IP组播传输的主机可以在任意时间、任意位置、成员总数不受限制地加入或退出组播组。支持组播的路由器不需要也不可能保存所有主机的成员关系,它只是通过IGMP协议了解每个接口连接的网段上是否存在某个组播组的接收者,即组成员。而各主机只需要保存自己加入了哪些组播组。
IGMP目前包含三个版本,分别是v1、v2和v3,而且新版本完全兼容旧版本。IGMPv1中定义了基本的组成员查询和报告过程,IGMPv2在此基础上添加了组成员快速离开的机制,IGMPv3中增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。 其中,IGMPv1和v2适用于ASM模型,而SSM模型必须要得到IGMPv3的支持。
1.4.1.2 IGMP Snooping
IGMP 组播成员管理机制是针对第三层设计的,在第三层,路由器可以对组播报文的转发进行控制,只要进行适当的接口配置和对 TTL 值的检测就可以了。但是在很多情况下,组播报文要不可避免地经过一些二层交换设备,尤其是在局域网环境里。如果不对二层设备进行相应的配置,则组播报文就会转发给二层交换设备的所有接口,这显然会浪费大量的系统资源。IGMP 监听(IGMP Snooping)可以解决这个问题。
IGMP 监听的工作原理如下:
主机发出 IGMP 成员报告消息,这个消息是给路由器的;在 IGMP 成员报告经过交换机时,交换机对这个消息进行监听并记录下来,形成组成员和接口的对应关系;
交换机在收到组播数据报文时,根据组成员和接口的对应关系,仅向具有组成员的接口转发组播报文。
IGMP 监听可以解决二层环境中的组播报文泛滥问题,但要求交换机具有提取第三层信息的功能;其次,要求交换机对所有的组播报文进行监听和解读,这会产生很多的无效工作;此外,组播报文监听和解读工作也会占用大量的 CPU 处理时间。
1.4.1.3 SSM Mapping
SSM映射是SSM特性的扩展功能,通过在路由器上配置SSM静态映射信息,为配置了IGMPv1或IGMPv2的主机提供支持SSM的功能服务。
SSM Mapping应用组网图
如图所示,对于网络拓扑中的主机,主机HostA、HostB不支持IGMPv3,仅仅会向RouterA发送IGMPv1或v2报告消息。如果希望实现SSM功能,一种解决方案是升级主机上的IGMP版本为v3以支持SSM;另一种解决方案是通过在查询器RouterA上使能SSM Mapping,并静态配置特定组播源/组的SSM Mapping策略,从而实现不升级主机IGMP版本的情况下提供特定源/组组播报文转发。
当查询器接收到的IGMPv1或v2报告消息(*,G)时,SSM-Mapping对组地址G进行检查,继而进行如下处理:
如果G不在SSM组地址范围内,按照原有IGMPV1/V2正常流程处理。
如果G在SSM组地址范围内,但查询器没有SSM Mapping的相关配置,则丢弃该报告消息(*,G)。
如果G在SSM组地址范围内,且查询器配置了SSM Mapping的匹配策略,则依照映射策略将收到的IGMP V1/V2报文转换成一个或者多个Include Sources(S,G)项,之后就可以像收到了IGMPv3报文一样处理,从而实现SSM的功能。
1.4.2 组播路由协议
1.4.2.1 PIM
PIM(Protocol Independent Multicast)称为协议无关组播,表示为IP组播提供路由的单播路由协议可以是静态路由、RIP、OSPF、IS-IS、BGP等,组播路由和单播路由协议无关,只要单播路由协议能产生路由表项即可。RPF(Reverse Path Forwarding)称为逆向路径转发,是组播转发的一种模式。它首先检查收到的数据包的源IP、接口,和单播路由表IP和接口相比较,如果信息包可通过单播路由从收到接口返回到源站点,那么RPF检查成功,就认为这个组播包是从正确路径而来;否则,将组播包作为冗余报文丢弃。借助RPF转发机制, PIM实现了在网络中传递组播信息。为了描述上的方便,我们把由支持PIM协议的组播路由器所组成的网络称为PIM组播域。
ASM(Any-Source Multicast)模型目前包括PIM-DM和PIM-SM两种模式;虽然SSM(Source-Specific Multicast)模型和ASM模型是完全对等的,但是能够借助PIM-SM的部分技术来实现。
1.4.2.1.1 PIM-DM
PIM-DM(Protocol Independent Multicast Dense Mode)称为协议独立组播-密集模式,属于密集模式的组播路由协议,适用于小型网络。在这种网络环境下,组播组的成员相对比较密集。PIM-DM假设网络中的每个子网都存在至少一个对组播源感兴趣的接收站点,因此组播数据包被扩散到网络中的所有点,与此伴随着相关资源(带宽和路由器的CPU等)的消耗。
为了减少这些宝贵网络资源的消耗,密集模式组播路由协议对没有组播数据转发的分支进行Prune剪枝操作,只保留包含接收者的分支。为了使剪掉的有组播数据转发需求的分支能够重新接收组播数据流,剪掉的分支可以周期性地恢复成转发状态。为了减少等待被剪掉的分支恢复成转发状态的延时时间,密集模式组播路由协议使用Graft嫁接机制主动恢复组播报文的转发。这种周期性的扩散和剪枝现象是密集模式协议的特征,只能适合规模较小的局域网。密集模式采用的“扩散—剪枝”技术在广域网上是不可取的。
一般说来,密集模式下数据包的转发路径是“有源树”——以“组播源”为根、组播组成员为枝叶的一棵树。由于有源树使用的是从组播源到接收者的最短路径,因此也称为最短路径树SPT(Shortest Path Tree)。
1.4.2.1.2 PIM SM
PIM-SM(Protocol Independent Multicast Sparse Mode)称为协议独立组播-稀疏模式,属于稀疏模式的组播路由协议,主要用于组成员分布相对分散、范围较广、大规模的网络。稀疏模式默认所有主机都不需要接收组播包,只向明确需要组播包的主机转发。PIM-SM不依赖于特定的单播路由协议,而是使用现存的单播路由表进行RPF检查。
PIM-SM模型实现组播转发的核心任务是构造并维护一棵单向共享树。共享树选择PIM中某一路由器作为公用根节点,称为汇聚点RP(Rendezvous Point))。组播数据通过RP延共享树向接收者转发。引入RP进行组播转发,减少了数据报文和控制报文占用的网络带宽,降低了路由器的处理开销。
在接收侧,连接信息接收者的路由器向该组播组对应的RP发送组加入消息,加入消息经过一个个路由器后到达根部(即RP汇聚点),所经过的路径就变成了此共享树RPT的分支。发送端如果想要往某组播组发送数据,首先由第一跳路由器向RP汇聚点进行注册,注册消息到达RP后触发源树建立。之后组播源把数据发向RP汇聚点,当数据到达了RP汇聚点后,组播数据包被复制并沿着RPT树传给接收者。复制仅仅发生在分发树的分支处,这个过程能自动重复直到数据包最终到达接收者。
RP是PIM-SM域中的核心路由器,在小型并且简单的网络中,组播信息量少,全网络仅依靠一个RP进行信息转发即可,此时可以在SM域中各路由器上静态指定RP位置。但是更多的情况下,PIM-SM网络规模都很大,通过RP转发的组播信息量巨大,为了缓解RP的负担同时优化共享树的拓扑结构,不同组播组应该对应不同的RP,此时就需要自举机制来动态选举RP,此时需要配置自举路由器BSR(BootStrap Router)。
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.3 PIM-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使用的组播地址范围。
1.4.2.2 MSDP
适用前提:域内组播路由协议必须是PIM-SM。MSDP仅对ASM(Any-Source Multicast)模型有意义。
MSDP是基于多个PIM-SM域互连而开发的一种域间组播解决方案。PIM-SM组播域中,组播源只负责向本地RP(Rendezvous Point)注册,因此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(Source Active)消息。SA消息中包括组播源S的IP地址、组播组地址G和生成消息的RP地址,还包含域1内RP收到的第一个组播数据。SA消息被转发并最终到达所有MSDP对等体,这样某PIM-SM域内的组播源S信息就会被传递到所有PIM-SM域。
MSDP对等体通过对SA消息进行RPF检查,只接受从正确路径上接收到的SA消息并进行转发,从而避免SA消息传递环路;另外,可以通过在MSDP对等体之间配置Mesh全连接组(Mesh Group),避免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还可以实现Anycast RP。所谓Anycast RP是指通过在相同PIM-SM域内两个具有相同地址的RP之间形成MSDP对等体关系,从而实现域内RP之间的负载分担和冗余备份。在同一个PIM-SM域内,在多个路由器的某接口(通常是Loopback接口)上都配置C-RP功能,并且这些接口具有相同IP地址,这些接口之间形成MSDP对等体关系,如下图所示。
Anycast RP典型组网图
组播源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冗余备份。
1.4.2.3 MP-BGP
目前,BGP4协议应用于域间单播路由。为了实现域间组播路由信息的传输,需对BGP4协议作出修改,也就是说,合理的解决方案是增强BGP4协议的功能,而非构建一种新的协议。
RFC2858详细说明了BGP多协议扩展。扩展的BGP(如MBGP、BGP4+)同时携带IPv4单播路由信息和其它网络层协议(如组播和IPv6等)信息。
MBGP能使单播和组播路由信息相互交换,但被储存在不同的路由表中。由于MBGP是BGP4的增强版本,所以BGP4支持的普通路由策略和配置方法都可应用于组播模式。
MBGP在BGP4中引入了两个新的路径属性以支持更新报文组播:
l l 多协议可达NLRI :MP_REACH_NLRI (Multiprotocol Reachable Network Layer Reachability Information)。
l l 多协议不可达NLRI :MP_UNREACH_NLRI (Multiprotocol Unreachable Network Layer Reachability Information)。
这两种属性都是可选非过渡(Optional non-transitive)的,因此,不提供多协议功能的BGP可以忽略这两个属性的信息。
上述两种属性携带地址族标识(AFI, Address Family Identifier)和子地址族标识 (SAFI,Subsequent Address Family Identifier)。SAFI是NLRI信息的补充,1表示NLRI信息是单播模式,2表示NLRI信息是组播模式。
添加上述两种属性后,MBGP 就能包括多协议信息。MBGP 同时支持单播和组播模式,为两种模式构建不同的网络拓扑结构,同时还能提供相应的路由策略。因此,MBGP能根据路由策略组成不同的域间单播/组播路由。
一个重要的概念就是,MBGP传播的路由仅仅用于组播路由器的RPF检查,MBGP不为组播数据转发提供任何支持。
1.5 组播转发机制
在组播模型中,源主机向IP数据包目的地址字段内的组播组地址所表示的主机组传送信息。和单播模型不同的是,组播模型必须将组播数据包转发到多个外部接口上以便能传送到所有接收站点,因此组播转发过程比单播转发过程更加复杂。
为了保证组播信息包在网络中传输,组播必须依靠单播路由表或者单独提供给组播使用的单播路由表(如MBGP组播路由表)进行转发,同时为了避免接口上收到来自不同对端的相同组播信息,对组播信息包的接收接口进行一定的检查,这种检查机制就是大部分组播路由协议进行组播转发的基础——RPF(Reverse Path Forwarding)检查。组播路由器根据源地址来判断组播报文是否来自指定接口,即RPF检查通过比较组播报文实际到达的接口和应该到达的接口来确定报文入接口是否正确。如果该路由器在SPT有源树上,则接收到的组播报文应该到达的接口朝向组播源;若该路由器在RPT共享树上,则接收到的组播报文应该到达的接口将朝向RP。当组播数据包到达路由器时,如果RPF检查通过,数据包则按照组播转发项进行转发;否则,数据包被丢弃。
组播RPF(Reverse Path Forwarding)路由选择策略分为最长匹配规则和优先级规则两种:最长匹配规则是指在“组播静态路由、MBGP、单播路由”三种路由中选择掩码最长的;优先级规则是指在上述三种路由中选择优先级最高的。如果优先级相同,则按照组播静态路由、MBGP、单播路由的顺序进行选择。
1.6 组播地址
1.6.1 IP组播组地址
根据IANA(Internet Assigned Numbers Authority)规定,IP地址空间分为五类,即A类、B类、C类、D类和E类。单播报文按照网络规模大小分别使用ABC三类IP地址,组播报文的目的地址使用D类IP地址,D类地址不能出现在IP报文的源IP地址字段,E类地址保留在今后使用。
D类组播地址范围是从224.0.0.0到239.255.255.255,范围及含义见下表。
表格 D类地址的范围及含义
D类地址范围
含义
224.0.0.0~224.0.0.255
预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用
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
本地管理组播地址,仅在特定的本地范围内有效
具体组播组地址的采用可以根据网络互联状况以及所选用的组播模型进行选择。
1.6.2 以太网组播MAC地址
以太网传输单播IP报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播报文时,传输目的不再是一个具体的接收者,而是一个成员不确定的组,所以使用的是组播MAC地址。
IANA规定,组播MAC地址的高24bit为0x01005e,MAC地址的低23bit为组播IP地址的低23bit,映射关系如下图所示。
组播IP地址与组播MAC地址的映射关系
由于IP组播地址的前4bit是1110,代表组播标识,而后28bit中只有23bit被映射到MAC地址,这样IP地址中就有5bit信息丢失,直接的结果是出现了32个IP组播地址映射到同一MAC地址上。
因此在实际设计组播组地址的时候,如果网络内采用多个组播组,则需避免组播组地址不要在连续的“32个IP组播地址”范围之内。
1.7 组播部署
1.7.1 域内组播部署
域内组播部署按照组播模型分为两种情况,ASM(Any-Source Multicast)和SSM(Source-Specific Multicast),对于ASM 模型,组播路由协议采用PIM-SM或PIM-DM协议。而对于SSM模型,组播路由协议采用PIM-SSM路由协议。这两种组播模型对部署具有不同的技术要求,下面分别加以介绍。
1.7.1.1 ASM模型组播部署
目前,PIM-SM 协议是域内组播的公认标准。对于由一个自治域组成的网络,或者组播仅在域内进行时,仅需在网络中运行 PIM-SM 协议即可。PIM-DM可用于小型网络,部署实现较简单。所以本章仅介绍PIM-SM在单域内的部署实现。
由PIM实现原理分析可知,对于PIM-SM部署,RP的选择、部署显的尤其重要。RP的部署主要有以下三种方式:
静态RP
顾名思义,RP是由配置指定的,需要在网络中每台路由器上指定RP的地址。这种方式配置最简单,比较适合在小规模的网络中使用。这种方式不支持备份。
BSR RP
更多的情况下,PIM-SM网络规模都很大,通过RP转发的组播信息量巨大,为了缓解RP的负担同时优化共享树的拓扑结构,不同组播组应该对应不同的RP,此时就需要自举机制来动态选举RP,此时需要配置自举路由器BSR(BootStrap Router)。在自动RP方式下, 可以使用多个RP来做备份,不过针对一个组播组同时只有一个RP起作用。
Anycast RP
Anycast RP是对自动RP的全新扩展,它使用MSDP协议,可以用虚拟RP地址代替网络中多个RP地址,这样别的设备只需要知道虚拟RP的地址,就近选择实际RP。这样既实现负载分担又实现了冗余备份,大大增强了系统的健壮性,易用性,提升了系统的性能,减少了管理成本。尤其在大的网络中,优势更为明显。
下表是三种RP方式的对比:
表:RP部署方式的对比
静态RP
BSR RP
Anycast RP
收敛速度
优秀
很好
优秀
易用性
在小网中好,大网中差
优秀
优秀
部署难度
优秀
优秀
优秀
安全性
优秀
很好
优秀
冗余备份
差
很好
优秀
负载分担
差
差
优秀
建议:
根据不同网络规模,按Anycast RP、自动RP、静态RP顺序优先选择。
下面的部署实例可根据实际情况取舍。
1.7.1.1.1 BSR RP部署实例
BSR的机制概括如下:将PIM-SM网络中有意愿成为RP的路由器某接口配置为C-RP,并选择适当的优先级。BSR收集众多C-RP的信息,或者接收其他路由器发送的Auto-RP宣告,然后向全网络发布RP-Set集,之后网络内的其他路由器根据RP-Set集信息计算出和特定组播组对应的RP位置。在RP选举中,优先级较大者较优;相同优先级的情况下,哈希掩码较长者较优;优先级和哈希掩码长度均相同时,IP地址较高者较优。
通常,一个PIM-SM网络中分别存在一个RP和BSR。为了管理更加便捷,可以在PIM-SM网络中划分多个BSR管理域,并可以配置多个C-RP和C-BSR。多个C-RP有助于实现RP负载分担;多个C-BSR有助于克服单点BSR故障引起的不可靠。
本节仅给出域内单BSR的部署实例。
如下图所示:接收者通过组播方式接收视频点播信息,不同组织的接收者群体组成末梢网络,每个末梢网络中都存在一到多台接收者Host,整个PIM网络采用SM单BSR管理域方式。
PIM-SM单BSR域典型配置组网图
采用如下的思路配置PIM-SM的功能:
1) 配置各路由器的接口IP地址和单播路由协议。(略)
2) 使能组播功能,在各接口上使能PIM-SM功能,主机侧接口上使能IGMP功能。
# 在所有路由器上使能组播功能,在各接口上使能PIM-SM功能,并在RouterA、RouterB和RouterC连接末梢网络的接口上使能IGMP功能。RouterB、RouterC、RouterD和RouterE上的配置过程与RouterA上的配置相似,配置过程略。
[RouterA] multicast routing-enable
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] igmp enable
[RouterA-GigabitEthernet2/0/0] igmp version 3
[RouterA-GigabitEthernet2/0/0] pim sm
[RouterA-GigabitEthernet2/0/0] quit
[RouterA] interface pos 3/0/0
[RouterA-Pos3/0/0] pim sm
[RouterA-Pos3/0/0] quit
[RouterA] interface pos 1/0/0
[RouterA-Pos1/0/0] pim sm
[RouterA-Pos1/0/0] quit
3) 配置RouterE的POS3/0/0接口为C-BSR和C-RP
# 在RouterE路由器上配置RP通告的服务范围,及C-BSR和C-RP的位置。
[RouterE] acl number 2005
[RouterE-acl-basic-2005] rule permit source 225.1.1.0 0.0.0.255
[RouterE-acl-basic-2005] quit
[RouterE] pim
[RouterE-pim] c-bsr pos 3/0/0
[RouterE-pim] c-rp pos 3/0/0 group-policy 2005
1.7.1.1.2 AnycastRP部署实例
Anycast RP 的机制概括为:多个 RP 配置一个相同的 Anycast RP 地址,这个地址使用 RP 上的一个接口(通常是逻辑接口,如 LoopBack 接口)。之后 RP 使用这个接口地址对外发布组到 RP 的映射信息。由于使用的是 Anycast RP 地址,所以组成员在加入时,会向拓扑距离最近的一个 RP 发起。在这些 RP 之间使用各自不同的地址建立 MSDP 连接,利用 MSDP 实现组播源信息在所有 RP 之间的同步。Anycast RP 实际上是 MSDP 在域内的一个特殊应用。
如下图所示,PIM-SM网络采用单BSR管理域方式,拥有多个组播源S和多个接收者。在PIM-SM域内配置Anycast RP,当新成员加入组播组时,与接收者直接相连的路由器能够向拓扑距离最近的RP发起加入。
Anncast RP配置组网图
PIM-SM网络中运行OSPF提供单播路由。在RouterC和RouterD的Loopback0接口上配置MSDP对等体;Loopback1接口上配置C-BSR ;Loopback10接口上配置C-RP。
采用如下的思路配置PIM-SM的功能:
1) 配置各路由器的接口IP地址和单播路由协议(略)
2) 启动组播功能,并配置PIM-SM功能(略)
3) 配置Loopback1、Loopback10接口,C-BSR 、C-RP的位置
# 在RouterC和RouterD路由器上分别配置Loopback1接口地址和相同的Loopback10接口地址,在Loopback1上配置C-BSR,在 Loopback10上配置C-RP。RouterD上的配置过程与RouterC上的配置相似,配置过程略。
[RouterC] interface loopback 1
[RouterC-LoopBack1] ip address 3.3.3.3 255.255.255.255
[RouterC-LoopBack1] pim sm
[RouterC-LoopBack1] quit
[RouterC] interface loopback 10
[RouterC-LoopBack10] ip address 10.1.1.1 255.255.255.255
[RouterC-LoopBack10] pim sm
[RouterC-LoopBack10] quit
[RouterC] pim
[RouterC-pim] c-bsr loopback 1
[RouterC-pim] c-rp loopback 10
[RouterC-pim] quit
(4) 配置Loopback0接口和MSDP对等体
# 在RouterC上的Loopback0接口上配置MSDP对等体。
[RouterC] interface loopback 0
[RouterC-LoopBack0] ip address 1.1
展开阅读全文