华为 协议无关组播PIM 高难度篇小白慎入

我是艺博东 ,是一个思科出身、专注于华为的网工;开始之前,来一个灵魂提问,请问你在2020立的flag都实现了吗?反正我没有,害,打脸时刻 笑哭笑哭。好了,话不多说,我们直接进入正题。

高难度篇小白慎入;之前有同学对我说,让我把代码写全一些,别省略太多,这样他可以快速看懂,所以这期来一次代码全一些的。(是非常详细的那种噢)

华为 协议无关组播PIM 高难度篇小白慎入_第1张图片

文章目录

      • 一、简单概括
      • 二、PIM-DM 拓扑
      • 三、PIM-DM 基础配置与分析
      • 四、PIM-DM 小结
      • 五、PIM-SM 拓扑
      • 六、PIM-SM 配置与分析
      • 七、PIM-SM 小结
      • 八、PIM-SM BSR自举协议
      • 九、PIM-SM-SPT树切换

一、简单概括

PIMv2与协议无关的组播路由协议,对单播网络路由协议没做任何要求,网络使用静态路由,RIP,EIGRP,ISIS ,MP-BGP都可以运行PIM协议。

PIMv2有3种工作模式

1、密集模式DM
2、稀疏模式SM
DM,SM 用于支持ASM的组播网络。
3、指定源组播模式SSM
SSM 用于支持SSM的组播网络

DVMRP 距离矢量组播路由协议

MOSPF 组播OSPF协议

但是对单播网络有要求,比如DVMRP要求IGP使用RIP, MOSPF要求IGP使用OSPF

二、PIM-DM 拓扑

华为 协议无关组播PIM 高难度篇小白慎入_第2张图片

三、PIM-DM 基础配置与分析

R1

[Huawei]sysname R1
[R1]multicast routing-enable 
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 1.1.1.1 24
[R1-GigabitEthernet0/0/0]quit
[R1]pim
[R1-pim]int g0/0/0
[R1-GigabitEthernet0/0/0]pim dm
[R1-GigabitEthernet0/0/0]rip	
[R1-rip-1]version 2
[R1-rip-1]network 1.0.0.0

R2

[Huawei]sysname R2
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 1.1.1.2 24
[R2-GigabitEthernet0/0/1]quit
[R2]multicast routing-enable 
[R2]int g0/0/2
[R2-GigabitEthernet0/0/2]ip address 10.1.24.2 24
[R2-GigabitEthernet0/0/2]q
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 10.1.23.2 24
[R2]pim 
[R2-pim]int g0/0/1
[R2-GigabitEthernet0/0/1]pim dm 
[R2-GigabitEthernet0/0/1]quit
[R2]rip
[R2-rip-1]v 2
[R2-rip-1]net 1.0.0.0
[R2-rip-1]network  10.0.0.0

R3

[Huawei]sysname R3
[R3]
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip address 10.1.23.3 24
[R3-GigabitEthernet0/0/1]q
[R3]multicast routing-enable 
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address  192.168.1.254 24
[R3-GigabitEthernet0/0/0]q
[R3]int g0/0/2
[R3-GigabitEthernet0/0/2]ip address 10.1.34.3 24
[R3-GigabitEthernet0/0/2]q
[R3]rip
[R3-rip-1]v 2	
[R3-rip-1]network  10.0.0.0
[R3-rip-1]net 192.168.1.0
[R3-rip-1]q
[R3]pim
[R3-pim]int g0/0/0
[R3-GigabitEthernet0/0/0]pim dm
[R3-GigabitEthernet0/0/0]igmp enable 
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]pim dm
[R3-GigabitEthernet0/0/1]int g0/0/2
[R3-GigabitEthernet0/0/2]pim dm

R4、R5配置类似

R1、R2之间的接口开启了pim dm

模拟ping

[R1]ping multicast -c 10000 239.1.1.1
华为 协议无关组播PIM 高难度篇小白慎入_第3张图片
抓包
华为 协议无关组播PIM 高难度篇小白慎入_第4张图片
R5

[Huawei]sysname R5
[R5]int g0/0/0
[R5-GigabitEthernet0/0/0]ip address 10.1.34.5 24
[R5-GigabitEthernet0/0/0]int g0/0/1	
[R5-GigabitEthernet0/0/1]ip address  192.168.5.254 24	
[R5]multicast routing-enable 
[R5]rip
[R5-rip-1]v 2
[R5-rip-1]network  10.0.0.0
[R5-rip-1]network  192.168.2.0
[R5-rip-1]q
[R5]pim
[R5-pim]int g0/0/0
[R5-GigabitEthernet0/0/0]pim
[R5-pim]int g0/0/0
[R5-GigabitEthernet0/0/0]pim dm
[R5-GigabitEthernet0/0/0]int g0/0/1
[R5-GigabitEthernet0/0/1]pim
[R5-pim]int g0/0/1
[R5-GigabitEthernet0/0/1]pim dm
[R5-GigabitEthernet0/0/1]igmp  enable

