思科STP配置的核心思路很简单:先掌握基础命令,再根据网络规模选择合适的生成树模式,最后把根桥、优先级、PortFast这些关键参数调对。很多朋友在网上搜“思科stp配置”能找到一堆命令,但真正落地时却搞不清每一条的作用,这篇文章从实操角度出发,把配置步骤、场景选择、排错手段一次性讲透。
思科stp配置命令和常用参数详解
启用STP前先搞懂几种模式
思科交换机默认启用PVST(每VLAN生成树),但不同型号、不同IOS版本的默认模式有差异,行业共识认为,生成树模式的选择直接影响收敛速度和网络稳定性,这是思科stp配置的第一步,也是最容易忽略的一步。
- PVST:基于VLAN的生成树,每个VLAN跑一个STP实例,优点是能实现负载均衡,缺点是CPU占用高。
- Rapid PVST(RPVST):PVST的快速版,基于IEEE 802.1w,收敛速度从默认的50秒缩短到1-2秒,是目前大多数生产环境的标配。
- MSTP(802.1s):多生成树协议,把多个VLAN映射到一个实例,适合VLAN数量大的场景。
配置命令如下:
Switch(config)# spanning-tree mode rapid-pvst Switch(config)# spanning-tree mode mst
选择逻辑很简单:VLAN数量超过50个,用MSTP;50个以下,Rapid PVST最省心,很多运维新手问“思科stp配置选哪种模式”,这个标准基本能解决八成问题。
核心命令:优先级、根桥、PortFast
根桥选举是STP工作的基础,交换机通过交换BPDU报文比较网桥ID,值越小越优先当选根桥,手动指定核心交换机为根桥是标准做法。
Switch(config)# spanning-tree vlan 1 priority 4096 Switch(config)# spanning-tree vlan 1 root primary
两条命令的效果一样,但root primary更智能,它会自动把优先级设为比当前根桥更低的值。接入层交换机建议手动设置较低优先级,防止意外抢根。
PortFast是思科stp配置里使用频率最高的特性之一,用于加速接入端口的状态转换,交换机上连接PC、打印机、IP电话的端口,都应该开启:
Switch(config)# interface g0/1 Switch(config-if)# spanning-tree portfast
但有一点要注意:PortFast只适用于连接终端的端口,如果接到另一台交换机上,开了PortFast反而会导致临时环路,严重时直接引发广播风暴。
边缘端口和BPDU Guard的搭配
很多朋友配完PortFast就觉得万事大吉,但漏了BPDU Guard,BPDU Guard的作用是:

当PortFast端口收到BPDU报文时,立刻把端口置为err-disable状态,防止有人私接交换机形成环路。
Switch(config)# interface g0/1 Switch(config-if)# spanning-tree bpduguard enable
如果希望全局开启,避免每个接口单独配,可以用:
Switch(config)# spanning-tree portfast bpduguard default
这里有个实操场景:某办公楼三层接入层交换机,经常有用户私自加装无线路由器,路由器LAN口又接到了交换机上,导致整个VLAN瘫痪,开启BPDU Guard后,端口直接关闭,网络管理员看日志就能定位到具体端口,问题秒解。
思科交换机的stp配置实例:从接入层到核心层
三层网络架构下的完整配置流程
以最常见的三层架构为例:核心层两台、汇聚层四台、接入层若干,目标是把核心交换机A设为所有VLAN的主根桥,核心交换机B设为备份根桥。
第一步:核心交换机A配置
Switch-A(config)# spanning-tree mode rapid-pvst Switch-A(config)# spanning-tree vlan 1-100 root primary Switch-A(config)# spanning-tree vlan 1-100 priority 4096
第二步:核心交换机B配置
Switch-B(config)# spanning-tree mode rapid-pvst Switch-B(config)# spanning-tree vlan 1-100 root secondary Switch-B(config)# spanning-tree vlan 1-100 priority 8192
第三步:接入层交换机配置
Switch-C(config)# spanning-tree mode rapid-pvst Switch-C(config)# spanning-tree vlan 1-100 priority 28672 Switch-C(config)# interface range fa0/1-24 Switch-C(config-if)# spanning-tree portfast Switch-C(config-if)# spanning-tree bpduguard enable
接入层的priority设置成28672,核心层是4096,优先级值越小越优先,所以根桥一定在核心层,不会跑到接入层去。
验证配置的常用命令
配置完成后,用以下命令验证效果:
show spanning-tree:查看根桥、端口角色和状态show spanning-tree summary:查看生成树模式和各VLAN实例show spanning-tree vlan 1:查看指定VLAN的详细信息
输出里重点关注Root ID和Bridge ID的优先级值,如果Root ID显示的MAC地址与核心交换机A一致,说明根桥选举正确,如果show spanning-tree vlan 10显示根桥MAC为aaaa.bbbb.cccc,而你查看核心交换机A的show interface vlan 10时MAC地址一致,那就没有问题。
思科stp配置优化:应对复杂网络和突发问题
UplinkFast和BackboneFast还有用吗

