前言
作者:神的孩子都在歌唱
在复杂的局域网(LAN)中,冗余链路是提高网络可靠性的重要手段,但如果不加以控制,冗余链路可能会导致网络环路(Loop),引发广播风暴、MAC地址表波动和高CPU占用,最终导致整个网络瘫痪。 生成树协议(Spanning Tree Protocol, STP)正是为了解决这一问题而设计的。它通过自动检测冗余链路并阻止环路,确保网络稳定运行。本文将深入讲解STP的原理、配置方法,以及如何优化生成树协议以提升网络性能。
如下网络配置中,当PC1访问PC2时候,发现ping不通,原因的话就是这四台交换机出现了环路,流量转发不到PC2。
备注:交换机S5700会默认开启stp,开启后他就会自动选举。所以为了测试先把他关了
stp disable
STP基于树形拓扑工作,它的核心思想是:在多条冗余路径中,自动选择一条主路径,阻塞其余路径,以避免环路。STP的工作过程包括:
在华为交换机上,可以使用如下命令来配置生成树协议。
在所有交换机上启用STP,确保环路保护机制生效。
[Huawei] stp enable # 启用STP
如果你的交换机是核心设备,建议手动指定其为根桥,以防止动态选举导致网络不稳定。
[SwitchA] stp priority 4096 # 设置优先级,数值越小,优先级越高
默认STP优先级为32768,建议核心交换机设为4096或8192,以确保它成为根桥。
也可以直接设置为根桥
[SwitchA] stp root primary
神唱这里将SwitchA作为根桥,将SwitchB设置为备份根桥
[SwitchB] stp root secondary
使用以下命令检查当前STP状态,包括根桥选举、端口角色等信息。
[SwitchA] display stp brief
可以看到根桥 SwitchA 的两个端口都是指定端口。
SwitchC的端口1是根端口,端口2是指定端口,端口3是禁用的。
我们在使用PC1 ping PC2,发现ping的通了,说明流量转发到了。
如果认真看文章的朋友应该很快就能知道流量是怎么发的了,如下
PC1 -> SwitchD -> SwitchA -> SwitchB -> SwitchC -> PC2
有朋友会问为什么不直接从SwitchD -> SwitchC, 原因就是SwitchC的端口3被禁用了,可以通过抓包的方式发现流量根本没进来。
又有人问了,如果我就是想走D到C呢,我不想走那么多交换机。有没有设置的命令。有的,兄弟有的。
如果希望调整特定链路的优先级(比如,让某条链路成为主路径),可以修改端口的路径成本:
[SwitchC] interface GigabitEthernet 0/0/3
[SwitchC-GigabitEthernet0/0/3] stp cost 10 # 设置端口路径成本为10
路径成本越低,优先级越高,该路径越可能成为主路径。 ,这时我们再看 SwitchC的stp配置
可以发现端口3从禁用变成可转发的根端口了。我们在抓包试试。
这回流量是从端口3进来了。也就是
PC1 -> SwitchD -> SwitchC -> PC2
如果某个端口连接的是终端设备(如PC或服务器),而非交换机,为了加速端口收敛,可以配置为边缘端口(即快速转发模式,等效于Cisco的PortFast):
[Huawei-GigabitEthernet0/0/2] stp edged-port enable
这样,该端口在上线时无需经历**Listening(监听)和 Learning(学习)**阶段,可以立即进入转发状态,加快网络恢复速度。
简单理解就是提前预习了。不需要等到你请求的时候在学习。
如果边缘端口意外接收到BPDU报文,可能意味着环路风险。可以启用BPDU保护,以防止错误连接交换机:
[Huawei-GigabitEthernet0/0/2] stp bpdu-protection
当启用该功能的端口收到BPDU报文后,会自动进入Err-Disable状态,避免环路形成。
传统STP收敛速度较慢(通常需要50秒),对于现代网络来说可能过于迟缓。因此,我们可以选择 快速生成树(RSTP)或增强型生成树(MSTP) 来提高收敛速度。
RSTP的主要优势是可以加快端口的状态转换速度,使网络更快恢复。启用RSTP的方法如下:
[Huawei] stp mode rstp # 启用RSTP模式
如果你在网络中部署了多个VLAN,并希望不同VLAN使用不同的生成树实例,可以使用MSTP,它比传统STP和RSTP更高效:
[Huawei] stp mode mstp # 启用MSTP模式
然后,你需要手动配置MSTP实例,将VLAN映射到不同的实例,以优化流量路径。
[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根桥在网络运行过程中频繁变化,可能会引起网络不稳定。为了防止这一问题,可以在核心交换机上手动设置较低的优先级,并在接入交换机上提高优先级,确保根桥始终由核心交换机担任。
在接入层交换机上,建议启用环路保护功能(Loop Guard),以防止因STP错误失效而产生环路:
[Huawei] stp loop-protection
定期检查STP状态,避免误配置导致网络问题。
[Huawei] display stp brief
如果发现某些端口状态频繁变化,可能需要检查物理连接或路径成本设置是否合理。
生成树协议(STP)是避免网络环路的重要技术,它可以自动选择最佳路径,并阻塞冗余链路,以确保网络稳定运行。
在实际部署时,建议优先使用RSTP或MSTP,并结合边缘端口、BPDU保护、环路防护等优化措施,以提高网络的稳定性和安全性。
作者:神的孩子都在歌唱 本人博客:https://blog.csdn.net/weixin_46654114 转载说明:务必注明来源,附带本人博客连接