[R5]dis pim neighbor
华为 协议无关组播PIM 高难度篇小白慎入_第5张图片
[R2]dis multicast rpf-info 1.1.1.1
华为 协议无关组播PIM 高难度篇小白慎入_第6张图片
PC1
华为 协议无关组播PIM 高难度篇小白慎入_第7张图片
加组
华为 协议无关组播PIM 高难度篇小白慎入_第8张图片
[R3]dis pim routing-table
华为 协议无关组播PIM 高难度篇小白慎入_第9张图片
R1模拟ping
在这里插入图片描述
R2
华为 协议无关组播PIM 高难度篇小白慎入_第10张图片
[R5]dis pim routing-table
华为 协议无关组播PIM 高难度篇小白慎入_第11张图片
尝试修改R3的rip优先级,看看RPF邻居会不会改变?

[R3]rip
[R3-rip-1]pre	
[R3-rip-1]preference 10

华为 协议无关组播PIM 高难度篇小白慎入_第12张图片
不会。

PC2
华为 协议无关组播PIM 高难度篇小白慎入_第13张图片

华为 协议无关组播PIM 高难度篇小白慎入_第14张图片
R2
华为 协议无关组播PIM 高难度篇小白慎入_第15张图片
两个下游接口

抓包R2的接口g0/0/1,R5接口g0/0/1。
华为 协议无关组播PIM 高难度篇小白慎入_第16张图片
有收到报文。

PC2离组
华为 协议无关组播PIM 高难度篇小白慎入_第17张图片
抓包R5接口g0/0/0

华为 协议无关组播PIM 高难度篇小白慎入_第18张图片
是剪枝报文。

状态刷新报文
华为 协议无关组播PIM 高难度篇小白慎入_第19张图片

[R1]ping multicast -c 1000 239.1.1.2

在这里插入图片描述
华为 协议无关组播PIM 高难度篇小白慎入_第20张图片
在这里插入图片描述
华为 协议无关组播PIM 高难度篇小白慎入_第21张图片
华为 协议无关组播PIM 高难度篇小白慎入_第22张图片

都发剪枝报文剪枝掉。

华为 协议无关组播PIM 高难度篇小白慎入_第23张图片

四、PIM-DM 小结

1、PM-DM–邻居发现

Hello消息

a.建立和维护邻居关系
b.在IGMPv1中选举查询者

Hello报文中携带多项PIM协议报文参数,主要用于PIM邻居之间PIM协议报文的控制。具体参数如下:
DR_Priority:表示各路由器接口竞选DR的优先级,优先级越高越容易获胜。该参数只用于PIM-SM中DR的选举。
Holdtime:表示保持邻居为可达状态的超时时间。
LAN_Delay:表示共享网段内传输Prune报文的延迟时间。
Neighbor-Tracking:表示邻居跟踪功能。
Override-Interval:表示Hello报文中携带的否决剪枝的时间间隔。

2、DM模式是扩散机制

(1)路由器接收到组播流量后,对接收该组播流量的接口进行RPF检测。如果RPF检测成功,则创建(S,G)表项,
RPF检测成功的接口成为该(S,G)表项的上游接口。RPF检测失败则丢弃该组播流量。

(2)从上游接口接收到的(S,G)流量,从除了RPF接口之外的存在PIM邻居的接口以及存在直连组成员的接口进行扩散。

(3)周期性扩散-剪枝机制维护(S,G)表项

3、DM模式剪枝/加入机制

(1)当路由器发现自身不存在任何下游接口时,将发起剪枝机制,向RPF接口上发送剪枝报文,即该接口上的所有PIM邻居。
上游路由器收到剪枝报文后,如果剪枝报文中携带的RPF 邻居地址是自身接口IP,则将自身接收剪枝报文的接口从(S,G)下游接口中删除。
a.如果剪枝后,下游接口为NULL ,则继续向(S,G)的RPF接口发送剪枝报文,向上游继续剪枝。
b.如果剪枝后,下游接口不为NULL,则剪枝结束,不在继续朝上游剪枝。

4、PM-DM–嫁接

嫁接,剪枝的路径上如果存在新组成员的加入快速获得组播流量。路由器根据组地址查找对应的(S,G)表项。如果没有对应的(S,G)表项则无法完成嫁接。如果有对应的(S,G)表项,那么根据组播源地址查RP接口,朝RPF邻居的RPF邻居发送单播嫁接报文,SIP为自身路由器接口地址,DIP为RPF邻居的地址。上游RPF邻居接收到嫁接报文,将接收该报文的接口加入到自身(S,G)表项的下游接口中,并单播回复嫁接确认报文。

5、断言机制

为避免在网段上有多个路由器进行组播流量的扩散,引入断言机制。断言报文发给该网段上的所有PIM路由器,即224.0.0.13。断言的优胜者负责在该网段扩散组播流量,失败者将失败的接口从(S,G)表项中删除。
断言的优胜者被下游路由器认为是自己的RPF邻居,比下游路由器自身判断RPF邻居的机制优先。
断言的失败者会在该网段发送剪枝报文,企图将断言优胜者也剪枝掉,断言优胜者如果在3s收到join报文,则否决剪枝报文,如果3s后没有收到join报文,也将接口从(S,G)表项删除,剪枝否决机制。

