STP-13-MST和其它STP版本的互操作性(没写完)
为了理解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+的交互基本上会产生三种端口角色:指定、根或非指定(是替换还是备用与此处无关)。