IP组播基础及工作原理——3

PIM基础及工作原理

PIM(协议无关组播)中的“协议无关”指的是与单播路由协议无关,即PIM不需要维护专门的单播路由信息,而是直接利用单播路由表的路由信息(注意:还有自己的组播路由表),对组播报文执行RPF(Reverse Path Forwarding,逆向路径转发)检查,检查通过后创建组播路由表项,从而转发组播报文。

目前在实际网络中,PIM主要有两种模式:PIM-DM(PIM-DenseMode,PIM密集模式)、PIM-SM(PIM-Sparse Mode,PIM稀疏模式),均可用于IPv4和IPv6网络。由PIM路由器所组成的网络称为PIM网络。通常一个大的PIM网络可以划分为多个PIM域来管理和控制组播报文的转发,这里的域内组播协议即是指PIM域内组播协议。

在目前的PIM协议中,主要实现方式包括PIM-DM、PIM-SM(ASM模型)、PIM-SM(SSM模型)3种。SSM模型与ASM模型之间的最大差异就是是否指定了组播源。


一、PIM基本概念


1、PIM路由器

在接口上使能了PIM协议的路由器即为PIM路由器。在建立组播分发树的过程中,PIM路由器又分为以下几种:

(1)第一跳路由器:在组播转发路径上与组播源相连且负责转发该组播源发出的组播数据的PIM路由器。如上图的RouterE。

(2)叶子路由器:与用户主机相连的PIM路由器,但连接的用户主机不一定为组成员,如上图中的RouterA、RouterB、RouterC。

(3)最后一跳路由器:在组播转发路径上与组播组成员相连,且负责向该组成员转发组播数据的PIM路由器。如上图中的RouterA、RouterB

(4)中间路由器:在组播转发路径上第一跳路由器与最后一跳路由器之间的PIM路由器。如上图RouterD

2、组播分发树

“组播分发树”是PIM网络中以组播组为单位,在PIM路由器上建立的点到多点的组播转发路径。由于组播转发路径呈现树型结构,也称为组播分发树(MDT,Multicast Distribution Tree)。

组播分发树主要包括以下几种:

(1)以组播源为根,以组播成员为叶子的组播分发树称为SPT(Shortest Path Tree,最短路径树)。SPT同时适用于PIM-DM网络和PIM-SM网络。如上图的RouterE——>RouterD——>RouterA/RouterB/RouterC就是一棵以Source为根,以HostA、HostB和HostC为叶子的SPT。

(2)以RP(RendezvousPoint,汇集点)为根,以组播组成员为叶子的组播分发树称为RPT(RP Tree,汇集点树)。RPT仅适用于PIM-SM网络。RP是通过手动配置的。

3、PIM路由表项

PIM路由表项即通过PIM协议建立的组播路由表项。PIM路由表项中主要用于指导转发的信息,包括组播源IP地址(是一个单播IP地址)、组播组IP地址(是一个组播IP地址)、上游接口(本地路由器上接收到组播数据的接口,如上图中RouterD的GE3/0/0接口)和下游接口(将组播数据转发出去的接口,如上图中RouterD的GE1/0/0和GE2/0/0接口)。

PIM网络中存在两种路由表项:(S,G)路由表项或(*,G)路由表项。S表示组播源IP地址,G表示组播组IP地址,*表示任意组播源。其中,(S,G)路由表项中明确指定了组播源S的位置,主要用于在PIM路由器上建立SPT(最短路径树),同时适用于PIM-DM和PIM-SM网络;而(*,G)路由表项中代表不知道组播源位置,只知道组播组IP地址,主要用于在PIM路由器上建立RPT(汇集点树),仅适用于PIM-SM网络。

PIM路由器上可能同时存在以上两种路由表项。当收到源地址为S,组地址为G的组播报文,且通过RPF(逆向路径转发)检查的情况下,按照如下的规则转发:

(1)如果存在(S,G)路由表项,则由(S,G)路由表项指导报文转发。

(2)如果不存在(S,G)路由表项,只存在(*,G)路由表项,则先依照(*,G)路由表项创建(S,G)路由表项,再由(S,G)路由表项指导报文转发。

二、PIM-DM基本工作原理

