为了理解MST和其他STP版本的互操作性,首先要来看看MST与没有每VLAN概念的纯IEEE802.1D STP或802.1w RSTP非MST交换机(本书称其为非MST交换机)之间互操作的方式。这些非MST交换机针对所有VLAN运行一个STP实例,所以在网络的非MST部分,所有VLAN共享同一个生成树。无论非MST交换机将端口置为何种角色和状态,这个角色和状态都由这个端口上的所有VLAN共享。STP和RSTP不理解也看不见在MST区域中独立的MST实例,整个MST区域对于STP和RSTP来说是一个“黑匣子”。非MST交换机通过运行IEEESTP/RSTP来完成互操作性;MST交换机在边界端口上只使用被称为IST的MST实例0,使用普通STP或RSTP BPDU的格式,并将协商的端口角色和状态应用到这些端口的所有VLAN上。MST实例0在此处的角色很重要——它与非MST邻居进行通信,并处理从这些邻居收到的BPDU。
 
MST区域和较老的IEEESTP各版本之间的互操作相对简单。非MST区域使用一个STP/RSTP实例。MST区域使用IST代表整个区域,并与边界端口上的非MST邻居进行通信。由IEEESTP/RSTP与IST交互生成的边界端口角色和状态绑定在所有VLAN上。
 
对于MST和PVST+区域,选择一个代表来代替整个区域通信,这两个代表之间的通信负责确定所有VLAN的边界端口角色和状态。这个操作执行起来比看起来要复杂一些。MST边界的角色和状态会无条件地实施在端口所有活跃的VLAN上(这是MST边界端口的工作方式),而PVST+端口对于每个VLAN都有独立的角色和状态。如果选出一个MST实例代表来代替一个MST区域,它给PVST+交换机信息的方式必须让每个接收到相同信息的PVST+实例都进行相同一致的选择。一致一词非常重要——它描述了一个过程,其中虽然只有一个MST实例和一个PVST+实例直接进行交互,但MST和PVST+的所有实例都达到了相同的端口角色和状态。PVST模拟机制的目的就是为了保持MST和PVST+区域之间互操作的一致性。
 
在MST到PVST+方向,MST区域选择IST作为代表,使用PVST+ BPDU将IST信息传递给所有PVST+实例。为了使PVST+区域对于所有已知VLAN,基于IST属性进行相同一致的决策,所有PVST+实例必须收到相同的PVST+ BPDU格式的IST信息。因此,MST边界端口会把所有活跃VLAN的IST BPDU信息复制到PVST+BPDU中。这样,MST为PVST+邻居提供了所有VLAN一致的信息。在任意一个端口上接收这些信息的PVST+邻居,将因此对于所有VLAN做出相同一致的端口角色和状态决策。
 
在相反方向中,MST使用VLAN 1作为整个PVST+区域的代表,处理IST中VLAN 1收到的BPDU。边界端口的角色和状态会绑定到所有含这个端口的活跃VLAN上。然而,MST必须确保由与VLAN 1 STP实例交互,从而确定的边界端口角色和状态,真正代表了所有其他PVST+实例的决策;即必须确定IST与VLAN 1 STP实例交互的结果,是否与运行在其他VLAN的STP实例的状态一致。
 
下面进行进一步的分析。运行在一个MST边界端口的IST,与VLAN 1 PVST+的交互基本上会产生三种端口角色:指定、根或非指定(是替换还是备用与此处无关)。

