PIM

PIM-DM

1.     邻居发现(Neighbor Discovery)

使能了PIM协议的接口都会对外发送Hello报文。目的地址224.0.0.13、源地址是接口的IP地址、TTL为1。

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

协调各项PIM协议报文参数:

DR_priority:只在PIM-SM网络的DR竞选中用到。

Holdtime:

LAN_Delay:

Neighbor-Tracking:

Override-Interval  

2.     扩散(Flooding)

出现活跃组播源

RPF检查

通过,创建(S,G)表项

下游接口列表包括:除上游接口外的所有PIM邻居相连的接口

后续到达的报文从各个下游接口转发出去

 

 

 

 

 

3.     剪枝(Prune)

RPF检测通过,但是不存在成员端

发送剪枝报文

将该下游接口从(S,G)表项中删除

当路由器存在其他下游接口时,剪枝过程停止

 

 

 

4.     嫁接(Graft)

发送嫁接报文

收到报文后,恢复其接口转发,将该接口添加到(S,G)表项中的下游接口列表中

直到路由器上存在组播报文的时,嫁接过程停止

5.     状态刷新(State Refresh)

为了避免被裁剪的接口因为“剪枝定时器”超时而恢复转发,离组播源最近的第一跳路由器会周期性地触发State Refresh报文在全网内扩散。收到State Refresh报文的PIM路由器会刷新剪枝定时器的状态。被裁剪接口的下游叶子路由器如果一直没有组成员加入,该接口将一直处于抑制转发状态。

6.     断言(Assert)

什么时候需要断言机制?

当一个网段内有多个相连的PIM路由器RPF检查通过向该网段转发组播报文时,则需要通过断言机制来保证只有一个PIM路由器向该网段转发组播报文。

PIM路由器在接收到邻居路由器发送的相同组播报文后,会以组播的方式向本网段的所有PIM路由器发送Assert报文,其中目的地址为永久组地址224.0.0.13。其它PIM路由器在接收到Assert报文后,将自身参数与对方报文中携带的参数做比较,进行Assert竞选。竞选规则如下:

£  单播路由协议优先级较高者获胜。

£  如果优先级相同,则到组播源的开销较小者获胜。

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

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

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

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

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

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

断言过程如下:

RouterB和RouterC从各自下游接口接收到对方发来的组播报文,RPF检查都失败,报文被丢弃。同时,RouterB和RouterC分别向该网段发送Assert报文。

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

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

PIM-SM(ASM模型)

1.     邻居发现

使能了PIM协议的接口都会对外发送Hello报文。目的地址224.0.0.13、源地址是接口的IP地址、TTL为1。

 

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

发现PIM邻居:

同一网段中的PIM路由器都必须接收目的地址为224.0.0.13的组播报文。这样直接相连的PIM路由器之间通过交互Hello报文以后,就可以彼此知道自己的邻居信息,建立邻居关系。

只有邻居关系建立成功后,PIM路由器才能接收其他PIM协议报文,从而创建组播路由表项。

协调各项PIM协议报文参数

DR_priority:各路由器接口竞选DR的优先级,只在PIM-SM网络的DR竞选中用到。

Holdtime:表示保持邻居为可达状态的超时时间。

LAN_Delay:表示共享网段内传输Prune报文的延迟时间。

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

Override-Interval:表示Hello报文中携带的否决剪枝的时间间隔。

维持邻居关系

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

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

2.     DR选举

a)       为什么需要DR?

在组播源或组成员所在的网段,通常同时连接着多台PIM路由器。这些PIM路由器之间通过交互Hello报文成为PIM邻居,Hello报文中携带DR优先级和该网段接口地址。PIM路由器将自身条件与对方报文中携带的信息进行比较,选举出DR来负责源端或组成员端组播报文的收发。

b)      DR选举规则?

£  DR优先级较高者获胜(网段中所有PIM路由器都支持DR优先级)。

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

c)       DR的作用?

£  源端DR:在连接组播源的共享网段,由DR负责向RP发送Register注册报文。

£  成员端DR:在连接组成员的共享网段,由DR负责向RP发送Join加入报文。

 

 

 

 

 

 

 

 

 

 

3.     RP发现

a)       RP(汇聚点)的作用?

用于处理源端DR注册信息及组成员加入请求,网络中的所有PIM路由器都必须知道RP的地址。

b)      RP的配置方式?

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

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

c)       BSR如何选举?选举规则?

C-BSR在竞选的时候,开始时每个C-BSR都认为自己是BSR,向全网发送自举报文(Bootstrap)。

自举报文(Bootstrap)中携带C-BSR地址、C-BSR的优先级。每一台PIM路由器都收到所有C-BSR发出的Bootstrap报文,通过比较这些C-BSR信息,竞选产生BSR。

BSR选举规则:

£  优先级较高者获胜(优先级数值越大越优先)

£  如果优先级相同,IP地址较大者获胜

d)      C-RP竞选过程

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

£  BSR将这些信息汇总为RP-Set,封装在Bootstrap报文中,发布给全网的每一台PIM-SM路由器。

