07. STP的基本配置
文章目录
- 一. 初识STP
- 1.1. STP概述
- 1.2. STP的出现
- 1.3. STP的作用
- 1.4. STP的专业术语
- 1.5. BPDU的报文格式
- 1.6. STP的选择原则
- (1)选择根桥网桥原则
- (2)选择根端口原则
- 1.7. 端口状态
- 1.8. STP报文类型
- 1.9. STP的收敛时间
- 二. 实验专题
- 2.1. 实验1:STP的基本配置
- 2.1.1. 实验目的
- 2.1.2. 实验拓扑图
- 2.1.3. 实验步骤
- (1)在交换机开启STP
- (2)查看STP生成数的状态信息
- (3)查看各交换机生成数的状态信息
- 2.1.4. 实验调试
- (1)更变交换机优先级
- (2)查看交换机生成树状态信息
- 2.2. 实验2:修改STP的Cost
- 2.2.1. 实验目的
- 2.2.2. 实验拓扑图
- 2.2.3. 实验步骤
- (1)开启所有交换机的STP
- (2)查看交换机生成树状态信息
- 2.2.4. 实验调试
- 三. 本章命令汇总
一. 初识STP
1.1. STP概述
STP(生成数协议)是一个用于在局域网中消除环路的协议,他的标准是IEEE802.1d。
STP通过强制使部分冗余链路处于阻塞状态,其它链路处于转发状态,将环形网络结构修剪成无环路的树形网络结构。
可实现消除环路,当处于转发状态的链路不可用时,STP重新配置网络,并激活合适的备用链路状态,恢复网络连通性
1.2. STP的出现
以太网交换网络中,为了进行链路备份,提高网络可靠性,通常会使用冗余链路。
但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及Mac地址表不稳定等故障现象,从而导致用户通信质量较差甚至通信中断。
为解决交换网络中的环路问题,提出了STP。
1.3. STP的作用
解决二层环路,二层环路具体表现为广播风暴、Mac地址表不稳定和多帧复制
1.4. STP的专业术语
| 术语名称 | 描述 |
|---|---|
| 桥ID | IEEE802.1d标准中规定BID由16位的桥优先级(默认位32768) |
| Cost | 每一个激活了STP的接口都维护了一个Cost,接口的Cost主要用于计算跟路径开销,也就是到达根的开销 |
| 根路径开销 | 一台设备从某个接口到达根桥的RPC等于从根桥到该设备沿途所有路入方向接口的Cost累加 |
| 接口ID | 接口ID由两部分构成,高4位是接口优先级(默认为128) 低12位是接口编号 |
| BPDU(网桥协议数据单元) | STP交换机之间会相互BPDU报文,这些BPDU报文携带着一些重要信息,正是基于这些信息,STP才能够顺利工作 |
1.5. BPDU的报文格式
| 报文名称 | 描述 |
|---|---|
| PID | 协议ID,对于STP而言,该字段的值总为0 |
| PVI | 协议版本ID,为0代表STP。为2代表RSTP,为3代表MSTP |
| BPDU Type | 指示本 BPDU的类型,若值为0x00,则表示本报文是配置BPDU报文;若值为0x80,则是TCN BPDU报文 |
| Flags | 标志。STP只使用了该字段的最高及最低的两位数。最低位是TC(拓扑变更)标志,最高位是TCA(拓扑变更确认标志)标志。 |
| Root ID | 根网桥的桥ID |
| RPC | 跟路径开销,到达根桥的STP Cost |
| Bridge ID | BPDU发送网桥的ID |
| port ID | 发送网桥的接口ID(优先级+接口号) |
| Message Age | 消息寿命。从根网桥发送BPDU之后的秒数每经过一个网桥都加1,所以它本质上是到达根网桥的跳数 |
| Max Age | 最大寿命。当一段时间未收到任何BPDU生存期到达最大寿命时,网桥认为该接口连接的链路发生故障,默认为20S |
| Hello Time | 根网桥连续发送的BPDU之间的时间间隔,默认为2S |
| Forward Delay | 转发延迟,在侦听和学习状态所停留的时间间隔,默认为15S |
1.6. STP的选择原则
(1)选择根桥网桥原则
| 原则场景 | 描述 |
|---|---|
| 比较优先级 | (默认为32768)数值越小越优 |
| 优先级相同 | 比较MAC地址,数值越小越优 |
(2)选择根端口原则
| 项目 | Value |
|---|---|
| 根路开销 | 比较到达根桥网的跟路径开销RPC优先,RP是小的 |
| 网桥id | 比较端口所在的交换机的桥网ID优先,桥网ID小的 |
| 端口id | 比较本地端口的端口ID优先,端口ID小的 |
1.7. 端口状态
| 端口状态 | 描述 |
|---|---|
| 禁用(disabled) | 该接口不能收发BPDU,也不能收发业务数据帧,如接口状态为down时 |
| 阻塞(Blocking) | 该接口被STP阻塞,处于阻塞状态的接口不能发送BPDU,但是会持续侦听BPDU,而且不能收发业务数据帧,也不会进行Mac地址学习 |
| 侦听(Listening) | 当接口处于该状态时,表明STP初步认定该接口为根接口或指定接口,但接口依然处于STP计算的过程中,此时接口可以收发BPDU,但是不能收发业务数据帧,也不会进行Mac地址学习 |
| 学习(Learning) | 当接口处于该状态时,会侦听业务数据帧(但是不能转发业务数据帧),并且在收到业务数据帧后进行Mac地址学习 |
| 转发(Forwarding) | 处于该状态的接口可以正常的收发业务数据帧,也会进行BPDU处理。接口的角色必须是根接口或指定接口才能进入转发状态 |
1.8. STP报文类型
| 报文类型 | 描述 |
|---|---|
| 配置BPDU | BPDU类型的值被设置为0x00。其主要作用 |
| TCN BPDU | TCN BPDU类型的值被设置为 0x80作用是通告网络中的拓扑发生了变化 |
说明一下,配置BPDU的用途
- 用于
选举根网桥及端口角色; - 根桥每
2s发送一次配置BPDU报文,用于维护端口状态; - 用于确认收到的
TCN BPDU报文。
1.9. STP的收敛时间
- 端口状态从
Blocking状态迁移Forwarding状至少要两-倍的Forward Delay(15s) 直连链路发生故障,重新收敛需要30s;非直连链路发生故障,重新收敛需要50s;
二. 实验专题
2.1. 实验1:STP的基本配置
2.1.1. 实验目的
- 掌握修改交换机STP 模式的方法
- 掌握修改桥优先级、控制根桥选举的方法
- 掌握修改端口优先级、控制根端口和指定端口选举的方法
2.1.2. 实验拓扑图