(1)断言报文中携带
a.路由器到达组播源路由的协议优先级。
b.路由器到达组播源路由的开销值。
c.路由器自身在该网段接口的地址。

(2)断言选举机制

a.协议优先级优的成为断言的winner
b.开销值小的的成为断言的winner
c.接口地址大的成为断言的winner

6、状态刷新机制

是PIM-DM 默认的优化机制,避免了周期性扩散-剪枝行为的发生,导致组播占用网络带宽,节省网络资源。第一跳路由器会周期性每个60s发送PIM的状态刷新报文,目的地址为224.0.0.13,即发给所有的PIM邻居,该报文还携带(S,G)的信息。下游路由接收到状态刷新报文后,会重置(S,G)表项的老化时间以及重置剪枝接口的剪枝超时定时器。当组播源不在向网络发送组播流时,第一跳路由器停止状态刷新报文的发送,全网(S,G)表项超时后被剔除。

通过第一跳路由器周期性发送State Refresh来避免被裁剪的接口因为“剪枝定时器”超时而恢复转发

pim state-refresh-capable       //重新启用此功能
undo pim state-refresh-capable  //禁止状态刷新报文的转发

扩展: DM模式周期性扩散的意义
1、让全网路由器表明组播源是活跃的。
2、能够维护(S,G)不被老化。

RPF检测机制:

根据组播流量的源地址查找单播路由表,如果接收组播流量的接口是去往组播源地址的单播路由出口,则RPF检测通过,接收该组播流量,并创建(S,G)表项。

如果去往组播源存在多条等价出口,则下一跳地址大的出口,做为RPF接口。RPF接口上的PIM邻居,称为RPF邻居。

五、PIM-SM 拓扑

华为 协议无关组播PIM 高难度篇小白慎入_第24张图片

六、PIM-SM 配置与分析

R1

[Huawei]sysname R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address  10.1.12.1 24
[R1-GigabitEthernet0/0/0]q
[R1]ospf 
[R1-ospf-1]a 0
[R1-ospf-1-area-0.0.0.0]network  10.1.12.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]q
[R1-ospf-1]q
[R1]multicast routing-enable 
[R1]int g0/0/0	
[R1-GigabitEthernet0/0/0]pim dm  //配置密集模式,充当组播源
[R1-GigabitEthernet0/0/0]q
[R1]pim
[R1-pim]static-rp 30.30.30.30

R2

[Huawei]sysname R2
[R2]int g0/0/0	
[R2-GigabitEthernet0/0/0]ip address 10.1.12.2 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address  10.1.23.2 24
[R2-GigabitEthernet0/0/1]q
[R2]ospf
[R2-ospf-1]a 0
[R2-ospf-1-area-0.0.0.0]network  10.1.12.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network  10.1.23.2 0.0
[R2-ospf-1-area-0.0.0.0]q
[R2-ospf-1]q
[R2]multicast routing-enable 
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]pim sm
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]pim sm 
[R2-GigabitEthernet0/0/1]q
[R2]pim
[R2-pim]static-rp 30.30.30.30

R3

[Huawei]sysname  R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address  10.1.23.3 24 
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip address  10.1.34.3 24
[R3-GigabitEthernet0/0/1]int l0
[R3-LoopBack0]ip address 30.30.30.30 32
[R3-LoopBack0]q
[R3]ospf
[R3-ospf-1]a 0
[R3-ospf-1-area-0.0.0.0]network 30.30.30.30 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 10.1.23.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 10.1.34.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]q
[R3-ospf-1]q
[R3]multicast routing-enable 
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]pim sm
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]pim sm
[R3-GigabitEthernet0/0/1]q
[R3]pim 
[R3-pim]static-rp 30.30.30.30

R4

[Huawei]sysname R4
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip address  10.1.34.4 24
[R4-GigabitEthernet0/0/0]int g0/0/1
[R4-GigabitEthernet0/0/1]ip address  10.1.45.4 24
[R4-GigabitEthernet0/0/1]q
[R4]ospf 
[R4-ospf-1]a 0
[R4-ospf-1-area-0.0.0.0]network  10.1.34.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]network  10.1.45.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]q
[R4-ospf-1]q
[R4]multicast routing-enable 
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]pim sm
[R4-GigabitEthernet0/0/0]int g0/0/1
[R4-GigabitEthernet0/0/1]pim sm 
[R4-GigabitEthernet0/0/1]q
[R4]pim 
[R4-pim]static-rp 30.30.30.30

R5

