部署PIM-SM

拓扑图

配置

使能组播路由

配置OSPF

组播路由器接口配置pim-sm

连接组成员的接口使能igmp

pim路由器上配置静态RP

sysname AR1
#
multicast routing-enable
#
interface GigabitEthernet0/0/0
 ip address 10.1.12.1 255.255.255.0 
 pim sm
#
interface GigabitEthernet0/0/1
 ip address 10.1.13.1 255.255.255.0 
 pim sm
#
interface GigabitEthernet0/0/2
 ip address 10.1.100.1 255.255.255.0 
 pim sm
#
ospf 1 router-id 1.1.1.1 
 area 0.0.0.0 
  network 0.0.0.0 255.255.255.255 
#
pim
 static-rp 2.2.2.2
#
 sysname AR2
#
multicast routing-enable
#
interface GigabitEthernet0/0/0
 ip address 10.1.12.2 255.255.255.0 
 pim sm
#
interface GigabitEthernet0/0/1
 ip address 10.1.150.2 255.255.255.0 
 pim sm
#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255 
 pim sm
#
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 0.0.0.0 255.255.255.255 
#
pim
 static-rp 2.2.2.2
#
 sysname AR3
#
multicast routing-enable
#
interface GigabitEthernet0/0/0
 ip address 10.1.13.3 255.255.255.0 
 pim sm
#
interface GigabitEthernet0/0/1
 ip address 10.1.150.3 255.255.255.0 
 pim sm
#
interface GigabitEthernet0/0/2
 ip address 10.1.36.3 255.255.255.0 
 pim sm
#
ospf 1 router-id 3.3.3.3 
 area 0.0.0.0 
  network 0.0.0.0 255.255.255.255 
#
pim
 static-rp 2.2.2.2
#
 sysname AR4
#
multicast routing-enable
#
interface GigabitEthernet0/0/0
 ip address 10.1.150.4 255.255.255.0 
 pim sm
#
interface GigabitEthernet0/0/1
 ip address 10.1.1.4 255.255.255.0 
 pim sm
 igmp enable
#
ospf 1 router-id 4.4.4.4 
 area 0.0.0.0 
  network 0.0.0.0 255.255.255.255 
#
pim
 static-rp 2.2.2.2
#
sysname AR5
#
multicast routing-enable
#
interface GigabitEthernet0/0/0
 ip address 10.1.150.5 255.255.255.0 
 pim sm
#
interface GigabitEthernet0/0/1
 ip address 10.1.1.5 255.255.255.0 
 pim sm
 igmp enable
#
ospf 1 router-id 5.5.5.5 
 area 0.0.0.0 
  network 0.0.0.0 255.255.255.255 
#
pim
 static-rp 2.2.2.2
 spt-switch-threshold infinity
#

注意配置spt-switch-threshold infinity命令,先不进行SPT切换(重要)

sysname AR6
#
multicast routing-enable
#
interface GigabitEthernet0/0/0
 ip address 10.1.36.6 255.255.255.0 
 pim sm
#
interface GigabitEthernet0/0/1
 ip address 10.1.2.1 255.255.255.0 
 pim sm
 igmp enable
#
ospf 1 router-id 6.6.6.6 
 area 0.0.0.0 
  network 0.0.0.0 255.255.255.255 
#
pim
 static-rp 2.2.2.2
 spt-switch-threshold infinity
#

PC1加组239.1.1.1

拓扑中需要注意IGMPv2的查询器为AR4

IGMPv2查询器选举规则:

  • 接收查询报文的源IP地址和接收接口的IP地址比较,IP地址小的为查询器

连接组播成员端的DR为AR5

成员端DR负责

  • 向RP发送(*,G)Join报文,建立RPT
  • 转发组播流量

源端DR负责

  • 向RP发送Register注册报文
  • 转发组播流量

DR选举规则

  • DR-Priority优先级高的优选
  • 路由优先级相同,或有Hello报文中不支持写到DR-Priority的路由器,则IP地址大的优选

验证PIM-SM中DR选举机制

拓扑中AR5为组播成员端的DR(IP地址大)

AR4和AR5交互的报文中携带的信息

DR优先级都为1,IP地址大的为DR

查看RPT树的建立

成员端DR向RP发送(*,G)Join报文,沿途建立RPT树,建立(*,G)表项

RPF检查为到RP的地址

AR4上有(*,G)表项,但没有下游接口

抓包查看,成员端DR向RP发送Join报文

查看SPT树的建立

组播源发送组播数据

源端DR,也就是AR1将组播数据封装到注册报文中,单播发送给RP

RPF检查为到组播源的地址

