为了理解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. 51nod 1737配对

    题意:给定一个n个点的带边权树,  保证n是偶数,给这个树两两配对,使得配对后的点路径和最大,输出最大值. 其实是个很简单的题,但还是被绊了.这充分说明现在连简单题都做不来了555 单独考虑每条边.每 ...

  2. Android 4.0 的 GridLayout

    设计素材代码: 1<?xml version="1.0" encoding="utf-8"?> 2<GridLayout//#http://w ...

  3. Java企业微信开发_12_异常:java.lang.OutOfMemoryError: Java heap space

    一.异常现象 今天客户迁到正式环境,在做企业微信 接收消息服务器配置  时,出现如下异常: java.lang.OutOfMemoryError: Java heap space 二.异常原因 JAV ...

  4. 局域网扫描IP

    今天有朋友去面试,被问到一个“如何扫描局域网IP”的问题(即找出局域网中当前已使用的IP),朋友回答的不好,回来问我,我首先想到的就是使用ping命令将局域网可分配的IP地址逐个遍历一遍,能ping通 ...

  5. 《java编程思想》:设计模式(不定期更新)

    1.策略设计模式 创建一个能够根据所传递的参数对象的不同而具有不同的方法,被称为策略设计模式.这类方法包含索要执行的算法中固定不变的部分,而“策略”包含变化的部分.策略就是传递进去的参数对象.在下面的 ...

  6. android自定义控件(五) 自定义组合控件

    转自http://www.cnblogs.com/hdjjun/archive/2011/10/12/2209467.html 代码为自己编写 目标:实现textview和ImageButton组合, ...

  7. 暑假集训Chapter1 贪心

    为什么要今天写呢? 明天全力研究Johnson和一些奇奇怪怪的贪心 今天把能写的都写了 T1T2太水了直接上代码吧 #include<bits/stdc++.h> #define LL l ...

  8. ACM学习历程—HDU4717 The Moving Points(模拟退火 || 三分法)

    Description There are N points in total. Every point moves in certain direction and certain speed. W ...

  9. jdbc代码

    1.jdbcutiul的代码, package gz.itcast.util; import java.io.InputStream; import java.sql.Connection; impo ...

  10. Jenkins安装配置简单使用

    安装启动是十分简单的,直接去https://jenkins.io/download/下载对应的rpm包就好了,需要注意的是我们的机器上要提前有java环境,相对应要选择你java环境可以支持的jenk ...