生成树协议基础
了解 STP 如何阻断冗余路径以防止环路
生成树协议基础 是 CoddyKit 上的免费 Network+ Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Network+ Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Network+ Academy 课程共包含 4 节课。
环路解决方案
网络需要冗余链路来提高可靠性,但无法承受这些链路造成的环路。生成树协议(STP)解决了这个问题。STP 会自动检测交换机之间的冗余路径,并阻塞其中恰好足够的一部分,从而保留一条无环路径,同时将被阻塞的链路保留为备用链路。本课将介绍 STP 如何在不牺牲冗余的情况下防止环路。
核心思想
STP 会在可能存在环路的物理网络之上构建一个无环的逻辑树。它通过在任意两点之间选择一条路径并禁用其余路径来实现这一点。如果活动路径之后发生故障,STP 会重新启用一条被阻塞的链路,以恢复连接。因此,您可以同时获得用于提高韧性的冗余,以及用于保证安全的无环结构。
选举根网桥
STP 首先选举一个根网桥,作为树顶端的参考交换机。交换机会比较一个称为网桥 ID的值,该值由可配置的优先级和交换机 MAC 地址组成。网桥 ID 最低的交换机获胜并成为根网桥。所有路径计算都以该根网桥为参照,因此它的位置会影响整个树的结构。
选择根端口
每台非根交换机都会选择一个根端口:通向根网桥的最低开销路径所对应的端口。开销取决于链路速度,速度越快,开销越低。根端口是交换机通往树顶端的最佳路径。发往根网桥或更远位置的流量通常会从该端口离开。
指定端口和阻塞端口
对于每个网络网段,STP 还会选择一个指定端口,负责向该网段转发流量。既不是根端口也不是指定端口的端口会进入阻塞状态。阻塞端口不会转发数据,这样可以打破环路,但它仍会监听 STP 消息,以便在活动路径发生故障时接替工作。
BPDUs
交换机通过BPDUs(网桥协议数据单元)进行协调,这些是交换机之间交换的小型消息。BPDUs 携带网桥 ID 和路径开销,使交换机能够选举根网桥、计算路径并检测拓扑变化。如果阻塞端口不再收到 BPDUs,STP 就会假定链路发生故障,并可能重新启用该端口,以恢复路径。
端口状态
经典 STP 会让端口依次经过阻塞、监听、学习和转发状态。这种转换可以防止端口过早转发,从而避免意外形成临时环路。缺点是存在延迟,端口完全开放大约需要 30 到 50 秒。这种缓慢的收敛促成了更快版本协议的出现。
快速生成树
RSTP(快速生成树协议,802.1w)是现代改进版本。它通过简化端口状态,并直接在交换机之间协商变更,将收敛时间从几十秒缩短到几秒。RSTP 向后兼容较旧的 STP,并且是目前大多数交换机的默认协议,因此链路故障后能够更快恢复。
PortFast 和 BPDU 防护
有两个常用的辅助功能。PortFast 允许连接终端设备的接入端口跳过等待状态并立即转发,因为单台 PC 无法创建环路。BPDU 防护会在这些端口意外收到 BPDU 时将其关闭,因为这意味着有人将交换机插入了原本用于连接 PC 的端口。
interface GigabitEthernet0/4
switchport mode access
spanning-tree portfast
spanning-tree bpduguard enable收敛与故障切换
收敛是指发生变化后,STP 稳定到无环状态所需的时间。当活动链路发生故障时,原本应到达的 BPDUs 会停止到达,STP 重新计算路径,之前处于阻塞状态的端口会转换为转发状态,以恢复路径。经典 STP 需要几十秒才能收敛;RSTP 只需几秒。更快的收敛意味着更短的中断时间,这就是 RSTP 在现代交换机上取代经典 STP 的原因。
STP 为何重要
STP 及其更快的后继协议 RSTP 几乎在每台网管交换机上安静地运行,在保留备用链路的同时,默默防止环路造成的广播风暴。理解根网桥选举、端口角色和 BPDUs,是 Network+ 的核心知识。当备用链路必须接替工作时,由 STP 决定如何在 RSTP 的几秒内保持网络无环。
快速检查
测试您对 STP 基础知识的掌握情况。
回顾
生成树协议(STP)在保留冗余链路作为备用链路的同时防止环路。它会选举一个根网桥(网桥 ID最低),在每台交换机上选择一条通向根网桥的根端口,为每个网段选择一个指定端口,并将多余端口置于阻塞状态。交换机通过BPDUs进行协调。经典 STP 速度较慢;RSTP可在几秒内收敛。PortFast 可加快终端设备端口的启用,BPDU 防护则可以保护这些端口。
常见问题解答
「生成树协议基础」课时是免费的吗?
是的 — 「生成树协议基础」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Network+ Academy 课程的其余内容,请升级到 CoddyKit PRO。 Network+ Academy 课程共包含 4 节课。
「生成树协议基础」这节课中我会学到什么?
了解 STP 如何阻断冗余路径以防止环路 你通过在浏览器中直接运行的动手代码来练习 Network+ Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Network+ Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Network+ Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「生成树协议基础」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Network+ Academy 课中编写并运行代码吗?
能。每节 Network+ Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。