很多老教程会推荐这三个加速特性,但在Rapid PVST模式下,它们已经没有实际意义了。Rapid PVST本身就包含了UplinkFast和BackboneFast的优化逻辑,不需要再手工配置。
如果交换机还在用旧款、跑的是普通PVST模式,这时候可以手动加上:
Switch(config)# spanning-tree uplinkfast Switch(config)# spanning-tree backbonefast
但行业共识认为,与其加这些补丁命令,不如直接升级模式到Rapid PVST,省事、效果好,还减少故障点。
链路聚合和STP的配合
当使用EtherChannel(端口聚合)时,STP会把整个聚合链路看作一个逻辑端口,配置了PortChannel后,STP只在聚合接口上计算状态,不会在单个物理端口上跑STP,这是正常的。
Switch(config)# interface port-channel 1 Switch(config-if)# spanning-tree portfast disable
注意:PortChannel不要开PortFast,因为聚合链路通常连接的是交换机或服务器,不是普通终端。
流量负载均衡的配置技巧
PVST和Rapid PVST天生支持多VLAN负载均衡,做法是:VLAN 1-50的主根桥设为交换机A,VLAN 51-100的主根桥设为交换机B,这样两台核心设备都能工作,不浪费带宽。
Switch-A(config)# spanning-tree vlan 1-50 root primary Switch-A(config)# spanning-tree vlan 51-100 root secondary Switch-B(config)# spanning-tree vlan 1-50 root secondary Switch-B(config)# spanning-tree vlan 51-100 root primary
这种配置在校园网、企业办公网中很常见,据统计,相当一部分网络拥堵问题源于STP根桥单点工作、流量全部走一条链路,而负载均衡能有效利用现有链路。
思科stp配置常见问题和排查方法
端口一直处于Blocking状态怎么办
最常见的原因是同一链路上两端的交换机在抢根桥,或者收到优先级更高的BPDU,先检查两端的优先级是否一致:
show spanning-tree interface g0/1
如果输出显示Port State: Blocking且Role: Alternate,说明这条链路正在做冗余备份,是正常现象,如果链路状态长期Blocking但链路本身是唯一的,就需要检查是否有交换机默认优先级相同(默认32768),导致MAC地址较小的交换机意外成了根桥。
网络广播风暴,STP配置没问题但还卡
这时候先用show interface看端口CRC错误计数,多数情况下广播风暴来源于网卡故障或环路,不一定是STP配置问题,真正的STP风暴在日志里会有

%SPANTREE-2-TOPOLOGY_CHANGE频繁刷屏。
处理方式:
- 拔掉可疑链路,观察风暴是否停止
- 用
show mac address-table查看MAC漂移情况 - 检查是否有端口同时收到了同一个MAC地址,说明存在物理环路
交换机stp配置后丢包严重
丢包多发生在STP重新收敛期间,如果用Rapid PVST还有丢包,大概率是根桥和指定端口没有规划好,业内专家指出,60%以上的STP性能问题都跟根桥位置不合理有关,核心路径上的链路要确保是转发状态,不要用低优先级的链路做主干。
建议用show spanning-tree interface逐一检查所有链路状态,确认根端口、指定端口、备用端口的关系清晰。
思科交换机stp配置最后一步:验证与验收
一套标准检查清单
配置完成后按这个顺序检查:
- 所有交换机用
show spanning-tree确认根桥一致 - 所有连接终端的端口显示
PortFast Yes状态 - 所有交换机之间的中继链路状态是
Desg FWD - 用
show logging检查是否有BPDU Guard触发的err-disable事件 - 拔掉一条冗余链路,观察收敛时间是否在秒级
记录和文档化
把每台交换机的优先级、根桥设置、PortFast端口清单记录在案。STP配置这事儿,过了半年谁还记得当时怎么想的设计,文档比什么都重要。
核心结论收个尾:STP配置没有想象中复杂,关键是模式选对、根桥固定、接入端口开PortFast和BPDU Guard,照着这篇文章的步骤做一遍,大部分网络都能稳定跑起来。
思科stp配置常见问题速查
思科stp配置命令中哪些是必须的?
最核心的只有三条:spanning-tree mode rapid-pvst开启快速生成树模式;spanning-tree vlan <编号> priority <数值>指定根桥;spanning-tree portfast开启接入端口加速,其余都是精细化调优。
怎么确认交换机优先级设置成功了?
执行show spanning-tree vlan 1,查看Bridge ID Priority字段,如果显示4097或8193(默认值加上VLAN ID偏移),说明配置生效,同时看Root ID的MAC地址是否与核心交换机一致。
PortFast能不能在中继端口上开启?
不建议,中继端口连接的是交换机,开PortFast会跳过Listening和Learning阶段直接进入Forwarding,如果中继链路本身有环路,端口会立刻参与转发,造成广播风暴,中继端口应保持默认STP流程。
