第18篇:RSTP 快速生成树——边缘端口与 P/A 机制

一、写在前面

前两篇我们学了 STP(802.1D),它有一个致命缺陷——收敛太慢

  • 端口从 Up 到 Forwarding:50 秒
  • 链路故障切换:30~50 秒
  • 对于现代网络,断网 50 秒就足够让业务投诉爆炸了

RSTP(Rapid Spanning Tree Protocol,802.1w) 就是来解决这个问题的。它把收敛时间从 50 秒缩短到 1 秒以内(某些场景甚至 <1 秒)。


二、RSTP 的核心改进

对比项 STP(802.1D) RSTP(802.1w)
端口状态 5 种 3 种
端口角色 3 种 4 种
收敛速度 30~50 秒 1~3 秒(典型)
拓扑变更机制 靠计时器等待 主动协商(P/A 机制)
边缘端口 无专门概念 有(edged-port)

三、RSTP 的 3 种端口状态

RSTP 把 STP 的 5 种状态简化为 3 种:

RSTP 状态 对应 STP 状态 是否转发数据 是否学习 MAC
Discarding Disabled / Blocking / Listening
Learning Learning
Forwarding Forwarding

丢弃态(Discarding) 合并了 STP 的 3 种非转发状态,不再区分 Disabled、Blocking、Listening。


四、RSTP 的 4 种端口角色

角色 说明 STP 有吗?
Root Port(根端口) 到根桥最近的端口 ✅ 有
Designated Port(指定端口) 每条链路上离根桥最近的端口 ✅ 有
Alternate Port(替代端口) 根端口的备份 ✅ 有(原 Blocking)
Backup Port(备份端口) 指定端口的备份 新增

Alternate Port vs Backup Port

Alternate(替代):
  SW1 ── RootPort ── SW2
        └── Alternate ← 另一条到 SW2 的线,根端口出问题后顶上

Backup(备份):
  SW1 ── Designated ── SW2
        └── Backup    ← 同一个交换机上到同一个网段另一条线

五、RSTP 提速的核心——P/A 机制

5.1 P/A = Proposal / Agreement(提议/同意)

这是 RSTP 比 STP 快几十倍的核心原因

5.2 P/A 流程

【场景】新链路建立,两端快速协商

交换机 A                        交换机 B
    │                              │
    │  --- Proposal  (提议) --->    │
    │  提议让自己成为指定端口       │
    │                              │
    │  A 将自己的非边缘端口置为     │
    │  Discarding(临时阻塞)       │
    │                              │
    │  <--- Agreement (同意) ---    │
    │  同意 A 为指定端口            │
    │                              │
    │  A 立即进入 Forwarding        │
    │  B 知道自己只能做根端口        │
    │  进入 Forwarding              │
    │                              │
    │  总计:约 1~3 秒              │
    │  对比 STP:50 秒              │

5.3 P/A 成功的前提

P/A 机制能加速的条件是:

  1. 链路是点对点(P2P) — 交换机之间直接连接
  2. 两端端口都是全双工模式 — 半双工不行
  3. 两端都运行 RSTP

如果不满足这些条件,RSTP 会回退到 STP 的等待计时器方式(30~50 秒)。


六、边缘端口(Edge Port)

6.1 什么是边缘端口

边缘端口是连接终端设备(PC、服务器、打印机)的端口

RSTP 对边缘端口的特殊处理:

特性 STP RSTP
边缘端口接 PC 也要 30 秒才能转发 立即进入 Forwarding
收到 BPDU 后 无特殊处理 失去边缘属性,变为普通端口
# 配置边缘端口
[SW1-GigabitEthernet0/0/1] stp edged-port enable

# 查看
[SW1] display stp interface gigabitethernet 0/0/1
Port Edged : Enable    ← 边缘端口

6.2 边缘端口的意义

