YL_组播_PIM-DM协议原理
Posted laixufie2046
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YL_组播_PIM-DM协议原理相关的知识,希望对你有一定的参考价值。
PIM-DM协议原理
1、前言
组播路由器之间运行组播路由协议,组播路由协议用于建立和维护组播路由,建立一个从数据源端到多个接收端的无环数据传输路径,即构建组播分发树,并正确、高校地转发组播数据包。
PIM(Protocol Independent Multicast)是典型的域内组播路由协议,分为DM(Dense Mode)和SM(Sparse Mode)两种模型
一、PIM-DM概述与配置
1、组播路由协议概述
和单播路由一样,组播路由也分为域内和域间两大类
域内组播路由协议
通过发现组播源并构建组播分发树,将信息传递到接收者
DVMRP、MOSPF、PIM-DM、PIM-SM、PIM-SSM、CBT
域间组播路由协议
需要一种机制能发现其他组播域内的组播源:MDSP、PIM-SSM
用于RPF检测的路由信息如何在自治系统间传递:M-BGP、BGP
2、域内的组播路由协议可以分为三类
密集模式协议(DVMRP和PIM-DM)
密集模式协议用Push方式,Push原理假设网络里的每个子网至少有一个组播信息的接收点,因此,信息扩散到网络中的所有点;然后再利用扩散、剪枝和嫁接来维护组播分发树。
稀疏模式协议(PIM-SM)、CBT
稀疏模式协议用Pull而不是Push的方式,即组播信息被拉入网络中的接收站点。这种方式假定组播数据不被需要,除非有加入申请,否则组播信息不会被传送到接收站点。
链路状态协议(MOSPF)--使用密集模式
3、PIM概述
PIM(Protocol Independent Multicast)称为协议无关组播,表示组播依靠的单播路由可以由静态、RIP、OSPF、IS-IS、BGP等提供,组播路由和单播路由协议无关,只要单播路由协议产生所需路由表项能够完成RPF检查即可。
协议号:103
PIM路由器组播地址为:224.0.0.13
PIM协议分为:
PIM-DM(协议无关组播-密集模式)
PIM-SM(协议无关组播-稀疏模式)
协议假设:网络中的每个子网都存在至少一个对组播源感兴趣的接收站点,因此组播数据包被扩散到网络中的所有网段。(Push模式)
PIM-DM对没有组播数据转发的分支进行Prune剪枝操作,只保留包含接收者的分支
为了使减掉的有组播数据转发需求的分支能够重新接收组播数据流,减掉的分支周期性地回复称转发状态。(泛洪修剪时间周期是3分钟)
为了减少等待被剪掉的分支恢复成转发状态的延迟时间,PIM-DM使用Graft嫁接机制主动恢复组播报文的转发。
4、PIM-DM中数据包的转发
PIM-DM域中数据包的转发路径是“有源树”
以“组播源”为根、组播组成员为枝叶的一棵树
由于有源树使用的是从组播源到接收者的最短路径,因此也称为最短路径树SPT(Shortest Path Tree)
PIM-DM不依赖于特定的单播路由协议,而是使用现存的单播路由进行RPF检查
路由器收到组播数据的接口称为上游接口,转发组播数据的接口称为下游接口
5、PIMv2报文头格式
版本
版本字段标识版本信息,当前为2
类型
0:hello
3:加入/剪枝
5:assert
6:嫁接
7嫁接回应
9:状态刷新
6、PIM-DM基本配置
Pim // 全局开启PIM
Multicast routing-enable // 在路由器全局开机组播路由功能
Interface Ethernet 0/0/0 // 进入接口模式
Pim dm // 设置接口为PIM的DM模式
二、PIM-DM协议机制
1、邻居发现hello报文
Hello报文的目的地址是224.0.0.13
2、hello报文
Hello(默认30秒)报文类型(Option Type)=1
Holdtime(默认为105)定时器,这个定时器只是接收方何时终止与发送方的邻接关系
组播路由器需要使用hello消息来发现邻居,并维护邻居关系
通过比较hello消息上携带的优先级(越高越好)和IP地址(越大越好),各路由器为多路由器网段选举指定路由器DR
3、构建STP树—扩散
当某组播源S开始向组播组G发送数据时,路由器接收到组播报文后,首先根据单播路由进行RPF检查如果检查通过则创建一个(S,G)表项,然后数据向网络上所有下游PIM-DM节点转发,这个过程称为扩散(Flooding)
4、构建SPT树—剪枝
如果下游节点没有组播成员,则向上游节点发Prune剪枝消息(224.0.0.13),通知上游节点不用再转发数据到该分支。上游节点接收到Prune剪枝消息后,就将相应的接口从某组播转发表项(S,G)对应的输出接口列表中至于Prune状态(列表中删除),剪枝过程继续指导PIM-DM中仅剩下了必要的分支,这就建立了一个组播源S为根的SPT
6、SPT树的形成
网路中的每个路由器仍然会保留(S,G)表项
注意:扩散—剪枝周期性进行!每3分钟重复一次!
7、剪枝的触发条件
流量达到非RPF点对点接口
没有直连接收者的叶节点路由器
位于点到点链路上的非叶节点路由器从其邻居收到剪枝信息
LAN网段上的非叶路由器从其邻居接收到剪枝信息,而且LAN网段上的其他邻居没有剪枝信息的否决(oevrride)
8、多路访问网段的修剪延迟
B是叶节点路由器并且没有接收者,发送修剪信息
A收到修剪信息后要等待3S才能继续向上修剪
C收到了B的修剪信息,立马发送否决信息
A接收到join信息后放弃向上修剪。(Prune override)
9、嫁接机制
由谁触发的:接收者(发送了一个IGMP的report报文)
由谁发送的:最后一跳路由器(发送group信息:PIM信息)
10、RPF检查
利用单播路由表(默认),可以是任何方式生成的路由表项;如果组播包到达接口是单播路由只是的通往组播源S的接口,就认为这个组播包是从正确路径来的。
11、RPF细则
RPF检查也可以使用其他信息源来选择RPF接口,有MBGP(多播BGP),静态多播路由表等。当路由是从多个路由源学到时,组播RPF将使用路由协议优先级来进行计算。如果有多条路由匹配并且管理距离相同,那么最长匹配原则。
步骤一:依据上述规则找到RPF接口(或者说找到RPF的邻居)
步骤二、当多播数据包从接口收到后进行RPF检查
Display multicast rpf-info 10.1.123.100(组播源IP) // 查看关于组播源的RPF信息
IP rpf-route-static 1.1.1.1 24 2.2.2.2 // 指定组播的单播路由,1.1.1.1:源IP 2.2.2.2:下一跳
12、Assert机制
触发规则:一台路由器的OIL列表接口收到一份多播信息,会触发发送PIM assert信息
网络中的各路由器通过发送Assert报文选出一条最优的路径,获胜路由器称为该(S,G)项的上游邻居,由它负责该(S,G)组播报文的转发,而其他落选路由器则剪掉对应的接口以禁止转发信息。
13、PIM-DM协议机制概括
邻居发现、扩散、剪枝、嫁接、Assert机制(只有收到多分相同的报文都会选举Assert)
三、PIM-DM配置验证
Display pim routing-table // 查看PIM-DM组播路由表
Display pim neighbor // 查看PIM邻居
Display pim interface verbose // 查看PIM接口配置
以上是关于YL_组播_PIM-DM协议原理的主要内容,如果未能解决你的问题,请参考以下文章