[Huawei]sysname R5
[R5]int g0/0/0
[R5-GigabitEthernet0/0/0]ip address  10.1.45.5 24]
[R5-GigabitEthernet0/0/0]int g0/0/1
[R5-GigabitEthernet0/0/1]ip address  192.168.5.254 24
[R5-GigabitEthernet0/0/1]q
[R5]ospf 
[R5-ospf-1]a 0
[R5-ospf-1-area-0.0.0.0]network  10.1.45.5 0.0.0.0
[R5-ospf-1-area-0.0.0.0]network  192.168.5.254 0.0.0.0
[R5-ospf-1-area-0.0.0.0]q
[R5-ospf-1]q
[R5]multicast routing-enable 
[R5]int g0/0/0
[R5-GigabitEthernet0/0/0]pim sm 
[R5-GigabitEthernet0/0/0]int g0/0/1
[R5-GigabitEthernet0/0/1]pim sm 
[R5-GigabitEthernet0/0/1]igmp enable 
[R5-GigabitEthernet0/0/1]q
[R5]pim 
[R5-pim]static-rp 30.30.30.30

PC1
华为 协议无关组播PIM 高难度篇小白慎入_第25张图片

[R5]dis pim rp-info 239.1.1.1
在这里插入图片描述
[R5]display multicast rpf-info 30.30.30.30
华为 协议无关组播PIM 高难度篇小白慎入_第26张图片
PC1加组239.1.1.1

华为 协议无关组播PIM 高难度篇小白慎入_第27张图片

dis pim routing-table
华为 协议无关组播PIM 高难度篇小白慎入_第28张图片
抓包,R5的接口g0/0/0
华为 协议无关组播PIM 高难度篇小白慎入_第29张图片
PC1离组

华为 协议无关组播PIM 高难度篇小白慎入_第30张图片
下游的接口信息为空。

华为 协议无关组播PIM 高难度篇小白慎入_第31张图片
pim表项没了

可配置静态加组

[R5]int g0/0/1
[R5-GigabitEthernet0/0/1]igmp static-group 239.1.1.1

[R5]dis pim routing-table
华为 协议无关组播PIM 高难度篇小白慎入_第32张图片
R4、R3也有pim表项信息。

华为 协议无关组播PIM 高难度篇小白慎入_第33张图片
R5

[R5]pim 
[R5-pim]spt-switch-threshold infinity

正常情况下,组播流量发过来之后,R1首先把它封装在单播的注册报文发给RP,RP收到之后进行解封装,沿着( * ,G)往下流,解封装之后提取源的地址,创建(S,G)表项,这个表项的出口怎么来?从( * ,G)表项复制过来的,上游接口根据组播源的地址找RPF接口,向上发送(S,G)join消息,组播流量沿着(S,G)join消息创建出来的SPT树往外发,R3收到组播源之后,发组播源的方向(R1)发送注册停止报文。

抓包R2的g0/0/1接口,看看能不能抓取注册报文。

ping测组播源(需要的时候还一个组播地址)
[R1]ping multicast -c 1000 239.1.1.10
华为 协议无关组播PIM 高难度篇小白慎入_第34张图片
华为 协议无关组播PIM 高难度篇小白慎入_第35张图片
源地址是10.1.12.1、目的地址是239.1.1.10的注册报文。

注册报文,注册停止报文是周期性发送的。

华为 协议无关组播PIM 高难度篇小白慎入_第36张图片
PC1加组
华为 协议无关组播PIM 高难度篇小白慎入_第37张图片
dis pim routing-table
华为 协议无关组播PIM 高难度篇小白慎入_第38张图片
可创建(*,G)表项。

概述一下: register由源端DR在自身(S,G)表项没有老化删除之前,会每隔60s秒周期性发送register报文,用于告知组播源是活跃的。当(S,G)表项不存在后,则不再发送regisiter,当创建(S,G)表项是会立即发送注册报文。

分三个部分:
(1)接收者首先加人共享树源
(2)Regisler首先加入
(3)接收者和源域RP之间的SPT加入组

AR2的G0/0/0接口的是源
华为 协议无关组播PIM 高难度篇小白慎入_第39张图片缺省情况下,不指定源DR。

当路由器接收到从RP发来的针对(S,G)项的Register-Stop报文,会立刻停止发送封装组播数据的Register报文,此时路由器进入注册抑制状态。
执行此命令可设置注册抑制状态的超时时间。超时后,源端DR将恢复向RP发送Register报文。

七、PIM-SM 小结

7.1 PIM-SM的DR分为2种

(1)源端DR:负责发送Register报文或者Register-stop报文构建SPT树。
(2)成员端DR:负责发送join报文构建RPT树。

7.2 PIM-SM模式

PIM网络的路由器
(S,G)一定要事先知道S的地址,以及存在S的路由。
(* ,G)一定要事先知道RP的地址,以及存在RP的路由。

7.3 PIM-SM

( * ,G)表项是由收到成员报告报文或者收到( * ,G)join报文而被创建的。
( * ,G)表项的上行接口是根据RP的地址进行RPF检测得到的。
( * ,G)表项的下游接口是存在直连组成员或者收到正确的( * ,G)join报文而被创建出来的。
( * ,G)表项的下游接口收到( * ,G)的剪枝报文或者最后组成员leave报文而被删除。
当( * ,G)表项下游接口为NULL时,朝RP的PRF接口发送( * ,G)剪枝报文。

