部署PIM-SM
拓扑图

配置
使能组播路由
配置OSPF
组播路由器接口配置pim-sm
连接组成员的接口使能igmp
pim路由器上配置静态RP
sysname AR1
#
multicast routing-enable
#
interface GigabitEthernet0/0/0ip address 10.1.12.1 255.255.255.0 pim sm
#
interface GigabitEthernet0/0/1ip address 10.1.13.1 255.255.255.0 pim sm
#
interface GigabitEthernet0/0/2ip 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
#
pimstatic-rp 2.2.2.2
#
sysname AR2
#
multicast routing-enable
#
interface GigabitEthernet0/0/0ip address 10.1.12.2 255.255.255.0 pim sm
#
interface GigabitEthernet0/0/1ip address 10.1.150.2 255.255.255.0 pim sm
#
interface LoopBack0ip 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
#
pimstatic-rp 2.2.2.2
#
sysname AR3
#
multicast routing-enable
#
interface GigabitEthernet0/0/0ip address 10.1.13.3 255.255.255.0 pim sm
#
interface GigabitEthernet0/0/1ip address 10.1.150.3 255.255.255.0 pim sm
#
interface GigabitEthernet0/0/2ip 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
#
pimstatic-rp 2.2.2.2
#
sysname AR4
#
multicast routing-enable
#
interface GigabitEthernet0/0/0ip address 10.1.150.4 255.255.255.0 pim sm
#
interface GigabitEthernet0/0/1ip address 10.1.1.4 255.255.255.0 pim smigmp enable
#
ospf 1 router-id 4.4.4.4 area 0.0.0.0 network 0.0.0.0 255.255.255.255
#
pimstatic-rp 2.2.2.2
#
sysname AR5
#
multicast routing-enable
#
interface GigabitEthernet0/0/0ip address 10.1.150.5 255.255.255.0 pim sm
#
interface GigabitEthernet0/0/1ip address 10.1.1.5 255.255.255.0 pim smigmp enable
#
ospf 1 router-id 5.5.5.5 area 0.0.0.0 network 0.0.0.0 255.255.255.255
#
pimstatic-rp 2.2.2.2spt-switch-threshold infinity
#
注意配置spt-switch-threshold infinity命令,先不进行SPT切换(重要)
sysname AR6
#
multicast routing-enable
#
interface GigabitEthernet0/0/0ip address 10.1.36.6 255.255.255.0 pim sm
#
interface GigabitEthernet0/0/1ip address 10.1.2.1 255.255.255.0 pim smigmp enable
#
ospf 1 router-id 6.6.6.6 area 0.0.0.0 network 0.0.0.0 255.255.255.255
#
pimstatic-rp 2.2.2.2spt-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不切换配置
pimundo 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

