PIM DM技术原理与实验

概述:

在这里插入图片描述
PIM-DM使用“推(Push)模式”转发组播报文,一般应用于组播组成员规模相对较小、相对密集的网络。在实现过程中,它会假设网络中的组成员分布非常稠密,每个网段都可能存在组成员。当有活跃的组播源出现时,PIM-DM会将组播源发来的组播报文扩散到整个网络的PIM路由器上,再裁剪掉不存在组成员的分支。PIM-DM通过周期性的进行“扩散(Flooding)—剪枝(Prune)”,来构建并维护一棵连接组播源和组成员的单向无环SPT(Source Specific Shortest Path Tree)。如果在下一次“扩散-剪枝”进行前,被裁剪掉的分支由于其叶子路由器上有新的组成员加入而希望提前恢复转发状态,也可通过嫁接(Graft)机制主动恢复其对组播报文的转发。

PIM-DM的关键工作机制包括邻居发现、扩散、剪枝、嫁接、断言和状态刷新。其中,扩散、剪枝、嫁接是构建SPT的主要方法。上游接口和下游接口对于每个组播是相对的。也就是同一个路由器在不同的组播组中接口角色不同,完全是按照组播组划分。对于DM来说,接收组播的接口为上游接口,其他开启了PIM的接口都被称为下游接口。下游接口有两种状态(正常活动->转发组播流量,抑制->不转发组播流量)。

PIM DM组播路由表:

[R1] display pim routing-table fsm
VPN-Instance: public net
Total 0(*, G) entry, 1 (S, G) entry
Abreviations for FSM states and Timers:
    N-no info, Jjoined NJ-not joined, P-pruned,
    NP-not pruned, PP pune pending, w. winner, L-loser,
    F-forwarding. AP ack pending, DR-designated router,
    NDR-non-designate router, RCVR-downstram reivers,
    PPT-prmcpeneing timer, GRT. graft rety timer,
    OT-override timer, PLT-prune limit timer,
    ET-join expiry tmer,JT-oin timer,
    AT-assrt timer, PT-prune timer
(10.11.100, 291.1)
    Protoco: pim-dm, Flag: LOC ACT
    UpTime: 01:08
    Upstream itefrce: GigabitEthemet0/0/0
        Uptream neighbor: NULL
        RPF prime neighbor: NULL
        Join/Prune FSM: [F]
    Downstream interface(S) information: None
    FSM information for non-downstream interfaces:
        1: Seriall/0/0
            Protocol: pim-dm
            DR state: [NDR]
       Join/Prune FSM: [P, PT Expires: 0:02:43]
Assert FSM: [NI]

上游接口(upstream interface)及状态:
上游接口义叫作RPF接口,是根据组播报又的源地址,查找单播路由表而确定的距离组播源最近的接口。根据上游接口的操作行为,接口会有以下几种状态:

  1. NoInfo (ND)):没有接口状态。
  2. Pruned ( P ):已经向上游发送Prune报文。
  3. Forwarding (F): (S,G)下游接口非空时,组播报文从上游接口收到。
  4. AckPending (AP):已经发送 Graft报文,等待GraftAck报文。

下游接口(Downstream interface)列表及接口状态:
转发数据的外出接口列表,又叫下游接口列表。接口列表中的接口状态有如下几种:

  1. NI(NoInfo):接口为正常接口,会一直转发组播数据的状态,接口的初始状态。
  2. P (Pruned):接口已被剪除,不再转发组播数据,接口不会出现在Display PimRouting- table中,但会出现在Display Pim 3. Routing-table Fsm中,该接口会置“P”位。
  3. PP (PrunePending):接口处于延缓剪除状态,仍能转发组播数据。

与下游接口相关的计时器如下:

  1. Prune Pending Timer:延缓剪枝计时器。
  2. Prune Timer:剪枝计时器。

Hello报文的作用:

在这里插入图片描述
作用:发现PIM邻居、协调各项PIM协议报文参数、维持邻居关系。

  1. 发现PIM邻居:在PIM路由器每个使能了PIM协议的接口上,都会对外发送Hello报文。封装Hello报文的组播报文的目的地址是224.0.0.13(表示同一网段中所有PIM路由器)、源地址为接口的IP地址、TTL数值为1。同一网段中的PIM路由器都必须接收目的地址为224.0.0.13的组播报文。这样直接相连的PIM路由器之间通过交互Hello报文以后,就可以彼此知道自己的邻居信息,建立邻居关系。只有邻居关系建立成功后,PIM路由器才能接收其他PIM协议报文,从而创建组播路由表项。

  2. 双方发送Hello报文协调各项PIM协议报文参数:
    • Hello报文中携带多项PIM协议报文参数,主要用于PIM邻居之间PIM协议报文的控制。具体参数如下:
    • DR_Priority:表示各路由器接口竞选DR的优先级,优先级越高越容易获胜。优先级相同的话IP地址越大越优先。
    • Holdtime:表示保持邻居为可达状态的超时时间。
    • LAN_Delay:表示共享网段内传输Prune报文的延迟时间。
    • Neighbor-Tracking:表示邻居跟踪功能。
    • Override-Interval:表示Hello报文中携带的否决剪枝的时间间隔。维持邻居关系
    • PIM路由器之间周期性地发送Hello报文。如果Holdtime超时还没有收到该PIM邻居发出的新的Hello报文,则认为该邻居不可达,将其从邻居列表中清除。
    • PIM邻居的变化将导致网络中组播拓扑的变化。如果组播分发树上的某上游邻居或下游邻居不可达,将导致组播路由重新收敛,组播分发树迁移。

  3. 为IGMPv1选举查询者:
    • 在PIM-DM中通过比较Hello消息上携带的优先级和IP地址,各路由器为多路由器网段选举指定路由器DR,充当IGMPv1的查询器。
    • 当DR出现故障时,接收Hello消息将会超时,邻居路由器之间会触发新的DR选举过程。
    • 同理在源段有多个路由器的时候选举出一个路由器作为发送者(DR)。(在中间段没有很大作用但是还是会选举DR)

Hello计时器
• Hello消息默认发送周期是30秒。
• Hello超时时间默认为105秒,超时后就会重新选举DR。

扩散机制:

原理:
当PIM-DM网络中出现活跃的组播源之后,组播源发送的组播报文将在全网内扩散。当PIM路由器接收到组播报文,根据单播路由表进行RPF检查通过后,就会在该路由器上创建(S,G)表项,下游接口列表中包括除上游接口之外与所有PIM邻居相连的接口,后续到达的组播报文将从各个下游接口转发出去。

最后组播报文扩散到达叶子路由器,会出现以下两种情况:

  1. 若与该叶子路由器相连用户网段上存在组成员,则将与该网段相连的接口加入(S,G)表项的下游接口列表中,后续的组播报文会向组成员转发。
  2. 若与该叶子路由器相连用户网段上不存在组成员,且不需要向其下游PIM邻居转发组播报文,则执行剪枝机制。

所以,在没有剪枝之前,一开始只要是下游接口都会扩散,发送流量,浪费了很多带宽。

PIM DM按上述过程完成组播表的创建,此后,只要源一直活跃, 后续的组播报文流经每台组播路由器时,根据组播表项向指定接口扩散转发。需要说明一点的是,初次扩散时,数据报文在每台路由器上创建表项时,执行RPF检查确定上游接口。后续扩散报文时,只要组播数据进来的接口为表项中的上游接口,报文就向下游接口扩散下去。

在这里插入图片描述
拓扑描述:

  1. 组播源S开始向组播组G发送组播报文。
  2. R1接收到源发送的组播报文后,根据单播路由表进行RPF检查。RPF检查通过,创建(S,G)表项,下游接口列表包括与R2和R5相连的接口,后续到达的报文向R2和R5转发。
  3. R2接收到来自R1的组播报文,RPF检查成功,在本地创建对应(S,G)表项,下游接口列表包括与R3和R4相连的接口,后续到达的报文向R3和R4转发。
  4. R5接收到来自R1的组播报文,由于与R5相连下游网段不存在组成员和PIM邻居,执行剪枝。
  5. R3接收到来自R2的组播报文,RPF检查成功,在本地创建对应(S,G)表项,下游接口列表添加与组成员PC1相连的接口,后续到达的报文向PC1转发。
  6. R4接收到来自R2的组播报文,由于与R4相连下游网段不存在组成员和PIM邻居,执行剪枝。