PIM-DM(PIM密集模式)使用“推”(Push)模式转发组播报文,一般应用于组播组成员规模相对较小、相对密集的网络。在实现过程中,它会假设网络中的组成员分布非常稠密,每个网段都可能存在组成员。当有活跃的组播源出现时,PIM-DM会将组播源发来的组播报文扩散到整个网络的PIM路由器上,在裁剪掉不存在组播报文转发的分支。

PIM-DM就这样通过周期性的进行“扩散(Flooding)——剪枝(Prune)”过程来构建并维护一棵连接组播源和组成员的单向无环SPT(Source Specific Shortest Path Tree,源指定最短路径树)。如果在下一次“扩散——剪枝”进行前,被裁剪掉的分支由于其叶子路由器上有新的组成员加入而希望提前恢复转发状态,也可通过嫁接(Graft)机制主动恢复其对组播报文的转发。

综上所述,PIM-DM的关键工作机制包括邻居发现、扩散、剪枝、嫁接、断言和状态刷新。其中,扩散、剪枝、嫁接是构建SPT的主要方法。

1、邻居发现(NeighborDiscovery)

在PIM路由器每个使能了PIM协议的接口上都会对外发送Hello报文。封装Hello报文的组播报文的目的地址是224.0.0.13(代表同一网段中所有PIM路由器,是一个永久组播地址)、源地址为接口的IP地址、TTL数值为1。

Hello报文的作用:发现PIM邻居、协调各项PIM协议报文参数,并维持邻居关系。

在发现PIM邻居的过程中,同一网段中的PIM路由器都必须接收目的地址为224.0.0.13的组播报文。这样直接相连的PIM路由器之间通过交互Hello报文后就可以彼此知道自己的邻居信息,建立邻居关系。只有邻居关系建立成功后,PIM路由器之间才能相互接收PIM协议报文,从而创建组播路由表项。

Hello报文中携带多项PIM协议报文参数,主要用于PIM邻居之间PIM协议报文的控制,协调各项PIM协议报文参数。具体参数包括:

(1)DR_Priority:表示各路由器接口竞选DR(指定路由器)的优先级,优先级越高越容易获胜,担当IGMPv1的查询器(注意,如果是运行IGMPv2或IGMPv3则采用专门的查询器选举机制)。

(2)Holdtime:表示保持邻居为可达状态的超时时间,超过这个时间没收到邻居发来的Hello报文即认为该邻居不可达。这与RIP、OSPF等动态路由协议中的Hello报文是一样的。

(3)LAN_Delay:表示共享网段内传输Prune(剪枝)报文的延迟时间,超过这个时间,这个报文将被丢弃。

(4)Neighbor-Tracking:表示邻居跟踪功能。

(5)Override-Interval:表示Hello报文中携带的否决剪枝的时间间隔。当超过这个时间后原来的剪枝状态就要被中止,恢复对应接口的组播转发功能。

2、维持邻居关系

PIM路由器之间周期性地发送Hello报文。如果Holdtime超时还没有接收到该PIM邻居发出的新的Hello报文,则认为该邻居不可达,将其从邻居列表中清除。

PIM邻居的变化将导致网络中组播拓扑的变化。如果组播分发树上的某上游邻居或下游邻居不可达,将导致组播路由器重新收敛,组播分发树迁移。

3、扩散

当PIM-DM网络总出现活跃的组播源之后,组播源发送的组播报文将在全网内扩散(Flooding)。“扩散”的目的其实就是为了下一步的“剪枝”和“断言”操作。当PIM路由器接收到组播报文,并根据单播路由表进行RPF检查通过后,就会在该路由器上创建(S,G)表项。在PIM路由器的下游接口列表中包括了除上游接口之外,与所有PIM邻居相连的接口,到达的组播报文将从各个下游接口转发出去。最后组播报文扩散到达叶子路由器,此时会出现以下两种情况:

(1)如果与该叶子路由器相连用户网段上存在组成员,则将与该网段相连的接口加入(S,G)表项的下游接口列表中,后续的组播报文会向组成员转发。

(2)如果与该叶子路由器相连用户网段上不存在组成员,且不需要向其下游PIM邻居转发组播报文,则执行“剪枝”机制,从组播路径中去掉这部分路径。