PC 开机 → 网卡 UP → 交换机端口 UP
    │
    如果是 STP:等待 50 秒才能上网
    如果是 RSTP + 边缘端口:立即可以通信
    │
    用户感知:
    STP:"我插了网线等了一分钟才通"
    RSTP:"插上就能用"

七、RSTP 链路故障切换

7.1 根端口故障

正常状态:
  SW1 的根端口在 Port A(Forwarding)
  SW1 的 Alternate 端口在 Port B(Discarding)

Port A 故障:
  1. SW1 检测到 Port A 链路 Down(硬件检测,毫秒级)
  2. 立即将 Port B 从 Discarding → Forwarding
  3. 切换时间:~0.5 秒

对比 STP:STP 需要等 Max Age(20 秒)→ Listening(15 秒)→ Learning(15 秒)= 50 秒。RSTP 不用等!

7.2 指定端口故障

SW1 的 Designated Port 故障
→ 对端连接该端口的交换机检测到
→ 其 Backup 或 Alternate 端口立即接管
→ 秒级切换

八、RSTP 拓扑变更机制

STP 的拓扑变更(TC)靠计时器慢慢传,RSTP 做了优化:

对比 STP RSTP
TC 通知方式 逐跳转发,延迟大 从根桥直接泛洪
MAC 表刷新 等待 Forward Delay 收到 TC 立即清除

RSTP 的 TC 处理:

1. 检测到拓扑变化的交换机
2. 向所有端口泛洪 TC 置位的 BPDU
3. 收到 TC BPDU 的交换机立即清除 MAC 表中非边缘端口条目
4. 快速适应新拓扑

九、配置命令

# 全局启用 RSTP
[SW1] stp mode rstp

# 配置边缘端口
[SW1-GigabitEthernet0/0/1] stp edged-port enable

# 配置端口为点对点链路(一般自动检测,全双工自动为 P2P)
[SW1-GigabitEthernet0/0/1] stp point-to-point force-true

# 配置优先级
[SW1] stp priority 4096    ← 想让这台成为根桥

# 查看 RSTP 状态
[SW1] display stp brief
Bridge ID    : 32768.00e0-fc12-3456
Root Bridge  : 4096.00e0-fc00-0001
STP Mode     : RSTP            ← 确认是 RSTP

Port                Role         State        Cost
GigabitEthernet0/0/1   DESI         FORWARDING     4
GigabitEthernet0/0/2   ROOT         FORWARDING     4
GigabitEthernet0/0/3   ALTE         DISCARDING     4   ← RSTP 用 Discarding

十、STP vs RSTP 总结

特性 STP RSTP
标准 802.1D 802.1w
收敛时间 30~50 秒 1~3 秒(多数场景)
端口状态 5 种(Disable/Blocking/Listening/Learning/Forwarding) 3 种(Discarding/Learning/Forwarding)
端口角色 3 种(Root/Designated/Blocking) 4 种(Root/Designated/Alternate/Backup)
协商方式 被动等待计时器 主动 P/A 提议/同意
边缘端口 有,可立即转发
链路故障检测 等待 BPDU 超时(20s) 硬件检测 + BPDU 超时
拓扑变更 逐跳,慢 根桥泛洪,快
向后兼容 兼容 STP(有 STP 设备时回退)

十一、思考

  1. RSTP 把 STP 的 5 种端口状态合并成了几种?是哪几种?
  2. P/A 机制的核心思想是什么?为什么能让收敛快几十倍?
  3. 边缘端口有什么作用?为什么 PC 接 RSTP 交换机能"插上就用"?
  4. RSTP 的收敛时间一般是多久?在什么情况下会回退到 STP 的收敛速度?
  5. Alternate Port 和 Backup Port 有什么区别?各在什么场景下出现?
  6. 企业网络中有几台老旧交换机只支持 STP,接了一台新交换机支持 RSTP,RSTP 会怎么处理?

下篇预告:第19篇《MSTP多实例生成树_VLAN与实例的映射》——学习MSTP多实例生成树的原理和VLAN与实例的映射配置。