一、PIM-SM

1、PIM-SM(Protocol independent multicast-sparse Mode),协议无关组播-稀疏模式。属于稀疏模式的组播路由协议,适用于组成员相对分散、范围较广、大规模的网络。PIM-SM会在源到RP之间建立SPT树,在RP到接受者之间建立RPT树。

2、工作机制

(1)邻居发现Hello报文,接口互相发送hello报文,优先级高的或者IP地址大的成为DR。其中第一跳和最后一跳的DR才有实际意义。最后一跳DR向RP方向传递(*,G)表项,构建SPT树,第一跳DR向RP发送组播源注册消息。

(2)RP(Rendezvous Point)发现

既可以静态指定,也可以动态发现。

静态指定就是在每台路由器上配置指定具体的静态RP

(3)RPT共享树加入

新加入接收者,向路由器发送IGMP report报文,DR路由器收到后生成(*,G)报文,并逐跳向RP方向发送(*,G)Join报文,沿途创建(*,G)表项,生成一棵以RP为根的RPT。

(4)组播源注册过程

在PIM-SM网络中,任何一个新出现的组播源都必须首先在RP处“注册”,继而才能将组播报文传输到组成员。

组播源向第一条DR发送第一个组播报文,源端DR将该组播报文封装成Register报文并以单播方式发送给相应的RP,RP收到注册消息后,一方面从Register消息中提取出组播报文,并将该组播报文沿RPT分支转发给接收者。

另一方面,RP向源端DR发送(S,G)Join消息,沿途路由器上都会生成相应(S,G)表项。从而建立了一颗由组播源至RP的SPT树。

SPT树建立后,组播源发出的组播报文沿该SPT转发至RP。

RP沿SPT收到该组播报文后,向源端DR单播发送Register-stop消息。

3、配置命令

DR:

multicast routing-enable

int g0/0/0

pim sm

quit

pim

static-rp 3.3.3.3   //指定RP地址,一般使用环回口地址

RP:

multicast routing-enable

int lo0

pim sm

int g0/0/0

pim sm

quit

pim

static-rp 3.3.3.3   //指定自己的地址

二、SPT切换

1、PIM-SM同时包含了SPT和RPT。通常情况下,组播源发出的组播报文会沿SPT到达RP,然后从RP沿RPT到达接收者。

在这种情况下,从组播源到接收者的路径不一定是最优的,并且RP的工作负担非常大。为此,我们可以启用RPT向SPT进行的切换机制。

2、PIM-SM通过指定一个利用带宽的SPT阈值可以实现RPT到SPT的切换。

用户端DR周期性检测组播报文的转发速率,一旦发现从RP发往组播组G的报文速率超过阈值,则触发SPT切换:

用户端DR逐跳向源端DR发送(S,G)Join报文并创建(S,G)表项,建立源端DR到用户端DR的SPT。

SPT建立后,用户端DR会沿着RPT逐跳向RP发送剪枝报文,收到剪枝报文的路由器将(*,G)复制成相应的(S,G),并将相应的下游接口置为剪枝状态。剪枝结束后,RP不再沿RPT转发组播报文到组成员端。

如果SPT不经过RP,RP会继续向源端DR逐跳发送剪枝报文,删除(S,G)表项中相应的下游接口。剪枝结束后,源端DR不再沿“源端DR-RP”的SPT转发组播报文到RP。

在VRP中,缺省情况下连接接收者的路由器在探测到组播源之后(即接收到第一个数据报文),便立即加入最短路径树,即从RPT向SPT切换。

通过RPT树到SPT树的切换,PIM-SM能够以比PIM-DM更精确的方式建立SPT转发树。

SPT切换默认是开启的

pim

spt-switch-threshold infinity   设置STP切换阀值为无穷大

切换阀值默认是0,STP切换默认开启,设为无穷大就是关闭了SPT切换。

2、案例理解

拓扑图:

分析过程:

(1)配置各接口地址IP,配置OSPF实现全网互通,具体配置过程省略,为方便分析,3台PC暂时关闭。