(S,G)表项在收到(S,G)的join/prune报文或者RP收到Register报文,或者进行SPT切换时。
(S,G)表项的上行接口时根据组播源的地址进行RPF检测得到的。
(S,G)表项的下游接口是存在直连组成员或者收到正确的(S,G)join报文而被创建出来的。
(S,G)表项的下游接口收到(S,G)的剪枝报文或者最后组成员leave报文而被删除。

7.4 工作机制包括

(1)邻居发现
(2)DR竞选
(3)RP发现
(4)RPT构建
(5)组播源注册
(6)SPT切换
(7)剪枝/加入
(8)断言

八、PIM-SM BSR自举协议

首先要知道RR的位置。

还有前提条件要有路由。

8.1 RP发现

所有路由器均需知晓RP所在位置.
发现RP方式
(1)静态RP(手工配置)
(2)动态RP

8.2 RP的特点

(1)同一个时刻一个组只能有一个RP
(2)不同的组可以有相同的RP

8.3 简单分析

8.3.1 拓扑

华为 协议无关组播PIM 高难度篇小白慎入_第40张图片

8.3.2 简单配置与分析
R1

[Huawei]sysname R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address  10.1.12.1 24
[R1-GigabitEthernet0/0/0]q
[R1]multicast routing-enable 
[R1]pim
[R1-pim]static-rp 10.10.10.10
[R1-pim]int g0/0/0
[R1-GigabitEthernet0/0/0]pim sm

R2

[Huawei]sysname R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address  10.1.12.2 24
[R2-GigabitEthernet0/0/0]q
[R2]multicast routing-enable 
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]pim sm

[R1]dis pim rp-info 224.0.1.1
在这里插入图片描述

[R1]acl 2000
[R1-acl-basic-2000]rule permit source 239.1.1.0 0.0.0.255
[R1-acl-basic-2000]q
[R1]pim
[R1-pim]static-rp 20.20.20.20 2000

[R1-pim]dis pim rp-info 239.1.1.1
在这里插入图片描述

[R1]acl 2010
[R1-acl-basic-2010]rule permit source 239.1.1.0 0.0.0.31
[R1-acl-basic-2010]q
[R1]pim
[R1-pim]static-rp 30.30.30.30 2010

在这里插入图片描述

static-rp 10.10.10.10 将10.10.10.10设置为所有组的RP
static-rp 20.20.20.20 2000 将20.20.20.20设置为acl 2000 组地址范围的RP
static-rp 30.30.30.30 2010 将30.30.30.30设置为acl 2010 组地址范围的RP

总结一下:(1)如果某个组地址同时满足多条ACL,则掩码长度大的优先,即越精确越优先。(2)默认情况动态RP优先使用。

8.3.3 动态RP协议

BSR 自举协议,开放标准的协议。
Auto RP 自动RP协议,思科私有。

8.4 拓扑

华为 协议无关组播PIM 高难度篇小白慎入_第41张图片

8.4.1 BSR的工作机制

1、首先管理员需要手动配置C-BSR路由器,可以是一台或者多台。
2、在所有C-BSR路由器中选举出BSR路由器。
3、如果BSR路由器失效,在其他的C-BSR中重新选举新的BSR路由器。
4、如果只有一台C-BSR,则它成为BSR。

8.4.2 选举过程

1、C-BSR初始认为自身就是BSR,在所有存在PIM邻居的接口上周期性发送Bootstrap报文,源地址为物理接口IP,目的地址为224.0.0.13,ttl=1。
2、Bootstrap报文中携带C-BSR地址,C-BSR优先级,逐跳泛洪到整个PIM网络。
(1)比较C-BSR的优先级,值越大优先成为BSR。
(2)优先级相同,C-BSR地址大的成为BSR。
3、竞选失败的C-BSR将不会周期性发送Bootstrap报文,即此刻网络中只有BSR周期性发送Bootstrape。
4、C-BSR维护一个BSR失效计时器,默认在130s超时如果没有收到Bootstrap报文,则认为BSR失效,重新进行BSR的竞选。

8.4.3 简单配置与分析

AR11

[AR11]sysname AR11
[AR11]int g0/0/0
[AR11-GigabitEthernet0/0/0]ip address  10.1.12.1 24
[AR11-GigabitEthernet0/0/0]int l0
[AR11-LoopBack0]ip add 1.1.1.1 32
[AR11-LoopBack0]pim sm 
[AR11-LoopBack0]q
[AR11]mu ro 
[AR11]pim
[AR11-pim]c-bsr LoopBack 0
[AR11-pim]c-bsr interval 5 //5秒发一次
[AR11-pim]q
[AR11]int g0/0/0
[AR11-GigabitEthernet0/0/0]pim sm
[AR11]int g0/0/1
[AR11-GigabitEthernet0/0/1]ip address  10.1.14.1 24
[AR11-GigabitEthernet0/0/1]pim sm
[AR11-GigabitEthernet0/0/1]q
[AR11]rip
[AR11-rip-1]v 2
[AR11-rip-1]network 1.0.0.0
[AR11-rip-1]network 10.0.0.0