有时组播报文扩散到一个连着多台PIM路由器的共享网段时,会出现这种情况:这些PIM路由器上进行的RPF检查都能通过,从而有多份相同报文转发到这个网段。此时,需要执行“断言”机制,保证只有一个PIM路由器向该网段转发组播报文。


如上图,在PIM-DM网络中,RouterA、RouterB和RouterC之间通过发送Hello报文建立了PIM邻居关系。HostA通过RouterA与HostA之间运行的IGMP协议加入了组播组G,HostB没有加入任何组播组。则扩散的具体过程如下,从中也反映了扩散的目的之一——“剪枝”。

(1)组播源S开始向组播组G发送组播报文。

(2)RouterC接收到源发送的组播报文后根据单播路由表进行RPF检查。RPF检查通过后创建(S,G)表项,下游接口列表包括与RouterA和RouterB相连的接口,后续到达的报文向RouterA和RouterB转发。

(3)RouterA接收来自RouterC的组播报文,通过RPF成功检查后在本地创建对应(S,G)表项,并在下游接口列表添加与组成员HostA相连的接口,后续到达的报文向HostA转发。

(4)RouterB接收来自RouterC的组播报文,由于与RouterB相连下游网段不存在组成员和PIM邻居,所以执行剪枝操作,不会发送组播数据到HostB上。

4、剪枝(Prune)

通过“扩散”特性可了解“剪枝”的目的,剪枝的原理如下:

当PIM路由器接收到组播报文后,通过RPF检查,但是下游网段没有组播报文需求时,PIM路由器会向上游发送剪枝报文,通知上游路由器禁止相应下游接口的转发,将其从(S,G)表项的下游接口列表中删除。剪枝操作由叶子路由器发起逐跳向上,最终组播转发路径上只存在与组成员相连的分支。

路由器为被裁剪的下游接口启动一个剪枝定时器,定时器超时后接口恢复转发。这时,组播报文又会重新在全网范围内扩散,新加入的组成员可以接收到组播报文。随后,下游不存在组成员的叶子路由器再次将向上发起剪枝操作。通过这种周期性地扩散——剪枝,PIM-DM周期性的刷新SPT。当下游接口被剪枝后会执行以下操作:

(1)如果下游叶子路由器有组成员加入,并且希望在下次“扩散——剪枝”前就恢复组播报文转发,则执行“嫁接”机制。

(2)如果下游叶子路由器一直没有组成员加入,希望该接口保持抑制转发状态,则执行“状态刷新机制”。

如下图,RouterB上未连接组成员。在这种情况下,RouterB会向上游发起剪枝请求。过程如下:


(1)RouterB向上游RouterC发送Prune报文,通知RouterC不用再转发数据到该下游网段。

(2)RouterC收到Prune报文后,停止该下游接口(也就是与RouterB相连的出接口)转发,将该下游接口从(S,G)表项中删除,后续到达的报文只向RouterA转发。

5、嫁接(Graft)

PIM-DM通过“嫁接机制”可使有新组成员加入的网段快速得到组播报文。叶子路由器通过IGMP了解到与其相连的用户网段上,组播组G有新的组成员加入。随后叶子路由器会向上游发送Graft报文,请求上游路由器恢复相应出接口转发,将其添加在(S,G)表项下游接口列表中。

嫁接过程从叶子路由器开始,到有组播报文到达的路由器结束。如下图所示为具体的嫁接过程:


(1)RouterB希望立即恢复对HostB组播报文的转发,于是向上游路由器RouterC发送Graft报文,请求恢复相应出接口转发组播报文。

(2)RouterC收到Graft报文后,恢复与RouterB相连的出接口转发,将该接口添加到(S,G)表项中的下游接口列表中,这样后续到达的报文向RouterB转发,直达HostB。

6、状态刷新(StateRefresh)

