当前位置: 首页 > 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 构建多个生成树拓扑,在实现容错的同时实现负载均衡。

致谢

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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 哪种SSL证书可以快速签发保护http安全访问?
  • springcloud-config客户端启用服务发现报错找不到bean EurekaHttpClient
  • 【打工日常】使用Prometheus+Grafana+Alertmanager+Webhook-dingtalk搭建监控平台
  • Air780EP模块 LuatOS开发-MQTT接入阿里云应用指南
  • 深入解析DDoS攻击:原理、危害与防御策略
  • 【python】sklearn基础教程及示例
  • 二叉树详解-第一篇 树以及二叉树的概念
  • Golang | Leetcode Golang题解之第273题整数转换英文表示
  • mongoose之http调试代码
  • 星环科技推出知识库产品 AI PC时代数据交互方式变革
  • 【开发实战】QT5 + OpenCV4 开发环境配置应用演示
  • js-vue中多个按钮状态选中类似于复选框与单选框实现
  • 硅纪元视角 | 语音克隆突破:微软VALL-E 2,Deepfake新纪元!
  • 夏老师小课堂(15)丨空心杯电机基础入门(上海鸣志电器)
  • 【Go系列】Go的UI框架GIO
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【译】理解JavaScript:new 关键字
  • Angular 响应式表单之下拉框
  • EventListener原理
  • Javascript基础之Array数组API
  • JavaWeb(学习笔记二)
  • js写一个简单的选项卡
  • MaxCompute访问TableStore(OTS) 数据
  • mysql 数据库四种事务隔离级别
  • MySQL主从复制读写分离及奇怪的问题
  • SQLServer插入数据
  • Unix命令
  • Vue.js源码(2):初探List Rendering
  • Wamp集成环境 添加PHP的新版本
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 普通函数和构造函数的区别
  • 前端路由实现-history
  • 软件开发学习的5大技巧,你知道吗?
  • 十年未变!安全,谁之责?(下)
  • 使用 Docker 部署 Spring Boot项目
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 一个JAVA程序员成长之路分享
  • 原生Ajax
  • 7行Python代码的人脸识别
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​2020 年大前端技术趋势解读
  • ​linux启动进程的方式
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • ​香农与信息论三大定律
  • ######## golang各章节终篇索引 ########
  • $NOIp2018$劝退记
  • (1)常见O(n^2)排序算法解析
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (待修改)PyG安装步骤
  • (二)WCF的Binding模型
  • (附源码)springboot车辆管理系统 毕业设计 031034