华为 PIM-DM

华为 PIM-DM

组播数据的转发中会出现上游接口和下游接口这两个概念,路由器收到组播数据的接口称为上游接口,转发组播数据的接口称为下游接口。

PIM-DM密集模式

PIM-DM 使用“推( Push )模式”转发组播报文,一般应用于组播组成员规模相对较小、相对密集的网络。
  • PIM-DM假设网络中的组成员分布非常稠密,每个网段都可能存在组成员。当有活跃的组播源出现时,PIM-DM会将组播源发来的组播报文扩散到整个网络的PIM路由器上,再裁剪掉不存在组播报文转发的分支。
  • PIM-DM通过周期性的进行“扩散(Flooding剪枝(Prune)”,来构建并维护一棵连接组播源和组成员的单向无环SPTShortest Path Tree,最短路径树,也称源树)。如果在下一次“扩散-剪枝”进行前,被裁剪掉的分支由于其叶路由器上有新的组成员加入而希望提前恢复转发状态,也可通过嫁接(Graft)机制主动恢复其对组播报文的转发。
  • PIM-DM的关键工作机制包括邻居发现、扩散、剪枝、嫁接、断言和状态刷新。其中,扩散、剪枝、嫁接是构建SPT的主要方法。
 

PIM邻居关系

  • PIM路由器每个使能了PIM协议的接口上,都会对外发送Hello报文。封装Hello报文的组播报文的目的地址是224.0.0.13(表示同一网段中所有PIM路由器)、源地址为接口的IP地址、TTL数值为1
  • Hello报文的作用:发现PIM邻居、协调各项PIM协议报文参数、维持邻居关系。
  • 只有邻居关系建立成功后,PIM路由器才能接收其他PIM协议报文,从而创建组播路由表项。
 
拓扑
 
 
底层使用ospf协议,端口ip直接用设备编号为网段;如AR-1、AR-2的网段为12.1.1.0/24;
AR-2的g0/0/0的ip地址为12.1.1.2/24、AR-1的g0/0/0的ip地址为12.1.1.1/24。依此类推!!
 
使用eNSP,GNS3实现桥接。
 
 

R1(config)#ip rout 0.0.0.0 0.0.0.0 172.168.10.1 //配置静态默认,未知数据指向此下一跳地址进行转发

 

R2(config)#int e0/0

R2(config-if)#ip address 192.168.10.10 255.255.255.0

R2(config-if)#no shut

R2(config-if)#exit

R2(config-if)#ip igmp join-group 239.1.1.1 //将此接口加入239.1.1.1次组播组(监听接收回复来自此组的数据)

R2(config-if)#exit

R2(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.1 //配置静态默认,当接收者向组播源进行回复的数据通过此下一跳进行转发

R2(config)#exit

 

[AR-8-GigabitEthernet0/0/1]igmp enable  //运行igmp协议

 

R1ping 网关 172.168.10.1

基础配置:全网部署PIM-DM

[AR-2]multicast routing-enable // 开启此设备的组播转发功能

[AR-2]interface g0/0/2

[AR-2-GigabitEthernet0/0/2]pim dm //选择此接口的PIM模式为dm-密集模式

[AR-2-GigabitEthernet0/0/2]quit

 

其他设备同类,除接口有其他模式外!

 

AR-2:dis pim neighbor 

AR-2已经与AR-3、AR-9成功建立了pim邻居关系。

PIM--DM扩散

第一份ping包会泛洪;

R1 ping 239.1.1.1 repeat  100

在设备上抓包,发现有icmp数据包回应的有一下路由器有:AR-1、AR-2、AR-3、AR-5、AR-6、AR-8;链路为他们路由器之间的链路。

解释对应机制与工作原理

初始时,组播流量会被扩散到全网各个角落。即使不存在组播组成员的分支也会收到组播流量。每一台组播路由器都会在其组播路由表中创建(S,G)表项,在本例中,假设组播源172.168.10.10向239.1.1.1组播组发送流量,则表项为(172.168.10.10,239.1.1.1)。 

 

采用“推(Push)模式”转发组播报文。

PIM-DM的关键任务:建立SPT(Shortest Path Tree,最短路径树)。

PIM-DM的工作机制:

  1. 邻居发现。
  2. 扩散与剪枝。
  3. 状态刷新。
  4. 嫁接。
  5. 断言。

使用Hello机制发现邻居;路由器需要周期性地发送Hello消息来发现邻居并维护PIM邻居关系。

选举DR:优先级高的或者IP地址大的成为DR。

 

密集模式协议:初始扩散过程

 

  • PIM-DM网络中出现活跃的组播源之后,组播源发送的组播报文将在全网内扩散。当PIM路由器接收到组播报文,根据单播路由表进行RPF检查通过后,就会在该路由器上创建(SG)表项,下游接口列表中包括除上游接口之外与所有PIM邻居相连的接口,后续到达的组播报文将从各个下游接口转发出去。
  • 最后组播报文扩散到达叶子路由器,会出现以下两种情况:
  • 若与该叶子路由器相连用户网段上存在组成员,则将与该网段相连的接口加入(SG)表项的下游接口列表中, 后续的组播报文会向组成员转发。
  • 若与该叶子路由器相连用户网段上不存在组成员,且不需要向其下游PIM邻居转发组播报文,则执行剪枝机制。

PIM--剪枝

组播源发出的后续组播包此网络中哪些链路和路由器AR-9、AR-4、AR-10、AR-11、AR-7;链路为他们路由器之间的链路。接收。

不需要(172.168.10.10,239.1.1.1)组播流量的分支,使用PIM Prune报文将自己从组播分发树上剪除。上游的路由器收到下游设备发送过来的Prune报文, 则将接收该报文的接口从(172.168.10.10,239.1.1.1)表项的出接口列表中移除。

PIM--剪枝否决机制

SW-1接口g0/0/3

1. AR-3不再需要(S,G)组播流量,因此从上游接口发送Prune报文。所有路由器都将收到该报文。如果AR-11直接将接收报文的GE0/0/0接口设置为剪枝状态,那么便会导致AR-5无法接收(S,G)组播流量。

2. 因此当AR-11的GE0/0/0接口上存在多个PIM邻居时,如果它在该接口收到Prune报文,则不会立即将接口置为修剪状态,而是启动剪枝延迟计时器(缺省3s),在这个时间内,如果接口收到Join报文,则会忽略此前接收的Prune报文。

3. AR-5收到AR-3发送的Prune报文后立即发送Join报文给AR-5,用于否决AR-11的剪枝请求。 

不是所有路由器都进行join发送

PIM--断言

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

LSW-2的接口g0/0/1:

PIM--DM嫁接

(针对AR-9抓包)

路由器检测到新接收者,并立即沿着分发树向上发送一条剪枝(graft)消息到源。当上游路由器接收到该嫁接消息后,路由器立即把接收到嫁接消息的接口置为转发状态,以使多播流量开始向下发送给接收者。

AR-3:display pim  routing-table fsm //查看此设备的的pim路由表详细信息(包含RPF邻居以及断言机制的胜出者)

PIM-DM协议报文

报文类型

报文功能

Hello

用于建立及维护PIM邻居关系。

Join/Prune

加入/剪枝报文,加入报文用于加入组播分发树,剪枝则用于修剪组播分发树。

Graft

嫁接报文,用于将设备嫁接到组播分发树。

Graft-ACK

嫁接确认报文,用于对邻居发送的Graft报文进行确认。

发布了39 篇原创文章 · 获赞 111 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/HYD696/article/details/105627048
PIM
dm