剪枝/加入机制:

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

路由器为被裁剪的下游接口启动一个剪枝定时器(默认为210秒>扩散的180s),定时器超时后接口恢复转发(为了让下游一直存在(S,G)的条目(除了静态的都不能是永久的,动态的老化时间是大于210s的),否则被修剪的时间一长,条目老化后消失,失去了上游接口,下游不知道怎么发送嫁接报文引流)。组播报文重新在全网范围内扩散,新加入的组成员可以接收到组播报文。随后,下游不存在组成员的叶子路由器将向上发起剪枝操作。通过这种周期性的扩散-剪枝,PIM-DM周期性地刷新SPT。

当下游接口被剪枝后:

  1. 如果下游叶子路由器有组成员加入,并且希望在下次“扩散-剪枝”前就恢复组播报文转发,则执行嫁接机制,之后会提到。
  2. 如果下游叶子路由器一直没有组成员加入,希望该接口保持抑制转发状态,则执行状态刷新机制。当上游接口收到了状态刷新报文,其剪枝接口重新刷新剪枝定时器。刷新功能是默认开启的,具体在后面的状态刷新机制中提到。
    在这里插入图片描述

拓扑描述(重点理解):

  1. R5向上游R1发送Prune报文,通知R1不用再转发数据到该下游网段。
  2. R1收到Prune报文后,停止该下游接口转发,将该下游接口从(S,G)表项中删除。当抑制结束后重新生成,转发流量。由于R1上还存在其他处于转发状态的下游接口,剪枝过程停止(如果没有了继续向上剪枝)。后续到达的报文只向R2转发。
  3. R4向上游R1发送Prune报文,通知R2不用再转发数据到该下游网段。
  4. R2收到Prune报文后,等待3秒(lan-delay + override-interval ),此时R3也能收到R4向上游发送的Prune消息,且R3发现自己下游有一个接收者,所以R3向上游发送Join消息以否决R4发送的Prune消息。
  5. 当R2收到Join消息后,会忽略R4发送的Prune消息。继续向下游转发组播流量。也就是说收到了join消息后可以忽略Prune消息。

总结,当下游接口都为空的时候会向上游发送剪枝消息,表示自己不需要对应的组播流量。

对于lan-delay和override-interval的解释 :

  1. 路由器向外发送的Hello报文携带lan-delay(报文传输延迟时间,默认为500毫秒)参数和override-interval(剪枝否决时间间隔,默认为2500毫秒)参数,加起来刚刚3s。override-interval表示允许下游路由器否决Prune剪枝动作的时间,可以自己设置这个时间。
  2. 当同一网段中有路由器向上游发送剪枝报文时,如果其他路由器仍然需要接收组播数据,则必须在override-interval时间内向上游发送剪枝否决报文。
  3. 当同一链路中的所有路由器上的override-interval值不同时,将进行协商从中选取最大值。
  4. lan-delay + override-interval = PPT。路由器接收到下游剪枝报文后,并不立即执行剪枝操作,而是等待一段时间PPT(Prune-Pending Timer),超时则剪枝。在PPT时间内如果收到下游发来的剪枝否决报文,则取消剪枝操作。

SPT树形成过程:
在这里插入图片描述
最开始都没有抑制下游接口的时候,组播消息会通过泛洪成为一棵SPT树,但是这个不是最终的,SPT树是在不断的动态变动,组播路由器根据剪枝消息剪去多余的分枝,形成一棵新的SPT树。虽然剪枝消息让路由器不再向没有组播成员的分枝转发组播报文。但是每台路由器上的(S,G)表项仍然是存在的,只是下游接口被抑制了,其目的是为了一旦有组播成员加入时可以快速加入并转发组播报文。

嫁接机制:

原理:

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

注意:

  1. 嫁接过程从叶子路由器开始,到有组播报文到达的路由器结束。
  2. 嫁接报文是在没有流量的情况下引流,而加入(join)报文,则是在收到Prune报文后,自己仍然需要此组播流量进行的剪枝否决。
    在这里插入图片描述