AR12

[Huawei]sysname AR12
[AR12]int g0/0/0
[AR12-GigabitEthernet0/0/0]ip address  10.1.12.2 24
[AR12-GigabitEthernet0/0/0]int g0/0/1
[AR12-GigabitEthernet0/0/1]ip address  10.1.23.2 24
[AR12-GigabitEthernet0/0/1]q
[AR12]multicast routing-enable  
[AR12]int g0/0/0
[AR12-GigabitEthernet0/0/0]pim sm
[AR12-GigabitEthernet0/0/0]int g0/0/1
[AR12-GigabitEthernet0/0/1]pim sm
[AR12-GigabitEthernet0/0/1]q
[AR12]rip
[AR12-rip-1]v 2
[AR12-rip-1]network  10.0.0.0
[AR12-rip-1]q

AR13

[Huawei]sysname AR13
[AR13]int g0/0/0
[AR13-GigabitEthernet0/0/0]ip address  10.1.23.3 24
[AR13-GigabitEthernet0/0/0]q
[AR13]multicast routing-enable 
[AR13]int g0/0/0
[AR13-GigabitEthernet0/0/0]pim sm
[AR13]int g0/0/1
[AR13-GigabitEthernet0/0/1]ip address  10.1.34.3 24
[AR13-GigabitEthernet0/0/1]pim sm
[AR13-GigabitEthernet0/0/1]q
[AR13]rip
[AR13-rip-1]v 2
[AR13-rip-1]network  3.0.0.0
[AR13-rip-1]network  10.0.0.0
[AR13-rip-1]q

AR14

[Huawei]sysname AR14
[AR14]int g0/0/0
[AR14-GigabitEthernet0/0/0]ip address  10.1.34.4 24
[AR14-GigabitEthernet0/0/0]pim sm
[AR14-GigabitEthernet0/0/0]q
[AR14]multicast routing-enable  
[AR14]int g0/0/1
[AR14-GigabitEthernet0/0/1]ip address  10.1.14.4 24
[AR14-GigabitEthernet0/0/1]pim sm
[AR14-GigabitEthernet0/0/1]q
[AR14]multicast routing-enable 
[AR14]rip
[AR14-rip-1]v 2
[AR14-rip-1]network  10.0.0.0

抓包AR11的g0/0/0接口,Bootstrap报文。

华为 协议无关组播PIM 高难度篇小白慎入_第42张图片

[AR11-pim]c-bsr priority 106 //修改c-bsr优先级为106

[AR12]dis pim bsr-info
华为 协议无关组播PIM 高难度篇小白慎入_第43张图片
[AR12]dis multicast rpf-info 1.1.1.1
华为 协议无关组播PIM 高难度篇小白慎入_第44张图片
AR13

[AR13]int l0
[AR13-LoopBack0]ip address 3.3.3.3 32
[AR13-LoopBack0]pim sm
[AR13-LoopBack0]q
[AR13]pim
[AR13-pim]c-bsr LoopBack 0
[AR13-pim]c-bsr interval 5
[AR13-pim]q

在这里插入图片描述
1.1.1.1为主,3.3.3.3为候选者。

[AR13-pim]c-bsr priority 200 //修改c-bsr优先级为200

[AR11]dis pim bsr-info
华为 协议无关组播PIM 高难度篇小白慎入_第45张图片

R3的bsr修改优先级为200后,这个时候3.3.3.3为获胜者,1.1.1.1为候选者。

小结: 为了防止Bootstrap的泛洪环路,引入BSR RPF检测机制,路由器收到Bootstrap报文,根据BSR的地址进行RPF检测。只有同时满足以下2个条件时才接收Bootstrap报文,并向其他接口继续泛洪。
(1)收到Bootstrap的接口为去往BSR地址的出口。
(2)收到Bootstrap的源地址为RPF邻居的地址。

8.4.4 RP的选举机制

1、首先管理员需要手动配置C-RP路由器,可以是一台或者多台,C-BSR也可以是C-RP。
2、C-RP向BSR的地址发送单播的Advertisement报文,源地址为C-RP的竞选地址,目的地址为BSR的地址。
3、Advertisement报文中携带RP的竞选参数,包括:C-RP的地址,服务的组地址范围,C-RP优先级。

RP选举机制
(1)服务组范围掩码长的优先。
(2)C-RP优先级值小的优,默认为0。
(3)根据bootstrp设置hash mask len 计算Hash,值大的优先。
(4)C-RP地址大的优先。

R14

[AR14]int l0
[AR14-LoopBack0]ip address 4.4.4.4 32
[AR14-LoopBack0]q
[AR14]rip	
[AR14-rip-1]net 4.0.0.0
[AR14-rip-1]q
[AR14]pim
[AR14-pim]c-rp LoopBack 0

在AR14的G0/0/0接口抓包
华为 协议无关组播PIM 高难度篇小白慎入_第46张图片

