组播服务模型
Dense mode 密集模式 PIM DVMRP MOSPF
Spase mode 稀疏模式 PIM CBT
当网络中接收组播流的主机很多时,达到80%甚至更高就采取dense mode
DM针对组播流采取推的方式,以泛洪方式推送给每个设备,如果需要接收就再逐级扩散,不需要返回逐级修剪。
SM采取的是拉的模型,组播接收者较少,主机告诉最后一跳路由器自己需要接收那个组播组的流量,最后一跳路由器继续向上询问倒数第二跳,依次类推。
组播分发树
源树 source tree:最短树 SPT
共享树 shared tree RP树,RP聚合点 rendezvous point
源树按照最短路径到达组播接收者,形成的组播路由条目叫做(S,G),这种结构就是一个组一个源,这里的最短说的是单播转发最短。缺点就是一个源就有一个组,造成组播分发树数量较多。
共享树在网络中找到一个点,也就是聚合点,组播接收者到聚合点之间形成一棵树,是所有源的树,至于组播源只需要形成到达RP的树即可。
共享树的优点是减少了组播分发树的数量,缺点组播源转发组播流量给组播接收者用的不是最优路径。共享树其实是两颗最短树构成。形成的组播路由条目叫做(*,G),
RPF校验:
反向路径检测,防止接收重复组播报文
接收到组播流量之后,针对组播流量中的源IP地址进行本地单播路由的查看,仅仅接收单播地址路径最优接口发送流量.
比较规则:1.最小的AD 2.最小的metric 3.最大的IP地址
对路由器C而言,有可能会接收到A D两个路由器给的组播流量。 这个时候就要在接收到组播流的接口进行RPF检测,也就是上面说的最优接口,并不是所有接口都进行RPF校验。
PIM协议无关组播
协议使用范围:在一个AS中
协议封装:基于IP封装,协议号103
报文发送方式:使用组播或单播发送 组播地址224.0.0.13
PIM dense 模式:
使用消息数据包:PIM hello报文、pruning修剪、graft 嫁接、graft-ack 嫁接确认、accert 声明
在网络中部署了PIM-DM之后,没有组播流量传递,不会产生组播路由表
声明机制: 在存在多个倒数第一跳或者第一跳路由器时,只有声明胜出的唯一路由器,才能向下转发组播流量 不是查询者,查询者只是决定哪个路由器向下发送IGMP查询报文,并是不发送组播流量。
声明比较:1.该路由器到达组播源的最小AD值 2.最小metric值 3.最大IP 地址
过程还是主要采取泛洪和修剪的方式,推的模型,3分钟一次,组播源将组播流量向外推。每个路由器接收到组播流量都会进行RPF校验,只有校验通过的流量才会被继续泛洪。
最后一跳路由器发送修剪报文,依次向上泛洪。
另外当修剪完成突然有一个主机想加组,正常情况下需要等待三分钟,但这个时间未来太长了,所以一般当最后一跳路由器收到IGMP 成员报告信息时,会立即向上发送嫁接报文,嫁接确认有专门的嫁接确认报文。
PIM dense模式只有最短树,没有共享树。RPF校验的必然是最优路径。
拓扑图:
R7 模拟组播源,R1 R2为组播转发路由器,R3 R4为最后一跳路由器,R5 R6模拟主机。
R7 R1 R2 R3 R4运行IGP协议,因为组播需要进行RPF校验,R3 R4与交换机之间的网段是不需要通告进入IGP中的,组播本身就不会关注目标在哪,在关注源在何处。
R3 R4的接口以及R1连接R7的接口都需要运行组播路由协议
运行PIM (R1 R2 R3 R4)
查看PIM邻居关系(30s 105s)
这里的DR叫做PIM的指定路由器,在dense mode中无用
查看路由器上运行PIM的接口
查看组播路由条目
在dense mode中,*是不能转发数据的,只有S才是转发数据的
R5 R6开始加组
最后一跳路由器查看加组
在组播传输路由器上再次查看组播路由表
此时的*不能传输数据,R1 R2上也不会出现组播路由
在R7上发组播流
再次查看组播路由条目
要产生S,必须前提产生* 现在只看S,17.1.1.2为组播源,224.1.1.1为组播组,后面的第一个时间为该接口存在组播路由表中的时间,第二个计时器是还有多久再次进行修剪。
查看R3 R4那个路由器声明胜出,声明失败的发送修剪报文
R4声明胜出,R3发送修剪报文
在R2与R3之间开启抓包
Hello包
hello报文: 默认使用组播224.0.0.13发送,hello时间为30s,hold 时间 为105s
用于在MA网络中DR的选举(DR在DM中无作用):1.较大的DR优先级 2.较大的接口地址
表示还有16秒发送修剪报文
修剪报文:
在R3上创建一个环回,让环回加组,那么就立即看到嫁接报文与嫁接确认报文
说明不会修剪了
接下来再查看声明报文,只有声明胜出的路由器才不会发送修剪报文
先将R3的加组删除,接着清空组播路由表,恢复之前的样子
在R4与交换机之间的线路抓取声明报文
存在多个倒数第一跳路由器,只能存在一个转发组播流量,声明自己到达组播源最近的胜出,胜出的转发流量,其余的倒数第一跳路由器开始修剪。
发现两者的AD,metric都是一致的,所以接下来谁的IP地址大谁胜出。