在PIM-DM网络中,为了避免被剪枝的接口因为“剪枝定时器”超时而恢复转发,离组播源最近的第一跳路由器会周期性地触发State Refresh报文在全网内扩散。收到状态刷新(State Refresh)报文的PIM路由器会刷新剪枝定时器的状态,其目的就是查找原来被剪枝的路径上是否有组播成员要加入,要恢复转发状态,是一种被动中止剪枝状态的操作。在原来被剪枝接口的下游叶子路由器上,如果有新的组成员加入,则立即中止剪枝状态,对应路径的组播转发;如果仍没有组成员加入,则该接口将一直处于抑制转发状态。

7、断言(Assert)

当一个网段内有多个相连的PIM路由器通过RPF检查后向该网段转发相同的组播报文时,则需要通过“断言机制”来保证只有一个PIM路由器向该网段转发组播报文,以保证组成员不接收多份相同的组报文。

“断言机制”是在PIM路由器接收到邻居路由器发送的相同组播报文后,以组播的方式向本网段的所有PIM路由器发送Assert报文,目的地址为224.0.0.13(代表所有PIM路由器)。其他PIM路由器在接收到Assert报文后,将自身参数与对方报文中携带的参数做比较,进行Assert竞选。竞选规则如下:

(1)单播路由协议优先级较高者获胜。

(2)如果优先级相同,则到组播源的路径开销较小者获胜。

(3)如果以上都相同,则下游接口IP地址最大者获胜。

根据Assert竞选结果,路由器将执行不同的操作:

(1)获胜一方的下游接口称为AssertWinner,将负责后续对该网段组播报文的转发。

(2)失败一方的下游接口称为AssertLoser,后续不会对该网段转发组播报文,PIM路由器也会将其从(S,G)表项下游接口列表中删除。

Assert竞选结束后,该网段上只存在一个下游接口,只传输一份组播报文。所有Asser Loser可以周期性地恢复组播报文转发,从而引发周期性的Assert竞选。


如上图,RouterB和RouterC均通过了RPF检查,创建了(S,G)表项,并且两者的下游接口连接在同一网段,RouterB和RouterC都向该网段发送组播报文。具体断言过程如下:

(1)RouterB和RouterC从各自上游接口接收到RouterA发来的组播报文,RPF检查都失败,报文被丢弃。这时,RouterB和RouterC就会分别向该网段发送Assert报文。

(2)RouterB在收到RouterC发来的Assert报文后,将自身的路由信息与Assert报文中携带的路由信息进行比较,由于RouterB自身到组播源的开销较小而获胜。于是后续组播报文仍然向该网段转发,RouterC在接收到组播报文后仍然由于RPF检查失败而丢弃。

(3)同样,RouterC在收到RouterB发来的Assert报文,也将自身的路由信息与报文中携带的路由信息进行比较,由于RouterC自身到组播源的开销较大而落败。于是禁止相应下游接口向该网段转发组播报文,将其从(S,G)表项的下游接口列表中删除。

三、PIM-SM(ASM模型)工作原理

PIM-SM适用于ASM和SSM两种模型。在ASM模型中,它使用“拉(Pull)模式”转发组播报文,一般应用于组播成员规模相对较大、相对稀疏的网络。其基本工作机制如下:

(1)在网络中维护一台RP,可以为随时出现的组成员或组播源服务。网络中所有PIM路由器都知道RP的位置。

(2)当网络中出现组成员(用户主机通过IGMP加入某组播组G)时,最后一跳路由器向RP发送Join报文,逐跳创建(*,G)表项,生成一棵以RP为根的RPT。

(3)当网络中出现活跃的组播源时(信源向某组播组G发送第一个组播数据时),第一跳路由器将组播数据封装在Register报文中单播发往RP,在RP上创建(S,G)表项,注册源信息。

在ASM模型中,PIM-SM的关键机制包括邻居发现、DR竞选、RP发现、RPT构建、组播源注册、SPT切换、剪枝、断言;同时也可通过配置BSR(Bootstrap Router,自举路由器)管理域来实现单个PIM-SM域的精细化管理。其中“邻居发现”“断言机制”与前面相同。

1、DR竞选

在组播源或组成员所在的网段,通常同时连接着多台PIM路由器。这些PIM路由器之间通过交互Hello报文成为PIM邻居,Hello报文中携带DR优先级和该网段接口地址。PIM路由器将自身条件与对方报文中携带的信息进行比较,选举出唯一的DR(注意:每个网段要选举一个DR,并不是整个组播网络中只能有一台DR)来负责源端或组成员端组播报文的收发。竞选规则如下:

(1)DR优先级较高者获胜(在网段中所有PIM路由器都支持DR优先级的情况下)。

(2)如果DR优先级相同,或该网段存在至少一台PIM路由器不支持在Hello报文中携带DR优先级,则IP地址较大者获胜。

(3)如果当前DR出现故障,将导致PIM邻居关系超时,其他PIM邻居之间会触发新一轮的DR竞选。

在ASM模型中DR主要作用如下:

(1)在连接组播源的共享网段,由DR负责向RP发送Register注册(组播源注册)报文。与组播源相连的DR称为源端DR。

(2)在连接组成员的共享网段,由DR负责向RP发送Join加入(组成员加入)报文。与组成员相连的DR称为组成员端DR。

2、RP发现

RP为网络中一台重要的PIM路由器,用于处理组播源DR注册信息及组成员加入请求,网络中的所有PIM路由器都必须直到RP的地址,类似于一个供求信息的汇聚中心。

一个RP可以同时为多个组播组服务,但一个组播组只能对应一个RP。目前可以通过以下方式配置RP。

(1)静态RP:在网络中的所有PIM路由器上配置相同的RP地址,静态指定RP的位置。

(2)动态RP:在PIM域内选择几台PIM路由器,配置C-RP(Candidate-RP,候选RP)来动态竞选出RP。不过此时,还需要通过配置C-BSR(Candidate-BSR,候选BSR)选举出BSR,来收集C-RP的通告信息,向PIM-SM域内的所有PIM路由器发布。

BSR(自举路由器)是PIM-SM网络里的管理核心,负责收集网络中C-RP(Candidate-RP,候选RP)发来的宣告信息(Advertisement message),然后将为每个组播组选择部分C-RP信息组成RP-Set(即组播组和RP的映射数据库),并以BSR消息(BSR Meaasge)发布到整个PIM-SM网络,从而使网络内的所有路由器(包括DR)都知道RP的位置。

BSR的选举过程中,初始时每个C-BSR都认为自己是BSR,向全网发送Bootstrap报文。Bootstrap报文中携带C-BSR地址、C-BSR的优先级。每一台PIM路由器都收到所有C-BSR发出的BootStrap报文,通过比较这些C-BSR信息,竞选产生BSR。BSR的竞选规则如下:

(1)C-BSR优先级较高者获胜(优先级数值越大优先级越高)。

(2)如果优先级相同,IP地址较大的C-BSR获胜。

C-RP竞选的具体过程:

(1)C-RP向BSR发送Advertisement报文,报文中携带C-RP地址、服务的组范围和C-RP优先级。

(2)BSR收到这些Advertisement报文后,将这些信息汇总为RP-Set(RP集),封装在Bootstrap报文中,发布给全网的每一台PIM-SM路由器。

(3)各PIM路由器收到Bootstrap报文后,使用相同的规则进行计算和比较,从多个针对特定组的C-RP中竞选出改组RP。规则如下:

①C-RP接口地址掩码最长者获胜。

②C-RP优先级较高者获胜(优先级数值越大优先级越低)。

③如果优先级相同,则执行Hash函数,计算结果较大的C-RP获胜。

④如果以上都相同,则C-RP地址较大者获胜。

由于所有PIM路由器使用相同的RP-Set和竞选规则,所以得到的组播组与RP之间的对应关系也相同。PIM路由器将“组播组——RP”对应关系保存下来,指导后续的组播操作。

3、RPT构建

PIM-SMRPT是一棵以RP为根,以存在组成员关系的PIM路由器为叶子的组播分发树,如下图


当网络中出现组成员(用户主机通过IGMP加入某组播组G)时,组成员端DR向RP发送Join报文,在通向RP的路径上逐跳创建(*,G)表项,生成一棵以RP为根的RPT。

在RPT构建过程中,PIM路由器在收发Join报文时,都会进行RPF检查。接收者DR首先执行RPF检查:查找到达RP的单播路由,单播路由的出接口为上游接口,下一跳为RPF邻居。然后,接收者DR向该RPF邻居发送Join报文。RPF邻居接收到Join报文后,执行RPF检查,如果检查通过,继续向上游发送。Join报文逐跳上送,直至到达RP。