£  各PIM路由器根据RP-Set,使用相同的规则进行计算和比较,从多个针对特定组的C-RP中竞选出该组RP。

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

e)       C-RP竞选规则

£  与用户加入的组地址匹配的C-RP服务的组范围掩码最长者获胜。

£  如果以上比较结果相同,则C-RP优先级较高者获胜(优先级数值越小优先级越高)。

£  如果以上比较结果都相同,则执行Hash函数,计算结果较大者获胜。

£  如果以上比较结果都相同,则C-RP的IP地址较大者获胜。

4.     RPT构建

a)       什么是RPT树?以RP为根,以存在组成员关系的PIM路由器为叶子的组播分发树。

b)      RPT的构建过程?

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

注意:

在RPT构建过程中,PIM路由器在发送Join报文时,会进行RPF检查:查找到达RP的单播路由,单播路由的出接口为上游接口,下一跳为RPF邻居。Join报文从组成员端DR开始逐跳发送,直至到RP。

 

 

 

 

 

 

5.     组播源注册

在PIM-SM网络中,任何一个新出现的组播源都必须首先在RP处“注册”,继而才能将组播报文传输到组成员。

组播源注册过程:

£  组播源将组播报文发给源端DR。

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

£  RP接收到Register报文,将其解封装,建立(S,G)表项,并将组播数据沿RPT发送到达组成员。

  

 

 

 

 

 

 

 

6.     SPT切换

l  PIM-SM通过指定一个利用带宽的SPT阈值可以实现RPT到SPT的切换。

l  用户端DR周期性检测组播报文的转发速率,一旦发现从RP发往组播组G的报文速率超过阈值,则触发SPT切换:

p  用户端DR逐跳向源端DR发送(S,G)Join报文并创建(S,G)表项,建立源端DR到用户端DR的SPT。

p  SPT建立后,用户端DR会沿着RPT逐跳向RP发送剪枝报文,收到剪枝报文的路由器将(*,G)复制成相应的(S,G),并将相应的下游接口置为剪枝状态。剪枝结束后,RP不再沿RPT转发组播报文到组成员端。

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

l  在VRP中,缺省情况下连接接收者的路由器在探测到组播源之后(即接收到第一个数据报文(阈值为0)),便立即加入最短路径树,即从RPT向SPT切换。

l  通过RPT树到SPT树的切换,PIM-SM能够以比PIM-DM更精确的方式建立SPT转发树。

7.     断言Assert

什么时候需要断言机制?

当一个网段内有多个相连的PIM路由器RPF检查通过向该网段转发组播报文时,则需要通过断言机制来保证只有一个PIM路由器向该网段转发组播报文。

PIM路由器在接收到邻居路由器发送的相同组播报文后,会以组播的方式向本网段的所有PIM路由器发送Assert报文,其中目的地址为永久组地址224.0.0.13。其它PIM路由器在接收到Assert报文后,将自身参数与对方报文中携带的参数做比较,进行Assert竞选。竞选规则如下:

£  单播路由协议优先级较高者获胜。

£  如果优先级相同,则到组播源的开销较小者获胜。

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

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

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

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

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

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

断言过程如下:

RouterB和RouterC从各自下游接口接收到对方发来的组播报文,RPF检查都失败,报文被丢弃。同时,RouterB和RouterC分别向该网段发送Assert报文。

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

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

PIM-SM(SSM模型)

1.     基本原理

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

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

       在SSM模型中,PIM-SM的关键机制包括邻居发现、DR竞选、STP构建。

2.     邻居发现

同PIM-DM

3.     DR竞选

同PIM-DM

4.     SPT构建

SPT的建立过程如下:

£  RouterD、RouterE借助IGMPv3/MLDv2协议了解到用户主机有到相同组播组不同组播源的组播需要,逐跳向源方向发送Join报文。

£  PIM路由器通过Join报文分别创建(S1,G)、(S2,G)表项,从而分别建立了源S1到组成员HostA、源S2到组成员HostB的SPT。

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

5.     PIM实现方法的比较

协议

名称

模型分类

适用场景

工作机制

PIM-DM

Protocol Independent Multicast-Dense Mode 协议无关组播—密集模式

ASM模型

适合规模较小、组播组成员相对比较密集的局域网。

通过周期性“扩散-剪枝”维护一棵连接组播源和组成员的单向无环SPT。

PIM-SM

Protocol Independent Multicast-Sparse Mode 协议无关组播—稀疏模式

ASM模型

适合网络中的组成员相对比较稀疏,分布广泛的大型网络。

采用接收者主动加入的方式建立组播分发树,需要维护RP、构建RPT、注册组播源。

SSM模型

适合网络中的用户预先知道组播源的位置,直接向指定的组播源请求组播数据的场景。

直接在组播源与组成员之间建立SPT,无需维护RP、构建RPT、注册组播源。

猜你喜欢

转载自www.cnblogs.com/Z-bx/p/12170879.html
PIM