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协议原理的主要内容,如果未能解决你的问题,请参考以下文章

PIM-DM协议内核触发机制及协议执行机制记录

交换机如何处理组播

YL_组播_IGMPv2-v3

YL_组播_IGMPv2-v3

数通面试私房菜之组播专题第六期: PIM SM详解

数通面试私房菜之组播专题第六期: PIM SM详解