RP收到注册报文后:

  • 进行解封装,向下游接口转发
  • 向源端DR发送(S,G)Join报文,建立SPT树,沿途建立(S,G)表项

  • 单播发送Register-Stop报文给源端DR,通告DR停止发送注册报文(模拟器中抓包并未看到

RP到源端DR沿途建立(S,G)表项,AR1中可以看到注册信息

收到组播数据的路由器也会产生(S,G)表项,将(*,G)表项的下游接口信息复制到(S,G)表项中

不在组播转发路径上(但能收到组播数据)的路由器产生(S,G)表项,没有下游接口,如AR4、AR3

组播转发树

由于配置了不进行SPT切换,组播树如下图

将PC2加入组播组239.1.1.1

  • 成员端DR(AR6)向RP发送(*,G)Join报文,创建RPT树
  • RPF检查地址为RP的IP地址

AR1的(S,G)表项中下游接口并没有G0/0/1

AR3的(S,G)表项下游接口G0/0/1

所以PC2的组播转发路径为AR1->AR2->AR3->AR6

思考:组播转发树是什么样的(由于AR6配置了SPT不切换)

SPT切换

取消AR5、AR6上的SPT不切换配置

pim
 undo spt-switch-threshold infinity 
#
  • 组成员端DR路由器收到组播流量到一定阈值后,进行SPT切换
  • 默认情况下,华为的SPT切换的流量阈值为0,所以当组播流量下来时,会发生SPT切换

SPT切换过程

当组成员端DR检测到组播报文的转发速率超过阈值:

  • 组成员端DR向源端DR逐跳发送(S,G)Join报文,创建SPT,沿途生成(S,G)表项(包含下游接口)
  • SPT建立后,组成员端DR向RP发送剪枝报文,修剪(S,G)表项的下游接口
  • 如果组播流量不经过RP,则RP向源端DR逐跳发送剪枝报文,修剪(S,G)表项的下游接口

想组播源端DR发送Join报文

SPT切换后,流量不经过RP,RP向源端DR发送剪枝

可以看到RP上的(S,G)表项下游接口为空,被修剪

AR1上的下游接口为连接AR3的接口

AR3上(S,G)表项出现下游接口

切换后的SPT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/647814.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot + MybatisPlus

SpringBoot MybatisPlus 整合记录 1. 硬件软件基本信息2. 相关链接3. 通过idea快速生成一个Springboot项目4. 启动报错问题解决问题一:Springboot启动的时候报错提示 “没有符合条件的Bean关于Mapper类型”问题二:启动的时候提示需要一个Bean&#xff0…

文件操作知识点

前言: 我们应该知道一般程序运行时产生的数据是存放在内存中的。但是如果程序关闭后这些内存就会被系统回收,如果内存内的有用的数据没有被保存下来,这些数据就丢失了。所以这个时候我们就可以使用磁盘来储存我们的数据。 目录 程序文件的分类 文件名…

第八篇【传奇开心果系列】Python微项目技术点案例示例:以微项目开发为案例,深度解读Dearpygui 编写图形化界面桌面程序的优势

传奇开心果博文系列 系列博文目录Python微项目技术点案例示例系列 博文目录前言一、开发图形化界面桌面程序的优势介绍二、跨平台特性示例代码和解析三、高性能特性示例代码和解析四、简单易用特性示例代码和解析五、扩展性强示例代码和解析六、现代化设计示例代码和解析七、知…

Android 快速调试网络 复制curl 到postMan

搜索这个插件 官网地址:https://github.com/itkacher/OkHttpProfiler 集成教程也在里面集成完毕后右下角有一个入口点进去可以复制curl| 插件名称:Okhttp Profiler 真的很好用!

软测刷题-错题1

提高测试效率的方法: 1、不要做无效的测试 2.不要做重复的测试 3.不同测试版本的测试侧重点 4.优化测试顺序 LoadRunner是对服务器进行施压。 在数据库中存在的用户数是指注册用户数。 input标签可以直接使用send_keys实现上传,而非input标签是无法直…

指纹识别系统架构

目录 1. 系统架构 1.1 指纹采集模块 1.2 指纹处理模块 1.3 指纹登记模块 1.4 指纹识别模块 1.5 指纹识别决策模块 1.6 管理模块 1.6.1 存储管理 1.6.2 传输管理 1.6.3 安全管理 1.7 应用开放功能 1.7.1 指纹登记功能 1.7.2 指纹验证功能 1.7.3 指纹辨识功能 2. …

SparkStreaming架构原理(详解)

Spark概述 SparkStreaming架构原理 Spark Streaming的架构主要由以下几个关键部分组成。 1.数据源接收器(Receiver) 执行流程开始于数据源接收阶段,其中接收器(Receiver)负责从外部数据源获取数据流。 接收器可以连…

Android Studio开发之路(十四)自定义Titlebar以及设置顶部状态栏颜色

一、描述 项目需求,我要做一个下图这样的titlebar,包括一个返回按钮,一个关闭按钮,一个文本框。默认的titlebar按钮设计不太满足我的需求,于是我打算自定义一个titlebar组件,应用到我的每一个页面 二、titlebar组件设…

flink程序本地运行:No ExecutorFactory found to execute the application

1.问题描述 在idea中运行flink job程序出现如下错误: Exception in thread "main" java.lang.IllegalStateException: No ExecutorFactory found to execute the application. at org.apache.flink.core.execution.DefaultExecutorServiceLoader.getE…

【蓝桥杯】国赛普及-

题目列表 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) P9420 [蓝桥杯 2023 国 B] 子 2023 / 双子数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc.h> using llunsigned long long; #define int ll const int N2e510; int k0; std::string s; int…

