MSTP理论02-MSTP报文及拓扑计算

MSTP 使用多生成树桥协议数据单元 MST BPDU(Multiple Spanning Tree Bridge Protocol Data Unit)作为生成树计算的依据。 MST BPDU 报文用来计算生成树的拓扑、维护网络拓扑以及传达拓扑变化记录。


1、MSTP 报文格式可配置
目前 MSTP 的 BPDU 报文存在两种格式:
1)、dot1s: IEEE802.1s 规定的报文格式;
2)、legacy:私有协议报文格式。
如果端口收发报文格式为默认支持 dot1s 或者 legacy,这样就存在一个缺点:需要人工识别对端的BPDU 报文格式,然后手工配置命令来决定支持哪种格式。人工识别报文格式比较困难,且一旦配置错误,就有可能导致 MSTP 计算错误,出现环路。
华为技术有限公司采用的端口收发 MSTP 报文格式可配置(stp compliance)功能,能够实现对 BPDU报文格式的自适应:auto、dot1s、legacy。
这样报文收发不但支持 dot1s 和 legacy 格式,还能通过 auto 方式根据收到的 BPDU 报文格式自动切换端口支持的 BPDU 报文格式,使报文格式与对端匹配。在自适应的情况下,端口初始支持 dot1s格式,收到报文后,格式则和收到的报文格式保持一致。


MSTP 拓扑计算
1、MSTP 的基本原理
MSTP 将整个二层网络划分为多个 MST 域,各个域之间通过计算生成 CST。域内则通过计算生成多棵生成树,每棵生成树都被称为是一个多生成树实例。其中实例 0 被称为 IST,其他的多生成树实例为 MSTI。


2、优先级向量
MSTI 和 CIST 都是根据优先级向量来计算的,这些优先级向量信息都包含在 MST BPDU 中。各交换设备互相交换 MST BPDU 来生成 MSTI 和 CIST。
1)、参与 CIST 计算的优先级向量为:
{ 根交换设备 ID,外部路径开销,域根 ID,内部路径开销,指定交换设备 ID,指定端
口 ID,接收端口 ID }
2)、参与 MSTI 计算的优先级向量为:
{ 域根 ID,内部路径开销,指定交换设备 ID,指定端口 ID,接收端口 ID }
3)、比较原则:
同一向量比较,值最小的向量具有最高优先级。优先级向量比较原则如下。
a、 首先,比较根交换设备 ID。
b、 如果根交换设备 ID 相同,再比较外部路径开销。
c、 如果外部路径开销相同,再比较域根 ID。
d、 如果域根 ID 仍然相同,再比较内部路径开销。
e、 如果内部路径仍然相同,再比较指定交换设备 ID。
f、 如果指定交换设备 ID 仍然相同,再比较指定端口 ID。
g、 如果指定端口 ID 还相同,再比较接收端口 ID。


3、CIST 的计算
经过比较配置消息后,在整个网络中选择一个优先级最高的交换设备作为 CIST 的树根。在每个MST 域内 MSTP 通过计算生成 IST;同时 MSTP 将每个 MST 域作为单台交换设备对待,通过计算在 MST 域间生成 CST。 CST 和 IST 构成了整个交换设备网络的 CIST。


4、MSTI 的计算
在 MST 域内, MSTP 根据 VLAN 和生成树实例的映射关系,针对不同的 VLAN 生成不同的生成树实例。每棵生成树独立进行计算,计算过程与 STP 计算生成树的过程类似,其中MSTI 有如下特点:
1)、每个 MSTI 独立计算自己的生成树,互不干扰;
2)、每个 MSTI 的生成树计算方法与 STP 基本相同;
3)、每个 MSTI 的生成树可以有不同的根,不同的拓扑;
4)、每个 MSTI 在自己的生成树内发送 BPDU;
5)、每个 MSTI 的拓扑通过命令配置决定;
6)、每个端口在不同 MSTI 上的生成树参数可以不同;
7)、每个端口在不同 MSTI 上的角色、状态可以不同。
在运行 MSTP 协议的网络中,一个 VLAN 报文将沿着如下路径进行转发:
1)、在 MST 域内,沿着其对应的 MSTI 转发;
2)、在 MST 域间,沿着 CST 转发。


5、MSTP 对拓扑变化的处理
当检测到拓扑发生了变化时:
1.首先清空状态发生变化的端口上学习到的MAC地址。
2.同时在2倍的hello time时间内不断向非边缘端口发送TC置位的MST BPDU。
3.其他设备收到TC置位的MST BPDU后,清空其他所有端口学习到的MAC地址(除了收到MST BPDU的端口)。同时也会从自己的非边缘端口和根端口向外泛洪TC置位的MST BPDU。