STP-12-MST工作原理
MST将网络划分为一或多个区域。一个MST区域是一组以相同方式共同使用MST的交换机——除了其他特性外,它们运行相同数量的MST实例,并在这些实例上映射相同的VLAN集合。
例如,在下图中,工程师定义了一个MST区域,将其与非MST交换机相连。关注图的左侧,在MST区域中,实际上只需要两个STP实例——每个实例中包含差不多一半数量的VLAN。
MST相较于PVST+的一个关键优势是它对于一组VLAN只要求使用一个MST实例。如果MST区域中有数百个VLAN,而且使用了PVST+,就会用到数百组STP消息。对于MST,每个MST实例只需使用一组STP消息。
MST重新使用了IEEE802.1t中系统ID扩展的概念,将实例编号嵌入在网桥ID中。因为系统ID扩展字段包含12位,MST实例的编号范围在0~4095之间,在本书写作时,不同的Catalyst平台支持不同的范围:Catalyst 2950为0~15,Catalys 2960和3560为0~4094。MST标准允许有最多65个活跃MST实例(实例0加上至多64个自定义实例)。支持的实例数量已经比任何合理网络所要求的数量更多了,并且这个数量限制也是因为MST对它所承载的所有实例信息只使用一个BPDU,而且必须能放入一个以太网帧中。虽然典型的以太网MTU 1500字节中能够包含大约88个MST实例,但64个自定义实例对于任何实际需求来说都足够了,并且可以很好地放入普通的以太网帧中。在MST中,如果端口至少在一个MST实例中是指定端口的话,就会发送BPDU。由于MST对所有实例都使用一个BPDU,所以如果点到点链路两端的交换机分别是不同MST实例中的指定端口,它们可能就会看到互相发送的BPDU。
在所有MST实例中,实例0有特殊的意义。这个实例也被称为内部生成树,或IST,用作几个目的。首先,即使工程师没有创建其他MST实例,实例0也总是存在的,它为映射在一个区域中的VLAN提供了无环的环境。无需任何额外的配置,所有VLAN都会被映射到IST上。其次,IST是唯一一个与MST区域外的交换机上所运行的STP相互交互的实例。区域边界IST与邻居交换机之间无论确定了怎样的端口角色和状态,这个角色和状态都会被这个端口上所有的VLAN继承,而不仅仅映射到IST的VLAN上。这是MST总体操作的一部分,使这个区域对于其他区域和非MST交换机来说,看起来像是一台交换机。
如果网络由几个MST区域组成,每个区域都可以被看作是一台交换机。由多个MST区域组成的整个拓扑视图可以由此简化——想象一下每个位置上不再是一个个区域,而是使用一台交换机代替一个区域,同时保持连接不同区域之间的链路。显然,如果区域之间由冗余链路互连,这种简化后的网络中仍存在环路。MST通过构建所谓的通用生成树(CST)来阻塞这些环路。这个CST只是区域边界独立的IST交互的结果,在独立的区域之间构成一个生成树。CST有两个主要目的。
- 用来确定区域之间的无环路径。它所带来的一个重要成果是在区域之间的链路上阻塞环路,而不是在区域内;就像交换机之间的环路要在交换机之间的链路上进行阻塞,而不是交换机“内部”阻塞。这种行为与简化的概念一致,即从外部看来,MST区域可被看作是一台交换机。
- CST是非MST交换机(即STP和RSTP)能够理解并参与的唯一生成树,这方便了MST和较旧版本的互操作。在MST和STP/RSTP混合的环境中,STP/RSTP交换机会在不知情的情况下参与CST。CST中的开销只反映区域间和网络中非MST部分的链路开销。这些开销被MST称为外部开销。
在每个MST区域中,区域边界的CST与区域内的IST相融合。最终生成的树由MST区域间的无环互连路径,与每个MST区域内部的无环互连路径“粘合”在一起,称为通用内部生成树(Common and Internal SpanningTree),或CIST。这是跨越整个交换拓扑的一个生成树。因为MST区域有自己的IST根,CIST——由区域内IST和区域间CST组成——因此可以有多个根交换机。这些交换机被识别为CIST根交换机(一个CIST一台)和CIST区域根交换机(每个区域内的IST一台)。CIST区域根交换机只是某个区域内IST根交换机的另一种名称。
CIST根交换机由所有参与CIST交换机中网桥ID最低的交换机胜任,即从所有区域中的所有MST交换机中,根据IST网桥ID(由IST优先级、实例编号0和基本MAC地址组合而成)选出,以及从所有STP/RSTP交换机(如果有的话),只根据网桥ID中选出。如果运行纯MST的网络,CIST根交换机就是IST优先级(数值上)最低的交换机;优先级相等时,则选有最低基本MAC地址的交换机。
在其他不包含CIST根交换机的MST区域中,只有区域边界的MST交换机(即拥有去往其他区域链路的交换机)能够声明自己是IST根交换机。这是因为只允许根据以下两种情况设置CIST区域根ID:当且仅当交换机也是CIST根的时候;能接收到其它区域的BPDU的MST边界交换机。其他内部交换机无法参与IST根选举。从边界交换机中,首先选出去往CIST根交换机,外部根路径开销最低的交换机为IST根交换机。外部根路径开销是到达CIST根交换机所属区域的CST开销总和,或者换句话说,是到达CIST根交换机所在区域的CST开销;不考虑区域内链路的开销。开销相等时,使用边界交换机的最低IST网桥ID。
CIST区域根交换机对区域有特别的重要性:它自己的CIST根端口称为主端口(这是MST中增加的端口角色),这个端口也就是去往区域外CIST根交换机的根端口,这个端口还为区域中的所有MST实例提供从区域到CIST根的连通性。