STP选举和运作过程 | AI生成和翻译
问题:生成树协议 (STP) 的选举和操作过程是什么?为什么提供的摘要令人困惑或难以理解?
回答:
生成树协议 (STP) 是一种第 2 层协议,通过创建无环逻辑拓扑来防止具有冗余链路的以太网网络中出现环路。提供的摘要大部分是准确的,但由于过度简化和细微不准确(例如,所有交换机不会每 2 秒连续发送 BPDU 声称自己是根——只在初始收敛或发生变化时),可能会令人困惑。以下是经典 IEEE 802.1D STP 过程的清晰、逐步解释:
1. 初始状态和 BPDU 交换
- 当交换机启动或新的链路联机时,每个交换机最初都假定自己是根桥。
- 每个交换机都会通过所有活动端口发送配置 BPDU(桥协议数据单元)。这些 BPDU 包含:
- 发送者的桥 ID (BID):优先级(默认 32768)+ MAC 地址(越低越好)。
- 假定的根桥 ID(最初是其自己的 BID)。
- 到根的路径开销(最初为 0)。
- 发送者的端口详细信息。
- BPDU 每隔 Hello Time(默认 2 秒)发送一次,但一旦收敛完成,只有当选的根桥才继续定期发送它们。非根交换机会转发更优的 BPDU。
2. 优于劣的 BPDU
- 更优的 BPDU 具有更好的(更低)信息:
- 更低的根 BID,或
- 相同的根 BID 但到根的路径开销更低,或
- 相同的根和开销但发送者 BID 更低,或
- 上述相同但发送者端口优先级/ID 更低。
- 当交换机在端口上收到更优的 BPDU 时:
- 它停止声称自己是根。
- 它更新自己的存储根信息。
- 它转发(中继)更优的信息到其其他端口(带更新的开销)。
- 劣质 BPDU 被忽略或用于确认指定角色。
这种交换使网络收敛,直到所有交换机就同一个根桥达成一致。
3. 根桥选举
- 具有最低 BID 的交换机成为根桥。
- BID = 优先级(可配置,4096 的倍数)+ MAC 地址。
- 决胜局:如果优先级相等,则选择最低的 MAC 地址。
- 根桥的所有端口都视为指定端口(转发)。
4. 非根交换机上的端口角色选举
根选举后:
- 根端口(每个非根交换机一个):连接到根桥的累积路径开销最低的端口。
- 决胜局:最低的发送者 BID → 最低的发送者端口 ID。
- 根端口向根转发流量。
- 指定端口(每个网络段/LAN 链路一个):在该段上发送最佳(更优)BPDU 的端口。
- 最接近根的交换机(或在平局时 BID 最低的交换机)胜出。
- 指定端口将流量从根转发出去。
- 非指定(阻塞)端口:所有剩余的会创建环路的端口。
- 它们监听 BPDU,但不转发数据帧(阻塞状态)。
所有根端口和指定端口最终都会转发;阻塞端口保持阻塞。
5. 拓扑变化通知 (TCN) 过程
- 当发生拓扑变化时(例如,链路故障、端口启用/禁用影响转发):
- 检测到的非根交换机会通过其根端口发送一个 TCN BPDU。
- 上游交换机通过 TCA(在下一个 BPDU 中)确认并向根中继 TCN。
- 根桥收到 TCN,在其配置 BPDU 中设置拓扑变化 (TC) 标志,并将其泛洪到整个网络。
- 所有收到带 TC 标志 BPDU 的交换机将其 MAC 地址表老化时间从 300 秒缩短到转发延迟(默认 15 秒)。
- 这会快速刷新过时的 MAC 条目,从而允许在更改后更快地重新学习。
您提供的摘要与此非常吻合,但第 1 点略有误导——持续的 BPDU 主要来自根(由其他交换机中继),而不是所有交换机都不断声称自己是根。
以下是可视化图表以助于理解:
References:
- https://www.networkacademy.io/ccna/spanning-tree/how-stp-works
- https://www.geeksforgeeks.org/root-bridge-election-in-spanning-tree-protocol/
- https://networklessons.com/spanning-tree/spanning-tree-topology-change-notification-tcn
- https://www.networkacademy.io/ccna/spanning-tree/stp-topology-changes