生成树协议(STP)配置详解:避免网络环路的最佳实践

生成树协议(STP)配置详解:避免网络环路的最佳实践

  • 生成树协议(STP)配置详解:避免网络环路的最佳实践
    • 一、STP基本原理
    • [二、STP 配置示例(华为交换机)](#二、STP 配置示例(华为交换机))
      • [1. 启用生成树协议](#1. 启用生成树协议)
      • [2. 配置根桥](#2. 配置根桥)
      • [3. 查看生成树状态](#3. 查看生成树状态)
      • [4. 测试](#4. 测试)
      • [4. 调整路径成本(Path Cost)](#4. 调整路径成本(Path Cost))
      • [5. 配置边缘端口(Edge Port)](#5. 配置边缘端口(Edge Port))
      • [6. 启用BPDU保护](#6. 启用BPDU保护)
    • 三、快速生成树(RSTP)与增强STP
      • [1. 启用RSTP(Rapid Spanning Tree Protocol)](#1. 启用RSTP(Rapid Spanning Tree Protocol))
      • [2. 启用MSTP(Multiple Spanning Tree Protocol)](#2. 启用MSTP(Multiple Spanning Tree Protocol))
    • 四、STP优化与排错
      • [1. 避免根桥漂移](#1. 避免根桥漂移)
      • [2. 防止环路意外发生](#2. 防止环路意外发生)
      • [3. 监控STP状态变化](#3. 监控STP状态变化)
    • 五、结语

生成树协议(STP)配置详解:避免网络环路的最佳实践

前言

肝文不易,点个免费的赞和关注,有错误的地方请在评论区指出,看个人主页有惊喜。

作者:神的孩子都在歌唱

在复杂的局域网(LAN)中,冗余链路是提高网络可靠性的重要手段,但如果不加以控制,冗余链路可能会导致网络环路(Loop) ,引发广播风暴、MAC地址表波动和高CPU占用 ,最终导致整个网络瘫痪。 生成树协议(Spanning Tree Protocol, STP )正是为了解决这一问题而设计的。它通过自动检测冗余链路并阻止环路,确保网络稳定运行。本文将深入讲解STP的原理、配置方法,以及如何优化生成树协议以提升网络性能。

如下网络配置,当PC1访问PC2时候,发现ping不通,原因的话就是这四台交换机出现了环路,流量转发不到PC2。

备注:交换机S5700会默认开启stp,开启后他就会自动选举。所以为了测试先把他关了 stp disable

一、STP基本原理

STP基于树形拓扑 工作,它的核心思想是:在多条冗余路径中,自动选择一条主路径,阻塞其余路径,以避免环路。STP的工作过程包括:

  1. 选举根桥(Root Bridge) :所有交换机通过BPDU(Bridge Protocol Data Unit)报文相互比较,选出具有最低桥ID的交换机作为根桥。
  2. 计算最优路径 :各交换机根据路径成本(Path Cost),计算到达根桥的最佳路径,并将其端口设为根端口(Root Port)
  3. 选举指定端口(Designated Port) :在每条链路上,决定哪个交换机的端口将成为指定端口 ,用于数据转发。 根桥所有端口都是指定端口
  4. 阻塞非必要路径 :将冗余路径上的端口设为阻塞状态(Blocking),防止环路形成。

二、STP 配置示例(华为交换机)

在华为交换机上,可以使用如下命令来配置生成树协议。

1. 启用生成树协议

在所有交换机上启用STP,确保环路保护机制生效。

bash 复制代码
[Huawei] stp enable  # 启用STP

2. 配置根桥

如果你的交换机是核心设备,建议手动指定其为根桥,以防止动态选举导致网络不稳定。

bash 复制代码
[SwitchA] stp priority 4096  # 设置优先级,数值越小,优先级越高

默认STP优先级为32768,建议核心交换机设为4096或8192,以确保它成为根桥。

也可以直接设置为根桥

bash 复制代码
[SwitchA] stp root primary

神唱这里将SwitchA作为根桥,将SwitchB设置为备份根桥

bash 复制代码
[SwitchB] stp root secondary

3. 查看生成树状态

使用以下命令检查当前STP状态,包括根桥选举、端口角色等信息。

bash 复制代码
[SwitchA] display stp brief

可以看到根桥 SwitchA 的两个端口都是指定端口。

SwitchC的端口1是根端口,端口2是指定端口,端口3是禁用的。

4. 测试

我们在使用PC1 ping PC2,发现ping的通了,说明流量转发到了。

如果认真看文章的朋友应该很快就能知道流量是怎么发的了,如下

bash 复制代码
PC1 -> SwitchD  -> SwitchA  -> SwitchB  -> SwitchC -> PC2 

有朋友会问为什么不直接从SwitchD -> SwitchC, 原因就是SwitchC的端口3被禁用了,可以通过抓包的方式发现流量根本没进来。

又有人问了,如果我就是想走D到C呢,我不想走那么多交换机。有没有设置的命令。有的,兄弟有的。

4. 调整路径成本(Path Cost)

如果希望调整特定链路的优先级(比如,让某条链路成为主路径),可以修改端口的路径成本:

bash 复制代码
[SwitchC] interface GigabitEthernet 0/0/3
[SwitchC-GigabitEthernet0/0/3] stp cost 10  # 设置端口路径成本为10

路径成本越低,优先级越高,该路径越可能成为主路径。 ,这时我们再看 SwitchC的stp配置

可以发现端口3从禁用变成可转发的根端口了。我们在抓包试试。

这回流量是从端口3进来了。也就是

bash 复制代码
PC1 -> SwitchD -> SwitchC -> PC2 

5. 配置边缘端口(Edge Port)

如果某个端口连接的是终端设备(如PC或服务器),而非交换机,为了加速端口收敛,可以配置为边缘端口(即快速转发模式,等效于Cisco的PortFast):

bash 复制代码
[Huawei-GigabitEthernet0/0/2] stp edged-port enable

这样,该端口在上线时无需经历**Listening(监听)和 Learning(学习)**阶段,可以立即进入转发状态,加快网络恢复速度。

简单理解就是提前预习了。不需要等到你请求的时候在学习。

6. 启用BPDU保护

如果边缘端口意外接收到BPDU报文,可能意味着环路风险。可以启用BPDU保护,以防止错误连接交换机:

bash 复制代码
[Huawei-GigabitEthernet0/0/2] stp bpdu-protection

当启用该功能的端口收到BPDU报文后,会自动进入Err-Disable状态,避免环路形成。

三、快速生成树(RSTP)与增强STP

传统STP收敛速度较慢(通常需要50秒),对于现代网络来说可能过于迟缓。因此,我们可以选择**快速生成树(RSTP)增强型生成树(MSTP)**来提高收敛速度。

1. 启用RSTP(Rapid Spanning Tree Protocol)

RSTP的主要优势是可以加快端口的状态转换速度,使网络更快恢复。启用RSTP的方法如下:

bash 复制代码
[Huawei] stp mode rstp  # 启用RSTP模式

2. 启用MSTP(Multiple Spanning Tree Protocol)

如果你在网络中部署了多个VLAN,并希望不同VLAN使用不同的生成树实例,可以使用MSTP,它比传统STP和RSTP更高效:

bash 复制代码
[Huawei] stp mode mstp  # 启用MSTP模式

然后,你需要手动配置MSTP实例,将VLAN映射到不同的实例,以优化流量路径。

bash 复制代码
[Huawei] stp region-config
[Huawei-mst-region] instance 1 vlan 10 20 30
[Huawei-mst-region] instance 2 vlan 40 50 60
[Huawei-mst-region] active region-configuration

这样,不同的VLAN可以使用不同的路径,有效均衡网络流量。

四、STP优化与排错

1. 避免根桥漂移

如果STP根桥在网络运行过程中频繁变化,可能会引起网络不稳定。为了防止这一问题,可以在核心交换机上手动设置较低的优先级,并在接入交换机上提高优先级,确保根桥始终由核心交换机担任。

2. 防止环路意外发生

在接入层交换机上,建议启用环路保护功能(Loop Guard),以防止因STP错误失效而产生环路:

bash 复制代码
[Huawei] stp loop-protection

3. 监控STP状态变化

定期检查STP状态,避免误配置导致网络问题。

bash 复制代码
[Huawei] display stp brief

如果发现某些端口状态频繁变化,可能需要检查物理连接或路径成本设置是否合理。

五、结语

生成树协议(STP)是避免网络环路的重要技术,它可以自动选择最佳路径,并阻塞冗余链路,以确保网络稳定运行。

  • STP适用于所有以太网交换网络,但收敛速度较慢。
  • RSTP提高了收敛速度,适用于大部分企业网络
  • MSTP适用于多VLAN环境,可以优化不同VLAN的流量路径

在实际部署时,建议优先使用RSTP或MSTP ,并结合边缘端口、BPDU保护、环路防护等优化措施,以提高网络的稳定性和安全性。

作者:神的孩子都在歌唱

本人博客:https://blog.csdn.net/weixin_46654114

转载说明:务必注明来源,附带本人博客连接

相关推荐
两个人的幸福2 天前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
zzzzzz3102 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
BingoGo4 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack4 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982075 天前
PHP 扩展——从入门到理解
php
鹏仔先生6 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
小宇宙Zz6 天前
Maven依赖冲突
java·服务器·maven
网络研究院6 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智6 天前
ARP代理--工作原理
运维·网络·arp·arp代理