防环没配好,STP异常搞不定?教你这招秒杀

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部


去年一家公司午休后全员上班,刚开机,网络直接瘫痪,持续30秒闪断。

运维查设备没宕机,流量却跑满。我去一看,display stp brief发现根桥在两台核心之间来回切换,STP疯狂重算。

一查,是新接的楼层交换机默认开启了STP,但优先级没调,抢了根桥。改完优先级,世界清净了。

STP不是配完就完事的“保险”,而是随时可能引爆的“地雷”

今天,我就教你用几条display命令,快速揪出STP环路元凶。


今日文章阅读福利:《 网络工程师基本配置命令大全 

不管心态如何变化,技术依旧是自己手里最有力的武器。私信我,发送暗号“配置命令”,即可获取技术之路一把好武器。


01 STP为何会“吊死”全网?

01 STP正常工作流程:

  1. 选举根桥(Root Bridge)

  2. 每台非根桥选一个根端口(Root Port)

  3. 每条链路选一个指定端口(Designated Port)

  4. 其余端口进入阻塞(Blocking)状态

02 异常导致“吊死”:

  • 根桥频繁切换 → 全网拓扑重算,MAC表/ARP表刷新

  • 阻塞端口误转发 → 二层环路,广播风暴

  • BPDU未收到或延迟 → 端口误认为链路故障,进入转发

现象:用户侧“小太阳”狂闪、CPU飙升、ping大面积丢包。


02 关键命令1:display stp brief —— 快速看全局

# 华为/华三设备
display stp brief

输出解读:

MST ID  Port                        Role  STP State     Protection
0       GigabitEthernet0/0/1        DESI  FORWARDING      NONE
0       GigabitEthernet0/0/2        ROOT  FORWARDING      NONE
0       GigabitEthernet0/0/3     ALTE  DISCARDING      NONE

第一步:在所有核心、汇聚设备上执行,确认根桥是否稳定、阻塞端口是否正常阻塞。


03 关键命令2:display stp —— 查根桥与优先级

display stp

重点关注:

-------[CIST Global Info][Mode MSTP]-------
CIST Bridge         :0    .4c1f-cc12-3456
CIST Root/ERPC      :0    .4c1f-cc12-3456 / 0

  • CIST Bridge:本设备桥ID(优先级+MAC)
  • CIST Root:当前根桥ID

判断根桥是否正确

  • 理想根桥应为核心交换机
  • 若某接入交换机成为根桥 → 立即调整其优先级
修改根桥优先级:

# 在核心交换机上
[Core-SW] stp priority 0
# 在接入交换机上
[Access-SW] stp priority 4096


04 关键命令3:display stp interface —— 定位问题端口

display stp interface GigabitEthernet 0/0/3

输出分析:

 Port Protocol       :Enabled
 Port Role           :Alternate Port
 Port State          :Discarding
 BPDU Sent           :1000
 BPDU Received       :5

  • BPDU Received 过低或为0 → 链路单通或对端未发BPDU

  • Port State 应为Discarding但实际Forwarding → 严重环路风险

  • Port Role 为Alternate但状态转发 → 立即shutdown!

经验:BPDU收发异常的端口,往往是环路源头。


05 关键命令4:display stp tc-bpdu —— 查拓扑变更

display stp tc-bpdu statistics

输出:

Port                    : GigabitEthernet0/0/1
TC-BPDU sent            : 15
TC-BPDU received        : 120

  • TC-BPDU频繁接收(如每秒多次) → 拓扑持续震荡

  • 常见原因:物理链路不稳定、环路、设备故障

处理:找到TC-BPDU来源端口,检查对端设备。


06 实战排查流程

当全网闪断、怀疑STP问题时:

  1. ✅ 在核心交换机执行 display stp brief,确认根桥是否稳定

  2. ✅ 检查所有设备 display stp,确认根桥ID一致

  3. ✅ 查看阻塞端口(ALTE/BACKUP)是否真的为 DISCARDING

  4. ✅ 在疑似问题链路执行 display stp interface X,检查BPDU收发

  5. ✅ 执行 display stp tc-bpdu statistics,确认是否频繁拓扑变更

  6. ✅ 若发现异常端口,立即 shutdown 隔离,再深入排查


07 结语

STP是防止二层环路的基石,但配置不当或设备异常会导致全网震荡。

通过display stp brief、display stp、display stp interface和display stp tc-bpdu statistics四条命令,可系统化定位根桥漂移、端口角色错乱和BPDU异常等故障。

建议在网络规划时明确指定根桥,并在接入层设备上配置bpdu-protection和loop-protection,防止非法设备引发环路。

记住:STP的静默,才是网络的安宁


整理:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

### 生成树协议 (STP) 的机制原理 生成树协议 (STP, Spanning Tree Protocol) 是一种工作在网络参考模型的数据链路层的通信协议,其核心目标是止因冗余链路而导致的网络路问题[^3]。具体来说,STP 协议通过一系列算法和规则,在存在物理路的交换网络中动态计算并构建一棵逻辑上的无拓扑结构——即生成树。 #### STP 的工作机制 1. **选举**: 在整个交换网络中,所有参与 STP 的设备会共同选出一个作为“”的交换机。这个过程基于优先级、MAC 地址以及配置消息中的其他参数完成。通常情况下,默认优先级最低的交换机会被选作[^1]。 2. **端口角色定义**: 每台交换机都会为其每一个端口分配特定的角色,这些角色包括: - 端口(Root Port):通往的最佳路径所在的端口。 - 指定端口(Designated Port):负责转发流量到下游设备的端口。 - 替代端口(Alternate Port)/阻塞端口(Blocked Port):当某个端口不是最优路径的一部分时,则会被置于阻塞状态以消除潜在的路风险[^2]。 3. **BPDU 报文传递**: Bridge Protocol Data Units (BPDUs) 被用来在各交换机间传播关于当前网络状况的信息。每台交换机会定期发送 BPDU 来通告自己的身份以及其他相关信息;接收到 BPDUs 后,它们将依据其中的内容更新本地数据库,并重新评估自身的端口状态以便维持正确的生成树结构。 4. **收敛过程**: 当初始启动或者网络拓扑发生变化时,例如新增加了一条新的链接或是某部分失效了,那么整个系统就需要经历一次短暂但必要的调整期称为“收敛”。在此期间内,所有的交换机会再次协商确定最新的位置及其关联的各项设置直至达成一致为止。 #### 实现方式总结 综上所述,STP 主要依靠以下几个方面来实现其预状回路的功能: - 自动化地选择唯一的; - 明确规定各个端口的具体职责范围; - 利用周期性的控制报文交互保持全局视图同步; - 动态响应实际境变化及时作出相应修决策。 ```python # Python伪代码展示简单的STP模拟流程 class Switch: def __init__(self): self.root_bridge = False self.port_roles = {} def elect_root(switches): """选举""" lowest_priority_switch = min(switches, key=lambda s: s.priority) lowest_priority_switch.root_bridge = True def assign_port_roles(switches): """分配端口角色""" for switch in switches: if not switch.root_bridge: calculate_best_path_to_root(switch) def handle_topology_change(): """处理拓扑变更事件""" pass # 这里省略具体的实现细节 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值