网络工程师技能篇:生成树工作原理

定义与作用

  • 定义:生成树是一种基于树形结构的网络拓扑,通过在网络中的交换机之间构建一棵逻辑上的树形结构,确保网络中的数据能够沿着无环的路径进行传输。
  • 作用:在交换网络中,为了提供冗余链路以增强网络的可靠性,通常会存在多条路径连接各个交换机。然而,这些冗余链路可能会导致网络环路的产生,进而引发广播风暴、MAC 地址表不稳定等问题,严重影响网络的正常运行。生成树协议的主要作用就是通过阻塞某些端口,动态地创建一个无环的网络拓扑,同时在网络出现故障时,能够快速地重新配置网络,恢复网络连接,实现链路的冗余备份。

工作原理

  • 选举根交换机:网络中的所有交换机通过交换 BPDU(Bridge Protocol Data Unit,网桥协议数据单元)来确定根交换机。BPDU 中包含了交换机的优先级、MAC 地址等信息。优先级数值越小,越优先成为根交换机;若优先级相同,则比较 MAC 地址,MAC 地址越小的交换机成为根交换机。
  • 确定根端口:非根交换机上到根交换机路径开销最小的端口被选举为根端口。路径开销是根据链路的带宽等因素计算得出的,带宽越高,路径开销越小。如果有多条路径开销相同,则比较发送方交换机的 BID(Bridge ID,由优先级和 MAC 地址组成),BID 小的对应的端口称为根端口;若 BID 也相同,则比较端口 ID,端口 ID 小的成为根端口。
  • 确定指定端口:在每个网段上,到根交换机路径开销最小的端口被称为指定端口。指定端口负责向该网段转发数据。如果网段两端的端口到根交换机的路径开销相同,则比较两端交换机的 BID,BID 小的一端的端口为指定端口。
  • 阻塞非指定端口:除了根端口和指定端口之外的其他端口将被阻塞,这些端口不会转发数据,只接收和处理 BPDU,用于监测网络状态。当网络拓扑发生变化时,被阻塞的端口可能会重新被激活,成为根端口或指定端口,以恢复网络的连通性。

生成树协议的类型

  • STP(802.1D):是最早的生成树协议,收敛速度较慢,从网络故障发生到重新生成无环的拓扑结构可能需要 30 到 50 秒的时间。
  • RSTP(Rapid Spanning Tree Protocol,802.1w):是 STP 的改进版本,收敛速度更快,能够在网络拓扑发生变化时,快速地重新计算生成树,一般能在几秒钟内完成收敛。
  • MSTP(Multiple Spanning Tree Protocol,802.1s):可以将多个 VLAN 映射到一个生成树实例中,在不同的生成树实例中可以实现不同的网络拓扑,提高了网络的灵活性和资源利用率,同时也具备较快的收敛速度。

配置与管理

  • 基本配置:在交换机上启用生成树协议,通常只需在全局配置模式下输入相应的命令即可。例如,在 Cisco 交换机上,可以使用 “spanning-tree mode [stp|rstp|mstp]” 命令来选择生成树协议的类型。还可以配置交换机的优先级等参数,以影响根交换机的选举结果。
  • 端口配置:可以配置端口的路径开销、端口优先级等参数,以影响端口在生成树中的角色选举。例如,通过增大某个端口的路径开销,可以使其更不容易成为根端口或指定端口,从而实现对网络流量路径的控制。
  • 故障排查:常见的生成树故障包括端口状态异常、网络环路未消除等。可以通过查看交换机的生成树状态信息,如使用 “show spanning-tree” 命令查看生成树的拓扑结构、端口角色、端口状态等信息,来定位故障原因。还可以通过抓包工具分析 BPDU 数据包,检查 BPDU 的内容是否正确,是否存在异常的 BPDU 发送等情况。
原文链接:,转发请注明来源!