相关文章:
部署PIM-SM
拓扑图 配置 使能组播路由 配置OSPF 组播路由器接口配置pim-sm 连接组成员的接口使能igmp pim路由器上配置静态RP sysname AR1 # multicast routing-enable # interface GigabitEthernet0/0/0ip address 10.1.12.1 255.255.255.0 pim sm # interface GigabitEthernet0/0/…...
一分钟揭秘面试官真实意图,稳拿offer的面试秘诀!
想要在面试中脱颖而出,顺利获得心仪的offer吗?那么,你需要了解面试官背后的潜台词。通过解析这些潜台词,你将能更准确地把握面试官的期望,并给出他们最喜欢的回答。下面,就让我们一起揭开这层神秘的面纱&am…...
【源码】2024心悦搜剧源码百万级网盘资源
1、一键转存他人链接:就是将别人的分享链接转为你自己的 2、转存心悦搜剧资源:就是将心悦搜剧平台上的所有资源都转成你自己的 3、每日自动更新:自动转存每天的资源并入库 前端uin-app,后端PHP,兼容微信小程序...
燃数科技前端25-40K*14薪一面超简单,下周二面啦
文章末尾扫描二维码领取地址 一面 1、自我介绍 2、低代码如何设计的 3、react路由原理 4、react生命周期 5、什么是回调地狱,如何解决 6、jwt和session有什么区别 7、js文件相互引用有什么问题?如何解决 8、一个很大的json文件…...
读人工智能时代与人类未来笔记14_管控人工智能
1. 管控人工智能 1.1. 历史上的战场进一步推进到与数字网络相连的所有地方 1.2. 数字程序现在控制着一个由众多实体系统构成的庞大且仍在不断增长的领域,而且越来越多的此类系统已实现网络化 1.2.1. 在某些情况下甚至连门锁和冰箱都实现了网络化 1.2.2. 这催生出…...
高效并发编程:Java阻塞队列深度解析与最佳实践
1.阻塞队列的基本概念与应用场景 1.1 阻塞队列的定义 阻塞队列(BlockingQueue)是Java并发包中的一个接口,它支持两个附加操作:当队列为空时,获取元素的线程会等待队列变为非空;当队列满时,存储…...
会话机制:Session
1、什么是会话: 会话对应的英语单词:session 用户打开浏览器,进行一系列操作,然后最终将浏览器关闭,这个整个过程叫做:一次会话。会话在服务器端也有一个对应的java对象,这个java对象叫做&…...
MySQL中, 自增主键和UUID作为主键有什么区别?
首先我们来看看, 存储自增主键和uuid的数据类型 我们知道, mysql中作为主键的通常是int类型的数据, 这个 数据从第一条记录开始, 从1开始主键往后递增, 例如我有100条数据, 那么根据主键排序后, 里面的记录从上往下一次就是1, 2, 3 ... 100, 但是UUID就不一样了, UUID是根据特殊…...
机器人与AI:结合应用与未来展望
机器人与AI:结合应用与未来展望 引言 机器人与人工智能(AI)的结合已经成为现代科技发展的重要方向。随着AI技术的不断进步,机器人不仅在工业领域中得到广泛应用,还逐渐渗透到家庭、医疗、服务等各个领域。本文将探讨…...
PyTorch学习笔记:新冠肺炎X光分类
前言 目的是要了解pytorch如何完成模型训练 https://github.com/TingsongYu/PyTorch-Tutorial-2nd参考的学习笔记 数据准备 由于本案例目的是pytorch流程学习,为了简化学习过程,数据仅选择了4张图片,分为2类,正常与新冠…...
【Python】 XGBoost模型的使用案例及原理解析
原谅把你带走的雨天 在渐渐模糊的窗前 每个人最后都要说再见 原谅被你带走的永远 微笑着容易过一天 也许是我已经 老了一点 那些日子你会不会舍不得 思念就像关不紧的门 空气里有幸福的灰尘 否则为何闭上眼睛的时候 又全都想起了 谁都别说 让我一个人躲一躲 你的承诺 我竟然没怀…...
Java中print,println,printf的功能以及区别
在Java中,System.out.print, System.out.println, 和 System.out.printf 都是用于在控制台输出的方法,但它们在使用和功能上有所不同。 System.out.print: * 功能:将指定的内容输出到控制台,但不换行。 * 示例:Sy…...
vue3+electron+typescript 项目安装、打包、多平台踩坑记录
环境说明 这里的测试如果没有其他特别说明的,就是在win10/i7环境,64位 创建项目 vite官方是直接支持创建electron项目的,所以,这里就简单很多了。我们已经不需要向开始那样自己去慢慢搭建 yarn create vite这里使用yarn创建&a…...
实际案例分析
实际案例分析 一、数据准备与特征工程 1.1数据收集 在实际案例分析中,首先需要收集相关数据。数据来源可以包括公开数据集、企业内部数据、互联网爬虫抓取等。为了保证数据的质量和准确性,数据收集过程中需遵循以下原则: -针对性强&#…...
JAVA实现图书管理系统(初阶)
一.抽象出对象: 1.要有书架,图书,用户(包括普通用户,管理员用户)。根据这些我们可以建立几个包,来把繁杂的代码分开,再通过一个类来把这些,对象整合起来实现系统。说到整合…...
【Torch学习笔记】
作者:zjk 和 的区别是逐元素相乘,是矩阵相乘 cat stack 的区别 cat stack 是用于沿新维度将多个张量堆叠在一起的函数。它要求所有输入张量具有相同的形状,并在指定的新维度上进行堆叠。...
LeetCode算法题:42. 接雨水(Java)
题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3…...
LINGO:存贮问题
存贮模型中的基本概念 模型: 基本要素: (1)需求率:单位时间内对某种物品的需求量,用D表示。 (2)订货批量:一次订货中,包含某种货物的数量,用 Q表…...
《微服务王国的守护者:Spring Cloud Dubbo的奇幻冒险》
5. 经典问题与解决方案 5.3 服务追踪与链路监控 在微服务架构的广袤宇宙中,服务间的调用关系错综复杂,如同一张庞大的星系网络。当一个请求穿越这个星系,经过多个服务节点时,如何追踪它的路径,如何监控整个链路的健康…...
(九)npm 使用
视频链接:尚硅谷2024最新版微信小程序 文章目录 使用 npm 包自定义构建 npmVant Weapp 组件库的使用Vant Weapp 组件样式覆盖使用 npm 包 目前小程序已经支持使用 npm 安装第三方包,因为 node_modules 目录中的包不会参与小程序项目的编译、上传和打包, 因此在小程序项目中要…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
全面解析数据库:从基础概念到前沿应用
在数字化时代,数据已成为企业和社会发展的核心资产,而数据库作为存储、管理和处理数据的关键工具,在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理,到社交网络的用户数据存储,再到金融行业的交易记录处理&a…...