[AR14]acl 2060
[AR14-acl-basic-2060]rule permit source 239.1.1.0 0.0.0.255
[AR14-acl-basic-2060]pim
[AR14-pim]c-rp LoopBack 0 group-policy 2060
[AR14-pim]c-rp advertisement-interval 5  //5秒一发

AR12

[AR12]int l0
[AR12-LoopBack0]ip address 2.2.2.2 32
[AR12-LoopBack0]q
[AR12]rip
[AR12-rip-1]net 2.0.0.0
[AR12-rip-1]pim
[AR12-pim]c-rp LoopBack 0
[AR12-pim]c-rp advertisement-interval 5

在AR14的G0/0/0接口抓包
华为 协议无关组播PIM 高难度篇小白慎入_第47张图片
[AR14]dis pim rp-info 239.1.1.127
华为 协议无关组播PIM 高难度篇小白慎入_第48张图片
服务范围:那个组地址越精确,越优。

238.1.1.1的话会变为2.2.2.2。
华为 协议无关组播PIM 高难度篇小白慎入_第49张图片

不发送自举报文,也不接收自举报文,避免多个BSR域互相干扰。

[AR13-GigabitEthernet0/0/0]pim bsr-boundary

华为 协议无关组播PIM 高难度篇小白慎入_第50张图片

九、PIM-SM-SPT树切换

9.1 SPT树切换

(1)组成员DR向源方向发送Join报文
(2)组成员DR或上游设备向RP发送Prune报文,RP向源端DR发送Prune报文

9.2 PIM-SM的SPT切换的条件

(1)SPT切换由最后一跳路由器发起。
(2)当最后一跳路由器接收到从RPT树的组播流量后,可以通过组播流量得知组播源的地址,则默认发起SPT切换,希望构架一颗源到最后一跳路由器的SPT树,实现路由优化。

9.3 SPT切换的流程

(1)最后一跳路由根据组播源的地址进行RPF检测,并向指向组播源的RPF接口上RPF邻居发送(S,G)的join报文,逐跳构建SPT树。
(2)当去往组播源地址和去往RP的地址的RPF接口不一致时,路由器沿着去往组播源的RPF发送(S,G)(S)join,沿着去往RP的RPF接口发送(S,G)(SR)prune。
沿着RP方向上的路由将自身(S,G)表项的下游口剪枝,实现SPT切换,通过SPT树接收组播流量。

9.4 拓扑

华为 协议无关组播PIM 高难度篇小白慎入_第51张图片
9.5 基本配置与分析

AR1

[Huawei]sysname AR1
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip address 10.1.12.1 24
[AR1-GigabitEthernet0/0/0]ospf 
[AR1-ospf-1]a 0
[AR1-ospf-1-area-0.0.0.0]network 10.1.12.1 0.0.0.0

AR2

[Huawei]sysname AR2
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip address 10.1.12.2 24
[AR2-GigabitEthernet0/0/0]int g0/0/1
[AR2-GigabitEthernet0/0/1]ip address 10.1.23.2 24
[AR2-GigabitEthernet0/0/1]ospf 
[AR2-ospf-1]a 0
[AR2-ospf-1-area-0.0.0.0]network 10.1.12.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]network 10.1.23.2 0.0.0.0

AR4

[Huawei]sysname AR4
[AR4]int g0/0/0
[AR4-GigabitEthernet0/0/0]ip address 10.1.34.4 24
[AR4-GigabitEthernet0/0/0]int g0/0/1
[AR4-GigabitEthernet0/0/1]ip address 10.1.45.4 24
[AR4-GigabitEthernet0/0/1]int l0
[AR4-LoopBack0]ip address 4.4.4.4 32
[AR4-LoopBack0]ospf 
[AR4-ospf-1]a 0
[AR4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
[AR4-ospf-1-area-0.0.0.0]network 10.1.34.4 0.0.0.0
[AR4-ospf-1-area-0.0.0.0]network 10.1.45.4 0.0.0.0

底层配置AR3、AR5、AR6的类似

[AR6]dis ip routing-table protocol ospf
华为 协议无关组播PIM 高难度篇小白慎入_第52张图片

PC1
华为 协议无关组播PIM 高难度篇小白慎入_第53张图片
PC>ping 10.1.12.1
华为 协议无关组播PIM 高难度篇小白慎入_第54张图片
AR1

[AR1]multicast routing-enable 
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]pim dm 

AR2

[AR2]multicast routing-enable 
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]pim sm
[AR2-GigabitEthernet0/0/0]pim hello-option dr-priority 106
[AR2-GigabitEthernet0/0/0]int g0/0/1
[AR2-GigabitEthernet0/0/1]pim sm

AR4

[AR4]multicast routing-enable 
[AR4]int g0/0/0
[AR4-GigabitEthernet0/0/0]pim sm
[AR4-GigabitEthernet0/0/0]int g0/0/1
[AR4-GigabitEthernet0/0/1]pim sm
[AR4-GigabitEthernet0/0/1]int l0
[AR4-LoopBack0]pim sm
[AR4-LoopBack0]pim
[AR4-pim]c-bsr LoopBack 0	
[AR4-pim]c-rp LoopBack 0