拓扑描述:

  1. 被剪枝的下游节点可以在剪枝定时器超时后恢复到转发状态,但是剪枝定时器要等待210秒。如果在这期间有组播成员相加入时必须等待,这个时间是比较长的。为了减少反应的时间,当被剪枝的下游节点需要恢复到转发状态时,该节点可以使用Graft嫁接消息主动通知上游RPF节点。
  2. 网络中一个接收者恢复接收组播数据,R5会发送Graft嫁接消息,并逐跳向组播源S传递,R1接收到Graft嫁接消息后回应确认,从而先前被剪掉的分支恢复信息传输。 Ack消息是很重要的,因为只有这样下游设备才知道嫁接是否成功,否则可能嫁接的跳数过多了,流量要比较久才能得到,下游设备还以为嫁接失败,就会继续发送嫁接的报文,占用了带宽。

状态刷新机制:

原理:
状态刷新( State-Refresh),以下简称SR,属于PIM DM的可选功能,由RFC3973定义,仅PIMv2支持。状态刷新机制需要路由器的支持,华为设备在建立邻居关系时,会通过Hello 报文选项类型21进行能力的协商,只有协商通过, 才在相应邻居上支持SR功能,华为默认支持PIM DM状态刷新机制。

在PIM-DM网络中,为了避免被裁剪的接口因为“剪枝定时器”超时而恢复转发,离组播源最近的第一跳路由器(如果有多个的话是DR发送)会周期性地触发State Refresh报文在全网内扩散。收到State Refresh报文的PIM路由器会刷新剪枝定时器的状态。被裁剪接口的下游叶子路由器如果一直没有组成员加入,该接口将一直处于抑制转发状态。这样种模式的话,抑制定时器永远不会超时,也就是下游接口会被一直抑制,直到下游设备发送了嫁接消息,才接通流量。

但是我们知道,如果我们想嫁接,需要查组播路由表知道上游接口,如果组播路由表老化后,就无法查看上游接口了。所以,状态刷新机制使用周期扩散控制报文SR来取代周期扩散组播数据,使己剪枝的接口继续保持剪枝状态,以减少网络不必要的扩散。SR报文相对于组播报文,对网络的消耗会小很多。
在这里插入图片描述
拓扑描述:

  1. R1触发状态刷新机制,将State Refresh报文向R2和R5扩散。
  2. R5上存在被裁剪接口,刷新该接口的“剪枝定时器”的状态。下一次“扩散-剪枝”来临时,由于R5上仍然没有组成员加入,R5上被裁剪的接口将被抑制转发组播报文。
  3. 状态刷新机制能够很好的减少网络资源浪费,一般情况下不建议禁止接口的状态刷新报文的收发能力。

断言机制:

一、广播环境断言机制:
原理:
当一个网段内有多个相连的PIM路由器RPF检查通过向该网段转发组播报文时,则需要通过断言机制来保证只有一个PIM路由器向该网段转发组播报文。PIM路由器在接收到邻居路由器发送的相同组播报文后,会以组播的方式向本网段的所有PIM路由器发送Assert报文,其中目的地址为永久组地址224.0.0.13。其它PIM路由器在接收到Assert报文后,将自身参数与对方报文中携带的参数做比较,进行Assert竞选。

竞选规则如下:

  1. 单播路由协议优先级较高者获胜。
  2. 如果优先级相同,则到组播源的开销较小者获胜。
  3. 如果以上都相同,则下游接口IP地址最大者获胜。
  4. 根据Assert竞选结果,路由器将执行不同的操作:
    • 获胜一方的下游接口称为Assert Winner,将负责后续对该网段组播报文的转发。
    • 落败一方的下游接口称为Assert Lo ser,后续不会对该网段转发组播报文,PIM路由器也会将其从(S,G)表项下游接口列表中删除。(注意是周期性删除掉,并不是抑制,所以不会向上剪枝)

Assert竞选结束后,该网段上只存在一个下游接口,只传输一份组播报文。所有Assert Loser可以周期性(默认为180秒)地恢复组播报文转发,从而引发周期性的Assert竞选。同样当设备恢复,也会重新竞选主设备,之后的信息由主设备进行发送。