4、组播源注册

组播源注册也是在RP上进行的,但注册信息是通过源端DR传递到RP的。在PIM-SM网络中,任何一个新出现的组播源都必须首先在RP处注册,然后才能将组播报文传输到组成员。具体过程如下:

(1)组播源将组播报文发给源端DR。

(2)源端DR接收到组播报文后,将其封装在Register报文中,发送给RP。

(3)RP接收到Register报文后,将其解封装,并根据报文中的信息建立对应(S,G)表项,然后将组播数据沿RPT发送到达组成员。

5、SPT切换

在PIM-SM网络中,一个组播组只对应一个RP,只构建一棵RPT。在未进行SPT切换的情况下,所有发往该组的组播报文都必须先封装在注册报文中发往RP,RP解封装后,再沿RPT分发。但这样会出现一个问题,那就是因为RP是所有组播报文必经的中转站,当组播报文速率逐渐增大时会对RP形成巨大的负担。为了解决此问题,PIM-SM允许RP或组成员端DR通过触发SPT切换来减轻RP的负担。

RP触发SPT切换的原理:在RP收到源端DR的注册报文后,将封装在Register报文中的组播报文直接沿RPT转发给组成员(不进行解封),同时RP会向源端DR逐跳发送Join报文。发送过程中在PIM路由器创建(S,G)表项,从而建立了RP到源的SPT。SPT树建立成功后,源端DR直接将组成员加入的组播报文转发到RP。最终使源端和RP免除频繁的封装与解封装。


如上图,组成员端DR周期性检测组播报文的转发速率,一旦发现(S,G)报文的转发速率超过阈值,则触发以下SPT切换:

(1)组成员端DR(如RouterD)逐跳向源端DR逐跳发送Join报文并创建(S,G)表项,建立源端DR到组成员DR的SPT。

(2)SPT建立后,组成员端DR会沿着RPT逐跳向RP发送剪枝报文,删除(S,G)表项中相应的下游接口。剪枝结束后,RP不再沿RPT转发组播报文到组成员端。

如果SPT不经过RP,RP会继续向源端DR逐跳发送剪枝报文,删除(S,G)表项中相应的下游接口。剪枝结束后,源端DR不再沿“源端DR——RP”的SPT转发组播报文到RP。

缺省情况下,设备一般未设置组播报文转发速率的阈值,RP或者组成员端DR在接收到第一份组播报文时都会触发各自的SPT切换。

6、BSR管理域

为了实现网络管理精细化,可以选择将一个PIM-SM网络划分为多个BSR管理域和一个Global(全局)域。这样一方面可以有效地分担单一BSR的管理压力,另一方面可以使用私有组地址为特定区域的用户提供专门服务。

每个BSR管理域中维护一个BSR,为某一特定地址范围的组播组服务。Global域中维护一个BSR,为所有剩余的组播组服务。

BSR管理域是针对特定地址范围的组播组的管理区域,属于此范围的组播报文只能在本管理域内传播,无法通过BSR管理域边界。


上图所示包括了BSR1和BSR2两个管理域。对于有相同组播地址的不同管理域,各BSR管理域所包含的PIM路由器互不相同,同一PIM路由器不能从属于多个BSR管理域。各BSR管理域在地狱上相互独立,且相互隔离。Global域包含PIM-SM网络内的全部PIM路由器。不属于任意BSR管理域的组播报文,可以在整个PIM网络范围内传播。

如果从组播组地址范围来看,每个BSR管理域为特定地址范围的组播组提供服务,不同的BSR管理域服务的组播组地址范围可以重叠。但每个组播组地址只在本BSR管理域内有效,相当于私有组地址。如下图所示,BSR1域和BSR3域对应的组播组地址范围出现重叠。


不属于任何BSR管理域的组播组,一律属于Global域的服务范围。上图中的Global域组地址范围是除了G1、G2之外的G-G1-G2组播地址。