(2)路由器接口配置PIM-SM模式,AR2、AR7、AR8配置IGMPv2,AR4为静态RP,部分配置命令如下:

AR1:

multicast routing-enable

int g0/0/0

pim sm

int g0/0/1

pim sm

int g0/0/2

pim sm

pim

static-rp 4.4.4.4

AR4:

multicast routing-enable

int g0/0/0

pim sm

int g0/0/2

pim sm

int lo0

pim sm

pim

static-rp 4.4.4.4

AR7:

multicast routing-enable

int g0/0/0

pim sm

igmp enable

int g0/0/1

pim sm

pim

static-rp 4.4.4.4

(3)PC1,配置加入224.1.1.1,配置MCS1组播信息

开启PC1后,AR4、AR6、AR8的pim routint-table生成(*,G)表项,构成RPT树,其他路由器pim routing-table是空的:

开启MCS1,启动组播流,AR1、AR5、AR6、AR8的pim routing-table里面出现了(*,G)和(S,G)表项,形成SPT树,而AR2、AR3上依然是空表项,AR4上也有这两类表项,但上游邻居和下游接口因为SPT切换产生的剪枝报文都是空的:

(4)shutdown掉AR5的g0/0/0端口,在重新开启MCS1组播流,此时AR2、AR3的pim routing-table出现(S,G)表项,AR4中的两类表项的上下游接口正常出现,AR1、AR2、AR3、AR4构成SPT树,AR4、AR6、AR8构成RPT树:

(5)关闭PC1,开启PC2,PC2加入组播组224.1.1.1 。

PC2开启后,向AR2发送igmp report报文,AR2生成(*,G)表项,并向AR4方向传递,构成RPT树,其中G0/0/0口为上游接口,G0/0/2为下游接口;AR3生成(*,G)表项,上游接口为g0/0/2,下游接口为g0/0/0; AR4生成(*,G)表项,g0/0/2为下游接口,上游接口为空;

PC2开启,组播流量没开启前的PIM routing-table:

当组播流下来的时候,AR1向AR4发送单播注册,AR4生成(S,G)表项,根据RPF检测,G0/0/2为上游接口,同时向AR1方向建立SPT树;AR3生成(S,G)表项,其中g0/0/0为上游接口,下游接口拷贝 (*,G)中的下游接口,在(*,G)中g0/0/0还是下游接口,这时候,只有g0/0/2被拷贝成(S,G)中的下游接口(因为规定上游接口不能同时成为下游接口),AR3同时拥有(*,G)、(S,G)表项,会向上游接口发送(S,G)join报文;AR2收到AR3的(S,G)join报文后,生成(S,G)表项,根据rpf检测,G0/0/1成为上游接口,g0/0/2、g0/0/0成为下游接口。这样就形成了AR1-AR2的SPT树,组播流量会直接经AR1-->AR2到达PC2,在AR2还有一份去往AR3的流量。

组播流量开启后的PIM routing-table:

华为NP课程笔记14-PIM-SM和SPT切换相关推荐

  1. 华为HCIA-datacom 学习笔记14——WLAN概述

    华为HCIA-datacom 学习笔记14--WLAN概述 1.WLAN(无线局域网) 通过无线技术构造的无线局域网络.WLAN广义上是指以无线电波.激光.红外线等无线信号代替有线局域网中的部分或全部 ...

  2. 华为HCIA-datacom 学习笔记汇总目录

    华为HCIA-datacom 学习笔记汇总目录 华为HCIA-datacom 学习笔记1--网络参考模型 华为HCIA-datacom 学习笔记2--华为VRP系统 华为HCIA-datacom 学习 ...

  3. Udacity机器人软件工程师课程笔记(五)-样本搜索和找回-基于漫游者号模拟器-自主驾驶

    9.自主驾驶 在接下来的环节中,我们要实现漫游者号的自动驾驶功能. 完成这个功能我们需要四个程序,第一个为感知程序,其对摄像头输入的图片进行变换处理和坐标变换使用.第二个程序为决策程序,功能是帮助漫游 ...

  4. Coursera吴恩达《优化深度神经网络》课程笔记(1)-- 深度学习的实用层面

    红色石头的个人网站:redstonewill.com Andrew Ng的深度学习专项课程的第一门课<Neural Networks and Deep Learning>的5份笔记我已经整 ...

  5. 数据挖掘课程笔记6 : Numpy、Pandas和Matplotlib包基础知识

    #2018-03-22 10:23:16 March Thursday the 12 week, the 081 day SZ SSMR http://blog.csdn.net/eastmount/ ...

  6. CS231n课程笔记翻译9:卷积神经网络笔记

    译者注:本文翻译自斯坦福CS231n课程笔记ConvNet notes,由课程教师Andrej Karpathy授权进行翻译.本篇教程由杜客和猴子翻译完成,堃堃和李艺颖进行校对修改. 原文如下 内容列 ...

  7. 5-1 Coursera吴恩达《序列模型》 第一周课程笔记-循环序列网络(RNN)

    记录吴恩达Andrew Ng深度学习专项课程笔记,方便之后回顾,共5门课.第一门课<神经网络与深度学习>(Neural Networks and Deep Learning)的4周课程笔记 ...

  8. 华为IE讲师:直通华为HCNA课程实战第一部分-安德-专题视频课程

    华为IE讲师:直通华为HCNA课程实战第一部分-18185人已学习 课程介绍         乾颐堂安德老师(思科CCIE讲师+华为HCIEv2.0讲师)实战讲解华为HCNA(HCDA) 课程收益   ...

  9. PIM SM + IGMP Snooping 适用性测试(二) ttl 问题

    PIM SM + IGMP Snooping 适用性测试(二) ttl 问题 简介 上节的两个问答是基于理论分析与实验验证得出的,这节描述一下实验与实验中遇到的问题. 测试拓扑 图1 实验描述 做实验 ...

  10. 纽约大学深度学习PyTorch课程笔记(自用)Week6

    纽约大学深度学习PyTorch课程笔记Week6 Week 6 6.1 卷积网络的应用 6.1.1 邮政编码识别器 使用CNN进行识别 6.1.2 人脸检测 一个多尺度人脸检测系统 6.1.3 语义分 ...

最新文章

  1. 企业云存储云办公方案
  2. HTML4.0标准语法--字体
  3. 二分 + 模拟 - Carries
  4. NSIS安装制作基础教程
  5. MultipartFile(文件的上传)--CommonsMultipartResolver
  6. 【VC基础】3、配置参数文件
  7. dojo Quick Start/dojo入门手册--面向对象,定义Class
  8. Mybatis入门 使用XML
  9. GC基本算法及C++GC机制
  10. LeetCode删除排序数组中的重复项(Java实现)
  11. Redis Sentinel安装与部署,实现redis的高可用
  12. CentOS7环境下搭建Kibana
  13. 未来Linux系统将是运维行业必备的技能之一
  14. Bailian2801 填词 POJ1629 ZOJ1546 Fillword【排序】
  15. 《算法图解》第九章 动态规划
  16. Android网络编程4之从源码解析Volley
  17. Database-Mysql-关于文件打开数限制
  18. 利用envi与arcmap/arcgisPro制作一张植被覆盖指数专题地图(地图学作业)
  19. 软件测试可用性测试方法,几种常用的可用性测试的方法
  20. element手机验证格式_ElementUI验证手机号

热门文章

  1. 10W+字C语言从入门到精通保姆级教程(2021版下)
  2. 制作课件需要哪些软件
  3. python电影院售票系统毕业设计开题报告
  4. 基于Access的学生信息管理系统设计(上):表建立、表查询设计
  5. linux 服务器 硬盘测试工具,linux硬盘检测工具:Smartmontools使用指南
  6. 【韩顺平 零基础30天学会Java】(第一阶段)(自用)
  7. 韩顺平Java笔记(自用1)
  8. noip2013 day1
  9. android屏蔽电话号码,手机屏蔽骚扰电话的方法【推荐方法】
  10. 向android模拟器中复制文件报out of memory错误解决