在这里插入图片描述
拓扑描述:

  1. 假设R2到组播源的开销小于R3到组播源的开销。
  2. R2和R3从各自下游接口接收到对方发来的组播报文,RPF检查都失败,报文被丢弃。同时,R2和R3分别向该网段发送Assert报文。
  3. R2将自身的路由信息与R3发来的Assert报文中携带的路由信息进行比较,由于自身到组播源的开销较小而获胜。于是后续组播报文仍然向该网段转发,R3在接收到组播报文后仍然由于RPF检查失败而丢弃。
  4. R3将自身的路由信息与R2发来的Assert报文中携带的路由信息进行比较,由于自身到组播源的开销较大而落败。于是禁止相应下游接口向该网段转发组播报文,将其从(S,G)表项的下游接口列表中删除。

二、P2P环境下断言机制:
在这里插入图片描述
上图中,R2和R4这段路径是点到点链路,在R2和R4上S1/0/1是非RPF接口,R2和R4从其各自的RPF接口收到的组播报文,会继续转发给下游接口S1/0/1。

在R2和R4相连的点到点链路,发生了相同数据的“碰撞”(源IP是10.1.1.100、 目标IP地址是229.1.2.3 的组播报文分别由R2和R4转发到同样的链路上)。彼此收到对方发出的组播数据,触发断言机制,R2和R4分别发送Assert报文,含各自到源的协议优先级和度量值。

一番比较之后,R4在该链路上成为Loser, 剪除自己的下游接口S1/0/1, 关联“断言计时器”,并立即向S1/0/1发送剪枝报文,报文中RPF邻居地址为R4 Winner接口IP。

而R2在成为Winner后,收到R4 Loser发出的剪枝报文,因为点到点链路上没有多余邻居,不需等待Prune Pending Timer超时,所以收到剪枝报文后,接口被立即剪除。

三、断言取消机制:
Assert报文是负责携带“路由协议优先级和度量”的报文,如果度量值是无限大,报文所起到的用途是表明当前路由:器此时不再是Winner, 这是“角色”快速让出的一种办法。

下图中,R4 是Winner,若其上游RPF接口Down掉或RPF接口随拓扑的改变而变成当前的G0/0/1,而此时Loser 的下游接口还处于剪枝状态,等待该网段上新的转发路由器出现需要Assert计时器超时,这样网络中组播流量最坏情况下会中断180s。为了解决这个问题,引入了Assert Cancel 报文。当Winner的上游接口中断或者其他原因导致RPF接口切换到原来的下游,G0/0/1 接口这时会发送Assert Cancel 消息,其中把metric置为“无穷大”。其他Loser路由器看到这个“无穷大”度量,立即认为自己是Assert Winner,并把接口置于转发状态,并立即发送Assert 报文,使网络更快速收敛。
在这里插入图片描述

PIM机制总结:

PIM报文的目的地址都是224.0.0.13,DM模式通过泛洪,刷新时间等机制时刻保持上游接口的存在,下游接口可能被删除或者抑制。

对于连接终端的路由器(最后一跳路由器),他的下游接口是否保持抑制是通过主机是否发送了对应组的IGMP报文来决定的,如果没有IGMP回复的报告报文,默认对应的下游接口就被抑制。

在没有了上游流量后,第一跳路由器(与组播源服务器在同一网段,但是第一跳路由器是不会存在上游接口的,因为没有PIM邻居),条目不会立刻消失,会继续向下发刷新报文,所以一定时间内后续PIM路由器的上游接口仍然存在,但是经过了一段时间,第一跳路由器停止发送刷新报文,后续PIM路由器上游接口消失,整个组播路由条目消失。

注意最后一跳路由器的组播路由条目不会消失,因为有IGMP协议,有相应的下游接口。

报文抓包:

hello,Graft,join/prune,assert,graft-ack,state-Refresh报文是出现在了DM模型下的报文,进行抓包查看:

一、hello报文:
在这里插入图片描述

