MSTP报文
MSTP使用多生成树桥协议数据单元MST BPDU(Multiple Spanning Tree Bridge Protocol Data Unit)作为生成树计算的依据。MST BPDU报文用来计算生成树的拓扑、维护网络拓扑以及传达拓扑变化记录。
STP中定义的配置BPDU、RSTP中定义的RST BPDU、MSTP中定义的MST BPDU及TCN BPDU差异对比如表12-3所示。
MSTP报文格式
MST BPDU报文结构如图12-7所示。
无论是域内的MST BPDU还是域间的,前36个字节和RST BPDU相同。
从第37个字节开始是MSTP专有字段。最后的MSTI配置信息字段由若干MSTI配置信息组连缀而成。
MST BPDU中的主要信息如表12-4所示。
字段内容 |
字节 |
说明 |
---|---|---|
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。 |
MSTP报文格式可配置
目前MSTP的BPDU报文存在两种格式:
dot1s:IEEE802.1s规定的报文格式。
legacy:私有协议报文格式。
如果端口收发报文格式为默认支持dot1s或者legacy,这样就存在一个缺点:需要人工识别对端的BPDU报文格式,然后手工配置命令来决定支持哪种格式。人工识别报文格式比较困难,且一旦配置错误,就有可能导致MSTP计算错误,出现环路。
华为技术有限公司采用的端口收发MSTP报文格式可配置(stp compliance)功能,能够实现对BPDU报文格式的自适应:
auto
dot1s
legacy
这样报文收发不但支持dot1s和legacy格式,还能通过auto方式根据收到的BPDU报文格式自动切换端口支持的BPDU报文格式,使报文格式与对端匹配。在自适应的情况下,端口初始支持dot1s格式,收到报文后,格式则和收到的报文格式保持一致。
每个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占用过多的带宽资源。