STP-13-MST和其它STP版本的互操作性(没写完)的更多相关文章

  1. Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR tensorflow-1.13.1和1.14windows版本目前不支持CUDA10.0

    报错出现 Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR tensorflow-1.13.1和1.14windows版本目前不支持 ...

  2. CentOS 6.5以上版本安装mysql 5.7 完整版教程(修订版)

    转载自:https://codeday.me/collect/20170524/21861.html 1: 检测系统是否自带安装mysql # yum list installed | grep my ...

  3. Error:java:错误:不支持发行版本 5(或写着其他版本的~)

      很多人会出现:Error:java:错误:不支持发行版本 5(或13等版本),均是因为此几个地方版本不一致 [若你下载的jdk版本真的是5,请你更新jdk !!]   (上图打开方式:左上角,Fi ...

  4. JDK、Eclipse、Myeclipse、Tomcat等各种软件的版本详解(写给对版本和兼容性问题焦头烂额的你)

    这篇文章我们来探讨一下关于JDK.Eclipse.Myeclipse.Tomcat的版本问题.一.关于版本的几个概念1.32位和64位两个版本:    简言之,64位的操作系统支持识别4G以上的内存条 ...

  5. Git版本控制器使用总结性梳理

    Git为何物?Git 是什么?大家肯定会说不就是版本控制器嘛,是的Git是目前世界上最先进的分布式版本控制系统(没有之一).1)那什么是版本控制器?举个简单的例子,比如我们用Word写文章,那你一定有 ...

  6. 【技巧】解决win10的1803版本下,无法收到1809推送、从而无法更新到1903版本的问题。

    figure:first-child { margin-top: -20px; } #write ol, #write ul { position: relative; } img { max-wid ...

  7. 团队作业5:Alpha版本测试和发布(歪瑞古德小队)

    目录 一.项目文档和代码 二.Alpha版本测试报告 2.1 功能测试 2.1.1 功能列表 2.1.2 场景测试 2.1.3 测试结果 2.1.4 bug清单 2.2 兼容性测试 2.3 性能测试 ...

  8. 【Alpha版本】冲刺阶段——Day 6

    我说的都队 031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬 ...

  9. Git回退到服务器某个版本正确姿势

    背景: Git协作中,成员不可避免地会提交一些错误的版本,由于Git相比SVN引入了本地仓库,操作会相对复杂,以下为姿势分解 找一个源文件RspUtils.java,加上一行注释 //测试回退git服 ...

随机推荐

  1. ios审核过程十大常见被拒问题

    欢迎加入ios马甲包经验交流群,群聊号码:744520623 2018年伊始,苹果并没有因为新年的气氛而对CP们“网开一面”.频繁锁榜.调整排名规则以及关键词覆盖算法……不断抛出的大动作,让CP们叫苦 ...

  2. Android窗口系统第三篇---WindowManagerService中窗口的组织方式

    Android窗口系统第一篇—Window的类型与Z-Order确定 Android窗口系统第二篇—Window的添加过程 上面文章梳理了一个窗口的添加过程,系统中有很多应用,每个应用有多个Activ ...

  3. js中使用对象变量的两种方式

    function Person(){ this.a=function(){ window.alert("a"); } this.b=function(){ window.alert ...

  4. Apache禁止或允许固定IP访问特定目录、文件、URL

    1. 禁止访问某些文件/目录 增加Files选项来控制,比如要不允许访问 .inc 扩展名的文件,保护php类库: <Files ~ "\.inc$"> Order a ...

  5. linux命令学习笔记(26):用SecureCRT来上传和下载文件

    用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...

  6. bzoj 3796 Mushroom追妹纸 —— 后缀数组

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3796 先把三个串拼在一起,KMP 求 s1 , s2 中每个位置和 s3 的匹配情况: 注意 ...

  7. Vijos1579:宿命的PSS

    背景 P.S.S:“我来自哪里?”WH:“你来自一个图.”P.S.S:“我是谁?”WH:“你是最小生成树.”P.S.S:“我又要到哪里去?”WH:“你要成为一个最小完全图(边权之和最小的完全图).”P ...

  8. bootstrap模版兼容IE浏览器代码嵌入

    1.  bootstrap模板为使IE6.7.8版本(IE9以下版本)浏览器兼容html5新增的标签,引入下面代码文件即可. <script src="https://oss.maxc ...

  9. 【转】android adb常用指令

    Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理模拟器或设备 从模拟器或 ...

  10. 连接Oracle数据库的Hibernate配置…

    连接Oracle数据库的Hibernate配置文件 连接Oracle的Hibernate配置文件有两种格式,一种是xml格式的,另一种是Java属性文件格式的.下面分别给出这两种格式配置文件的代码. ...