2.1.3. 实验步骤
(1)在交换机开启STP
1)配置LSW1,命令如下:
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname LSW1
#STP的模式为STP,默认为MSTP
[LSW1]stp mode stp
如图所示:

2)配置LSW2,命令如下:
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname LSW2
#STP的模式为STP,默认为MSTP
[LSW2]stp mode stp
如图所示:

3)配置LSW3,命令如下:
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname LSW3
#STP的模式为STP,默认为MSTP
[LSW3]stp mode stp
如图所示:

(2)查看STP生成数的状态信息
#在交换机LSW1查看stp信息
[LSW1]display stp
如图所示:

(3)查看各交换机生成数的状态信息
#查看LSW1交换机生成数的状态信息
[LSW1]display stp brief
#查看LSW2交换机生成数的状态信息
[LSW2]display stp brief
#查看LSW3交换机生成数的状态信息
[LSW3]display stp brief
如图所示:



以上输出结果表明端口的角色、状态以及保护功能。
| 项目 | Value |
|---|---|
| Role | 该端口在STP的端口角色。ROOT 为根端口,ALTE 为预备端口,DESI为指定端口; |
| STP State | 该端口在 STP 的端口状态。FORWARDING 为转发状态,DISCARDING 为阻塞状态,LISTENING 为侦听状态,LEARNING 为学习状态 |
| Protection | 该端口开启的保护功能,NONE 表示没有开启。 |
综合根网桥ID 信息以及各个交换机上的端口信息,可得到当前拓扑,如图所示:

2.1.4. 实验调试
(1)更变交换机优先级
把LSW1的优先级改成0,把LSW3的优先级改成4096
1)配置LSW1,命令如下:
<LSW1>system-view
#把LSW1变成主根网桥
[LSW1]stp root primary
如图所示:

stp root primary命令的作用是把交换机的优先级设置为0,相当于stp priority 0 命令
2)配置LSW3,命令如下:
<LSW3>system-view
#把LSW3变成备用根网桥
[LSW3]stp root secondary
如图所示:

(2)查看交换机生成树状态信息
# 查看交换机LSW2上生成树的状态信息摘要
[LSW3]display stp brief
如图所示:

综合,根网桥id信息以及各个交换机上的端口信息,可得到当前拓扑,如图所示:

2.2. 实验2:修改STP的Cost
2.2.1. 实验目的
学会通过端口的Cost(开销)来控制端口角色以及端口状态
2.2.2. 实验拓扑图

