理解并防止网络环路(STP)
当网络中的两个节点之间存在多条路径时,就会形成网络环路,导致数据持续循环,并可能造成性能下降、端口意外阻塞、网络完全中断和设备崩溃等严重问题。
环路可能表现为设备断开连接、性能下降、UniFi 采用失败以及类似的连接问题。

避免网络环路的最佳实践
为保持网络稳定并防止环路,请遵循以下最佳实践:
- 集中式交换:避免过度使用 UniFi Gateway 上的内置交换机端口。请改用一台 UniFi 交换机作为核心交换机,并将其他所有设备连接到该交换机。此方法利用 STP 提高网络弹性。Gateway 交换机端口不支持 STP。
- 配置 RSTP 以优先使用核心交换机:配置生成树协议设置以优先使用核心交换机。正确设置 STP 优先级可确保最可靠的交换机成为根交换机。此设置可优化数据路径并阻止冗余链路。请参阅下文。
- 在面向客户端的端口上使用 STP Edge 和 BPDU 防护:这些设置通过控制哪些端口可以影响整体拓扑来进一步增强 STP 配置,提高网络稳定性。请参阅下文。
- 使用环路防护:在边缘(终端用户)交换机端口上配置环路防护,以便在检测到环路时关闭端口。也可以在上行链路或 Trunk 端口上启用该功能。请参阅下文。
- 禁用无线网状网络:如果没有 AP 通过无线方式采用,请禁用无线网状网络,以防止潜在环路。
- 定期维护:检查并更换故障线缆。链路协商不良可能导致 STP 优先级变化(抖动),从而引发持续的连接问题。
- 检查 IoT 和 Sonos 设备:遵循我们的最佳实践,以避免环路。
如何使用 STP 缓解环路
生成树协议(STP)及其高级版本快速生成树协议(RSTP)有助于创建无环路的逻辑网络拓扑。它们会根据链路速度和交换机优先级等因素阻止冗余路径。以下是在 UniFi 中实施和配置 STP 的方法:
- 启用 RSTP:UniFi 交换机默认启用 RSTP。可以在以下位置切换该设置:
- 全局:设置 > 网络 > 生成树。
- 每台交换机:UniFi 设备 > [选择交换机] > 设置 > 生成树。
- 每个端口:UniFi 设备 > [选择交换机] > 端口管理器 > 选择端口 > 生成树协议。
- 设置 STP 优先级:要有效分配 STP 优先级(UniFi 设备 > [选择交换机] > 设置):
- 将根交换机的优先级设为 0。
- 将下一层交换机的优先级设为 4096。
- 后续每层交换机的优先级继续递增 4096(8192 > 12288 > 依此类推)。
- 将非根交换机上的上行端口指定为 STP 上行端口,以确保使用冗余路径时该端口不会被阻塞。

- 配置 STP Edge 和 BPDU 防护:STP Edge 允许客户端连接到交换机端口,而不会因拓扑变化通知(TCN)暂时中断流量。这可以使 STP 更快收敛,让网络更快恢复流量传输。默认情况下,此设置为自动,端口检查 BPDU 几秒后即可开始转发流量。如果端口检测到 BPDU(桥接协议数据单元),例如连接了下游交换机,STP Edge 将被禁用,系统会发送 TCN,STP 拓扑也会重新收敛。如果手动启用 STP Edge,端口将不再检查 BPDU,并立即转发流量。也可以手动禁用 STP Edge。
检测到 BPDU 时,BPDU 防护会关闭端口,例如用户插入未经授权的交换机时。当连接普通客户端时,边缘端口不应接收 BPDU;STP Edge 将端口有效指定为上行端口或边缘端口,而 BPDU 防护则保护边缘端口免受环路影响。建议在大多数边缘端口上启用此功能,尤其是 Sonos 等客户端端口,但管理员需要在 UniFi Network 中重新启用被关闭的端口。
| 连接 | STP/RSTP | STP Edge | BPDU 防护 | 环路防护 | 备注 |
|---|---|---|---|---|---|
| 交换机到交换机 | 已启用 | 自动或禁用 | 可选 | 也可以将端口指定为 STP 上行端口,以进一步增强 STP 稳定性 | |
| 交换机到客户端 | 已启用 | 已启用 | 可选 | 可选 | 使用 BPDU 防护,防止下游端口发送 TCN 或更改 STP 拓扑。 |
| 不支持 STP 的端口 | 自动 | 已启用 | 环路防护适用于不参与 STP 的端口和客户端。 |
如何识别和缓解环路
识别网络环路可能很困难,但以下提示可以提供帮助:
- 使用 UniFi Network 分析:如果 STP 有效阻止了网络环路,UniFi 可以定位环路来源。在端口页面中检查高流量或 STP 阻塞,相关端口会以 ⃠ 符号标记。
- 强制启用 BPDU 防护:如果某个交换机端口始终用于边缘客户端,且不会连接下游交换机,请启用 BPDU 防护,确保连接的客户端不会尝试更改网络拓扑。
- 手动断开连接:如果 STP 无法检测或解决环路,请从网络边缘开始手动断开部分网络。逐一断开设备,以定位并解决问题。重点检查连接第三方交换机或会自行创建网状网络的设备(如 Sonos)的区域,因为这些设备经常因配置错误导致环路。
检测到环路后,需要立即处理。请按以下步骤操作:
- 处理物理拓扑问题:找到存在环路的网段,并在适用时移除冗余物理路径。
- 移除无线网状网络:确保接入点和第三方设备(例如 Sonos)没有在有线网络网段之间创建无线桥接。Sonos 设备的有线上行端口也应启用 BPDU 防护。
- 检查第三方交换机配置:确认非 UniFi 交换机未在同一 VLAN 上配置冗余路径,否则可能导致环路。
额外保护:UniFi 的环路防护功能
即使相邻设备不支持 STP,UniFi 的环路防护也能在检测到环路时阻止端口,从而提供额外的安全保障。此功能独立于 STP 运行,可在各种网络条件下提供保护。
要启用环路防护,请在 网络 > 端口 中选择交换机端口,然后在高级设置下选择 环路防护。
环路防护的主要功能:
- 独立于相邻设备是否支持 STP。
- 检测到环路后永久阻止端口。未经 UniFi Network 干预,该端口 不会 恢复正常运行。与 BPDU 防护一样,您必须手动进入 UniFi Network 进行修复。
- 建议在所有交换机端口上启用,尤其是 Gateway 端口,以有效防止环路。
常见问题:
-
环路防护和 STP 如何协同工作?如果两者均已启用,检测到环路时 STP 会首先触发,包括 BPDU 防护。
-
何时应使用环路防护?应始终启用环路防护,以帮助防止网络环路,除非管理员无法随时干预并重新启用被阻止的端口。
-
是否应在所有端口上启用环路防护?是,应在所有交换机端口上启用,以有效阻止环路。
-
网络环路的常见原因网络环路通常由无线网状网络或在同一组设备之间连接多条以太网线缆造成。必须检查设备之间的有线和无线连接,以防止环路。