一台S9508E-01,通过G3/0/3端口,连接Cisco4506的5/0/47;另外一台S9508E-01,通过G3/0/3端口,连接Cisco4506的5/0/48;两台S9508E之间,使用G3/0/2端口互联。Cisco上47、48端口的STP状态不断切换,上报错误信息。
导致对接失败,C4506和两台95E的端口状态异常,不稳定,根端口也变成了阻塞端口。
%SPANTREE-2-UNBLOCK_CONSIST_PORT: Unblocking GigabitEthernet5/48 on MST00.
Port consistencyinterface FastEthernet3/41
%SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk GigabitEthernet5/48 VLAN1.
%SPANTREE-7-BLOCK_PORT_TYPE: Blocking GigabitEthernet5/48 on MST00. Inconsistent port type.access.
在现网,C4506上打印下面的信息:
%SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk GigabitEthernet5/48 VLAN1.
%SPANTREE-7-BLOCK_PORT_TYPE: Blocking GigabitEthernet5/48 on MST00. Inconsistent
1、 本地复现组网如下:
如上图所示,两台95E按照现网的配置进行配置:
a) 95E-1配置成根桥,95E-2配置成备份根桥;
b) 两台95E和C2950以ACCESS口进行对接,将端口都划进VLAN10内;
c) 95E-1和C3750以TRUNK口对接,互联的端口Permit VLAN 10。
d) 95E-1、95E-2和C2950进行MSTP对接,配置和现网完全一致;
e) 而C3750使能的是PVST。
按照上面的组网图对故障进行模拟,发现故障现象和现网一样,在C2950上同样打印信息:
00:32:35: %SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk FastEthernet0/3 VLAN10.
00:32:35: %SPANTREE-7-BLOCK_PORT_TYPE: Blocking FastEthernet0/3 on MST00. Inconsistent port type.
00:32:56: %SPANTREE-2-UNBLOCK_CONSIST_PORT: Unblocking FastEthernet0/3 on MST00. Port consistency restored.
00:32:57: %SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk FastEthernet0/3 VLAN10.
00:32:57: %SPANTREE-7-BLOCK_PORT_TYPE: Blocking FastEthernet0/3 on MST00. Inconsistent port type.
正常情况下端口状态应该如下:
Interface Role Sts Cost Prio.Nbr Type
---------------- ---------- --- --------- --------
Fa0/1->和95E-1根桥连接 Root FWD 200000 128.1 P2p Bound(RSTP)
Fa0/3 Desg BKN 200000 128.3 P2p *TYPE_Inc
而测试验证的过程当中还出现如下异常状态:
Interface Role Sts Cost Prio.Nbr Type
--------------------- --- --------- -------- ----------------------------------------------------------
Fa0/1 Altn BLK 200000 128.1 P2p Bound(RSTP)
Fa0/3 Root FWD 200000 128.3 P2p
搜索查找思科设备打印UNBLOCK_CONSIST_PORT和ECV_1Q_NON_TRUNK错误的故障原因,这个提示表示的是该设备在端口Fa0/1或者Fa0/3收到了带TAG的STP报文,但是端口Fa0/1和Fa0/3实际上是ACCESS的端口,这里所指的带TAG的STP报文并不是标准的报文,而正是思科的PVST报文。 上面实验室模拟的也正是通过95E将思科的PVST报文透传给使能MSTP思科设备的ACCESS端口。
95E配置的是MSTP,是不可能发带TAG的STP,更不可能发PVST报文;那么可以肯定是两台95E透传了思科设备的PVST报文,也就是说两台95E直接或者间接连接了别的思科设备,而思科设备默认是PVST模式。这种情况在我司设备和思科设备的STP对接过程当中经常遇到,建议将所有的思科的设备全部配置成MSTP模式,不要按照它默认模式,并划到一个域内。
3、按照上面的复现组网,各台设备的STP状态如下:
95E-1:
[H3C-vlan10]dis stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet1/9/0/1 DESI FORWARDING NONE
0 GigabitEthernet1/9/0/3 DESI FORWARDING NONE
95E-2:
[H3C]dis stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet2/4/0/1 ROOT FORWARDING NONE
0 GigabitEthernet2/4/0/3 DESI DISCARDING NONE
C2950:
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Root FWD 200000 128.1 P2p Bound(RSTP)
Fa0/3 Desg BKN*200000 128.3 P2p *TYPE_Inc
这个时候根桥95E-1设备上的和C2950的互联端口GigabitEthernet1/9/0/3是指定端口,为转发状态。这时C2950上不停打印:
00:26:38: %SPANTREE-2-UNBLOCK_CONSIST_PORT: Unblocking FastEthernet0/3 on MST00.Port consistency restored.
00:26:38: %SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk FastEthernet0/3 VLAN10.
00:26:38: %SPANTREE-7-BLOCK_PORT_TYPE: Blocking FastEthernet0/3 on MST00. Inconsistent port type.
将打开95E-1的STP报文收发开关打开:
*Apr 8 11:25:17:425 2010 H3C MSTP/7/PKT:Chassis=1-Slot=9;
Port471(GigabitEthernet1/9/0/3) Send Mstp-legacy Packet(Length: 103)
ProtocolVersionID: 03
BPDUType : 02
(Instance)Flags : (0)Desi[ AF ]
*Apr 8 11:25:18:777 2010 H3C MSTP/7/PKT:Chassis=1-Slot=9;
Port471(GigabitEthernet1/9/0/3) Rcvd Mstp-legacy Packet(Length: 103)
ProtocolVersionID: 03
BPDUType : 02
(Instance)Flags : (0)Desi[ FL ]
注意:95E和C2950收发都是私有legacy Packet报文格式.
这里发现一个异常情况,C2950上显示的端口Fa0/1是根端口,那么就不应该向95E-1发送BPDU报文,95E-1收到C2950发送过来的报文以后,解析发现是从指定端口发送过来的,而C2950上显示的Fa0/1却是根端口。
也就是说C2950的ACCESS端口Fa0/1收到了PVST报文之后,没发正确切换到根端口状态,端口的状态不稳定,从而导致还会向95E-1发送BPDU报文。
4、在95E-1的端口GigabitEthernet1/9/0/3配置stp compliance dot1s后
[H3C-GigabitEthernet1/9/0/3]stp compliance dot1s
95E-1的端口GigabitEthernet1/9/0/3的状态发生了变化,变成阻塞
[H3C-GigabitEthernet1/9/0/3]di st br
MSTID Port Role STP State Protection
0 GigabitEthernet1/9/0/1 DESI FORWARDING NONE
0 GigabitEthernet1/9/0/3 DESI DISCARDING NONE
去掉配置stp compliance dot1s后,立即又恢复转发状态。
在配置stp compliance dot1s后打开调试开关:
[H3C-GigabitEthernet1/9/0/3]
*Apr 8 11:25:55:822 2010 H3C MSTP/7/PKT:Chassis=1-Slot=9;
Port471(GigabitEthernet1/9/0/3) Send Mstp-dot1s Packet(Length: 102)
ProtocolVersionID: 03
BPDUType : 02
(Instance)Flags : (0)Desi[ AF ] *Apr 8 11:25:56:053 2010 H3C MSTP/7/PKT:Chassis=1-Slot=9;
Port471(GigabitEthernet1/9/0/3) Send Mstp-dot1s Packet(Length: 102)
ProtocolVersionID: 03
BPDUType : 02
(Instance)Flags : (0)Desi[ ]
从上面可以看到95E-1发送的是dot1s标准格式,而没有看到C2950持续发报文;思科设备始终是发送legacy私有报文格式,现在95E-1强制发送dot1s标准格式后,思科设备并没有自动切换dot1s标准格式的功能(目前在C2950和C3750上没有找到可以设置发送dot1s标准格式报文的命令,其余设备再确认),思科设备还是继续发送legacy私有格式报文。 思科设备收到我司dot1s标准格式报文后,不能对接没有继续发。
而我司设备提供了MSTP报文格式不兼容保护功能:在MSTP模式下,当端口上配置的收发MSTP报文格式不是auto时,如果端口收到了与所配格式不符的报文,该端口将成为指定端口,其状态将保持在Discarding,以防止出现环路。现在我们在端口配置stp compliance dot1s,而收到思科的私有报文格式,将会不匹配而阻塞端口。
而我司的设备的端口默认都是auto,收到dot1s标准格式报文后,该端口自动切换到发送dot1s标准格式报文;收到legacy私有报文(通常指定是思科设备),会自动切换到发送legacy私有报文。
跟不支持发送dot1s标准格式报文思科设备对接,只需要配置摘要即可。
综上可知:
1.思科设备自己发送的PVST报文到思科设备的MSTP端口后,将端口阻塞。
2.我司设备和思科设备对接时候不要配置stp compliance dot1s,因为目前思科大部分设备发送的BPDU报文部遵循标准的dot1s格式。
3.非S95E设备问题导致。
解决方案:
1.配置思科设备的stp工作模式为MST模式;
2.S95E端口下不配置stp compliance dot1s。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作