PIM封装在IP报文上,目的IP和MAC地址都是PIM的专属组播地址。具体内容如下:
在这里插入图片描述

  1. 首先可以看到是IM默认使用的是版本2,版本1已经没有使用了。
  2. 然后全0表示是hello报文,保留位为0,然后再是校验和。
  3. 重要的信息是有5个PIM的选项字段。包含了5个信息:
    DR_Priority:表示各路由器接口竞选DR的优先级,优先级越高越容易获胜。优先级相同的话IP地址越大越优先,默认为1。
    Holdtime:表示保持邻居为可达状态的超时时间,默认为105s。
    LAN_Prune Delay:表示共享网段内传输Prune报文的延迟时间,默认为3s=2.5+0.5。
    ID:表示报文的ID号,区别不同的发送设备,同一个设备的ID号相同。
    State Refresh Capeble:刷新报文的时间,为60s。

二、Join/prune报文:
在这里插入图片描述
type字段为3,可以当然也有上游的接收接口的IP地址,需要加入的组为224.1.1.2,源ip地址为10.1.1.1,没有需要修剪的组。

三、Graft报文:
在这里插入图片描述
类型字段为6位,表示嫁接报文。可以看到里面带有上游报文的邻居23.23.23.3,也就是发送给你的上游接收者。保留位1,有一个group,想要加入的组为224.1.1.2,发送源的IP地址为10.1.1.1。

四、Graft-ack报文:
在这里插入图片描述
嫁接确认报文,类型为7,其他表示和嫁接报文相同,表示对应源发出的组播嫁接成功。

五、State-Refresh:
在这里插入图片描述
类型为9,选项字段里面有刷新的组地址、对应源地址、因为可能要传递多跳,还有的TTL值。最后是Interval间隔:60s,表示每60s发送一次刷新的报文。

六、Assert和Assert Cancel报文:
在这里插入图片描述
类型为5,带有对应的组和源,如果相同的话就需要竞争DR了。并且比较的因素:到达源的metric值,单播协议优先级为10(ospf)。

在这里插入图片描述
Assert Cancel报文其实就是Assert的一类,类型也是为5。和普通Assert区别在于到达源的metric值为最大,单播协议优先级也为最大。

华为设备配置:

配置命令:
一、基本功能:

  1. 执行命令multicast routing-enable,使能组播路由功能。 缺省情况下,没有使能组播路由功能。
  2. 执行命令interface interface-type interface-number,进入接口视图。
  3. 执行命令pim dm,使能PIM-DM功能。 缺省情况下,接口上未使能PIM-DM。(注意,在连接组播源或者主播接收端的时候也要配置为PIM)

二、调整组播源生存时间:
当PIM设备在接收到源S发往组播组G的组播报文后,就会启动该(S,G)表项的定时器,时间设为源生存时间。如果超时前接收到源S后续发来的报文,则重置定时器;如果超时后没有接收到源S后续发来的报文,则认为(S,G)表项失效,将其删除。

  1. 执行命令pim,进入PIM视图。
  2. 执行命令source-lifetime interval,配置组播源生存时间。默认为210s。

三、配置DR优先级:默认为1
在组播源或组成员所在的共享网段,通常同时连接着多台PIM设备。为了争取该网段唯一的组播报文转发权,PIM设备之间就需要通过交互Hello报文进行DR竞选。竞选时,首先比较Hello报文中携带的DR优先级,优先级较高者获胜(优先级数值越大,表示优先级越高);如果DR优先级相同或该网段存在至少一台PIM设备不支持在Hello报文中携带DR优先级,则IP地址较大者获胜。可以全局或者在接口下配置,这里在全局下配置:

  1. 执行命令pim,进入PIM视图。
  2. 执行命令hello-option dr-priority priority,配置竞选DR的优先级。
    配置接口拒绝接收无Generation ID的Hello报文:
  3. 执行命令interface interface-type interface-number,进入接口视图。
  4. 执行命令pim require-genid,配置只接收包含Generation ID的Hello报文。 缺省情况下,PIM接口接收无Generation ID参数的Hello报文。

