PIM-DM的局限性

中大型组播网络中由于网络较大,如果依然使用PIM-DM会遇到诸多问题:

1 使用“扩散-剪枝”方式需要全网扩散组播报文,对于网络有一定冲击

2 所有组播路由器均需要维护组播路由表,即使该组播路由器无需转发组播数据。

3 对于组成员较为稀疏的组播网络,使用“扩散-剪枝”形成组播分发树的效率不高

PIM-SM(ASM)

通过PIM-SM(ASM)模式形成组播分发树的特点

1 只有组播转发路径上的组播路由器需要维护组播路由表。

2 通过RP可以让所有组播路由器获知组成员的位置。

3 避免“扩散-剪枝”机制,提高组播分发树的形成效率。

PIM-SM(ASM)组播分发树的形成步骤

1 将组成员的位置事先告知某台组播路由器(Rendezvous Point,RP),形成RPT(RP Tree)。

2 组播源在发送组播数据时,组播网络先将组播数据发送至RP,然后由RP再将组播数据转发给组成员。

3 对于部分次优的组播转发路径,PIM-SM(ASM)能自动优化为最优路径(SPT)。

PIM-SM(ASM)协议报文

报文类型

报文功能

Hello

用于PIM邻居发现,协议参数协商,PIM邻居关系维护等

Register(注册)

用于事先源的注册过程。这是一种单播报文,在源的注册过程中,组播数据被第一跳路由器封装在单播注册报文中发往RP

Register-Stop(注册停止)

RP使用该报文通知第一跳路由器停止通过注册报文发送组播流量

Join/Prune(加入/剪枝)

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

Assert(断言)

用于断言机制

Bootstrap(自举)

