PIM-DM--理论详解

概述

结合华三的资料学习记录下PIM-DM原理性知识。

附上PIM-SM理论详解链接

组播模型分类

  1. ASM模型
    Any-Source Multicast 任意信源组播,在ASM模型中任意一个发送者都可以作为组播源向某组播组地址发送信息。接收者无法预先知道组播源位置,但可以在任意时间加入或离开该组播组
  2. SFM模型
    Source-filtered Multicast 信源过滤组播,继承了ASM模型。发送者角度完全相同。功能上对ASM进行扩展,上层软件对收到的组播报文的源地址进行检查,允许或禁止来自某些组播源的通过。接收者只能收到来自部分组播源的组播数据。
  3. SSM模型
    Source-Specific Multicast 指定信源组播模型,相对于ASM模型的根本区别,SSM模型中的接收者已经通过其它手段预先知道了组播源的具体位置。SSM模型使用与ASM/SFM模型不同的组播的地址范围,直接在接收者与其制定的组播源之间建立专用的组播转发路径。

常用永久组地址及其含义
在这里插入图片描述
三层组播协议

  • 组播管理协议
    IGMP Internet Group Management Protocol,互联网组管理协议,协议规定主机与三层组播设备之间建立和维护组播成员关系的机制。
  • 组播路由协议
    组播路由协议运行在三层设备之间,用于建立和维护组播路由,并正确、高效地转发组播数据包。组播路由建立了从一个数据源端到多个接收端的无环(loop-free)数据传输路径,即组播分发树。

ASM模型组播路由

  • 域内组播路由用来在AS内部发现组播源并构建组播分发树,从而将组播信息传递到接收者。PIM(Protocol Independent Multicast)就是较为典型的域内组播路由协议。根据其转发机制不通,可分为DM(Dense Mode,密集模式),SM(SparseMode,稀疏模式)。
  • 域间组播路由协议用来实现组播信息在AS之间的传递,目前较为成熟的解决方案为:MSDP(Multicast Source Discovery Protocol,组播源发现协议)。

SSM模型组播路由协议

  • 没有域内和域间的划分。接收者预先知道组播源的具体位置,因此只需要借助PIM-SM构建的通道即可实现组播信息的传输。

PIM简介

PIM是Protocol Independent Multicast(协议无关组播),从名字可以看出,组播路由与所采用的单播路由协议无关。可以利用静态路由或者任意单播路由协议(包括RIP、OSPF、IS-IS、BGP等)所生成的单播路由表。
PIM借助RPF(Reverse Path Forwarding)逆向路径转发实现对组播报文的转发。

PIM-DM简介

  • PIM-DM(Protocol Independent Multicast-Dense Mode,协议无关组播-密集模式)
  • PIM-DM属于密集模式的组播路由协议,其理想状态下是每个路径下都有接收者。使用“推(Push)模式”传送组播数据,用于组播成员比较密集的小型网络。

PIM-DM的基本原理

  1. PIM-DM假设网络中的每个子网都存在至少一个组播成员,因此组播数据将被扩散(Flooding)到网络中所有节点。然后PIM-DM对没有组播组的网络节点进行剪枝(Prune),只保留包含接收者的分支。“扩散”“剪枝”现象会周期性的发生,被剪枝的的分支节点可以周期性的恢复成转发状态(在检测到没有出接口的时候会再次剪枝)。
  2. 当剪枝节点出现新成组播成员时,为了减少该节点恢复成转发状态的时间,PIM-DM使用嫁接(Graft)机制主动恢复其对组播成员数据的转发。
  3. 密集模式下数据包的转发路径时有源树(Source Tree, 即以主播源为“根”、组播成员为枝叶的一颗转发树)。由于有源树使用的是从组播源到接收者的最短路径树,因此也称为最短路径树(SPT,Shortest Path Tree)。

