一、pim 通用规则
pim 通用规则1:
无论何时之创建一个(S,G)项而相应的父(*,G)项存在,就首先自动创建新的(*,G)项。(有(S,G)一定有(*,G),可以比喻为(*,G)是(S,G)的爹,儿子不能没有爹对吧,但是有(*,G)可以没有(S,G))
pim 通用规则2:
rpf 接口是作为对源ip地址(或稀疏模式(*,G)项,rp)的最小开销路径接口(基于管理距离/cost)来估算的。如果多个接口 cost 相同,选择最高ip地址的接口作为"切入点"(tiebreak)。(S,G的入口指向源,*,G的入口指向 RP,RP 的入口指向null)
pim 通用规则3:
在创建新的(S,G)项时,其输出接口列表提供一个来自父(*,G)项的输出接口列表的副本。(简单的说就是(S,G)随时拷贝(*,G)的出口列表)
pim 通用规则4:
组播转发项的输入接口(rpf 接口),决不能在其他自己的输出接口列表上出现。(当从(*,G)拷贝副本的时候,mroute 的入口表项是绝对不能出现在出口表项上的,默认情况下入口表项优于出口表项)
pim 通用规则5:
每个组播状态项的 rpf 接口(即输入接口)每5秒钟重新刷新一次,而且依据规则4对输出接口的列表做适当的调整(以防输出接口列表出现输入接口).
pim 通用规则6:
对(,G)项的输出接口列表的添加和删除都被复制到所有与该组有关的(S,G)项。((S,G)与(*,G)的表项是实时同步的,当,G的出口表增加的时候,(S,G)的副本是实时更新的)
二、dense 模式规则
dense模式规则 1:
密集模式(*,G)项的输出接口列表(OIL)映射了现有的 pim-dm邻居接口或直接连接的组成员接口。
dense模式规则 2:
密集模式(S,G)项的输出接口在修剪时不能删除,而是被标记为 "prune/dense",且仍保留在输出接口列表上。
dense模式规则 3:
当一个接口的 pim邻居列表上增加一个新邻居时,该接口在所有 pim-dm (S,G)输出列表重新设置 "forward/dense"状态。
三、sparse 模式规则
sparse 模式规则 1:
稀疏模式(*,G)项是作为显式加入操作结果而创建的。
sparse 模式规则 2:
稀疏模式(*,G)项的入口总是指向 rp 的共享树。
sparse 模式规则 3:
稀疏模式(S,G)项在下列条件下创建:
- 接收到一条(S,G)加入消息/修剪消息。
- 上一跳路由器切换到 spt 时。
- 不可预料的(S,G)到达时(*,G)状态不存在。
- 在rp上接收到一条注册 (register) 消息时
sparse 模式规则 4:
增加到稀疏模式(*,G)或(S,G)项出口表中的接口有如下两个条件之一决定:
- 当通过该接口接收到一个适当的(*,S)或(S,G)加入消息时。
- 当该接口存在一个该组的直连成员时。
sparse 模式规则 5:
从稀疏模式(*,G)或(S,G)向的出口表中删除一个接口发生如下两种之一的情形:
- 当该接口(这里没有直连成员)接收到一个适当的(*,G)或(S,G)修剪消息(不被否决)时。
sparse 模式规则 6:
接口有效期计时器重新置回3分钟是通过如下两个条件之一来进行的:
- 该接口接收到一个适当的(*,G)或(S,G)加入消息。
- 在接口上接收到一个来自直连成员的 IGMP membership report
sparse 模式规则 7:
当(S,G)项的 rpf 邻居与(*,G)项的 rpf 邻居不同时,路由器将向共享树发送一个(S,G)rp 位修剪消息。
sparse 模式规则 8:
稀疏模式(S,G)项的 rpf接口(即入口)是用源的 ip地址计算的,除了设置 rp位的情况外,在这种情况,是用 rp的 ip地址。