AR6

[AR6]multicast routing-enable 
[AR6]int g0/0/0
[AR6-GigabitEthernet0/0/0]pim sm
[AR6-GigabitEthernet0/0/0]int g0/0/1
[AR6-GigabitEthernet0/0/1]pim sm
[AR6-GigabitEthernet0/0/1]igmp version 2
[AR6-GigabitEthernet0/0/1]igmp  enable 

底层配置AR3、AR5的类似

[AR4]dis pim neighbor
华为 协议无关组播PIM 高难度篇小白慎入_第55张图片

[AR6]dis pim rp-info

[AR6]dis pim bsr-info
华为 协议无关组播PIM 高难度篇小白慎入_第56张图片

[AR6]pim
[AR6-pim]spt-switch-threshold 1000
//开启SPT切换,阈值为1000,当AR6组播的速率到达每秒1000的时候就开始spt切换,默认为0

华为 协议无关组播PIM 高难度篇小白慎入_第57张图片

[AR6-pim]spt-switch-threshold infinity //关闭spt切换

加组
华为 协议无关组播PIM 高难度篇小白慎入_第58张图片
在AR6的G0/0/0接口上进行抓包
华为 协议无关组播PIM 高难度篇小白慎入_第59张图片

表项是( * ,G)表项,判断条件 SWR

SM模式下join/Prune报文3bit的意义
S-bit是稀疏bit,对于pim-sm来说该bit为1,用于与PIMv1保持兼容性。
WC-bit=1表示加入地址是RP的地址,而不是组播源地址,向RP发送加入消息时将W-bit置为0,表示组播源地址。
RPT-bit=1表示该消息沿组播树被传播到RP,0表示向组播源发送加入消息。

[AR6]dis pim routing-table
华为 协议无关组播PIM 高难度篇小白慎入_第60张图片
(*,G)表项。

[AR1]ping multicast -c 10000 238.1.1.10
华为 协议无关组播PIM 高难度篇小白慎入_第61张图片
[AR4]dis pim routing-table
华为 协议无关组播PIM 高难度篇小白慎入_第62张图片
[AR1]ping multicast -c 10000 238.1.1.10
华为 协议无关组播PIM 高难度篇小白慎入_第63张图片
PC1加组238.1.1.10
华为 协议无关组播PIM 高难度篇小白慎入_第64张图片
[AR4]dis pim routing-table
华为 协议无关组播PIM 高难度篇小白慎入_第65张图片
在PR在(*,G)的下游接口会复制到(S,G)的下游接口中。RP收到组播源后会往下游接口发出。

[AR5]dis pim routing-table
华为 协议无关组播PIM 高难度篇小白慎入_第66张图片
Flag: SPT ACT

AR3和AR5直接连线。华为 协议无关组播PIM 高难度篇小白慎入_第67张图片
AR3

[AR3]int g0/0/2
[AR3-GigabitEthernet0/0/2]ip address  10.1.35.3 24
[AR3-GigabitEthernet0/0/2]pim sm
[AR3-GigabitEthernet0/0/2]ospf 
[AR3-ospf-1]a 0
[AR3-ospf-1-area-0.0.0.0]network  10.1.35.3 0.0.0.0

AR5

[AR5]int g0/0/2
[AR5-GigabitEthernet0/0/2]ip address  10.1.35.5 24
[AR5-GigabitEthernet0/0/2]pim sm
[AR5-GigabitEthernet0/0/2]ospf 
[AR5-ospf-1]a 0
[AR5-ospf-1-area-0.0.0.0]network 10.1.35.5 0.0.0.0

[AR3]dis pim neighbor
华为 协议无关组播PIM 高难度篇小白慎入_第68张图片
华为 协议无关组播PIM 高难度篇小白慎入_第69张图片
AR3的下有接口是G0/0/2,流量走向。
华为 协议无关组播PIM 高难度篇小白慎入_第70张图片

在AR5的G0/0/0上进行抓包

华为 协议无关组播PIM 高难度篇小白慎入_第71张图片
有两个报文(加入/剪枝)

华为 协议无关组播PIM 高难度篇小白慎入_第72张图片prunes剪枝没W,

WC-bit=1 表示加入地址是RP的地址,而不是组播源地址,向RP发送加入消息时将W-bit置为0,表示组播源地址。

征服畏惧、建立自信的最快最确实的方法,就是去做你害怕的事,直到你获得成功的经验。


欢迎访问我的易百纳技术社区文章《华为 协议无关组播PIM 高难度篇小白慎入》
https://www.ebaina.com/articles/140000005303


华为 协议无关组播PIM 高难度篇小白慎入_第73张图片

好了这期就到这里了,如果你喜欢这篇文章的话,请点赞评论分享收藏,如果你还能点击关注,那真的是对我最大的鼓励。谢谢大家,下期见!

你可能感兴趣的:(路由交换,路由器,网络)