PIM-DM工作机制

  1. 邻居发现
    周期性的向所有PIM路由器(224.0.0.13)以组播方式发送PIM Hello报文,发现邻居以及维护邻居关系。
  2. 构建STP树
    扩散: 组播源S向组播G发送组播报文时,首先扩散,PIM路由器对接收的报文进行RPF检查,通过创建(S,G)表象,并将该报文扩散到除了入接口的所有出接口。经扩散之后,PIM域中所有的路由器都会创建(S,G)表象。
    剪枝: 然后边缘节点在判断自己没有出接口时,会向上游接口发送剪枝报文,然后上游路由器会对下游没有接收者的节点进行剪枝。没有接收者的下游节点向上游节点发送剪枝报文(Prune Message)。---------PIM-SM中有着相似的剪枝应用。
    剪枝规则: 最先由叶子路由器发起,直到PIM-DM域中只剩下必要的分支,构成了SPT树。 各个剪枝的节点提供超时机制,剪枝超时后重新进行扩散然后再剪枝。
    嫁接: 嫁接的机制是为了节省节点恢复时间,不必要等到剪枝超时,使用嫁接机制主动恢复对组播数据的转发。由嫁接报文进行控制(Graft Message)。上游节点收到嫁接报之后恢复数据转发,并且回一个嫁接应答报文(Graft-Ack Message)。下游节点周期发送嫁接报文,除非收到上游节点的嫁接应答报文。
  3. 断言-Assert Message
    断言机制为了防止组播报文重复发送。在同一个网段内如果存在多台组播路由器,则相同的组播报文可能会被重复发送到该网段。从当前下游接口收到发送出去的组播数据,以组播的形式向外发送Assert Message。选举规则:
    ---- 到组播源的单播路由的优先级较高则获胜;
    ---- 如果到组播源的单播路由的优先级相等,那么到组播源的度量值较小者获胜;
    ---- 如果度量值相等,则本地接口IP地址较大者获胜。

RPF检查

RPF检查依据时单播路由、MGBP路由或组播静态路由。
在执行RPF检查时,路由器同时查找单播路由表、MBGP路由表和组播静态路由表,具体过程如下:

  1. 首先,分别从单播路由表、MBGP路由表和组播静态路由表中各选出一条最优路由:
  • 以“报文源”的IP地址为目的地址查找单播路由表,自动选取一条最优单播路由。对应表项中的出接口为RPF接口,下一跳为RPF邻居。路由器认为来自RPF邻居且由该RPF接口收到的组播报文所经历的路径是从源S到本地的最短路径。
  • 以“报文源”的IP地址为目的地址查找MBGP路由表,自动选取一条最优MBGP路由。对应表项中的出接口为RPF接口,下一跳为RPF邻居。
  • 以“报文源”的IP地址为指定源地址查找组播静态路由表,自动选取一条最优组播静态路由。对应表项明确指定了RPF接口和RPF邻居。
  1. 然后,从这三条最优路由中选择一条作为RPF路由:
  • 如果配置了按照最长匹配选择路由,则从这三条路由中选出最长匹配的那条路由;如果这三条路由的掩码一样,则选择其中优先级最高的那条路由;如果它们的优先级也相同,则按照组播静态路由、MBGP路由、单播路由的顺序进行选择。
  • 如果没有配置按照最长匹配选择路由,则从这三条路由中选出优先级最高的那条路由;如果它们的优先级相同,则按照组播静态路由、MBGP路由、单播路由的顺序进行选择。

备注
根据应用场景不同,“报文源”代表的含义也不同:

  • 如果报文从组播源到接收者或RP(Rendezvous Point,汇集点)的SPT(Shortest Path Tree,最短路径树)进行传输,则以组播源为“报文源”进行RPF检查。
  • 如果时从RP到接收者的RPF(Rendezvous Point Tree,共享树)进行传输,则以RP为“报文源”进行RPF检查;
  • 如果当前报文为BSR(BootStrap Router, 自举路由器)报文,沿从BSR到各路由器的路径进行传输,则以BSR为“报文源”进行RPF检查。
  • 6
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值