2.2.3. 实验步骤
(1)开启所有交换机的STP
1)LSW1的配置,命令如下:
#开启所有交换机的STP,并把LSW1的优先级设置为0
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname LSW1
[LSW1]stp mode stp
[LSW1]stp priority 0
如图所示:

2)LSW2的配置,命令如下:
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname LSW2
[LSW2]stp mode stp
如图所示:

3)LSW3的配置,命令如下:
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname LSW3
[LSW3]stp mode stp
如图所示:

4)LSW4的配置,命令如下:
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname LSW4
[LSW4]stp mode stp
如图所示:

(2)查看交换机生成树状态信息
#查看LSW1交换机生成数的状态信息
[LSW1]display stp brief
#查看LSW2交换机生成数的状态信息
[LSW2]display stp brief
#查看LSW3交换机生成数的状态信息
[LSW3]display stp brief
#查看LSW4交换机生成数的状态信息
[LSW4]display stp brief
如图所示:




综合,根网桥id信息以及各个交换机上的端口信息,可得到当前拓扑,如图所示:

2.2.4. 实验调试
#1. 修改LSW4的G0/0/5接口的Cost为1,命令如下:
[LSW4]interface g0/0/5
[LSW4-GigabitEthernet0/0/5]stp cost 1#2. 查看交换机LSW4上生成树的状态信息摘要,命令如下:
[LSW4-GigabitEthernet0/0/5]display stp brief
如图所示:

通过以上输出结果发现 G0/0/4 接口被阻塞了
三. 本章命令汇总
| 命令 | 作用 |
|---|---|
| stp enable | 开启STP |
| stp mode stp | STP的模型为IEEE802.1d |
| stp priority 0 | 修改设置STP的优先级为0 |
| display stp brief | 查看STP接口的状态信息摘要 |
| stp cost 1 | 修改STP接口的开销为1 |
相关文章:
07. STP的基本配置
文章目录 一. 初识STP1.1. STP概述1.2. STP的出现1.3. STP的作用1.4. STP的专业术语1.5. BPDU的报文格式1.6. STP的选择原则(1)选择根桥网桥原则(2)选择根端口原则 1.7. 端口状态1.8. STP报文类型1.9. STP的收敛时间 二. 实验专题…...
oracle分区范围修改与数据迁移处理
背景 由于对应用上线后流量越来越大,原来的按年自动分区性能跟不上,因此决定改成按月自动分区,同时将原有分区数据重新迁移到新的分区 步骤 修改表分区为一个月一个分区 alter table my_table set INTERVAL (NUMTOYMINTERVAL(1, month));…...
回归预测 | Matlab实现CPO-LSSVM【24年新算法】冠豪猪优化最小二乘支持向量机多变量回归预测
回归预测 | Matlab实现CPO-LSSVM【24年新算法】冠豪猪优化最小二乘支持向量机多变量回归预测 目录 回归预测 | Matlab实现CPO-LSSVM【24年新算法】冠豪猪优化最小二乘支持向量机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CPO-LSSVM【24年…...
SeaTunnel Web安装 一把成
安装相关jar包,以及SeaTunnel 和Web 打成的包,可以直接使用,但是需要安装MySQL客户端的分享: 链接:https://pan.baidu.com/s/1qrt1RAX38SgIpNklbQJ7pA 提取码:0kmf 1. 环境准备 环境名称版本系统环境C…...
对话泛能网程路:能源产业互联网,行至中程
泛能网的能源产业互联网的标杆价值还不仅于此。其在产业互联之外,也更大的特殊性在于其也更在成为整个碳市场的“辅助运营商”,包括电力、碳等一系列被泛能网帮助企业改造和沉淀的要素资产,都在构成着碳交易市场的未来底层。 这恰是产业互联…...
Doris简介及单机部署(超详细)
文章目录 一、Doris简介1、Doris介绍2、Doris架构 二、Doris单机部署(Centos7.9)1、下载Doris2、准备环境3、安装部署3.1 创建存储目录3.2 配置 FE3.3 启动 FE3.4 查看 FE 运行状态3.5 配置 BE3.6 启动 BE3.7 添加 BE 节点到集群3.8 查看 BE 运行状态3.9…...
Pytest 识别case规则
一、Python测试框架,主要特点有以下几点: 简单灵活,容易上手;支持参数化;能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytestrequests…...
gorm+mysql查询/修改json列相关操作汇总
目录 具体操作 1,查询JSON段落指定key的值是否有等于value的 或 指定keyvalue的数据记录 2,查询JSON段落中price>19的记录 3,查询JSON段中key为k0的记录 4、JSON段落中提取指定键值对到指定结构 5,查询JSON数组是否包含…...
CMake-Cookbook 第0章 配置环境
文章目录 第0章 配置环境0.1 获取代码0.2 Docker镜像0.3 安装必要的软件0.3.1 获取CMake0.3.2 编译器0.3.3 自动化构建工具0.3.4 Python0.3.5 依赖软件0.3.5.1 BLAS和LAPACk0.3.5.2 消息传递接口(MPI)0.3.5.3 线性代数模板库0.3.5.4 Boost库0.3.5.5 交叉编译器0.3.5.6 ZeroMQ, …...
优质硬盘检测工具SMART Utility,保障您的Mac数据安全
在日常使用Mac电脑的过程中,我们经常会存储大量的重要数据,如照片、文档、视频等。然而,硬盘故障却是一件令人头疼的事情,可能会导致数据丢失、系统崩溃等严重后果。为了保障您的数据安全,我们推荐一款专业的硬盘检测工…...
Spring: alibaba代码规范校验工具checkstyle
文章目录 一、idea配置checkstyle插件二、激活CheckStyle三、配置自动格式化功能四、使用代码格式化 一、idea配置checkstyle插件 下载 Intellij IDEA Checkstyle 插件:File -> setting -> plugin通过关键字CheckStyle-IDEA搜索并安装。 安裝完成后重启idea…...
c++线程thread示例
本文章记录c创建线程,启动线程和结束线程的代码。 需要注意,编译时需要添加-lpthread依赖。 代码: ThreadTest.h #ifndef TEST_THREAD_TEST_H #define TEST_THREAD_TEST_H#include <thread> #include <mutex>class ThreadTes…...
Compose | UI组件(十一) | Spacer - 留白
文章目录 前言Spacer组件的参数说明Spacer组件的使用 总结 前言 Spacer组件是让两组件之间留有空白间隔 Spacer组件的参数说明 Spacer只有一个修饰符,修饰留空白的大小和比例,颜色 Spacer(modifier: Modifier)Spacer组件的使用 Row {Box(modifier M…...
PyTorch的nn.Module类的详细介绍
在PyTorch中,nn.Module 类是构建神经网络模型的基础类,所有自定义的层、模块或整个神经网络架构都需要继承自这个类。nn.Module 类提供了一系列属性和方法用于管理网络的结构和训练过程中的计算。 1. PyTorch中nn.Module基类的定义 在PyTorch中ÿ…...
python使用activemq库ActiveMQClient类的连接activemq并订阅、发送和接收消息
引入activemq模块:from activemq import ActiveMQClient from activemq import ActiveMQClient 是一个Python的导入语句,它从activemq模块中导入了ActiveMQClient类。 解释一下各个部分: from activemq: 这表示我们正在从一个名为activemq…...
【Flutter 面试题】Dart是什么?Dart和Flutter有什么关系?
【Flutter 面试题】Dart是什么?Dart和Flutter有什么关系? 文章目录 写在前面Dart是什么Dart和Flutter有什么关系? 写在前面 👏🏻 正在学 Flutter 的同学,你好! 😊 本专栏是解决 Fl…...
前后台分离跨域交互
后台处理跨域 安装插件 >: pip install django-cors-headers插件参考地址:https://github.com/ottoyiu/django-cors-headers/项目配置:dev.py # 注册app INSTALLED_APPS [...corsheaders, ]# 添加中间件 MIDDLEWARE [...corsheaders.middleware.…...
React16源码: React中处理LegacyContext相关的源码实现
LegacyContext 老的 contextAPI 也就是我们使用 childContextTypes 这种声明方式来从父节点为它的子树提供 context 内容的这么一种方式遗留的contextAPI 在 react 17 被彻底移除了,就无法使用了那么为什么要彻底移除这个contextAPI的使用方式呢?因为它…...
Boost.Test资源及示例
Note:boost_1_84_0的动态连接库资源链接 1.代码组织如下图: 2.包括程序入口的代码文件 示例: // M24.01.MyTestModule.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #define BOOST_TEST_MODULE MYTESTMODULE #def…...
数据结构二叉树
二叉树是数据结构中的一个基本概念,它是每个节点最多有两个子节点的树结构。在二叉树中,每个节点通常有两个指针,分别指向左子节点和右子节点。 数据结构定义 在二叉树的节点中,通常包含以下信息: 数据域࿱…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
归并排序:分治思想的高效排序
目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法,由约翰冯诺伊曼在1945年提出。其核心思想包括: 分割(Divide):将待排序数组递归地分成两个子…...
麒麟系统使用-进行.NET开发
文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的,如果需要进行.NET开发,则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET,所以要进…...