Global域和每个BSR管理域都包含针对自己域的C-RP和BSR设备,这些设备在行使相应功能时仅在本域内有效。即BSR机制和RP竞选在各管理域之间是隔离的。每个BSR管理域都有自己的边界,该管理域的组播信息(C-RP宣告报文、BSR自举报文等)不能跨越域传播。但Global域的组播信息可以在整个Global域内传递,可以穿越任意BSR管理域。

四、PIM-SM(SSM模型)工作原理

SSM模型是借助PIM-SM的部分技术和IGMPv3/MLDv2来实现的,无需维护RP、无需构建RPT、无需注册组播源,可以直接在源与组成员之间建立SPT。

SSM的特定是网络用户能够预先知道组播源的具体位置,因此用户在加入组播组时可以明确指定从哪些源接收信息,组成员端DR了解到用户主机的需求后,直接向源端DR发送Join报文。Join报文逐跳向上传输,在源与组成员之间建立SPT。

在SSM模型中,PIM-SM的关键机制包括邻居发现、DR竞选、构建SPT。其中“邻居发现”机制与PIM-DM邻居发现机制一样,而“DR竞选”机制与PIM-SM(ASM模型)的“DR竞选”机制一样。

下图为PIM-SM(SSM模型)的SPT构建原理。具体过程如下:


(1)担当组成员端DR的RouterD、RouterE借助IGMPv3/MLDv2协议了解到用户主机有到相同组播组不同组播源的组播需要,于是分别逐跳向源方向(SSM模型中组播源是已知的)发送Join报文。

(2)沿途各PIM路由器通过提取Join报文中的相关信息分别创建(S1,G)、(S2,G)表项,最终就形成了从源S1到组成员HostA、源S2到组成员HostB的SPT。

(3)SPT建立后,源端就会将组播报文沿着SPT分发给组成员。

五、单自治域PIM-SM应用

大多数组播应用还是在单个AS、单个PIM域环境下的,如下图所示


一个比较大型的组播网络,该网络中已经部署了完备的IGP路由,且任意网段路由可达。网络中的组成员分布相对比较稀疏,要求网络中的用户主机能够按需接收视频点播信息,并在一定程度上节约网络的带宽。

HostA、HostB和HostC为三个末梢网络中的信息接收者,通过组播方式接收视频点播信息,整个PIM域采用PIM-SM方式。RouterA与组播源S1相连,RouterC与组播源S2相连;RouterB连接HostA,RouterE和RouterG连接HostB和HostC。在所有路由器接口上启用PIM-SM协议。

因为网络中的组播源分布比较密集,则可以选择与组播源比较近的核心设备作为C-RP。将RouterC和RouterD的接口配置为C-BSR和C-RP,动态竞选出为PIM-SM网络服务的BSR和RP。在RouterB与HostA之间,RouterE、RouterG与HostB、HostC之间均运行IGMP协议。

RP的部署方式可以基于以下原则(避免在一个PIM域中不同路由器上分别使用静态RP和动态RP,以防止RP信息不一致)。

(1)中小型网络:建议选择静态RP方式,对设备要求低,也比较稳定。

如果网络中只有一个组播源,建议选择直连组播源的设备作为静态RP,这样可以省略组播源DR向RP注册的过程。采用静态RP方式要确保域内所有路由器(包括RP本身)的RP信息以及服务的组播组范围全网一致。

(2)大型网络:可以采用动态RP方式,可靠性高,可维护性强。

如果网络中存在多个组播源,且分布密集,建议选择与组播源比较近的核心设备作为C-RP;如果网络中存在多个用户,且分布密集,建议选择与用户比较近的核心设备作为C-RP。

为路由器接口配置IGMP协议时,请确保接口参数配置的一致性,即遵循如下原则:连接在同一网段的所有路由器必须运行相同的IGMP版本(推荐使用IGMPv2),且各接口参数(如查询定时器、组成员关系保持时间等)必须相同。如果IGMP版本或各参数不相同,会导致不同路由器上IGMP组成员关系不一致。

部署完上述网络后,HostA和HostB根据需要向RP发送Join消息,组播源的信息能够到达接收者。建议在网络边缘配置接口静态接入用户所请求的组播组,可以提高用户收看频道的稳定性。


  • 2
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值