四、调整Join/Prune报文的时间控制参数(接口或者全局都可以配置,以全局为例):
PIM设备通过向上游发送Prune信息请求停止转发组播数据。实际上,Prune信息被封装在了PIM协议通用的转发控制报文(即Join/Prune报文)中。上游设备在收到Join/Prune报文后,就会启动定时器,时间设为Join/Prune报文自身携带的保持时间。超时后,如果没有收到下游后续发来的Join/Prune报文,则恢复相应组播组下游接口的转发,默认时间为210s。

  1. 执行命令pim,进入PIM视图。
  2. 执行命令holdtime join-prune interval,配置Join/Prune报文的保持时间。

五、调整剪枝延迟时间:
在剪枝过程中,从收到下游设备发来的剪枝信息到继续向上游设备发送剪枝信息会有延迟时间,这段时间称为LAN-Delay。PIM设备在向上游发完剪枝信息后,也不会立即将相应下游接口剪掉,还会保持一段时间向下游转发。如果下游又有组播需求,必须要在这段时间内发送加入请求以否决这个剪枝动作。这段否决剪枝的时间称为Override-Interval。所以,实际上PIM设备从收到剪枝信息到完成剪枝动作总共延迟了LAN-Delay+Override-Interval段时间。LAN-Delay、Override-Interval在全局PIM视图下和接口视图下都可配置,如果同时配置,接口视图下的配置生效。

  1. 执行命令pim,进入PIM视图。
  2. 执行命令hello-option lan-delay interval,配置发送剪枝报文的延迟时间。
  3. 执行命令hello-option override-interval interval,配置否决剪枝的时间。

六、禁止状态刷新报文的转发(默认开启):

  1. 执行命令interface interface-type interface-number,进入接口视图。
  2. 执行命令undo pim state-refresh-capable,禁止状态刷新报文的转发。 缺省情况下,接口允许状态刷新报文的转发。禁止了状态刷新报文的转发后,可在接口上执行命令pim state-refresh-capable重新启用此功能。

七、调整状态刷新报文的时间控制参数:
与组播源直连的第一跳PIM设备会周期性的向下游发送状态刷新报文。由于状态刷新报文扩散发送,设备很有可能在短时间内收到重复的状态刷新报文。为了避免这种情况发生,设备在收到针对某(S,G)的状态刷新报文后,就会启动定时器,时间设为该报文的抑制时间。在定时器超时前,如果收到相同的状态刷新报文,就会直接丢弃。注意配置的时候请保证所有路由器上时间相同:

  1. 执行命令pim ,进入PIM视图。
  2. 执行命令state-refresh-interval interval,配置状态刷新报文的发送周期。
  3. 执行命令state-refresh-rate-limit interval,配置相同状态刷新报文的抑制时间。

八、调整断言控制参数:
当一个网段内有多个相连的PIM设备RPF检查通过向该网段转发组播数据时,则需要通过断言竞选来保证只有一个PIM设备向该网段转发组播数据。在竞选中落败的PIM设备会抑制相应下游接口向该网段转发组播数据,但是这种竞选失败的状态只会保持一段时间,这段时间称为Assert报文的保持时间。超时后,落选的设备会重新恢复转发组播数据从而触发新一轮的竞选。Assert报文保持时间在全局PIM视图下和接口视图下都可配置,如果同时配置,接口视图上的配置生效。默认时间为180s,以全局配置为例:

  1. 执行命令pim,进入PIM视图。
  2. 执行命令holdtime assert interval,配置Assert报文的保持时间。

查看命令:

  1. display pim interface g0/0/0 /ver,查看接口上pim的简要或者详细信息
    在这里插入图片描述
    这里主要有hello时间的间隔,DR的优先级,DR的ip地址(loacl)表示为自己。

  2. display pim neighbor,查看pim的邻居关系
    在这里插入图片描述
    有对方邻居接口的IP地址和自己与之相连的接口,还有建立的时间,邻居老化时间,DR优先级,是否开启了BFD联动。

  3. display pim control-message counters,查看发送和接收PIM控制报文的数目信息。在这里插入图片描述
    在这里插入图片描述
    我们可以看到各种报文的接收,发送,失效,被过滤的信息。

  4. dis pim routing-table,查看pim路由表
    在这里插入图片描述

参考资料:华为hedex文档、《HCIE路由交换学习指南》

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格洛米爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值