简介
本文档介绍接入交换机和分布交换机之间的路径开销不匹配导致的生成树协议(STP)根不一致。
先决条件
要求
Cisco建议您了解STP概念。
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
功能描述
根防护功能提供了在网络中强制执行根网桥安置的方法。
根防护可确保启用了根防护的端口为指定端口。通常,除非根网桥的两个或多个端口连接在一起,否则根网桥端口全部为指定端口。如果网桥在启用了根防护的端口上收到高级 STP 网桥协议数据单元 (BPDU),根防护会将此端口转换为根不一致 STP 状态。此根不一致状态实际上等效于监听状态。此时不会通过此端口转发任何流量。根防护以这种方式强制确定根网桥的位置。
问题
本部分中的示例说明当接入交换机和分布交换机之间的路径开销不匹配时,向网络添加新接入交换机如何导致根防护端口在分布交换机上进入根不一致状态。
在图1中,交换机1和交换机2构成网络的分布层,交换机1充当偶数VLAN的根网桥,交换机2充当奇数VLAN的根网桥。交换机1和交换机2之间已建立第2层PortChannel。交换机3用作接入层交换机。对于奇数VLAN,交换机1和交换机3之间的链路在交换机3端被阻塞;而对于偶数VLAN,交换机2和交换机3之间的链路在交换机3端被阻塞。
图1.分布层交换机和接入层交换机的连通性
SW1所有Vlan均处于转发状态
SW1生成树,用于Vlan10和Vlan20
SW2所有Vlan均处于转发状态
SW2生成树,用于Vlan20
SW3阻止的奇数和偶数个Vlan的端口详细信息
SW3根端口有关奇数和偶数个Vlan的详细信息
SW3生成树,用于Vlan10和Vlan20
在Switch3 Eth0/1端口上捕获的数据包表明,从Switch1收到的VLAN20的STP帧的根路径开销为0,以到达根网桥。
SW3 Eth0/1端口上用于Vlan20的数据包捕获
在Switch3 Eth0/2端口上捕获的数据包表明,从Switch2收到的VLAN20的STP帧到达根网桥的根路径开销为1000000。
SW3 Eth0/2端口上用于Vlan20的数据包捕获
在Switch3 Eth0/1端口上捕获的数据包表明,从Switch1收到的VLAN10的STP帧到达根网桥的根路径开销为1000000。
SW3 Eth0/1端口上用于Vlan10的数据包捕获
在Switch3 Eth0/2端口上捕获的数据包显示,从Switch2收到的VLAN10的STP帧具有到达根网桥的根路径开销0。
SW3 Eth0/2端口上用于Vlan10的数据包捕获
现在,接入交换机 — 交换机3发生故障,已被新的接入交换机取代。在网络中添加新的接入交换机(交换机3)后,发现STP阻塞了分布交换机上的端口,并且交换机1和交换机2上的指定端口进入了“根不一致”状态。
图 2:交换机2的Eth0/2端口变为阻塞状态
此图显示交换机2的Eth0/2端口进入偶数VLAN的阻塞模式。
交换机1是VLAN 20、40、60的根网桥,通过PO1到达交换机2上的根网桥的开销为1000000,通过Eth0/2到达根网桥的开销为2000100(2000000+100)。
交换机3在Eth0/1上到达根桥的开销为100,通过Eth0/2到达根桥的开销为1000100。
由于交换机2的Eth0/2开销较高,因此它阻塞了VLAN 20、40、60的端口Eth0/2。
Feb 10 04:31:55.516: %SPANTREE-2-ROOTGUARD_BLOCK: Received a superior STP BPDU from bridge aabb.cc00.0500. Root guard blocking port Ethernet0/2 on VLAN0060.
Feb 10 04:32:26.086: %SPANTREE-2-ROOTGUARD_BLOCK: Received a superior STP BPDU from bridge aabb.cc00.0500. Root guard blocking port Ethernet0/2 on VLAN0040
即使没有Vlan,SW2根不一致端口详细信息
SW3所有Vlan均处于转发状态
图 3:交换机1的Eth0/1端口变为阻塞状态
此图显示交换机1的Eth0/1端口为奇数VLAN进入阻塞模式。
交换机2是VLAN 10、30、50、70的根网桥,通过PO1到达交换机1上的根网桥的开销为1000000,通过Eth0/1到达根网桥的开销为2000100(2000000+100)。
交换机3在Eth0/2上到达根桥的开销为100,通过Eth0/1到达根桥的开销为1000100。
由于交换机1的Eth0/1开销较高,因此它阻塞了VLAN 10、30、50、70的端口Eth0/2。
Feb 10 14:49:58.952: %SPANTREE-2-ROOTGUARD_BLOCK: Received a superior STP BPDU from bridge aabb.cc00.0500. Root guard blocking port Ethernet0/1 on VLAN0010.
SW1根不一致Vlan奇数的端口详细信息
在Switch1 Eth0/1端口上捕获的数据包表明,从Switch3收到的VLAN10的STP帧到达根网桥的根路径开销为100。
在SW1的Eth0/1上为Vlan10捕获数据包
在交换机2 Eth0/2端口上捕获的数据包表明,从交换机3接收的VLAN20的STP帧到达根网桥的根路径开销为100。
SW2 Eth0/2端口上为Vlan20捕获的数据包
交换机3使用指定为“短”的路径开销方法集成到网络中。 相比之下,交换机1和交换机2采用路径开销方法,分类为“长”。 交换机3将上级BPDU传输到交换机1和交换机2。收到上级BPDU后,根防护将端口置于根不一致STP状态。
解决方案
当pathcost配置在接入交换机3上从“short”更改为“long”时,解决了此问题。
SW3(config)#spanning-tree pathcost method long
SW1#
*Feb 10 08:07:40.188: %SPANTREE-2-ROOTGUARD_UNBLOCK: Root guard unblocking port Ethernet0/1 on VLAN0010.
SW2#
*Feb 10 08:07:39.188: %SPANTREE-2-ROOTGUARD_UNBLOCK: Root guard unblocking port Ethernet0/2 on VLAN0020
*Feb 10 08:07:40.188: %SPANTREE-2-ROOTGUARD_UNBLOCK: Root guard unblocking port Ethernet0/2 on VLAN0040
SW3的Eth0/2变为阻塞状态,即使没有Vlan
SW3的Eth0/1变为阻塞状态,因为Vlan为奇数