拓冰建站拓冰建站
首页 / 资讯中心 / 正文

最直观理解STP协议

一、我们来用一个具体的拓扑图例子一步步带你走一遍生成树协议STP的全过程。 假设有一个简单的网络拓扑A / \ / \ B-----C这是一个由三台交换机组成的三角形结构交换机 A、B、C 分别连接在一起。每条边代表一条链路比如 A-B、A-C、B-C。所有交换机默认优先级都相同默认是 32768。所有链路速度一样成本值为 19比如都是千兆以太网。✅ 第一步选举根桥Root BridgeSTP 开始运行后所有交换机会互相发送 BPDUBridge Protocol Data Unit里面包含自己的 MAC 地址和优先级等信息。由于它们的优先级一样默认比较MAC 地址。MAC 地址最小的那个成为根桥。假设A 的 MAC 00:00:00:00:00:01B 的 MAC 00:00:00:00:00:02C 的 MAC 00:00:00:00:00:03所以A 成为了根桥因为它的 MAC 最小。✅ 第二步每个非根桥选根端口Root Port现在B 和 C 是非根桥它们需要各自找出“离根桥最近”的那个端口作为根端口。对于交换机 B它有两个端口可以到达根桥 A端口1连接 A直接连接成本 19端口2连接 C要通过 C 再到 A总成本 19 19 38显然端口1更近所以它被选为 B 的根端口。对于交换机 C它也有两个端口可以到达根桥 A端口1连接 A直接连接成本 19端口2连接 B要通过 B 再到 A总成本 19 19 38所以端口1被选为 C 的根端口。✅ 第三步在每条链路上选出指定端口Designated Port现在我们要看每条链路也就是每条边上哪个端口是“主控者”。链路 A-BA 是根桥它通往自己当然是成本最低的。所以 A 上的这个端口就是这条链路的指定端口。B 的根端口已经是这个端口所以没问题。✅ 这条链路上A 的端口 指定端口B 的端口 根端口链路 A-C同理A 是根桥它这边的端口是这条链路的指定端口。C 的根端口也是这个端口。✅ 这条链路上A 的端口 指定端口C 的端口 根端口链路 B-C这是关键的一条链路因为它会导致环路我们来看看两边谁更适合当指定端口。B 到根桥的成本是 19直接连 AC 到根桥的成本也是 19直接连 A那我们就比谁的桥 ID 更小桥ID 优先级 MAC地址。B 的 MAC C 的 MAC → 所以 B 更优因此B 的这个端口成为这条链路上的指定端口而 C 的这个端口既不是根端口也不是指定端口就要被阻塞✅ 第四步剩下的端口进入阻塞状态最终结果如下链路指定端口根端口被阻塞端口A-BAB—A-CAC—B-CB—C这样整个网络就变成了一棵树的结构没有环路了A / \ B C其中 B 和 C 之间那条链路被逻辑上断开C 的端口被阻塞防止数据包无限循环。 如果链路 A-B 断了呢这时 STP 会重新计算生成树B 发现原来的根端口失效了只能从 C 绕过去。它就会启用之前被阻塞的 B-C 链路。新的拓扑变成A \ C | B网络仍然保持连通性只是路径变了。 总结通过选举根桥、选择根端口、选出指定端口并阻塞其他端口STP 就像一位交通指挥员在复杂的道路中画出一张不会堵车的地图让数据帧能高效又安全地传输。二、如果是更复杂的网络拓扑结构比如 四台交换机构成的“环形拓扑”A —— B | | D —— C这是一个四点环状结构每台交换机都连接到它的两个邻居形成一个闭合的环路。A 连接 B 和 DB 连接 A 和 CC 连接 B 和 DD 连接 A 和 C所有链路成本为 19千兆以太网优先级默认都是 32768。MAC 地址如下用于选举根桥A00:00:00:00:00:01 ✅ 最小 MACB00:00:00:00:00:02C00:00:00:00:00:03D00:00:00:00:00:04 第一步选举根桥Root Bridge因为 A 的 MAC 地址最小所以A 成为根桥。 第二步每个非根桥选根端口Root Port我们要找出 B、C、D 到 A 的最短路径。对于 B直接连接 A → 成本 19 ✅经过 C-D-A → 成本 191919 57 ❌→ 所以 B 的根端口是连接 A 的那个端口。对于 D直接连接 A → 成本 19 ✅经过 C-B-A → 成本 191919 57 ❌→ D 的根端口也是连接 A 的那个端口。对于 C通过 B 到 A → 成本 1919 38通过 D 到 A → 成本 1919 38→ 成本一样继续比较谁的桥 ID 更小B 的桥 ID D 的桥 ID→ 所以 C 选择从 B 走这条路根端口是连接 B 的那个端口 第三步在每条链路上选出指定端口Designated Port现在我们来看每条链路哪边的端口能成为“主控者”。链路 A-BA 是根桥直接连成本最低 ✅→ A 的端口是指定端口→ B 的端口是根端口链路 A-DA 是根桥 ✅→ A 的端口是指定端口→ D 的端口是根端口链路 B-CB 到 A 成本 19C 到 A 成本 38经过 B→ 所以 B 更优 ✅→ B 的端口是指定端口→ C 的端口不是指定也不是根端口 → 阻塞链路 C-DC 到 A 成本 38经过 BD 到 A 成本 19直接连 A→ 所以 D 更优 ✅→ D 的端口是指定端口→ C 的端口不是指定也不是根端口 → 阻塞链路 B-D不存在。在这个拓扑中没有这条链路跳过。⚠️ 第四步阻塞可能造成环路的端口最终结果如下链路指定端口根端口阻塞端口A-BAB—A-DAD—B-CB—CC-DD—C 最终生成树拓扑结构变成这样A —— B | \ D C 只通过 B 到达 | C 被断开两条链路B-C 和 C-D防止环路逻辑上变成了一棵树不再有环路。 如果某条链路断了会发生什么例如A-B 断了B 发现自己的根端口失效了它会查看是否有其他路径可用原先被阻塞的 B-C 端口就可以启用了新路径变为B → C → D → A整个网络自动恢复通信只是路径变长了一点。 总结一下这个四交换机环形拓扑虽然物理上是闭环的但 STP 通过以下步骤构建了一个无环的逻辑拓扑选出根桥A各非根桥选出根端口通往根桥最近的端口在每条链路上选出指定端口负责转发数据其他可能造成环路的端口进入阻塞状态这样既避免了广播风暴又保留了冗余链路作为备份。对应端口状态1.在选举过程中所有端口处于阻塞或监听状态开全员大会先不干活2.选举完成非根非指定端口保持阻塞监听BPDU防止环路根端口及指定端口先进入监听状态然后进入学习状态岗前培训学习mac地址表为转发做准备学习完毕开始转发。为什么要有学习状态确保在特殊情况下所有交换机都对齐颗粒度同步好后再干活。防止临时环路。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门