【技术】组播路由协议PIM-DM工作机制解析!

PIM-DM工作原理

PIM-DM基本概念

  ·PIM-DM主要用在组成员较少且相对密集的网络中,通过“扩散-剪枝”的方式形成组播转发树(SPT)。

·PIM-DM在形成SPT的过程中,除了扩散(Flooding),剪枝(Prune)机制外,还会涉及邻居发现(Neighbor Discovery),嫁接(Graft),断言(Assert)和状态刷新(State Refresh)机制。

PIM-DM协议报文

·PIM协议报文直接采用IP封装,目的地址224.0.0.13,IP协议号103。

·PIM-DM与PIM-SM使用的协议报文类型有所不同。·PIM-DM使用报文主要是以下几类:

邻居发现

·组播转发路径只能在PIM邻居之间建立,因此邻居发现是形成组播分发树的先决条件。

·邻居发现主要通过PIM Hello包完成。

 ·Hello报文中携带多项PIM协议报文参数,主要用于PIM邻居之间PIM协议报文的控制。具体如下:▫DR_Priority:表示各路由器接口竞选DR的优先级,优先级越高越容易获胜。

▫Holdtime:表示保持邻居为可达状态的超时时间。如果在超时时间内没有收到PIM邻居发送的Hello报文,路由器则认为邻居不可达。

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

▫Neighbor-Tracking:表示邻居跟踪功能。▫Override-Interval:表示Hello报文中携带的否决剪枝的时间间隔。

首次形成组播分发树

·PIM-DM模式首次形成组播分发树主要依赖扩散机制、剪枝机制、断言机制与DR选举机制。 

▫扩散机制:组播数据包向所有的PIM邻居泛洪,同时组播路由器产生组播路由表项。

▫断言机制:当组播转发过程中存在多路访问网络,则需要选举出一个组播转发路由器,避免重复组播报文。▫剪枝机制:如果组播路由器下没有组成员,则将源到该组播路由器的组播转发路径剪枝。

扩散机制

·组播源发送的组播报文会在全网内扩散。当PIM路由器接收到组播报文,先进行RPF检查,通过后会在该路由器上创建(S,G)表项,之后会向所有PIM邻居发送。

·PIM-DM形成的(S,G)表项有老化时间(默认210s),如果老化时间超时前没有收到新的组播报文,则删除(S,G)表项。

 ·扩散具体过程如下:

·扩散机制会周期性(默认180s)全网扩散组播数据,周期性扩散的主要目的是探测是否有新成员加组,但是由于全网扩散组播数据会浪费大量带宽,所以现在的组播网络一般使用“状态刷新机制”加上“嫁接机制”来实现周期性全网扩散感知新成员加组的目的。

断言机制

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

·通过断言机制的选举规则将决定组播路由器的转发行为: 

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

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

·断言机制由组播数据触发。

断言机制选举规则

·PIM路由器在接收到邻居路由器发送的相同组播报文后,会向该网段发送断言(Assert)报文,进行Assert选举。Assert报文内会携带到组播源的单播路由前缀,路由优先级与开销。选举规则如下:

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

▫如果优先级相同,则到组播源的开销较小者获胜。▫如果以上都相同,则下游接口IP地址最大者获胜。

·Assert选举失败的设备会抑制转发,并将这种抑制转发的状态保持一段时间,这段时间就被称为Assert保持时间,默认180s。

·Assert保持时间超时后,竞选失败的设备会恢复转发从而触发新一轮竞选。

剪枝机制

·对于没有组成员连接的组播路由器,组播网络无需再将组播流量继续放往该设备。通过剪枝机制,组播网络可以将此类路径剪枝。

·剪枝机制工作原理如下:

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

·当下游接口被剪枝后:

▫如果下游叶子路由器有组成员加入,并且希望在下次“扩散-剪枝”前就恢复组播报文转发,则执行嫁接动作。▫如果下游叶子路由器一直没有组成员加入,希望该接口保持抑制转发状态,则执行状态刷新动作。

维护组播分发树

·组播分发树形成后不会一直存在,也不会一直不变。

 ·在PIM邻居关系稳定,组成员没有变化的情况下,维护组播分发树一般有两种方式: 

▫持续发送组播报文,保证组播路由表项能一直存在。▫发送状态刷新报文,保证组播路由表项的下行接口状态不发生变化。

状态刷新机制

·在PIM-DM网络中,为了避免被裁剪的接口因为“剪枝定时器”超时而恢复转发,离组播源最近的第一跳路由器会周期性地触发State Refresh报文在全网内扩散。

·收到State Refresh报文的PIM路由器会刷新剪枝定时器的状态。被裁剪接口的下游叶子路由器如果一直没有组成员加入,该接口将一直处于抑制转发状态。

新成员加组

·当有新成员加入组播组后,组播网络需要更新组播分发树,才能将组播数据发往组成员。PIM-DM模式在使用“扩散-剪枝”的方式建立组播分发树后,通过状态刷新机制,使下行接口一旦被抑制就无法自动恢复。

·因此需要一些机制来更新组播分发树,一般PIM-DM模式更新组播分发树的方法有两种:

▫等待组播路由表超时后,全网重新泛洪。该方法不可控,在现网中无法实现 使用嫁接(Graft)机制,当新成员加组后,主动反向建立组播分发路径。现网中一般使用嫁接机制来实现新成员加组

嫁接机制

·PIM-DM通过嫁接机制,使有新组成员加入的网段快速得到组播报文。

·叶子路由器通过IGMP了解到与其相连的用户网段上,组播组G有新的组成员加入。随后叶子路由器会基于本地的组播路由表向上游发送Graft报文,请求上游路由器恢复相应出接口转发,将其添加在(S,G)表项下游接口列表中。

PIM-DM基本配置

PIM-DM的基本配置

PIM-DM基础实验

·实验要求:

▫通过PIM-DM协议让PC1、PC2可以接收到组播源的数据包。

PIM-DM的配置 (1)

PIM-DM的配置 (2)

查看参数

为了方便广大网络爱好学习者一起学(聚)习(众)交(搞)流(基),特开设思科干货交流群,里面已经上传大量学习资料,欢迎广大网络工程师进群学习!

扫我入群👇

(0)

相关推荐