当前位置: 首页 > news >正文

生成树协议配置与分析

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

一、相关知识

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:

 [Huawei]stp mode ?mstp  Multiple Spanning Tree Protocol (MSTP) moderstp  Rapid Spanning Tree Protocol (RSTP) modestp   Spanning Tree Protocol (STP) mode

2.2、启动STP

华为交换机默认启动STP:

 [Huawei]stp enable

2.3、显示STP状态

 [Huawei]display stp brief

2.4、配置交换机在指定生成树中的优先级

默认下,华为交换机在指定生成树中优先级是32768(值越小,优先级越高);

 [Huawei]stp priority 4096       # 配置交换机在默认生成树实例中的优先级为4096[Huawei]stp instance 1 priority 4096    # 配置交换机在生成树实例1中的优先级为4096

二、建立网络拓扑

三、验证生成树协议的作用

1、测试网络连通性

2、查看STP信息

华为交换机默认启用 MSTP(单实例);执行“display stp brief”命令查看各交换机的 STP 信息和 STP 接口状态信息:

 # LSW1 的 STP 信息和 STP 接口状态信息:[LSW1]display stp briefMSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               DESI  FORWARDING      NONE0    Ethernet0/0/2               DESI  FORWARDING      NONE0    GigabitEthernet0/0/1        DESI  FORWARDING      NONE0    GigabitEthernet0/0/2        DESI  FORWARDING      NONE# LSW2 的 STP 信息和 STP 接口状态信息:[LSW2]display stp briefMSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               DESI  FORWARDING      NONE0    Ethernet0/0/2               DESI  FORWARDING      NONE0    GigabitEthernet0/0/1        DESI  FORWARDING      NONE0    GigabitEthernet0/0/2        ROOT  FORWARDING      NONE​#LSW3 的 STP 信息和 STP 接口状态信息:[LSW3]display stp briefMSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               DESI  FORWARDING      NONE0    Ethernet0/0/2               DESI  FORWARDING      NONE0    GigabitEthernet0/0/1        ROOT  FORWARDING      NONE0    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:

 [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:

 [LSW1]stp enable[LSW2]stp enable[LSW3]stp enable

1、配置VLAN

在交换机LSW1、LSW2和LSW3中创建VLAN 10、VLAN 20和VLAN 30;

 
 # 进入系统视图步骤省略LSW1:vlan batch 10 20 30int e0/0/1port link-type accessport default vlan 10int e0/0/2port link-type accessport default vlan 30int g0/0/1port link-type accessport default vlan 10int g0/0/2port link-type accessport 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多实例

LSW1:stp region-configuration            # 进入 MST 域视图region-name Huawei                  # 配置 MST 域名为Huaweirevision-level 1                    # 配置 MST 修订级别为1,默认为0instance 1 vlan 10                  # 指定 VLAN 10 映射到 MST 1instance 2 vlan 20                  # 指定 VLAN 20 映射到 MST 2instance 3 vlan 30                  # 指定 VLAN 30 映射到 MST 3active 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 构建多个生成树拓扑,在实现容错的同时实现负载均衡。

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!

http://www.lryc.cn/news/407709.html

相关文章:

  • Golang | Leetcode Golang题解之第287题寻找重复数
  • 【音视频SDL2入门】创建第一个窗口
  • 《置身事内:中国政府与经济发展》生活过得好一点,比大多数宏伟更宏伟
  • MongoDB教程(十八):MongoDB MapReduce
  • HTML前端面试题之<iframe>标签
  • Docker-Compose实现MySQL之主从复制
  • jetson显卡没有加速,而是在用cpu推理?
  • Linux下如何安装配置Fail2ban防护工具
  • js的深浅拷贝
  • 实验八: 彩色图像处理
  • Python酷库之旅-第三方库Pandas(048)
  • springboot爱宠屋宠物商店管理系统-计算机毕业设计源码52726
  • 自训练和增量训练word2vec模型
  • 华三路由器开启web访问
  • C++软件开发值得推荐的十大高效软件分析工具
  • vue2老项目中node-sass更换dart-sass
  • 源/目的检查开启导致虚拟IP背后的LVS无法正常访问
  • 类和对象(四)
  • <PLC><HMI><汇川>在汇川HMI画面中,如何为UI设置全局样式?
  • 在Git项目中添加并应用“.gitignore”文件
  • LeetCode Hot100 搜索二维矩阵
  • iOS中的KVO(Key-Value Observing)详解
  • 算法 —— 暴力枚举
  • 构造+有序集合,CF 1023D - Array Restoration
  • Scrapy 爬取旅游景点相关数据(四)
  • Vue常用指令及其生命周期
  • 简化数据流:Apache SeaTunnel实现多表同步的高效指南
  • 均匀圆形阵列原理及MATLAB仿真
  • vue2使用univerjs
  • VUE3 el-table-column header新增必填*