Skip to content

STP 概述 (Overview)

1. 为什么需要 STP?

1.1 单点故障与冗余设计

在企业网络中,单点故障(Single Point of Failure)是不可接受的风险。如果核心交换机与接入交换机之间只有一条物理链路,一旦线路断裂或端口损坏,整个接入层的业务将中断。

为了提高可靠性,网络工程师通常会在交换机之间部署冗余链路

PC
接入交换机
核心交换机

1.2 冗余带来的问题:二层环路

虽然物理冗余解决了单点故障问题,但如果交换机对数据帧的处理没有额外的控制机制,就会形成二层环路 (Layer 2 Loop)

当环路存在时,会引发以下三个严重问题:

(1) 广播风暴 (Broadcast Storm)

交换机的基本转发原理是:收到广播帧,向除接收端口外的所有端口泛洪。 在环路中,一个广播帧(如 ARP Request)会被交换机无限循环转发,且每一跳都可能产生新的复制帧。

PC
SW1
SW2
B
B
B
B
B
后果: 广播帧不断在环路中复制和泛洪,导致风暴。

(2) MAC 地址表震荡 (MAC Address Flapping)

交换机通过源 MAC 地址学习来构建 MAC 地址表。在环路中,同一个源 MAC 地址的数据帧会从不同的接口不断到达交换机。

  • 现象:交换机上一会儿学到 MAC AGi0/0/1,下一毫秒又学到 MAC AGi0/0/2
  • 后果:交换机无法正确转发单播数据,导致丢包;CPU 忙于更新 MAC 表,性能下降。

(3) 多帧复制 (Duplicate Frames)

由于存在多条路径,目的主机可能会收到同一个数据帧的多个副本。这会导致上层协议(如 TCP)处理混乱或应用层错误。


2. STP 的解决方案

STP (Spanning Tree Protocol,生成树协议) 的核心思想是:在物理有环的拓扑中,逻辑上阻塞(Block)特定的端口,构建一个无环的树形逻辑拓扑。

  • 物理上:依然存在物理连线(提供物理冗余)。
  • 逻辑上:某些接口被 STP 协议置为“阻塞”状态,不转发业务数据(消除环路)。
  • 故障切换:当主链路故障时,STP 会感知拓扑变化,自动将阻塞端口恢复为转发状态(恢复连接)。

2.1 树形结构示例

想象一个由三台交换机组成的三角形拓扑:

  1. 选举根节点 (Root Bridge):整个网络只能有一个“树根”。
  2. 确定路径:所有非根交换机寻找去往树根的“最短路径”。
  3. 阻塞端口:剩下的冗余路径端口被置为 Blocking(阻塞)状态,作为备份。
SW1 (Root Bridge)
SW2
SW3

3. STP 协议家族演进

随着网络技术的发展,STP 也经历了多个版本的迭代:

协议版本IEEE 标准描述收敛速度特点
STP802.1D传统生成树慢 (30s - 50s)所有 VLAN 共享一棵树 (CST),收敛慢,拓扑变更时影响大。
RSTP802.1w快速生成树快 (秒级/毫秒级)引入 P/A 机制,增加边缘端口,不仅兼容 STP,还大幅提高了收敛速度。
MSTP802.1s多实例生成树将 VLAN 映射到实例 (Instance),实现负载分担 (Load Balancing)。华为设备默认运行模式。

3.1 华为设备支持情况

华为交换机默认运行 MSTP 模式,但完全兼容 STP 和 RSTP。 你可以通过命令修改模式:

bash
[Huawei] stp mode ?
  mstp  Multiple Spanning Tree Protocol (MSTP) mode
  rstp  Rapid Spanning Tree Protocol (RSTP) mode
  stp   Spanning Tree Protocol (STP) mode

🤖 AI伴学

二层环路带来的三个后果(广播风暴、MAC地址表震荡、多帧复制)是考试常客。如果你觉得文字描述不够形象,可以问 AI:

"我正在学习网络二层环路的危害。请用'一个快递员在没有出口的环形小区里送同一个包裹'的搞笑故事,来比喻什么是广播风暴和 MAC 地址表震荡。"

想了解更多利用 AI 学习交换技术的技巧,请查看 实战任务:交换技术的AI辅助