☰
STP详解:生成树协议原理与配置
2026/11/4 7:12:55 网站建设 项目流程

1. 一个场景:两台交换机之间拉了两根线

机房布线图看着很正常:交换机 A 和交换机 B 之间接了两根网线,一根主用、一根备用,想着「一根断了还有另一根」。结果上架当天,全网开始卡顿,Ping 网关一会通一会断,广播把 CPU 打到 80%——问题就出在这根「备用线」上。

交换机天然会转发广播,一旦网络里存在物理环路,广播就会绕着环一圈一圈复制,越转越多。STP(Spanning Tree Protocol,生成树协议)就是专门解决这个问题的:把物理环路变成逻辑上的无环拓扑。

2. 环路到底怎么把网络拖垮

很多人不理解,多一根线而已,为什么就「全网瘫痪」?环路会引发三个连环问题:

  • 广播风暴:广播帧沿环路无限转发,每台交换机都收到重复帧,带宽被占满
  • MAC 地址表抖动:同一个 MAC 从不同端口反复学习,交换机的转发表不停更新,正常转发也被拖慢
  • 多帧复制:单播帧沿两条路径各送一份,接收端收到重复帧,上层协议报错

所以二层网络里「冗余链路」不是随便接的——接了就必须有 STP 兜底,否则冗余变事故。

3. STP 的核心思想:逻辑上砍掉一条路

STP 的思路一句话:物理链路保留,逻辑上把环「剪开」。所有交换机共同计算,选出一棵以根桥(Root Bridge)为根的树,环上的某一条链路被阻塞(Blocking),数据只走树上的路径,环路就消失了。

冗余链路没有浪费:主链路断了,STP 会自动把阻塞端口切换成转发,备用链路秒级顶上——这才是接两根线的意义。

4. 三个选举要素:桥 ID、路径开销、端口 ID

STP 做任何决定都要靠三个值来比大小:

  • 桥 ID(Bridge ID):优先级 + MAC 地址,优先级小的优先,相同比 MAC 小
  • 路径开销(Path Cost):到达根桥的路径累计开销,与带宽负相关(千兆比百兆开销小)
  • 端口 ID:同交换机内端口比较,端口号小的优先

记法:先比桥 ID 选根桥,再比开销选路径,最后比端口 ID 定角色。

5. 选举过程:四个角色各就各位

STP 的收敛就是一场全员选举,产生四种端口角色:

  • 根桥(Root Bridge):全网唯一,树根,由桥 ID 最小者当选
  • 根端口(Root Port):非根桥上「离根桥最近」的端口,每个非根桥只有一个
  • 指定端口(Designated Port):每条链路上「离根桥最近」的一端,负责转发
  • 阻塞端口(Blocked Port):既不是根端口也不是指定端口的端口,逻辑上被禁用

选完这四个角色,整个拓扑就是一棵无环树:根桥在顶部,其他交换机通过各自的根端口接入,多余的链路全部阻塞。

6. 端口状态机:从阻塞到转发要过五关

阻塞端口并不是「断电」,而是状态在五个阶段里切换:

Disabled(禁用)→ Blocking(阻塞)→ Listening(侦听) → Learning(学习)→ Forwarding(转发)

Blocking 只收 BPDU 不发数据;Listening 开始参与生成树计算;Learning 开始学 MAC 但不转发数据;只有 Forwarding 才真正转发帧。每个非转发状态默认 15 秒,从阻塞到转发最多要 30 秒,这就是 STP 慢的根源。

7. 收敛时间:为什么 STP 要 30-50 秒

标准 STP 收敛慢是出了名的:根桥挂了或链路断了,全网重新选举,Listening + Learning 各 15 秒,加起来 30 秒起步,如果根桥变更还要算上最大寿命(Max Age,默认 20 秒),实际等待可能 50 秒。

对办公网这 30 秒勉强能忍,但对金融、数据中心这类秒级必达的网络,50 秒断网等于事故。所以有了快速生成树。

8. RSTP:快速生成树把秒级收敛做成了

RSTP(Rapid Spanning Tree Protocol,802.1w)是 STP 的改良版,原理基本一样,但收敛从几十秒压到秒级,靠三招:

  • 端口角色增量:新增加备选端口(Alternate)和备份端口(Backup),角色确定后直接进入转发
  • 握手机制:指定端口通过 P/A(Proposal/Agreement)握手,一跳一跳快速进入转发,不用等计时器
  • 边缘端口:连接终端的端口直接标记边缘端口,秒进转发,终端插拔不再触发收敛

现在华为设备默认基本都是 RSTP(stp mode rstp),只在兼容老设备的场景才用标准 STP。

9. 华为配置实操:改模式、看选举

华为交换机上 STP 默认开启,常用操作是切换模式和查看状态:

system-view stp mode rstp // 切换为快速生成树 stp priority 0 // 把本机优先级调最低,抢根桥 quit display stp // 查看本机 STP 状态、根桥、端口角色 display stp brief // 一行一个端口的角色和状态 display stp interface GigabitEthernet0/0/1

确认角色的命令尤其重要:display stp brief 里能看到每个端口是 ROOT(根端口)、DESI(指定端口)还是 BLOCK(阻塞端口),配合拓扑图一眼看出环在哪里被剪断。

10. 排障清单:STP 相关常见问题

  • 根桥被抢:两台设备优先级相同且都没配 priority,MAC 小的当根桥,根桥位置不稳定 → 核心交换机显式配 stp priority 0
  • 端口角色不对:误把连接终端的端口配成非边缘端口,终端插拔反复触发收敛 → 配 stp edged-port enable
  • 环路仍在:新接的交换机 STP 没生效(被关掉或 mode 不对),广播风暴复现 → 检查 stp enable 和 mode
  • 收敛慢:老设备还在跑标准 STP → 全线切 RSTP,根桥稳定后收敛降到秒级
  • display stp 看不到 BPDU 计数:链路质量或光衰问题,物理层异常 → 查接口 up/down 状态

排障口诀:先看根桥在哪,再看端口角色,最后看 BPDU 计数。

11. 小结

STP 一句话:用选举把物理环路剪成逻辑无环树,冗余链路有了,广播风暴没了。核心就是桥 ID 选根、开销定路径、角色管转发,RSTP 把收敛压到秒级。前面把 ACL、NAT、DHCP 讲完了,园区网出口和接入基本齐了,这篇 STP 补上交换机的环路兜底,HCIA 的核心知识点就串成一条线了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询