vs2019 c++20 规范的 STL 库的智能指针 shared、unique 、weak 及 make_** 函数的源码注释汇总,和几个结论

智能指针的源码都在 《memory》 头文件中。因为头文件太长&#xff0c;再者本次整理是基于以前的零散的模板分析。故相当于抽取了该头文件中关于智能指针的源码进行分析&#xff0c;注释。 &#xff08;1 探讨一&#xff09;当独占指针指向数组时&#xff0c;其默认的删除器是…

HTML橙色爱心

目录 写在前面 准备开始 完整代码 运行结果 系列文章 写在后面 写在前面 本期小编给大家分享一颗热烈且浪漫的爱心&#xff0c;快来看看吧&#xff01; 准备开始 在开始之前&#xff0c;我们需要先简单的了解一下这颗爱心的原理哦~ 本期将用html实现这颗跳动的爱心&a…

0基础认识C语言

为了给0基础一个舒服的学习路径&#xff0c;就有了这个专栏希望带大家一起进步。 话不多说&#xff0c;开始正题。 一、C语言的一段小历史 C语言的设计要追溯到20世纪60年代末和70年代初&#xff0c;在那个时代美国有这么一号人叫做丹尼斯.里奇&#xff0c;他和同事肯.汤普逊…

redis数据操作相关命令

1.list操作 1.1 rpush rpush&#xff1a;新的元素添加到list最右边 #从右边依次往List添加1,2,3 RPUSH name 1 RPUSH name 2 RPUSH name 3#查看列表&#xff1a;返回 1,2,3 LRANGE name 0 -1结果如下&#xff1a; 1.2 lpush lpush&#xff1a;新加的元素在list最左边 #从…

WordPress安装插件失败No working transports found

1. 背景&#xff08;Situation&#xff09; WordPress 社区有非常多的主题和插件&#xff0c;大部分人用 WordPress 都是为了这些免费好用的主题和插件。但是今天安装完 WordPress 后安装插件时出现了错误提示&#xff1a;“ 安装失败&#xff1a;下载失败。 No working trans…

Android 处理音频焦点,解决音乐播放冲突的问题

1. 音频焦点是什么 在Android中&#xff0c;两个或多个 Android 应用可以同时将音频播放到同一输出流&#xff0c;系统会将所有音频混合在一起。 但是多数情况下&#xff0c;这对于用户来说是感到困惑的。为了避免多个应用的多个音频一起播放&#xff0c;Android 引入了“音频…

HTML5 基本框架

HTML5基本的内容 文章目录 系列文章目录前言一、HTML5 基本框架二、具体框架结构三、知识补充总结 前言 HTML5的介绍&#xff1a; HTML5 是一种用于构建网页内容的标准化语言。它是 HTML&#xff08;超文本标记语言&#xff09;的第五个版本&#xff0c;引入了许多新的功能和特…

视频号小店去哪里找货源?最全货源渠道分享!

大家好&#xff0c;我是电商糖果 视频号小店因为是这两年电商行业新出来的黑马&#xff0c;吸引着不少商家入驻。 入驻了商家中很多都没有自己的货源渠道。 他们基本都是从无货源开始起步&#xff0c;后期通过积累资源&#xff0c;慢慢搭建属于自己的货源渠道。 可是渐渐的…

Oracle实践|内置函数之聚合函数

&#x1f4eb; 作者简介&#xff1a;「六月暴雪飞梨花」&#xff0c;专注于研究Java&#xff0c;就职于科技型公司后端工程师 &#x1f3c6; 近期荣誉&#xff1a;华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员 &#x1f525; 三连支持&#xff1a;欢迎 ❤️关注…

SRE视角下的DevOps:构建稳定高效的软件交付流程

SRE 和 DevOps 有什么区别和联系&#xff1f;本文对此进行了解读&#xff0c;并着重从 SRE 实践出发阐述了 DevOps 的建设思路。 SRE 就是在用软件工程的思维和方法论完成以前由系统管理员团队手动完成的工作。SRE 的职责是运维一个服务&#xff0c;该服务由一些相关的系统组件…