前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除
一、相关知识
1、生成树协议简介
生成树协议 (STP)是一种避免数据链路层逻辑环路的机制,它通过信息交互识别环路并阻塞部分端口,形成无环路的树状网络。在网络故障发生时,STP能迅速检测并更新网络拓扑,利用冗余链路实现网络的高可用性和容错能力。
生成树协议利用网桥协议数据单元 (BPDU)报文在交换机间交互信息,封装在以太网帧中传输,以确定网络拓扑。通过选举根网桥,非根网桥选择根端口,网段选择指定端口转发数据,其余端口被阻塞,构建无环路的树形结构。这不仅消除了环路问题,还实现了路径冗余,增强了网络的稳定性和可靠性。
现在常用的生成树协议有:生成树协议(Spanning Tree Protocol,STP)、快速生成树协议(Rapid Spanning Tree Protocol,RSTP)和多生成树协议(Multiple Spanning Tree Protocol,MSTP);注意,++STP和RSTP基于物理以太网构建生成树++ ;MSTP 能通过配置多实例在物理网络上++为不同的VLAN建立多个独立的生成树++,从而为不同的VLAN提供不同的分组转发路径,以实现负载均衡。
2、相关CLI命令
2.1、设置STP的模式
STP有MSTP、RSTP、STP 3种模式。华为交换机支持这三种,默认采用MSTP:
Haskell
[Huawei]stp mode ?
mstp Multiple Spanning Tree Protocol (MSTP) mode
rstp Rapid Spanning Tree Protocol (RSTP) mode
stp Spanning Tree Protocol (STP) mode
2.2、启动STP
华为交换机默认启动STP:
Haskell
[Huawei]stp enable
2.3、显示STP状态
Haskell
[Huawei]display stp brief
2.4、配置交换机在指定生成树中的优先级
默认下,华为交换机在指定生成树中优先级是32768(值越小,优先级越高);
Haskell
[Huawei]stp priority 4096 # 配置交换机在默认生成树实例中的优先级为4096
[Huawei]stp instance 1 priority 4096 # 配置交换机在生成树实例1中的优先级为4096
二、建立网络拓扑
三、验证生成树协议的作用
1、测试网络连通性
2、查看STP信息
华为交换机默认启用 MSTP(单实例);执行"display stp brief"命令查看各交换机的 STP 信息和 STP 接口状态信息:
Haskell
# LSW1 的 STP 信息和 STP 接口状态信息:
[LSW1]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 DESI FORWARDING NONE
0 Ethernet0/0/2 DESI FORWARDING NONE
0 GigabitEthernet0/0/1 DESI FORWARDING NONE
0 GigabitEthernet0/0/2 DESI FORWARDING NONE
# LSW2 的 STP 信息和 STP 接口状态信息:
[LSW2]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 DESI FORWARDING NONE
0 Ethernet0/0/2 DESI FORWARDING NONE
0 GigabitEthernet0/0/1 DESI FORWARDING NONE
0 GigabitEthernet0/0/2 ROOT FORWARDING NONE
#LSW3 的 STP 信息和 STP 接口状态信息:
[LSW3]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 DESI FORWARDING NONE
0 Ethernet0/0/2 DESI FORWARDING NONE
0 GigabitEthernet0/0/1 ROOT FORWARDING NONE
0 GigabitEthernet0/0/2 ALTE DISCARDING NONE
3种接口角色:
- Root Port(ROOT):根端口,去往根网桥路径开销最小的端口;可正常转发流量;
- Designated Port(DESI):指定端口,负责转发BPDU报文的端口;++根网桥上的端口都是指定端口++,可正常转发流量;
- Alternate Port(ALTE):阻塞端口,禁止转发流量的端口
可以发现交换机LSW1被作为根网桥,而交换机LSW3的GE0/0/2接口被阻塞。就得到生成树拓扑,避免了环路;
3、关闭STP导致广播风暴
关闭所有交换机的STP:
Haskell
[LSW1]undo stp enable
[LSW2]undo stp enable
[LSW3]undo stp enable
测试PC1的ARP缓存,执行ping命令与其他PC的连通性,发现无法连通;
在交换机LSW1的GE0/0/1接口启动抓包,会捕获大量的ARP广播帧和重复的ARP单播帧:
由于停止运行STP后,交换机间产生环路,从而导致广播风暴,交换机无法正常工作;
四、验证单实例生成树对VLAN的作用
恢复启用各交换机的STP:
Haskell
[LSW1]stp enable
[LSW2]stp enable
[LSW3]stp enable
1、配置VLAN
在交换机LSW1、LSW2和LSW3中创建VLAN 10、VLAN 20和VLAN 30;
Haskell
# 进入系统视图步骤省略
LSW1:
vlan batch 10 20 30
int e0/0/1
port link-type access
port default vlan 10
int e0/0/2
port link-type access
port default vlan 30
int g0/0/1
port link-type access
port default vlan 10
int g0/0/2
port link-type access
port default vlan 30
对LSW2和LSW3进行类似配置;
2、测试同一VLAN内PC间的连通性
由于MSTP的MST单实例配置模式下多个VLAN共享生成树拓扑,交换机LSW3接口GE0/0/2被阻塞,因此PC3与PC4无法连通;
五、MSTP的多实例配置与验证
在MSTP多实例模式下,若每个实例对应一个VLAN,则可以为每个VLAN生成一个独立的生成树拓扑。配置MST多实例时,同一MST域中,必须具有相同的域名、修订级别和VLAN到MST实例的映射关系
1、配置MST多实例
Haskell
LSW1:
stp region-configuration # 进入 MST 域视图
region-name Huawei # 配置 MST 域名为Huawei
revision-level 1 # 配置 MST 修订级别为1,默认为0
instance 1 vlan 10 # 指定 VLAN 10 映射到 MST 1
instance 2 vlan 20 # 指定 VLAN 20 映射到 MST 2
instance 3 vlan 30 # 指定 VLAN 30 映射到 MST 3
active region-configuration # 激活 MST 域配置
对交换机LSW2和LSW3做同样配置
2、测试同一VLAN内PC间的连通性
发现PC间均能ping通 ;执行 display stp brief 查看各交换机的STP信息和STP接口状态信息;可以看到每个 MST 实例都进行独立的生成树计算,在 MST 实例 1、 2、3 的生成树拓扑中,均没有端口被阻塞,因为 VLAN 10、VLAN 20 和 VLAN 30 的拓扑本身就没有环路。
六、配置Trunk链路,验证生成树协议的功能
将交换机LSW1、LSW2和LSW3之间的链路配置为Trunk链路,并允许所有VLAN通过。这样,任何一条链路出现故障,各VLAN都还能保证连通;
七、总结
- 生成树协议用于在一个存在冗余路径的以太网中为终端之间建立没有环路的交换 路径。
- MSTP 可以基于 VLAN 构建多个生成树拓扑,在实现容错的同时实现负载均衡。
致谢
在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。
学习永无止境,让我们共同进步!!