用于BSR选举。另外BSR也使用该报文向网络中扩散C-RP(Candidate-RP,候选RP的汇总信息

Candidate-RP-Advertisement

(候选RP通告)

C-RP使用该报文向BSR发送通告,报文中包含该C-RP的IP地址及优先级等信息

RP概述

汇聚点RP(Rendezvous Point)为网络中一台重要的PIM路由器,用于处理源端DR注册信息组成员加入请求,网络中的所有PIM路由器都必须知道RP的地址,类似于一个供求信息的汇聚中心

配置RP的方式

静态RP:在网络中的所有PIM路由器上配置相同的RP地址,静态指定RP的位置

动态RP:通过选举机制在多个C-RP(Candidate-RP,候选RP)之间选举出RP

PS:静态RP或者是动态RP在设置时均可以指定该RP为哪些组播组提供服务。

动态选举RP

动态选举RP涉及的角色有C-BSR(Candidate-Bootstrap Router)C-RP(Candidate-RP)

选举RP的流程

1 首先,C-BSR通过竞选能选举出一个唯一的BSR。

2 然后,BSR的是用于收集C-RP的信息并形成RP-Set信息的路由器(类似选举RP的裁判)。BSR通过PIM报文将RP-Set信息扩散给所有PIM路由器。

3 最后,PIM路由器收到RP-Set消息后,根据RP选举规则选举出合适的RP。

BSR竞选规则

1 优先级较高者获胜(优先级数值越大优先级越高)。

2 如果优先级相同,IP地址较大者获胜。

RP竞选规则

1 与用户加入的组地址匹配的C-RP服务的组范围掩码最长者获胜。

2 如果以上比较结果相同,则C-RP优先级较高者获胜(优先级数值越小优先级越高)。

3 如果以上比较结果都相同,则执行Hash函数,计算结果较大者获胜。

4 如果以上比较结果都相同,则C-RP的IP地址较大者获胜。

组播分发树的形成

PIM-SM(ASM)模式首次形成组播分发树主要依赖RPT构建机制组播源注册机制DR选举机制

RPT构建机制

组播叶子路由器主动建立到RP组播分发树(RPT)

RPT(RP Tree)是一棵以RP为根,以存在组成员关系的PIM路由器为叶子的组播分发树。

当网络中出现组成员(形成IGMP表项)时,组成员端DR向RP发送Join报文,在通向RP的路径上逐跳创建(*,G)表项,生成一棵以RP为根的RPT。

组播源注册机制

通过该机制形成组播源到RP组播分发树(SPT)

SPT建立后,RP使用Register-Stop报文通知源端DR后续报文可以以组播报文形式发送。

DR选举机制

在源端网络或者成员端网络中,有可能有多台组播路由器转发组播流量,从而造成重复组播报文的问题。

PIM DR(Designated Router)是源端网络或者成员端网络的唯一组播转发者,由于不存在别的组播转发路由器就避免了重复组播报文的问题。

DR负责源端或组成员端组播报文的收发,避免重复组播报文,同时成员端DR还负责发送Join加组消息。

PIM DR选举规则

在PIM-SM(ASM)中各路由器通过比较Hello消息上携带的优先级和IP地址,为多路访问网络选举指定路由器DR。

接口DR优先级高的路由器将成为该MA网络的DR,在优先级相同的情况下,接口IP地址大的路由器将成为DR。

当DR出现故障后,邻居路由器之间会重新选举DR。

PS:DR优先级默认为1,数值越大越优;对于成员端网络,如果有多台组播路由器,则组播路由器的下行接口需要同时开启IGMP与PIM; DR还可充当IGMPv1的查询器。

SPT切换机制

在PIM-SM网络中,一个组播组只对应一个RP。因此组播数据最初都会发往RP,由RP进行转发,这会导致两个问题:1  过大的组播流量会对RP形成巨大的负担。2 组播转发路径有可能是次优路径

为了解决RPT潜在的次优路径问题,成员端DR会基于组播数据包中的源IP,反向建立从成员端DR到源的SPT

设备沿最短路径发送Join消息,该最短路径基于RPF选举规则决定。设备将Join消息从RPF选举得出的上行接口发出。

多路访问网络在SPT切换的过程中可能会存在重复报文,需要利用断言机制快速选定下行接口。

SPT切换的触发条件:缺省情况下,当RP或者组成员端DR收到第一个组播数据包之后,就会向源发起SPT切换。

当组播分发树(SPT或RPT)稳定后,成员端DR会周期性发送Join/Prune报文,用于维护组播分发树。

如果组播在一段时间后(默认210s)没有流量则SPT树会消失,成员端DR恢复到RP的RPT树。

相关命令

在接口下开启PIM-SM模式

[R1-GigabitEthernet0/0/0]pim sm

进入PIM视图

[R1]pim

配置静态RP(通常使用RP路由器的环回接口)

[R1-pim]static-rp 1.1.1.1

查看RP信息

<R1>display pim rp-info 

配置BSR(可指定接口类型和编号、哈希掩码长度(缺省值30)、优先级(缺省值0,越大越优))

[R1-pim]c-bsr LoopBack 0 32 255

配置RP(可指定接口类型和编号和优先级(缺省值0,越小越优)等)

[R1-pim]c-rp LoopBack 0 priority 255

查看BSR信息

<R1>display pim bsr-info 

配置PIM-SM域的BSR边界(禁止BSR发送的自举报文向PIM-SM域外发送,域内的其他组播报文可以通过该边界)

[R1-GigabitEthernet0/0/0]pim bsr-boundary 

永不发起SPT切换机制(在成员端DR上配置,缺省情况下会自动切换)

[R1-pim]spt-switch-threshold infinity

配置举例---PIM-SM(ASM)

静态RP配置

配置R2的环回接口2.2.2.2为静态RP。

组播源配置


路由器R1配置

#sysname R1
#
multicast routing-enable
#
interface GigabitEthernet0/0/0ip address 192.168.0.254 255.255.255.0 pim sm                                   //配置为SM模式ospf enable 1 area 0.0.0.0
#
interface GigabitEthernet0/0/1ip address 10.1.0.1 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
interface GigabitEthernet0/0/2ip address 10.1.1.1 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
ospf 1 router-id 1.1.1.1 area 0.0.0.0
#
pimstatic-rp 2.2.2.2             //配置静态RP,指定RP的地址
#

路由器R2配置

#sysname R2
#
multicast routing-enable
#
interface GigabitEthernet0/0/0ip address 10.1.0.2 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
interface GigabitEthernet0/0/1ip address 10.1.2.2 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
interface LoopBack0      //配置了环回接口用于指定RPip address 2.2.2.2 255.255.255.255  ospf enable 1 area 0.0.0.0
#
ospf 1 router-id 2.2.2.2 area 0.0.0.0
#
pimstatic-rp 2.2.2.2
#

路由器R3配置没有特别之处

路由器R4配置

#sysname R4
#
multicast routing-enable
#
interface GigabitEthernet0/0/0ip address 10.1.2.4 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
interface GigabitEthernet0/0/1ip address 10.1.3.4 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
interface GigabitEthernet0/0/2ip address 192.168.1.254 255.255.255.0 igmp enable                            //连接成员端网络的接口开启IGMPospf enable 1 area 0.0.0.0
#
ospf 1 router-id 4.4.4.4 area 0.0.0.0
#
pimstatic-rp 2.2.2.2
#

成员端配置(PC1与PC2类似)

配置完成后,点击组播源的运行和成员端的启动VLC可进行测试。

动态RP配置

配置R2、R3为c-bsr和c-rp,R2采用优先级100,R3采用优先级200,根据bsr和rp的选举规则可知,这样配置后bsr为R3,rp为R2。

组播源和成员端配置同静态。

路由器R1配置

#sysname R1
#
multicast routing-enable
#
interface GigabitEthernet0/0/0ip address 192.168.0.254 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
interface GigabitEthernet0/0/1ip address 10.1.0.1 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
interface GigabitEthernet0/0/2ip address 10.1.1.1 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
ospf 1 router-id 1.1.1.1 area 0.0.0.0
#

路由器R2配置

#sysname R2
#
multicast routing-enable
#
interface GigabitEthernet0/0/0ip address 10.1.0.2 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
interface GigabitEthernet0/0/1ip address 10.1.2.2 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
interface LoopBack0ip address 2.2.2.2 255.255.255.255 pim smospf enable 1 area 0.0.0.0
#
ospf 1 router-id 2.2.2.2 area 0.0.0.0
#
pimc-bsr hash-length 32           //配置c-bsr的哈希掩码长度c-bsr priority 100             //配置c-bsr优先级c-bsr LoopBack0                //配置c-bsr的接口类型和编号c-rp LoopBack0 priority 100    //配置c-rp的接口类型、编号、优先级
#

路由器R3配置

#sysname R3
#
multicast routing-enable
#
interface GigabitEthernet0/0/0ip address 10.1.0.3 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
interface GigabitEthernet0/0/1ip address 10.1.3.3 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
interface LoopBack0ip address 3.3.3.3 255.255.255.255 pim smospf enable 1 area 0.0.0.0
#
ospf 1 router-id 3.3.3.3 area 0.0.0.0
#
pimc-bsr hash-length 32c-bsr priority 200c-bsr LoopBack0c-rp LoopBack0 priority 200
#

路由器R4配置

#sysname R4
#
multicast routing-enable
#
interface GigabitEthernet0/0/0ip address 10.1.2.4 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
interface GigabitEthernet0/0/1ip address 10.1.3.4 255.255.255.0 pim smospf enable 1 area 0.0.0.0
#
interface GigabitEthernet0/0/2ip address 192.168.1.254 255.255.255.0 igmp enableospf enable 1 area 0.0.0.0
#
ospf 1 router-id 4.4.4.4 area 0.0.0.0
#

查看bsr信息

<R2>display pim bsr-info VPN-Instance: public netElected AdminScoped BSR Count: 0Elected BSR Address: 3.3.3.3Priority: 200Hash mask length: 32State: Accept PreferredScope: Not scopedUptime: 00:25:56Expires: 00:01:29C-RP Count: 2Candidate AdminScoped BSR Count: 0Candidate BSR Address: 2.2.2.2Priority: 100Hash mask length: 32State: CandidateScope: Not scopedWait to be BSR: 0

分析:可以看出路由器R3为挡墙BSR

查看rp信息

<R2>display pim rp-infoVPN-Instance: public netPIM-SM BSR RP Number:2Group/MaskLen: 224.0.0.0/4RP: 2.2.2.2 (local)Priority: 100Uptime: 00:38:16Expires: 00:02:16Group/MaskLen: 224.0.0.0/4RP: 3.3.3.3Priority: 200Uptime: 00:27:15Expires: 00:02:16

分析:可以看出路由器R2为当前RP

PIM-SM(SSM)

PIM-SM(SSM)基本概述

由于SSM提前定义了组播的源地址,所以PIM-SM(SSM)可以在成员端DR上基于组播源地址直接反向建立SPT。 PIM-SM(SSM)无需维护RP、无需构建RPT、无需注册组播源,可以直接在组播源与组成员之间建立SPT。 在PIM-SM(SSM)模型中,关键机制包括邻居发现、DR竞选、构建SPT。

组播分发树形成与维护

PIM-SM(SSM)模型构建组播分发树的形成主要依赖IGMPv3报文Join报文

PIM-SM(SSM)模型形成的组播分发树会一直存在,不会因为没有组播流量而消失。

PIM模型比较

协议

模型分类

适用场景

工作机制

PIM-DM

ASM模型

适合规模较小、组播组成员相对比较密集的局域网

通过周期性“扩散-剪枝”维护一棵连接组播源和组成员的单向无环SPT

PIM-SM

ASM模型

适合网络中的组成员相对比较稀疏,分布广泛的大型网络

采用接收者主动加入的方式建立组播分发树,需要维护RP、构建RPT、注册组播源

SSM模型

适合网络中的用户预先知道组播源的位置,直接向指定的组播源请求组播数据的场景

直接在组播源与组成员之间建立SPT,无需维护RP、构建RPT、注册组播源

2022-11-06 网工进阶(三十五)IP组播协议--PIM-SM工作原理(组播分发树的形成、ASM、SSM)相关推荐

  1. 2022-07-15 网工进阶(十九)BGP-状态机、对等体之间的交互原则、影响对等体关系建立的因素、对等体表、路由表、详细路由表、路由属性

    BGP状态机 BGP对等体的交互过程中存在6种状态机:空闲(Idle).连接(Connect).活跃(Active).Open报文已发送(OpenSent).Open报文已确认(OpenConfirm ...

  2. 跨平台应用开发进阶(三十五) :Android权限列表permission说明

    文章目录 一.前言 二.权限信息汇总 一.前言 uni-app开发完APP后,上架到应用市场,审核时会对APP内部设置的权限进行核准,并给出相应的理由. 如项目中有以下权限设置: "andr ...

  3. ArcGIS实验教程——实验三十五:ArcGIS Model Builder与空间建模原理、案例详解

    ArcGIS实验视频教程合集:<ArcGIS实验教程从入门到精通>(附配套实验数据)> 文章目录 一. 空间建模概述 1. 空间建模概述 2. 空间建模步骤 二.Model Buil ...

  4. 博文总集(三) 之网工进阶

    缓慢更新中 2022-04-03 网工进阶(一)认识网络设备_鹅一只的博客-CSDN博客_上行接口板 2022-04-04 网工进阶(二)IP路由基础.OSPF-基本概念.RID.区域_路由器rid是 ...

  5. 2022-11- 10 网工进阶(三十六)IP组播协议--IGMP(v1、v2、v3)、IGMP snooping、IGMP SSM Mapping、IGMP Proxy(代理)

    感知组播组成员 组播通信中,组播网络需要将组播数据发送给特定的组播组成员,因此组播网络需要知道组成员的位置与组成员所加的组播组. 组播网络感知组播组成员的方法有手工静态配置和动态感知. 手工静态配置 ...

  6. 2022-09-07 网工进阶(三十)以太网交换安全-端口隔离、MAC地址表安全、端口安全、MAC地址漂移防止与检测、链路层安全、流量抑制、风暴控制、IPSG(IP Source Guard)

    概述 目前网络中以太网技术的应用非常广泛.然而,各种网络攻击的存在,不仅造成了网络合法用户无法正常访问网络资源,而且对网络信息安全构成严重威胁,因此以太网交换的安全性越来越重要. 端口隔离 大型网络中 ...

  7. 2022-11-01 网工进阶(三十四) IP组播协议(PIM)-模式概述、组播分发树的分类、PIM路由表项、PIM-DM工作原理(组播分发树的形成、配置举例)

    PIM协议介绍 PIM(Protocol Independent Multicast)协议无关组播.协议无关指的是与单播路由协议无关,即PIM不需要维护专门的单播路由信息.目前常用版本是PIMv2,P ...

  8. 2022-10-31 网工进阶(三十三) IP组播-流量模型、组播概念、组播报文结构、组播地址与MAC、组播网络架构、组播服务模型、组播数据转发原理(RPF检查、组播分发树、组播协议介绍)

    IP组播概念 流量模型 网络中存在各种各样的业务,从流量模型看一般可以将业务分为两类: 点到点业务:比如FTP,WEB业务,此类业务主要特点是不同的用户有不同的需求,比如用户A需要下载资料A,用户B需 ...

  9. 第三十五章 大唐工厂主

    第三十五章 大唐工厂主 李丽质又对丘长胜说道,你拿着这几本书,在城内分发,边发边喊:"免费送书啦,免费送书,城门口的书摊免费送书了." 丘长胜在城内喊着,李丽质又嘱咐丘长胜,让他多 ...

  10. 2022SFE第三十五届上海国际连锁加盟展览会

    2022SFE第三十五届上海国际连锁加盟展览会 展会时间:2022年8月04-07日 展会地址:国家会展中心(上海) 第34届SFE上海加盟展回顾: 11月11日,历时三天的SFE第34届上海国际连锁 ...

最新文章

  1. 朴素、Select、Poll和Epoll网络编程模型实现和分析——Select模型
  2. 自然语言处理中文本的token和tokenization
  3. 例题3-6 环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)
  4. Python使用matplotlib绘制分组对比柱状图(bar plot)可视化时汉语(中文)标签显示成了框框□□、什么情况、我们有解决方案
  5. Python使用shape计算矩阵的行和列
  6. 美国火星车失联的7分钟,高清视频传回来了
  7. 招聘:PingCAP大范围招募,有兴趣的小伙伴速点!
  8. c/c++源文件为何要包含自己的头文件?(编译器检查定义和声明的一致性)(编译报错:undefined reference to...)
  9. 【《Effective C#》提炼总结】提高Unity中C#代码质量的21条准则
  10. WeihanLi.Npoi 1.18.0 Released
  11. 完美数:数学宝库中的一颗璀璨明珠
  12. java缩写_Java学习-Java缩写词的意思
  13. [BZOJ 4571][Scoi2016]美味(主席树)
  14. 【论文笔记】node2vec:可扩展的网络特征学习
  15. 卷积网络如何让测试集准确率上升_调试深度学习网络
  16. 犀牛插件开发-插件安装器制作-rhino插件
  17. 1-selenium-安装及模拟谷歌邮箱登录
  18. javascript-轮播图
  19. 多类别分类——吴恩达课程作业python代码实现
  20. 全球及中国口腔医疗行业投融资现状与与运营效益分析报告2022版

热门文章

  1. 中国名人文学作品文学
  2. python猪脸识别_没想到,这是一家AI公司
  3. Linux下Tomcat的安装与配置
  4. Power Query 系列 (13) - 自定义函数
  5. 基于STM32蓝牙智能手环脉搏心率计步器体温显示设计
  6. 看css禅意花园记的笔记
  7. 学习weka(2):weka软件使用实例:针对kdd99数据集进行训练和测试
  8. 【机器学习】天池O2O优惠券使用预测_系统性总结与心得
  9. 量化风控从入门到放弃
  10. java 链表 深拷贝_单链表深拷贝的实现