华为S 系列网管交换机两端设备配置的MSTP报文的协议格式不一致导致端口DOWN

组网情况
如图所示,Switch-1、Switch-2与两台H3C S6500组成MSTP环。
两端设备MSTP报文的协议格式不一致导致端口DOWN组网图

现象描述
将Switch-1整机重启并重新上电后,S6500-1的GE0/0/4端口会自动shutdown,必须手动undo shutdown才能恢复。且设备上打印如下告警:

原因分析
Switch和S6500互连端口均没有配置MSTP报文的协议格式,使用默认值。但是默认值不一致,导致S6500接口被Shutdown。

Switch端口的MSTP报文的协议格式stp compliance默认为auto并发送dot1s格式报文,S6500默认发送legacy格式报文。S6500端口UP后连续发送3个legacy报文,Switch端口UP后发送1个dot1s报文,S6500回复1个dot1s报文,Switch回复S6500的legacy报文,后续两端交互dot1s报文。

S6500在进行报文格式检查时有特殊的处理机制:10秒内收到的legacy和dot1s报文都大于等于3个时,将端口Shutdown。

操作步骤
在Switch整机启动端口UP后,在S6500上执行命令display stp interface,查看直连UP端口的信息,发现MSTP BPDU format为legacy:

执行命令stp compliance legacy,将Switch连接S6500的端口强制配置为legacy模式。

建议与总结
在与其他厂商设备对接时,需要关注对端接口收发MSTP报文的协议格式是否默认为auto,是否有特殊的检查机制。

当Switch端口配置为非auto格式,端口收到的报文格式与配置不一致时,打印如下日志:

MSTP/3/PACKET_ERR_COMPLIAN:The port compliance protocol type of the packet received by MSTP from the port [port-name] is invalid.
出现该情况后,建议按照如下方法处理:

1、使用获取报文工具记录收到的错误报文。
2、记录查询对端的接口信息,如设备厂商、版本、配置。
如果是华为设备,使用命令display version,display interface或display current-configuration查询设备的版本、配置等。
如果是其他厂商设备,则根据该厂商的设备命令获取信息。
3、由于此时MSTP收到非法报文,计算出来的STP状态错误,有可能导致出现二层环路(使用display stp brief命令查看接口STP状态,可确认是否存在环路),建议先shutdown接口,防止形成广播风暴。确认不存在环路后,使用undo shutdown命令恢复接口。

ICP备案号:晋ICP备18007549号-1
站长微信:15534641008