ENSP Pro Lab笔记:配置STP/RSTP/MSTP(3)
3、配置RSTP
3.1 测试拓扑
3.2 配置步骤
3.2.1 配置RSTP模式
配置生成树协议工作在RSTP模式
[S-1]stp mode rstp[S-2]stp mode rstp[S-3]stp mode rstp[S-4]stp mode rstp
stp mode { mstp | rstp | stp }
缺省情况下,设备的生成树协议工作模式为MSTP(Multiple Spanning Tree Protocol)模式。
这里配置为RSTP模式。
3.2.2 配置根桥
配置根桥和备份根桥。一般将网络中性能高、网络层次高的设备指定为根桥和备份根桥。
[S-1]stp root primary[S-2]stp root secondary
primary: bridge pri设置为0
secondary: bridge pri设置为4096
其他保留缺省pri: 32768
角色 桥优先级(Bridge Priority) 说明 Primary Root(主根桥) 0 优先级最高,必定成为根桥(除非有别的桥也设为0且MAC更小)。 Secondary Root(备份根桥) 4096 当Primary不可达时,将成为新的根桥。 普通交换机(默认) 32768 默认值,不会主动竞争根桥。
3.2.3 配置路径开销
配置网络中所有设备使用相同的端口路径开销计算方法。
[S-1]stp pathcost-standard legacy[S-2]stp pathcost-standard legacy[S-3]stp pathcost-standard legacy[S-4]stp pathcost-standard legacy
stp pathcost-standard { dot1d-1998 | dot1t | legacy }
缺省情况下,路径开销值的计算方法为IEEE 802.1t标准。
在legacy模式下,1G端口cost缺省为20,10G端口cost缺省为2。
配置S-3上GE1/0/2的端口路径开销值为20000,使该端口的路径开销大于其他接口,从而实现将该端口阻塞。
[S-3]int ge1/0/2
[S-3-GE1/0/2]portswitch
[S-3-GE1/0/2]stp cost 20000
3.2.4 配置边缘端口
配置与PC相连的端口为边缘端口。
[S-2]int ge1/0/3
[S-2-GE1/0/3]stp edged-port enable
[S-2-GE1/0/3][S-3]int ge1/0/3
[S-3-GE1/0/3]stp edged-port enable
- 对于运行生成树协议的二层网络,与终端相连的端口不用参与生成树计算,这些端口参与计算会影响网络拓扑的收敛速度,而且这些端口的状态改变也可能会引起网络震荡,导致用户流量中断。此时,可以通过执行命令stp edged-port enable将当前端口配置成边缘端口,该端口便不再参与生成树计算,从而帮助加快网络拓扑的收敛时间以及加强网络的稳定性。
- 系统启动时,默认会启动RSTP和MSTP的边缘端口自动探测功能。端口由DOWN变UP、端口下使能STP或者全局使能STP时,会触发边缘端口自动探测功能。如果端口长时间(默认是5s)收不到BPDU报文,RSTP和MSTP会认为这个端口是边缘端口,将这个端口的属性配置为边缘端口。
注意事项
- 当前端口配置成边缘端口后,如果收到BPDU报文,交换设备会自动将边缘端口设置为非边缘端口,并重新进行生成树计算。
3.2.5 启用STP。
缺省情况下,设备上生成树协议处于使能状态,无需操作。在系统视图下执行命令stp enable可以启用STP/RSTP/MSTP功能。
3.2.6 配置根保护
在根桥S-1的指定端口GE1/0/1和GE1/0/2上配置根保护功能。
[S-1]int ge1/0/1
[S-1-GE1/0/1]portswitch
[S-1-GE1/0/1]stp root-protection
Info: The root protection function takes effect only on a designated port. Configuring root protection on a port that functions as the designated port in all instances is recommended.
[S-1-GE1/0/1]q[S-1]int ge1/0/2
[S-1-GE1/0/2]portswitch
[S-1-GE1/0/2]stp root-protection
Info: The root protection function takes effect only on a designated port. Configuring root protection on a port that functions as the designated port in all instances is recommended.
- 由于维护人员的错误配置或网络中的恶意攻击,根桥收到优先级更高的BPDU,会失去根桥的地位,重新进行生成树的计算。由于拓扑结构的变化,可能造成高速流量迁移到低速链路上,引起网络拥塞。
- 对于使能根保护功能的指定端口,其端口角色只能保持为指定端口。一旦使能根保护功能的指定端口收到优先级更高的BPDU时,端口状态将进入Discarding状态,不再转发报文。在经过一段时间(通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的BPDU,端口会自动恢复到正常的Forwarding状态。
注意事项
- 由于当前端口是指定端口时根保护便会生效,且根保护基于端口进行配置,所以建议当端口在所有实例中都是指定端口时配置根保护功能。
- 若在其他类型的端口上执行stp root-protection,根保护功能并不生效。
3.3 检查配置结果
3.3.1 查看RSTP全局信息
[S-1]dis stp
CIST Global Information: Mode :RSTPCIST Bridge :0.fae8-d2bf-0011Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20CIST Root/ERPC :0.fae8-d2bf-0011 / 0 (This bridge is the root)CIST RegRoot/IRPC :0.fae8-d2bf-0011 / 0 (This bridge is the root)CIST RootPortId :0.0BPDU-Protection :DisabledCIST Root Type :Primary rootTC or TCN received :33TC count per hello :0STP Converge Mode :NormalShare region-configuration :EnabledTime since last TC :0 days 0h:34m:2sNumber of TC :5Last TC occurred :GE1/0/1Topo Change Flag :0CIST Port Information: Port Id :1Port Name :GE1/0/1Port State :ForwardingPort Protocol :EnabledPort Role :Designated PortPort Priority :128Port Cost(Legacy) :Config=auto / Active=20Designated Bridge/Port :0.fae8-d2bf-0011 / 128.1Port Edged :Config=default / Active=disabledPoint-to-point :Config=auto / Active=trueTransit Limit :6 packets/s Protection Type :RootPort STP Mode :RSTPPort Protocol Type :Config=auto / Active=dot1sBPDU Encapsulation :Config=stp / Active=stpPortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 20TC or TCN send :33TC or TCN received :18TC Restriction :FalseBPDU Sent :1676TCN: 0, Config: 652, RST: 1024, MST: 0BPDU Received :21TCN: 16, Config: 3, RST: 2, MST: 0Last forwarding time:2025-10-09 14:28:27Message Age :0CIST Port Information: Port Id :2Port Name :GE1/0/2Port State :ForwardingPort Protocol :EnabledPort Role :Designated PortPort Priority :128Port Cost(Legacy) :Config=auto / Active=20Designated Bridge/Port :0.fae8-d2bf-0011 / 128.2Port Edged :Config=default / Active=disabledPoint-to-point :Config=auto / Active=trueTransit Limit :6 packets/s Protection Type :RootPort STP Mode :RSTPPort Protocol Type :Config=auto / Active=dot1sBPDU Encapsulation :Config=stp / Active=stpPortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 20TC or TCN send :36TC or TCN received :15TC Restriction :FalseBPDU Sent :1675TCN: 0, Config: 676, RST: 999, MST: 0BPDU Received :23TCN: 15, Config: 6, RST: 2, MST: 0Last forwarding time:2025-10-09 14:28:27Message Age :0CIST Port Information: Port Id :3Port Name :GE1/0/3Port State :DownPort Protocol :EnabledPort Role :Disabled PortPort Priority :128Port Cost(Legacy) :Config=auto / Active=200000Designated Bridge/Port :0.fae8-d2bf-0011 / 128.3Port Edged :Config=default / Active=disabledPoint-to-point :Config=auto / Active=falseTransit Limit :6 packets/s Protection Type :NonePort STP Mode :MSTPPort Protocol Type :Config=auto / Active=dot1sBPDU Encapsulation :Config=stp / Active=stpPortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 20TC or TCN send :0TC or TCN received :0TC Restriction :FalseBPDU Sent :0TCN: 0, Config: 0, RST: 0, MST: 0BPDU Received :0TCN: 0, Config: 0, RST: 0, MST: 0Message Age :0
提供的
display stp
输出显示设备 S-1 已经从之前的 STP 模式升级为 RSTP(快速生成树协议),这是一个显著的优化。以下是对当前生成树状态的全面分析与解读。
✅ 一、核心结论
S-1 仍然是当前网络的根桥(Root Bridge),且已启用 RSTP,网络收敛速度大幅提升。
✅ 二、全局信息分析(CIST Global Information)
字段 值 含义 Mode RSTP
已启用 快速生成树协议(IEEE 802.1w),收敛时间从 30~50 秒缩短至 1~3 秒 CIST Bridge 0.fae8-d2bf-0011
本机桥 ID:优先级 0
+ MACfae8-d2bf-0011
CIST Root/ERPC 0.fae8-d2bf-0011 / 0
本机即为根桥(到根桥开销为 0) CIST Root Type Primary root
手动配置为主根桥( stp root primary
)BPDU-Protection Disabled
BPDU 保护未开启 → 建议开启 TC or TCN received 33
共收到 33 次拓扑变更通知(来自下游设备) Number of TC 5
本设备主动发起过 5 次拓扑变更 Last TC occurred GE1/0/1
最近一次拓扑变化由 GE1/0/1 上报 Time since last TC 34m2s
上次 TC 发生在 34 分钟前 → 网络当前稳定
✅ 三、端口状态分析
🔹 GE1/0/1 和 GE1/0/2:RSTP 快速转发的指定端口
字段 值 说明 Port Role Designated Port 负责在该网段转发数据和 BPDU Port State Forwarding 正常转发流量 Port STP Mode RSTP 使用快速生成树协议 BPDU Sent ~1675 作为根桥持续发送 RST BPDU(RST: 1024 / 999) BPDU Received 分别为 21 和 23 收到下游设备的 RST BPDU(RST: 2)和 TCN TC or TCN received 18 和 15 收到来自下游的拓扑变更通知 → 说明下游设备有链路变动 Point-to-point Active=true 全双工链路,支持快速协商(Proposal/Agreement 机制) Protection Type Root 启用了 根保护(Root Protection) → 防止此端口被抢占为根端口 🛡️ 根保护(Root Protection)说明:
- 如果对端交换机发送更高优先级的 BPDU(试图成为根桥),此端口将被 自动阻塞(Discarding)
- 用于保护核心根桥地位,防止非法设备接入导致根桥漂移
🔹 GE1/0/3:端口 Down(未使用)
- 状态为
Down
,角色为Disabled Port
- 无 BPDU 收发
- 成本为
200000
→ 典型的禁用端口开销✅ 建议:若长期不用,可手动关闭以节省资源:
[S-1]interface GE1/0/3 [S-1-GigabitEthernet1/0/3] shutdown
✅ 四、RSTP 关键优势体现
1. 快速收敛(Fast Convergence)
- 传统 STP:需等待
Listening (15s) + Learning (15s)
→ 至少 30 秒- RSTP:通过 P/A(Proposal/Agreement)机制,点对点链路可在 几秒内 进入 Forwarding
✅ 当前
Point-to-point: Active=true
→ 满足快速收敛条件2. RST BPDU 替代 Config BPDU
- 查看
BPDU Sent
统计:
- RST: 1024 / 999 → 表示发送的是 Rapid STP BPDU
- 不再使用传统 STP 的 Config BPDU(仅 652 次)
- RSTP BPDU 每 2 秒发送一次,且 即使非根桥也可发送,加速检测
3. 端口角色更丰富
虽然输出未显示,但 RSTP 支持:
- Alternate Port:备份根端口(可快速切换)
- Backup Port:备份指定端口
3.3.2 为什么会有MSTP的信息
[S-1]dis stp region-configuration Operating configurationFormat selector :0Region name :fae8d2bf0011Revision level :0Instance VLAN 0 1 to 4094
[S-1]
您执行的命令
display stp region-configuration
显示了 S-1 交换机当前的 MSTP(多生成树协议)区域配置。从输出来看,虽然设备运行的是 RSTP(从之前的
dis stp
可知),但其底层配置实际上是 MSTP(Multiple Spanning Tree Protocol) 的一个特例 —— 即 只有一个 MST Instance(实例 0)映射所有 VLAN,这在行为上等同于 RSTP。
✅ 一、命令输出详解
字段 值 说明 Format selector 0
IEEE 802.1Q 标准格式,固定为 0 Region name fae8d2bf0011
MST 区域名称:
- 通常基于设备 MAC 自动生成
- 必须区域内所有设备一致 才能属于同一区域Revision level 0
修订版本号,默认为 0
- 若升级策略需更改,可手动递增Instance 0 VLAN 1 to 4094
所有 VLAN 都映射到 CIST(Common and Internal Spanning Tree),即实例 0
🔍 二、关键分析:这是 RSTP 还是 MSTP?
🤔 看似 MSTP,实为 RSTP 兼容模式
虽然命令叫
region-configuration
(MSTP 特有),但配置如下:Instance VLAN 0 1 to 4094
这意味着:
- 所有 VLAN 都属于同一个生成树实例(Instance 0)
- 没有创建额外的 MST Instance(如 Instance 1, 2...)
- 所有 VLAN 共享同一棵生成树拓扑
✅ 这种配置被称为 Single Instance STP over MSTP,即:
- 协议栈使用 MSTP 框架
- 但功能上等同于 RSTP
- 是华为/华三等设备的默认行为
🌐 三、MSTP、RSTP、STP 的关系回顾
协议 特点 与当前配置的关系 STP (802.1D) 单生成树,慢速收敛 ❌ 不适用 RSTP (802.1w) 快速收敛,单实例 ✅ 当前实际行为 MSTP (802.1s) 支持多实例,每个实例可映射不同 VLAN ⚠️ 框架存在,但未充分利用 🔔 注意:MSTP 向下兼容 RSTP 和 STP。当所有 VLAN 映射到 Instance 0 时,MSTP 就退化为 RSTP。
🧩 四、为什么显示 region-configuration?
因为现代交换机(如华为、H3C)的生成树协议统一使用 MSTP 引擎 作为基础:
- 即使只启用 RSTP,底层仍是 MSTP 实现
stp mode rstp
实际上是:
- 启用 MSTP 协议
- 所有 VLAN 映射到 Instance 0
- 不配置区域边界
所以您能看到
region-configuration
,这是正常的。
✅ 五、当前配置的意义
项目 状态 说明 生成树模式 RSTP(行为) 快速收敛,P/A 机制可用 VLAN 支持 所有 VLAN 共享同一拓扑 无法实现 VLAN 负载分担 区域名称 fae8d2bf0011
如果未来部署 MSTP,需确保其他设备相同 Instance 数量 仅 Instance 0 未启用多实例
3.3.3 当前MSTP信息解读
[S-1]dis stp region-configuration Operating configurationFormat selector :0Region name :fae8d2bf0011Revision level :0Instance VLAN 0 1 to 4094
[S-1][S-2]dis stp region-configuration Operating configurationFormat selector :0Region name :fae8d2bf0021Revision level :0Instance VLAN 0 1 to 4094[S-3]dis stp region-configuration Operating configurationFormat selector :0Region name :fae8d2bf0031Revision level :0Instance VLAN 0 1 to 4094
[S-3][S-4]dis stp region-configuration Operating configurationFormat selector :0Region name :fae8d2bf0041Revision level :0Instance VLAN 0 1 to 4094
[S-4][S-1]dis stp
CIST Global Information: Mode :RSTPCIST Bridge :0.fae8-d2bf-0011Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20CIST Root/ERPC :0.fae8-d2bf-0011 / 0 (This bridge is the root)CIST RegRoot/IRPC :0.fae8-d2bf-0011 / 0 (This bridge is the root)CIST RootPortId :0.0BPDU-Protection :DisabledCIST Root Type :Primary rootTC or TCN received :8TC count per hello :0STP Converge Mode :NormalShare region-configuration :EnabledTime since last TC :0 days 0h:11m:47sNumber of TC :6Last TC occurred :GE1/0/2Topo Change Flag :0[S-2]dis stp
CIST Global Information: Mode :RSTPCIST Bridge :4096.fae8-d2bf-0021Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20CIST Root/ERPC :0.fae8-d2bf-0011 / 20CIST RegRoot/IRPC :4096.fae8-d2bf-0021 / 0 (This bridge is the root)CIST RootPortId :128.1 (GE1/0/1)BPDU-Protection :DisabledCIST Root Type :Secondary rootTC or TCN received :10TC count per hello :0STP Converge Mode :NormalShare region-configuration :EnabledTime since last TC :0 days 0h:10m:9sNumber of TC :6Last TC occurred :GE1/0/1Topo Change Flag :0[S-3]dis stp
CIST Global Information: Mode :RSTPCIST Bridge :32768.fae8-d2bf-0031Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20CIST Root/ERPC :0.fae8-d2bf-0011 / 40CIST RegRoot/IRPC :32768.fae8-d2bf-0031 / 0 (This bridge is the root)CIST RootPortId :128.1 (GE1/0/1)BPDU-Protection :DisabledTC or TCN received :13TC count per hello :0STP Converge Mode :NormalShare region-configuration :EnabledTime since last TC :0 days 0h:12m:8sNumber of TC :6Last TC occurred :GE1/0/1Topo Change Flag :0[S-4]dis stp
CIST Global Information: Mode :RSTPCIST Bridge :32768.fae8-d2bf-0041Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20CIST Root/ERPC :0.fae8-d2bf-0011 / 20CIST RegRoot/IRPC :32768.fae8-d2bf-0041 / 0 (This bridge is the root)CIST RootPortId :128.2 (GE1/0/2)BPDU-Protection :DisabledTC or TCN received :7TC count per hello :0STP Converge Mode :NormalShare region-configuration :EnabledTime since last TC :0 days 0h:12m:23sNumber of TC :5Last TC occurred :GE1/0/2Topo Change Flag :0
这组命令输出非常典型,正好可以说明 MSTP(多生成树协议)在不同 Region 下的工作机制。
我们一步步来分析,让你清楚地看到:
当前网络的生成树结构是什么样的;
各个设备的角色(Root / Regional Root);
为什么它们虽然运行 MSTP,却表现为 RSTP 模式;
以及这种配置下的设计含义。
一、总体结构判断
你的 4 台设备分别是:
设备 Region Name 模式 说明 S-1 fae8d2bf0011 RSTP 整网 Root Bridge S-2 fae8d2bf0021 RSTP 区域内部根(Regional Root) S-3 fae8d2bf0031 RSTP 区域内部根 S-4 fae8d2bf0041 RSTP 区域内部根
二、从配置看:每台交换机都是独立 Region
在每台设备上:
Region name : fae8d2bf00xx Revision level : 0 Instance VLAN : 1 to 4094
可以看出:
每台交换机的 Region name 不同(
0011
,0021
,0031
,0041
),而 VLAN 实例映射完全相同(都把 VLAN 1-4094 归入 instance 0)。
这意味着:
它们虽然都运行 MSTP 协议,但并没有组成一个共同的 MST 区域。
因为 MSTP 判断“同一区域”的依据是:
Region name 一致;
Revision 一致;
VLAN–Instance 映射一致。
只要三者中有一个不一致,就会被视为不同的 MST 区域(Region)。
三、从各设备的 STP 状态看拓扑角色
[S-1]
CIST Root/ERPC : 0.fae8-d2bf-0011 / 0 (This bridge is the root)
👉 S-1 是整网的 CIST Root Bridge。
所有其他设备都以它为根来计算路径代价(External Root Path Cost, ERPC)。
[S-2]
CIST Root/ERPC : 0.fae8-d2bf-0011 / 20 CIST RegRoot/IRPC : 4096.fae8-d2bf-0021 / 0 (This bridge is the root) CIST RootPortId : GE1/0/1
ERPC = 20 → 说明到 S-1 的路径开销为 20。
它在自己的 Region 内是根(RegRoot),但在全网 CIST 层面不是。
RootPort 是 GE1/0/1,说明那条口指向上游(S-1)。
[S-3]
CIST Root/ERPC : 0.fae8-d2bf-0011 / 40 CIST RegRoot/IRPC : 32768.fae8-d2bf-0031 / 0 (This bridge is the root) CIST RootPortId : GE1/0/1
到根桥 S-1 的路径代价是 40,比 S-2 更远。
它在自己的小区域内是根。
[S-4]
CIST Root/ERPC : 0.fae8-d2bf-0011 / 20 CIST RegRoot/IRPC : 32768.fae8-d2bf-0041 / 0 (This bridge is the root) CIST RootPortId : GE1/0/2
路径代价同样是 20;
RootPort 在 GE1/0/2。
3.3.4 查看RSTP端口角色和端口状态
执行命令display stp brief,查看端口角色和端口状态。
[S-1]dis stp briefMSTID Port Role STP State Protection Cost Edged0 GE1/0/1 DESI forwarding root 20 disable 0 GE1/0/2 DESI forwarding root 20 disable
🔹 GE1/0/1
字段 值 解读 Role DESI
Designated Port(指定端口) STP State forwarding
正在转发数据 Protection root
启用了 根保护(Root Protection) Cost 20
到根桥的开销为 20(百兆链路) Edged disable
不是边缘端口 📌 说明:
- 作为根桥,S-1 的所有非阻塞端口默认都是 指定端口(DESI)
root
保护意味着:如果对端设备发送更高优先级 BPDU,此端口将被阻塞,防止非法根桥抢占
🔹 GE1/0/2
字段 值 解读 Role DESI
指定端口 STP State forwarding
正在转发 Protection root
启用根保护 Cost 20
百兆链路开销 Edged disable
非边缘端口 📌 与 GE1/0/1 完全一致,说明 S-1 通过这两个端口连接了两个下游交换机或网段。
✅ 三、关键结论
1. S-1 是根桥(Root Bridge)
- 所有端口角色为 DESI(指定端口)
- 在非根桥上,会有 ROOT(根端口) 或 ALTE(备份端口)
- 只有根桥的所有活跃端口都是 DESI
✅ 与
dis stp
中CIST Root/ERPC: ... / 0 (This bridge is the root)
一致
[S-2]dis stp briefMSTID Port Role STP State Protection Cost Edged0 GE1/0/1 ROOT forwarding none 20 disable 0 GE1/0/2 DESI forwarding none 20 disable 0 GE1/0/3 DESI forwarding none 20 enable
[S-2][S-3]dis stp briefMSTID Port Role STP State Protection Cost Edged0 GE1/0/1 ROOT forwarding none 20 disable 0 GE1/0/2 ALTE discarding none 20000 disable 0 GE1/0/3 DESI forwarding none 20 enable [S-4]dis stp briefMSTID Port Role STP State Protection Cost Edged0 GE1/0/1 DESI forwarding none 20 disable 0 GE1/0/2 ROOT forwarding none 20 disable
提供了 S-2、S-3、S-4 三台交换机的
display stp brief
输出,结合之前 S-1 是根桥 的信息,我们可以完整还原出当前网络的 二层生成树拓扑结构。
🎯 一、核心结论(全局视角)
✅ S-1 是整个网络的根桥(Root Bridge)
✅ 网络已启用 RSTP,收敛速度快
✅ 当前拓扑无环路,所有端口角色合理
✅ 存在一个 冗余链路被阻塞(S-3 的 GE1/0/2)
✅ 部分端口已正确配置为 边缘端口(Edged=enable)
🌐 二、逐设备分析
🔹 S-2:下游核心/汇聚交换机
MSTID Port Role STP State Protection Cost Edged0 GE1/0/1 ROOT forwarding none 20 disable0 GE1/0/2 DESI forwarding none 20 disable0 GE1/0/3 DESI forwarding none 20 enable
分析:
- GE1/0/1 是 ROOT 端口 → 说明它通过此端口连接到上游(S-1)
- GE1/0/2 和 GE1/0/3 是 DESI 端口 → 向下连接其他设备或网段
- GE1/0/3 是边缘端口 → 正确配置,连接终端设备(如 PC、服务器)
- 到根桥开销 = 20
✅ 推断:S-2 是 汇聚层设备,上行连接根桥区域,下行连接接入层。
🔹 S-3:接入层交换机(存在冗余链路)
MSTID Port Role STP State Protection Cost Edged0 GE1/0/1 ROOT forwarding none 20 disable0 GE1/0/2 ALTE discarding none 20000 disable0 GE1/0/3 DESI forwarding none 20 enable
分析:
- GE1/0/1 是 ROOT 端口 → 上行主链路,连接 S-2 或 S-4
- GE1/0/2 是 ALTE 端口,状态为 Discarding → 备份上行链路,被阻塞
- Cost = 20000
- 说明 S-3 双上行连接到上游设备,形成冗余
- GE1/0/3 是边缘端口 → 正确配置,连接终端
⚠️ 关键发现:S-3 的 GE1/0/2 被阻塞,防止环路
✅ 这是生成树的正常行为,确保无环拓扑
🔹 S-4:另一台汇聚/核心交换机
MSTID Port Role STP State Protection Cost Edged0 GE1/0/1 DESI forwarding none 20 disable0 GE1/0/2 ROOT forwarding none 20 disable
分析:
- GE1/0/2 是 ROOT 端口 → 上行连接到根桥 S-1
- GE1/0/1 是 DESI 端口 → 下行连接 S-3
- 到根桥开销 = 20
✅ 推断:S-4 也是汇聚层设备,与 S-2 对称部署
另外,需注意的是,802.1W(RSTP)最终形成的拓扑结构与 802.1D(STP) 算法计算出来的是完全相同的。
-
无论是 STP 还是 RSTP,它们最终都要确保网络无环。
-
因此,最终哪个端口转发、哪个端口阻塞,结果是一样的。
-
例如:STP 计算出端口 S-3的GE1/0/2 该阻塞,那么 RSTP 收敛完成后,该端口也是阻塞状态。也就是说,最终被阻塞的那个端口,和之前(STP)的位置完全一样。
进一步说明,两者的最终逻辑拓扑是一致的。区别不在于“谁阻塞”,而在于“多快算出谁该阻塞”。也就是说,不同的只是到达这一拓扑所经历的步骤。
-
STP 用的是 Listening → Learning → Forwarding 的三阶段定时等待过程(需要 30 秒以上);
-
RSTP 则引入了 Proposal / Agreement 握手机制,能在几百毫秒内完成收敛;
-
但二者的结果(哪个端口转发、哪个阻塞)是一样的。
3.3.5 抓包分析(RST BPDU)
S-2 GE1/0/2抓包:
(802.3/802.2 LLC Frame,RST BPDU)
Frame 1: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
IEEE 802.3 Ethernet Destination: 01:80:c2:00:00:00.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default).... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)Source: fa:e8:d2:bf:00:21.... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default).... ...0 .... .... .... .... = IG bit: Individual address (unicast)Length: 39Padding: 00000000000000[Stream index: 0]
Logical-Link ControlDSAP: Spanning Tree BPDU (0x42)0100 001. = SAP: Spanning Tree BPDU.... ...0 = IG Bit: IndividualSSAP: Spanning Tree BPDU (0x42)0100 001. = SAP: Spanning Tree BPDU.... ...0 = CR Bit: CommandControl field: U, func=UI (0x03)000. 00.. = Command: Unnumbered Information (0x00).... ..11 = Frame type: Unnumbered frame (0x3)
Spanning Tree ProtocolProtocol Identifier: Spanning Tree Protocol (0x0000)Protocol Version Identifier: Rapid Spanning Tree (2)BPDU Type: Rapid/Multiple Spanning Tree (0x02)BPDU flags: 0x7c, Agreement, Forwarding, Learning, Port Role: Designated0... .... = Topology Change Acknowledgment: No.1.. .... = Agreement: Yes..1. .... = Forwarding: Yes...1 .... = Learning: Yes.... 11.. = Port Role: Designated (3).... ..0. = Proposal: No.... ...0 = Topology Change: NoRoot Identifier: 0 / 0 / fa:e8:d2:bf:00:11Root Bridge Priority: 0Root Bridge System ID Extension: 0Root Bridge System ID: fa:e8:d2:bf:00:11Root Path Cost: 20Bridge Identifier: 4096 / 0 / fa:e8:d2:bf:00:21Bridge Priority: 4096Bridge System ID Extension: 0Bridge System ID: fa:e8:d2:bf:00:21Port identifier: 0x8002Message Age: 1Max Age: 20Hello Time: 2Forward Delay: 15Version 1 Length: 0
提供的是一段 Wireshark 抓包数据,显示的是一个 RSTP(快速生成树协议)的 RST BPDU 报文。与之前的传统 STP BPDU 相比,这表明网络已经升级为 Rapid Spanning Tree Protocol (IEEE 802.1w),具备快速收敛能力。
🔍 一、逐层解析
📦 1. 以太网帧头(IEEE 802.3 Ethernet)
字段 值 说明 Destination MAC 01:80:c2:00:00:00
IEEE 保留的 桥接协议组播地址,用于 STP/RSTP/BPDU 通信 Source MAC fa:e8:d2:bf:00:21
发送设备的 MAC 地址 → LG bit 1 本地管理地址(非出厂 MAC),可能是虚拟系统、堆叠或 VRRP 使用 → IG bit 0 单播地址 Length 39 数据部分长度(LLC + RSTP BPDU) Padding 全 0 填充至最小 64 字节以太网帧 ✅ 此帧为标准的 LLC 封装 RSTP BPDU,用于二层交换机间通信。
🔗 2. LLC(逻辑链路控制)层
字段 值 说明 DSAP 0x42 目的 SAP = Spanning Tree BPDU SSAP 0x42 源 SAP = Spanning Tree BPDU Control Field 0x03 Unnumbered Information (UI) 帧,用于无连接传输 📌 这是 传统 LLC 封装方式,尽管是 RSTP,仍使用 0x42 SAP 值。
⚡ 3. RSTP BPDU 内容(Rapid/Multiple Spanning Tree BPDU)
字段 值 含义 Protocol Identifier 0x0000
固定值,表示生成树协议 Protocol Version 2
RSTP(快速生成树),不是传统 STP (0) 或 MSTP (3) BPDU Type 0x02
Rapid/Multiple Spanning Tree BPDU(RST BPDU) BPDU Flags 0x7c
关键字段,包含端口状态和角色信息:
- Agreement: Yes
- Forwarding: Yes
- Learning: Yes
- Port Role: Designated
- Proposal: NoRoot Identifier 0 / 0 / fa:e8:d2:bf:00:11
根桥信息:
- 优先级 = 0
- MAC =fa:e8:d2:bf:00:11
→ S-1 是根桥Root Path Cost 20
发送者到根桥的路径开销为 20(百兆链路) Bridge Identifier 4096 / 0 / fa:e8:d2:bf:00:21
发送者自身桥 ID:
- 优先级 = 4096
- MAC =fa:e8:d2:bf:00:21
Port identifier 0x8002
端口 ID = 80.02
→ 端口号 2(如 GE1/0/2)Message Age 1
已转发一跳(从根桥发出后经一台设备) Max Age / Hello / FwDly 20 / 2 / 15
与 S-1 配置一致,说明网络统一 Version 1 Length 0
无传统 STP 兼容字段(RSTP 特性)
✅ 二、核心结论分析
🔹 1. 协议版本:RSTP(快速生成树)
Protocol Version: 2
BPDU Type: 0x02
(RST BPDU)- 支持 P/A(Proposal/Agreement)机制,可实现 1~3 秒内快速收敛
✅ 网络已优化,不再是传统 STP
🔹 2. 谁是根桥?
Root Identifier: 0 / 0 / fa:e8:d2:bf:00:11
- 根桥优先级 = 0
- MAC =
fa:e8:d2:bf:00:11
→ 正是 S-1 的桥 ID✅ S-1 是根桥,与
dis stp
输出一致
🔹 3. 谁发送了这个 BPDU?
Source MAC: fa:e8:d2:bf:00:21 Bridge Identifier: 4096 / 0 / fa:e8:d2:bf:00:21
- 发送者桥优先级 = 4096
- MAC =
fa:e8:d2:bf:00:21
✅ 这正是 S-2 的桥 ID(根据
dis stp brief
输出)
🔹 4. 发送者的角色和状态
Flag 值 含义 Port Role Designated 指定端口(负责转发 BPDU 和数据) Agreement Yes 已收到下游的 Agreement,可立即进入转发 Forwarding Yes 当前处于转发状态 Learning Yes 处于学习状态(RSTP 中 Learning 和 Forwarding 可同时出现) Proposal No 当前未发起 P/A 协商 ✅ 说明:S-2 的 GE1/0/2 端口是指定端口,并已通过 P/A 机制快速进入转发状态
3.4 RSTP与STP主要差异
3.4.1 端口角色差异
Spanning Tree Protocol (IEEE 802.1D) | Rapid Spanning Tree Protocol (IEEE 802.1W) |
Root Port | Root Port |
Designated Port | Designated Port |
Blocked Port | Alternate Port |
Backup Port |
说明:
- STP (IEEE 802.1D):包含三种端口角色:Root Port、Designated Port 和 Blocked Port。
- RSTP (IEEE 802.1W):在 STP 的基础上增加了两种新的端口角色:Alternate Port 和 Backup Port,以加快拓扑收敛速度。
🌐 RSTP 端口角色与功能总结
RSTP(IEEE 802.1w)相较于传统 STP(802.1D),最大变化之一是重新定义了端口角色(Port Roles),以支持更快速的收敛和更灵活的冗余路径管理。
RSTP 中的端口可能承担以下角色:
端口角色 | 定义 | 功能说明 | 对应 STP 状态 |
Root Port (RP) | 每个非根桥上离 Root Bridge 最优的端口 | 收到来自根桥的最优 BPDU,用于转发流量到根方向 | 相当于 STP 的 Root Port |
Designated Port (DP) | 在每个网段上负责发送 BPDU 的端口 | 用于转发流量远离根桥,保持段内通告一致性 | 相当于 STP 的 Designated Port |
Alternate Port (AP) | 到根桥的备用路径(second best root port) | 当前 Root Port 故障时,立即接管,无需重新计算;通常处于 Discarding 状态 | 相当于 STP 的 Blocked Port(但能快速激活) |
Backup Port (BP) | 对同一广播段存在两个 Designated Port 时的冗余端口 | 当一个端口已是 Designated Port 时,另一个成为 Backup Port,处于 Discarding 状态 | STP 中也会被阻塞,但无备用作用 |
Edge Port | 直接连接到终端设备(如主机、服务器)的端口 | 不会引起环路,也不参与 RSTP 协商,默认立即进入 Forwarding 状态 | STP 的 PortFast 端口 |
🔁 Alternate Port vs Backup Port
对比项 | Alternate Port | Backup Port |
作用方向 | 到 Root Bridge 的备用路径 | 到同一网段的备用路径 |
替代对象 | 替代当前 Root Port | 替代 Designated Port |
触发条件 | 当前 Root Port 失效 | 同一段存在两个 Designated Port |
状态 | Discarding(等待激活) | Discarding(永远不激活,除非主DP失效) |
功能定位 | “第二根通往根桥的上行链路” | “冗余的本地连接” |
示意理解:
- Alternate Port 是“备胎上行”,指向根桥;
- Backup Port 是“本地冗余”,位于同一网段中。
⚡ Edge Port 特性
- Edge Port 直接连接终端设备,不会参与 BPDU 交换;
- 不会引发拓扑变化(TC);
- 默认即处于 Forwarding 状态;
- 一旦检测到 BPDU(例如误接交换机),会自动转为普通端口参与 RSTP(这称为 auto-edge detection)。
🧭 小结:RSTP端口角色与状态的关系
角色 | 状态 | 转换机制 |
Root Port | Forwarding | 通过 Proposal/Agreement 机制快速转发 |
Designated Port | Forwarding | 发送 Proposal,等待下游 Agreement |
Alternate / Backup | Discarding | 待命备用 |
Edge Port | Forwarding | 直接激活,无 BPDU 参与 |
3.4.2 端口状态差异
Spanning Tree Protocol (IEEE 802.1D) | Rapid Spanning Tree Protocol (IEEE 802.1W) |
Forwarding | Forwarding |
Learning | Learning |
Listening | Discarding |
Blocking | |
Disabled |
说明:
- STP(IEEE 802.1D) 定义了 5 种端口状态:
- Forwarding:转发数据帧,学习 MAC 地址。
- Learning:学习 MAC 地址,但不转发数据。
- Listening:监听 BPDU,准备进入 Learning 状态。
- Blocking:阻塞数据转发,防止环路。
- Disabled:端口被手动关闭或物理故障。
- RSTP(IEEE 802.1W) 将上述状态简化为 3 种:
- Forwarding:正常转发数据。
- Learning:学习 MAC 地址。
- Discarding:合并了 STP 中的 Blocking、Listening 和 Disabled 状态,统称为“丢弃”状态(不转发也不学习)。
📌 关键改进:RSTP 通过减少状态数量和引入更智能的状态转换机制,实现了更快的收敛速度(从数秒到亚秒级)。
🔹1️⃣ 标准 STP(IEEE 802.1D)端口状态:5个
状态 | 作用说明 |
Disabled | 端口被管理员关闭,不参与生成树计算,也不转发流量。 |
Blocking | 阻塞状态,不转发用户数据,只接收 BPDU。防止环路。 |
Listening | 监听状态,开始参与 BPDU 交换,学习拓扑但不学习 MAC 地址。 |
Learning | 学习状态,学习 MAC 地址表,但仍不转发数据帧。 |
Forwarding | 转发状态,既学习 MAC,又转发用户流量。 |
📉 问题:
- 状态转换依赖 Forward Delay 定时器(每阶段15s)。
- 收敛慢(30s 起步)。
🔹2️⃣ RSTP(IEEE 802.1w)端口状态:3个
RSTP 将 STP 的 5 个状态简化为 3 个:
RSTP状态 | 对应STP状态 | 功能说明 |
Discarding | Blocking + Listening + Disabled | 不转发用户数据,不学习 MAC,只接收 BPDU。 |
Learning | Learning | 学习 MAC 表,为转发做准备。 |
Forwarding | Forwarding | 转发用户数据并学习 MAC 表。 |
👉 简化的意义:
- STP 中 “Blocking / Listening / Disabled” 三个状态行为相似(都不转发流量,只处理BPDU),
因此在 RSTP 中统一为 Discarding。
- 这样减少状态数量,有利于状态机实现更简单、更快速。
🔹3️⃣ 状态行为总结
功能项 | Discarding | Learning | Forwarding |
转发用户流量 | ❌ 否 | ❌ 否 | ✅ 是 |
学习MAC地址 | ❌ 否 | ✅ 是 | ✅ 是 |
处理BPDU | ✅ 是 | ✅ 是 | ✅ 是 |
参与拓扑变化 | ✅ 是 | ✅ 是 | ✅ 是 |
🟢 重点:
即使处于 Discarding 状态的端口,仍然“监听 BPDU(listen for BPDU)”,
因为它必须继续参与生成树计算,判断是否可以切换状态。
🔹4️⃣ 为什么这能加快收敛
- RSTP 不再需要从 “Blocking → Listening → Learning → Forwarding” 依次等待定时器;
- 端口只需在 “Discarding → Learning → Forwarding” 三个阶段中直接完成同步;
- 配合 Proposal/Agreement 机制,就能实现毫秒级状态转换。
🔹5️⃣ 总结一句话
RSTP 将 STP 的 5 个端口状态简化为 3 个,
用 Discarding 统一了阻塞与监听状态,
实现了更精简的状态机和更快的收敛速度。
3.4.3 RSTP 链路类型(Link Type)
RSTP 在 IEEE 802.1w 标准中引入了一个新的概念:链路类型(Link Type)。
链路类型帮助协议判断端口是否可以进行快速状态转换(rapid transition),也就是能否直接从 Discarding 跳到 Forwarding,而不必经过 802.1D 的 Listening、Learning 两个阶段。
🔹链路类型分类
RSTP 将链路分为两种类型:
链路类型 | 英文名称 | 特征 | 举例 | 是否支持快速转发 |
点到点链路 | Point-to-Point Link | 该链路是**全双工(Full Duplex)**的,只连接两台设备 | 交换机 ↔ 交换机、交换机 ↔ 路由器 | ✅ 支持快速状态转换(Proposal/Agreement机制) |
共享链路 | Shared Link | 该链路是**半双工(Half Duplex)**的,可能连接多个设备 | 交换机 ↔ Hub(集线器) | ❌ 不支持快速状态转换,使用传统的STP定时器机制 |
🔸解释与原因
- 点到点链路 (P2P)
- 这种链路仅有两个设备,BPDU 交互是“一对一”的。
- 当一端发送 Proposal BPDU 时,对端能立即回复 Agreement,完成握手。
- 因此能在几百毫秒内完成状态同步,快速进入 Forwarding。
- 共享链路 (Shared)
- 半双工链路上可能存在多个设备(例如 Hub 场景),BPDU 报文可能被冲突或延迟。
- 无法保证 Proposal / Agreement 的双向确认,因此 RSTP 在此类链路上会退化为传统 STP 模式,通过定时器等待(2 × Forward Delay)。
🔸现实意义
在现代网络中,几乎所有链路都是全双工的,因此:
绝大多数链路在 RSTP 下都被视为 Point-to-Point。
这意味着:
- 网络几乎所有端口都能使用 快速收敛(rapid transition);
- 只有极少数老旧端口或特殊的半双工端口(例如连接旧设备或集线器)才会退回慢速收敛模式。
🔸总结一句话
在 RSTP 中, 只有点到点链路(全双工)才支持快速状态转换。
共享链路(半双工)由于可能存在多个节点,无法安全使用 Proposal/Agreement 机制,因此仍按传统 STP 流程收敛。
3.4.4 RSTP 的拓扑变化检测机制
🔹传统 STP 的做法(802.1D)
在标准生成树协议(STP)中,拓扑发生变化时(比如某端口UP/DOWN),
需要经过多步的“逐级上报”流程:
- 检测到变化的交换机(例如 Switch D) → 发送 TCN(Topology Change Notification)BPDU 给它的上游设备。
- 上游设备收到后继续向上转发 TCN。
- 一直转发到 根桥(Root Bridge)。
- 根桥收到 TCN 后,才开始在整个网络中广播 TC(Topology Change)BPDU 通告所有设备。
➡️ 这种方式的缺点:
- 通知过程是“逐级汇报再逐级下发”,传播路径长。
- 每一跳都需要等待确认,因此拓扑变化检测非常慢。
- 全网更新 MAC 表 Aging 时间的反应也会延迟。
🔹RSTP 的改进(802.1w)
在 RSTP 中,这个过程被彻底简化:
- 检测到变化的交换机(例如 Switch D)
—— 不再发 TCN,而是直接在它自己的 BPDU 中设置 TC 标志位(TC bit)。
- 它将此信息直接向所有邻居设备广播。
- 邻居收到带有 TC 位的 BPDU 后:
- 立即更新自身的 MAC 表老化计时(将 Aging time 缩短为 15 秒)。
- 并在自己发出的 BPDU 中也设置 TC 位,继续向外传播。
➡️ 这是一种单步广播式机制(one-step process),不再经过 Root Bridge。
🔸效果
- 通知传播更快:只要相邻交换机能通信,TC 信息几乎瞬时在全网扩散。
- 响应更及时:设备能立即更新 MAC 地址表,避免旧路径数据包泛洪。
- 不再需要 TCN BPDU:RSTP 完全用带 TC 标志的普通 BPDU 代替 TCN 机制。
🔹整体比较
项目 | STP (802.1D) | RSTP (802.1w) |
拓扑变化通告 | 逐级汇报 + 根桥广播 | 直接邻居广播 |
使用报文 | TCN BPDU + TC BPDU | 普通 BPDU 带 TC 位 |
通告路径 | 多跳(经Root Bridge) | 单步全网泛洪 |
MAC 表更新 | Root Bridge发TC后触发 | 邻居立即触发 |
收敛速度 | 慢 | 快(几百毫秒内完成) |
🔸举例说明(Switch D 触发变化)
STP:
Switch D → Switch C → Root Bridge → 全网广播 → 所有交换机更新
RSTP:
Switch D → 向所有邻居发送带 TC 位的 BPDU → 所有邻居同步传播 → 全网更新
🔹总结一句话
在 RSTP 中,拓扑变化信息不再通过根桥集中转发,
而是由检测变化的交换机 直接广播给全网,
实现了**一步完成(one-step process)**的快速拓扑变化检测机制。
3.4.5 RSTP 快速收敛机制
BPDU Timers | Spanning Tree Protocol (IEEE 802.1D) | Rapid Spanning Tree Protocol (IEEE 802.1W) |
Max Age | 20 | 6 (3 x Hello time) |
Delay Forward for the Listening State | 15 | 0 |
Delay Forward for the Learning State | 15 | 0 |
Total | 50 | 6 |
说明:
- Max Age:BPDU 的最大生存时间(单位:秒)。
- Delay Forward:端口在监听和学习状态下的延迟转发时间(单位:秒)。
- Total:收敛所需总时间,即从拓扑变化到端口进入转发状态的时间。
该表对比了传统 STP(IEEE 802.1D)与快速生成树协议 RSTP(IEEE 802.1W)在收敛时间上的显著差异,RSTP 通过减少定时器值实现了更快的网络收敛。
🔹1️⃣ STP 的收敛缺陷
在传统 STP(IEEE 802.1D) 中,
拓扑发生变化时(例如链路断开或端口状态变化),
网络收敛依赖 定时器(Timers),因此非常慢。
主要涉及两个定时器:
定时器 | 默认值 | 作用 |
Forward Delay | 15 秒 | 控制端口从阻塞到转发的过渡过程 |
Max Age | 20 秒 | 控制 BPDU 信息的老化时间,用于检测链路故障 |
在 STP 中,当一个端口要从 Blocking → Forwarding 时,
必须经历两个阶段,每个阶段等待 15 秒:
- Listening(监听)→ 学习网段拓扑
- Learning(学习)→ 学习 MAC 地址表
📉 总计:
15s + 15s = 30 秒延迟
这就是为什么 STP 收敛通常需要 30~50 秒,甚至更久。
🔹2️⃣ RSTP 的改进:去定时器化(Timer-less Convergence)
RSTP(IEEE 802.1w) 彻底摒弃了这些依赖等待的定时器机制。
它不再让端口“傻等”Forward Delay,而是采用了一种基于握手的状态同步机制:
💡 Proposal / Agreement + Synchronization(提议 / 同意 + 同步)
也就是说:
- 当一个交换机检测到拓扑变化(例如某端口成为新的指定端口);
- 它不再等待 15s;
- 而是立即向邻居发送 Proposal BPDU;
- 邻居验证拓扑一致后,立即回复 Agreement;
- 双方立刻进入 Forwarding 状态。
整个过程完全不依赖定时器,靠逻辑确认完成收敛。
🔹3️⃣ 收敛时间对比
协议 | 收敛方式 | 依赖定时器 | 收敛时间 |
STP (802.1D) | Listening + Learning | ✅ 是 | ⏱️ 30 秒左右 |
RSTP (802.1w) | Proposal/Agreement 握手同步 | ❌ 否 | ⚡ 小于 6 秒(通常 < 1 秒) |
✅ 在多数全双工点对点链路中,RSTP 收敛可以在 1 秒内完成。
🔹4️⃣ 根桥不再使用定时器(Root no longer uses timers)
在 RSTP 中,即使是根桥(Root Bridge),
也不再依靠 Forward Delay 或 Max Age 去触发状态转换。
它通过对每个端口运行 Proposal/Agreement 流程实现即时同步。
只有在特殊情况下(如链路非点对点、对端不支持RSTP等),
RSTP 才会退回兼容模式,临时使用传统定时器机制。
🔹5️⃣ 总结一句话
🔸 在 RSTP 中,端口状态切换不再等待 15 秒定时器,
而是通过 Proposal/Agreement 握手机制 实时完成同步,
使得网络拓扑能在 几秒甚至亚秒级时间内收敛。
3.4.6 问题:RSTP中,TC是不是有可能和Proposal一起发送
非常好的问题 👍——这个细节涉及 RSTP中TC(Topology Change)与Proposal机制之间的交互时机,很多人容易混淆。我们来仔细理清楚:
🌐 一、先明确两个机制的目的
机制 | 触发原因 | 作用范围 | 是否影响收敛 |
---|---|---|---|
Proposal / Agreement | 端口角色变化(尤其是新Root/Designated Port 上线) | 点对点链路之间 | ✅ 直接加速收敛 |
Topology Change(TC) | 拓扑变化(端口Up/Down、角色切换等) | 全网 | ⚠️ 通知各桥更新MAC老化表等状态 |
这两个机制都与拓扑变化相关,但作用不同:
-
Proposal/Agreement 是用于“同步状态”,确保新路径能立刻生效;
-
TC机制 是用于“通知拓扑变化”,让全网进行收敛后的清理。
⚙️ 二、TC的触发与传播时机
在 RSTP 中,TC 的处理方式比 STP 快得多:
✅ TC 的触发条件(由非边缘端口触发):
-
端口 进入 Forwarding 状态;
-
或端口 从 Forwarding 退出(Down、被阻塞等)。
✅ TC 的传播方式:
-
本地桥在该端口上置位 TC 标志(TC bit);
-
在该端口发送的所有 BPDU 中,都携带此 TC 标志;
-
邻居桥在收到带 TC 标志的 BPDU 后:
-
将其自身所有非边缘端口的 MAC 表老化时间缩短为Forward Delay(15s);
-
同时继续转发带 TC 标志的 BPDU 给下游;
-
传播时间一般仅需一次BPDU交互(≈1秒内)。
-
⚡ 三、TC 与 Proposal 的关系
现在回到你的问题:
TC 是不是可能和 Proposal 一起发送?
答案是:
🟨 在部分场景中是“可以同时携带”的,但语义上是独立的。
让我们拆解一下:
📍 场景1:端口刚刚由阻塞变为指定端口(Designated Port)
-
该端口要发送 Proposal(告诉邻居我准备转发流量了);
-
同时它的状态由 Discarding → Forwarding;
-
根据 RSTP 规则,这本身就是一个拓扑变化(TC)事件;
-
因此,在这个 BPDU 中,Proposal bit 与 TC bit 都可能被置位。
👉 也就是说,Proposal 和 TC 可以在同一帧 BPDU 中同时存在,
但它们的逻辑功能不同:
-
Proposal bit:发起同步过程;
-
TC bit:告诉对方拓扑有变化,需要更新MAC老化。
📍 场景2:端口因失效或阻塞退出 Forwarding
-
本桥触发拓扑变化;
-
会在下一个 BPDU 中携带 TC bit;
-
不涉及 Proposal,因为没有角色建立过程。
📍 场景3:上级端口恢复、根桥变动
-
新的根桥上线时,会对下游发送 Proposal;
-
同时,由于拓扑整体变化,也会在BPDU中带上 TC bit;
-
下游桥收到后,既需进入 Agreement 同步,又会进行 TC 处理。
🧩 四、总结要点表
项目 | Proposal | TC | 是否可能同帧携带 |
---|---|---|---|
触发条件 | 端口角色变化(尤其是Designated) | 端口Forwarding状态变化 | ✅ 是(视场景) |
作用对象 | 相邻桥 | 整个拓扑 | - |
目的 | 建立新路径的同步与收敛 | 通知全网清理旧路径 | - |
典型时机 | 新链路启用、Root变化 | 端口Up/Down、桥切换 | - |
🧠 五、总结一句话:
Proposal/Agreement 解决“怎么立刻收敛”,
TC 解决“收敛后通知别人”。
二者可以同帧出现,但语义互不干扰。