14、MSTP报文
MSTP使用多生成树桥协议数据单元MST BPDU(Multiple Spanning Tree Bridge Protocol Data Unit)作为生成树计算的依据。MST BPDU报文用来计算生成树的拓扑、维护网络拓扑以及传达拓扑变化记录。
STP中定义的配置BPDU、RSTP中定义的RST BPDU、MSTP中定义的MST BPDU及TCN BPDU差异对比如下表1所示。
表1 四种BPDU差异比较 |
||
版本 |
类型 |
名称 |
0 |
0x00 |
配置BPDU |
0 |
0x80 |
TCN BPDU |
2 |
0x02 |
RST BPDU |
3 |
0x02 |
MST BPDU |
15、MSTP报文格式
图1 MST BPDU报文结构
MST BPDU报文结构如上图1所示。无论是域内的MST BPDU还是域间的,前36个字节和RST BPDU相同。从第37个字节开始是MSTP专有字段。最后的MSTI配置信息字段由若干MSTI配置信息组连缀而成。MST BPDU中的主要信息如下表2所示。
表2 MST BPDU中主要信息说明 |
||
字段内容 |
字节 |
说明 |
Protocol Identifier |
2 |
协议标识符。 |
Protocol Version Identifier |
1 |
协议版本标识符,STP为0,RSTP为2,MSTP为3。 |
BPDU Type |
1 |
BPDU类型:
|
CIST Flags |
1 |
CIST标志字段。 |
CIST Root Identifier |
8 |
CIST的总根交换设备ID。 |
CIST External Path Cost |
4 |
CIST外部路径开销指从本交换设备所属的MST域到CIST根交换设备所属的MST域的累计路径开销。CIST外部路径开销根据链路带宽计算。 |
CIST Regional Root Identifier |
8 |
CIST的域根交换设备ID,即IST Master的ID。如果总根在这个域内,那么域根交换设备ID就是总根交换设备ID。 |
CIST Port Identifier |
2 |
本端口在IST中的指定端口ID。 |
Message Age |
2 |
BPDU报文的生存期。 |
Max Age |
2 |
BPDU报文的最大生存期,超时则认为到根交换设备的链路故障。 |
Hello Time |
2 |
Hello定时器,缺省为2秒。 |
Forward Delay |
2 |
Forward Delay定时器,缺省为15秒。 |
Version 1 Length |
1 |
Version1 BPDU的长度,值固定为0。 |
Version 3 Length |
2 |
Version3 BPDU的长度。 |
MST Configuration Identifier |
51 |
MST配置标识,表示MST域的标签信息,包含4个字段。 |
CIST Internal Root Path Cost |
4 |
CIST内部路径开销指从本端口到IST Master交换设备的累计路径开销。CIST内部路径开销根据链路带宽计算。 |
CIST Bridge Identifier |
8 |
CIST的指定交换设备ID。 |
CIST Remaining Hops |
1 |
BPDU报文在CIST中的剩余跳数。 |
MSTI Configuration Messages(may be absent) |
16 |
MSTI配置信息。每个MSTI的配置信息占16 bytes,如果有n个MSTI就占用n×16bytes。 |
16、MSTP报文格式可配置
目前MSTP的BPDU报文存在两种格式:dot1s:IEEE802.1s规定的报文格式;legacy:私有协议报文格式。
如果端口收发报文格式为默认支持dot1s或者legacy,这样就存在一个缺点:需要人工识别对端的BPDU报文格式,然后手工配置命令来决定支持哪种格式。人工识别报文格式比较困难,且一旦配置错误,就有可能导致MSTP计算错误,出现环路。
华为技术有限公司采用的端口收发MSTP报文格式可配置(stp compliance)功能,能够实现对BPDU报文格式的自适应:auto、dot1s、legacy。
这样报文收发不但支持dot1s和legacy格式,还能通过auto方式根据收到的BPDU报文格式自动切换端口支持的BPDU报文格式,使报文格式与对端匹配。在自适应的情况下,端口初始支持dot1s格式,收到报文后,格式则和收到的报文格式保持一致。
17、每个Hello Time时间内端口最多能发送BPDU的报文数可配置
Hello Time用于生成树协议定时发送配置消息维护生成树的稳定。如果交换设备在一段时间内没有收到BPDU报文,则会由于消息超时而对生成树进行重新计算。
当交换设备成为根交换设备时,该交换设备会按照该设置值为时间间隔发送BPDU报文。非根交换设备采用根交换设备所设置的Hello Time时间值。
华为技术有限公司数据通信设备提供的每个Hello Time时间内端口最多能够发送的BPDU报文个数可配置(Max Transmitted BPDU Number in Hello Time is Configurable)功能,可以设定当前端口在Hello Time时间内配置BPDU的最大发送数目。
用户配置的数值越大,表示每Hello Time时间内发送的报文数越多。适当的设置该值可以限制端口每Hello Time时间内能发送的BPDU数目,防止在网络拓扑动荡时,BPDU占用过多的带宽资源。
18、MSTP优先级向量
MSTP将整个二层网络划分为多个MST域,各个域之间通过计算生成CST(公共生成树)。域内则通过计算生成多棵生成树,每棵生成树都被称为是一个多生成树实例。其中实例0被称为IST,其他的多生成树实例为MSTI。MSTP同STP一样,使用配置消息进行生成树的计算,只是配置消息中携带的是设备上MSTP的配置信息。
MSTI和CIST都是根据优先级向量来计算的,这些优先级向量信息都包含在MST BPDU中。各交换设备互相交换MST BPDU来生成MSTI和CIST。
参与CIST计算的优先级向量为:
{ 根交换设备ID,外部路径开销,域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID }
参与MSTI计算的优先级向量为:
{ 域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID }
括号中的向量的优先级从左到右依次递减。
下表1对每个优先级向量进行解释。
表1 向量说明 |
|
向量名 |
说明 |
根交换设备ID |
根交换设备ID用于选择CIST中的根交换设备。根交换设备ID = Priority(16bits) + MAC(48bits)。 其中Priority为MSTI0的优先级。 |
外部路径开销(ERPC) |
从CIST的域根到达总根的路径开销。MST域内所有交换设备上保存的外部路径开销相同。若CIST根交换设备在域中,则域内所有交换设备上保存的外部路径开销为0。 |
域根ID |
域根ID用于选择MSTI中的域根。域根ID = Priority(16bits) + MAC(48bits)。 其中Priority为MSTI0的优先级。 |
内部路径开销(IRPC) |
本桥到达域根的路径开销。域边缘端口保存的内部路径开销大于非域边缘端口保存的内部路径开销。 |
指定交换设备ID |
CIST或MSTI实例的指定交换设备是本桥通往域根的最邻近的上游桥。如果本桥就是总根或域根,则指定交换设备为自己。 |
指定端口ID |
指定交换设备上同本设备上根端口相连的端口。Port ID = Priority(4位) + 端口号(12位)。端口优先级必须是16的整数倍。 |
接收端口ID |
接收到BPDU报文的端口。Port ID = Priority(4位) + 端口号(12位)。端口优先级必须是16的整数倍。 |
MSTP优先级向量比较原则:
同一向量比较,值最小的向量具有最高优先级。
首先,比较根交换设备ID;如果根交换设备ID相同,再比较外部路径开销;如果外部路径开销相同,再比较域根ID;如果域根ID仍然相同,再比较内部路径开销;如果内部路径仍然相同,再比较指定交换设备ID;如果指定交换设备ID仍然相同,再比较指定端口ID;如果指定端口ID还相同,再比较接收端口ID。
如果端口接收到的BPDU内包含的配置消息优于端口上保存的配置消息,则端口上原来保存的配置消息被新收到的配置消息替代。端口同时更新交换设备保存的全局配置消息。反之,新收到的BPDU被丢弃。
19、CIST的计算
经过比较配置消息后,在整个网络中选择一个优先级最高的交换设备作为CIST的树根。在每个MST域内MSTP通过计算生成IST;同时MSTP将每个MST域作为单台交换设备对待,通过计算在MST域间生成CST。CST和IST构成了整个交换设备网络的CIST。
20、MSTI的计算
在MST域内,MSTP根据VLAN和生成树实例的映射关系,针对不同的VLAN生成不同的生成树实例。每棵生成树独立进行计算,计算过程与STP计算生成树的过程类似。
MSTI的特点:
每个MSTI独立计算自己的生成树,互不干扰;每个MSTI的生成树计算方法与STP基本相同;每个MSTI的生成树可以有不同的根,不同的拓扑;每个MSTI在自己的生成树内发送BPDU; 每个MSTI的拓扑通过命令配置决定; 每个端口在不同MSTI上的生成树参数可以不同;每个端口在不同MSTI上的角色、状态可以不同。
在运行MSTP协议的网络中,一个VLAN报文将沿着如下路径进行转发:在MST域内,沿着其对应的MSTI转发;在MST域间,沿着CST转发。
21、MSTP对拓扑变化的处理
MSTP拓扑变化处理与RSTP拓扑变化处理过程类似
22、MSTP快速收敛机制
MSTP支持普通方式和增强方式两种P/A(Proposal/Agreement)机制:
1、普通方式
MSTP支持普通方式的P/A机制实现与RSTP支持的P/A机制实现相同,RSTP支持的P/A机制请见前面的内容。
2、增强方式
图1 增强方式的P/A机制
如上图1所示,在MSTP中,P/A机制工作过程如下:
上游设备发送Proposal报文,请求进行快速迁移。下游设备接收到后,把与上游设备相连的端口设置为根端口,并阻塞所有非边缘端口。
上游设备继续发送Agreement报文。下游设备接收到后,根端口转为Forwarding状态。
下游设备回应Agreement报文。上游设备接收到后,把与下游设备相连的端口设置为指定端口,指定端口进入Forwarding状态。
缺省情况下,华为数据通信设备使用增强的快速迁移机制。如果华为数据通信设备和其他制造商的设备进行互通,而其他制造商的设备P/A机制使用普通的快速迁移机制,此时,可在华为数据通信设备上通过设置P/A机制为普通的快速迁移机制,从而实现华为数据通信设备和其他制造商的设备进行互通。