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

四、华为交换机 STP

        生成树协议(STP)的核心目的是在存在冗余链路的网络中,构建一个无环的拓扑结构,从而防止网络环路带来的广播风暴等问题

  • 一、STP 原理

    • 选举根桥:网络中的每台交换机都会有一个唯一的桥 ID(BID),由桥优先级(默认 32768)和交换机 MAC 地址组成。具有最低桥 ID 的交换机会被选举为根桥,根桥是生成树拓扑的中心。
    • 确定根端口:在非根桥交换机上,每个交换机需要确定一个根端口。根端口是距离根桥最近的端口,衡量距离的指标是路径开销(Path Cost)。路径开销与端口带宽相关,带宽越高,路径开销越低。如果有多条路径开销相同的链路,则会比较发送方的桥 ID 以及端口 ID,选择最优的作为根端口。
    • 确定指定端口:每个网段都需要确定一个指定端口。指定端口负责向本网段转发来自根桥的流量。在每个网段中,比较连接到该网段的各个交换机端口的路径开销。具有最低路径开销的端口成为该网段的指定端口。如果多个端口的路径开销相同,则比较这些端口所在交换机的桥 ID,桥 ID 较低的交换机端口成为指定端口。
    • 阻塞非指定端口:除了根端口和指定端口之外,其他端口将被阻塞(Blocked)。被阻塞的端口不会转发用户流量,但会继续接收和处理 STP 协议报文,以便能够感知网络拓扑的变化。通过阻塞非指定端口,STP 协议有效地防止了网络环路的产生,确保了网络的稳定性和可靠性。
  • 二、STP 状态

    • 禁用(Disabled):端口处于非工作状态,不参与 STP 运算,也不转发任何数据帧。该状态通常是由于管理员手动关闭端口,或者端口出现硬件故障等原因导致。
    • 阻塞(Blocking):端口不转发用户数据帧,但会接收并处理 STP 协议报文,用于监听网络拓扑的变化。在网络初始化阶段或者拓扑结构发生变化后,部分端口会暂时处于阻塞状态,以防止网络环路的产生。
    • 监听(Listening):端口开始参与 STP 运算,不再处于阻塞状态,但仍然不转发用户数据帧。在这个阶段,端口会发送和接收 STP 协议报文,以确定其在生成树拓扑中的角色(根端口、指定端口或非指定端口)。
    • 学习(Learning):端口仍然不转发用户数据帧,但开始学习网络中 MAC 地址的分布情况,并将学到的 MAC 地址信息记录在端口的 MAC 地址表中。通过学习阶段,端口能够逐步建立起准确的 MAC 地址表,为后续的数据转发做好准备。
    • 转发(Forwarding):端口正常转发用户数据帧,同时也继续参与 STP 运算,接收和处理 STP 协议报文,以确保网络拓扑结构发生变化时能够及时做出响应,重新调整端口的状态和角色,维持网络的稳定性和无环性。
  • 三、STP 主要参数

    • 桥优先级(Bridge Priority):取值范围通常是 0 - 65535,默认值为 32768。桥优先级用于在选举根桥时确定交换机的优先级。具有较低桥优先级的交换机更有可能被选举为根桥。如果多个交换机的桥优先级相同,则会比较它们的 MAC 地址,MAC 地址较小的交换机将成为根桥。
    • 路径开销(Path Cost):路径开销是衡量一个端口到根桥距离的指标。它与端口的带宽密切相关,一般来说,带宽越高,路径开销越低。不同标准定义的路径开销计算方法略有不同。在选举根端口时,非根桥交换机上的每个端口都会计算其到根桥的路径开销,具有最低路径开销的端口将成为根端口。如果有多条路径开销相同的链路,则会进一步比较发送方的桥 ID 以及端口 ID,以确定最优的根端口。在确定指定端口时,也会比较连接到同一网段的各个交换机端口的路径开销,具有最低路径开销的端口将成为该网段的指定端口。
    • 端口优先级(Port Priority):取值范围一般是 0 - 255,默认值为 128。端口优先级用于在路径开销相同的情况下,进一步确定根端口和指定端口。在选举根端口时,如果多个端口到根桥的路径开销相同,则会比较这些端口的端口优先级。具有较高端口优先级(即端口优先级数值较小)的端口更有可能被选举为根端口。如果端口优先级也相同,则会比较端口的编号,端口编号较小的端口将成为根端口。在确定指定端口时,当连接到同一网段的多个交换机端口路径开销相同时,也会依据端口优先级来进行抉择,规则与根端口选举时类似。
    • Hello 时间(Hello Time)默认值为 2 秒。Hello 时间是指根桥交换机每隔多长时间向网络中的其他交换机发送一次 Hello 报文。Hello 报文包含了根桥的桥 ID、路径开销等重要的 STP 信息。通过周期性地发送 Hello 报文,根桥能够向网络中的其他交换机宣告自己的存在,并确保整个网络的 STP 拓扑信息保持同步。其他交换机在接收到 Hello 报文后,会根据报文中的信息来更新自己的 STP 状态和拓扑信息。如果某个交换机在连续多个 Hello 时间间隔内都没有收到来自根桥的 Hello 报文,那么它会认为网络拓扑结构可能发生了变化,进而触发 STP 的重新计算过程,以确保网络能够重新收敛到一个无环的拓扑结构。
    • 转发延迟(Forward Delay)默认值为 15 秒。转发延迟是指端口从阻塞状态或监听状态转换到转发状态所需要等待的时间。在网络初始化阶段或者拓扑结构发生变化后,STP 协议需要重新计算网络拓扑,以确定各个端口的角色和状态。在这个过程中,部分端口可能需要从阻塞状态或监听状态转换到转发状态。为了防止网络中出现临时的环路,STP 协议引入了转发延迟机制。当端口需要从阻塞状态或监听状态转换到转发状态时,它不会立即开始转发用户数据帧,而是需要等待一段转发延迟时间。在这段时间内,端口仍然处于监听或学习状态,继续接收和处理 STP 协议报文,同时学习网络中的 MAC 地址分布情况。只有在等待完转发延迟时间后,端口才会正式转换到转发状态,开始正常转发用户数据帧。这样可以确保在网络拓扑重新收敛的过程中,不会因为端口状态的快速变化而导致网络中出现临时的环路,从而保证了网络的稳定性和可靠性。
    • 最大老化时间(Max Age)默认值为 20 秒。最大老化时间是指交换机端口保存的 STP 拓扑信息的最长有效时间。在网络正常运行过程中,交换机通过接收来自根桥的 Hello 报文来更新自己的 STP 拓扑信息。Hello 报文包含了根桥的桥 ID、路径开销等重要信息,交换机根据这些信息来确定自己在网络拓扑中的位置和角色。然而,如果某个交换机在连续多个 Hello 时间间隔内都没有收到来自根桥的 Hello 报文,那么它会认为网络拓扑结构可能发生了变化。此时,交换机并不会立即触发 STP 的重新计算过程,而是会等待一段时间,这个时间就是最大老化时间。在最大老化时间内,交换机仍然会使用之前保存的 STP 拓扑信息来转发数据帧。如果在最大老化时间结束之前,交换机又收到了来自根桥的 Hello 报文,那么它会认为网络拓扑结构没有发生变化,继续使用之前保存的 STP 拓扑信息。然而,如果在最大老化时间结束时,交换机仍然没有收到来自根桥的 Hello 报文,那么它会认为网络拓扑结构已经发生了变化,进而触发 STP 的重新计算过程。在重新计算过程中,交换机会根据新收到的 STP 信息来重新确定自己在网络拓扑中的位置和角色,同时更新各个端口的状态,以确保网络能够重新收敛到一个无环的拓扑结构。最大老化时间的设置在网络拓扑结构变化时起到了缓冲作用,避免了因为短暂的 Hello 报文丢失而频繁触发 STP 的重新计算过程,从而提高了网络的稳定性和可靠性。
  • 四、华为交换机 STP 使用方式

    • 开启和关闭 STP

      • 华为交换机默认情况下,STP 是开启的。如果网络规模较小且不存在环路风险,或者出于特殊网络优化需求,可以选择关闭 STP。在系统视图下,使用命令 “stp disable” 即可关闭 STP 。若之后需要重新开启 STP,在系统视图下使用命令 “stp enable”。

                

  • 配置 STP 模式

    • 华为交换机支持多种 STP 模式,如 STP(Spanning Tree Protocol)、RSTP(Rapid Spanning Tree Protocol)和 MSTP(Multiple Spanning Tree Protocol)。不同的模式在收敛速度、功能特性等方面有所差异。RSTP 相比 STP 收敛速度更快,能够在网络拓扑发生变化时更快地恢复网络连通性。MSTP 则在 RSTP 的基础上,进一步支持将多个 VLAN 映射到同一个生成树实例中,从而实现更灵活的网络拓扑管理和负载均衡。可以根据网络的实际需求和规模来选择合适的 STP 模式。在系统视图下,使用命令 “stp mode {stp | rstp | mstp}” 来配置 STP 模式。例如,要将交换机的 STP 模式配置为 RSTP,可以在系统视图下输入命令 “stp mode rstp”。
  • 设置桥优先级

    • 通过调整交换机的桥优先级,可以影响根桥的选举结果,从而优化网络拓扑结构。在系统视图下,使用命令 “stp priority priority - value” 来设置桥优先级。其中,priority - value 为桥优先级的取值,范围是 0 - 65535,并且必须是 4096 的倍数。例如,要将交换机的桥优先级设置为 8192,可以在系统视图下输入命令 “stp priority 8192”。这样设置后,在进行根桥选举时,如果其他交换机的桥优先级默认值 32768 或者更高,那么这台交换机将更有可能被选举为根桥。通过合理设置桥优先级,可以确保网络中的根桥选择符合网络规划和优化的需求,从而提高网络的稳定性和性能。

                                ​​​​​​​        

  • 配置端口路径开销和优先级

    • 端口路径开销和优先级对于根端口和指定端口的选举至关重要。在某些情况下,默认的路径开销和端口优先级可能无法满足网络优化的需求,这时就需要手动配置这些参数。
  • 可以使用命令 “stp cost cost - value” 来配置端口的路径开销。其中,cost - value 为路径开销的取值,取值范围根据不同的标准有所不同。例如,在 IEEE 802.1D - 1998 标准中,10Mbps 端口的默认路径开销为 100,100Mbps 端口的默认路径开销为 19,1Gbps 端口的默认路径开销为 4 等。

  • 使用命令 “stp port - priority priority - value” 来配置端口的优先级。其中,priority - value 为端口优先级的取值,范围是 0 - 255,默认值为 128。在根端口和指定端口的选举过程中,当路径开销相同时,端口优先级将成为决定端口角色的关键因素。具有较高端口优先级(即端口优先级数值较小)的端口更有可能被选举为根端口或指定端口。

STP 故障排除与维护

        在网络运行过程中,可能会出现各种与 STP 相关的故障,影响网络的正常运行。需要定期检查交换机的 STP 状态和配置信息,确保 STP 功能正常运行。使用命令 “display stp” 可以查看交换机的 STP 全局状态信息,包括当前交换机的角色(根桥、非根桥)、根桥的桥 ID、Hello 时间、转发延迟、最大老化时间等重要参数。通过查看这些信息,可以了解交换机当前的 STP 运行状态是否正常,以及各项参数的设置是否符合网络规划和优化的需求。

使用命令 “display stp brief” 可以查看交换机各个端口的 STP 简要状态信息,包括端口编号、端口角色(根端口、指定端口、非指定端口)、端口状态(转发、阻塞、监听、学习等)、路径开销、端口优先级等重要信息。

五、实验:

[LSW1]stp enable       开启STP[LSW1]stp mode stp       设置生成树的模式为STP[LSW1]stp priority 4096        设置优先级为 4096      越小越优         必须是4096的倍数[LSW2]stp enable            开启STP[LSW2]stp mode stp              设置生成树的模式为STP[LSW2]stp priority 8192          设置优先级为 8192      越小越优         必须是4096的倍数[LSW3]stp enable                  开启STP[LSW3]stp mode stp                    设置生成树的模式为STP[LSW4]stp enable                   开启STP[LSW4]stp mode stp                  设置生成树的模式为STP

1、查看stp状态

2、stp端口角色

3、修改转发时延

[LSW1]stp timer forward-delay 2000         <400-3000>        转发时延修改为20秒[LSW1]stp timer hello 300        <100-1000>     #stp计时值修改默认时间为3秒[LSW1]stp timer max-age 3000      <600-4000>    #stp计时值修改默认保存BPDU时间为30秒

相关文章:

四、华为交换机 STP

生成树协议&#xff08;STP&#xff09;的核心目的是在存在冗余链路的网络中&#xff0c;构建一个无环的拓扑结构&#xff0c;从而防止网络环路带来的广播风暴等问题 一、STP 原理 选举根桥&#xff1a;网络中的每台交换机都会有一个唯一的桥 ID&#xff08;BID&#xff09;&am…...

服务器卡顿是否等同于遭受CC攻击?

在网站运营或应用服务过程中&#xff0c;遇到服务器响应缓慢或者卡顿时&#xff0c;很多管理员的第一反应是可能遭遇了CC&#xff08;Challenge Collapsar&#xff09;攻击。但实际情况往往更为复杂。本文将探讨服务器卡顿与CC攻击之间的关系&#xff0c;并提供一些基本的排查方…...

【机器学习实战入门】使用Pandas和OpenCV进行颜色检测

Python 颜色检测项目 今天的项目将非常有趣和令人兴奋。我们将与颜色打交道&#xff0c;并在项目过程中学习许多概念。颜色检测对于识别物体来说是必要的&#xff0c;它也被用作各种图像编辑和绘图应用的工具。 什么是颜色检测&#xff1f; 颜色检测是检测任何颜色名称的过程…...

一文大白话讲清楚webpack基本使用——1——完成webpack的初步构建

文章目录 一文大白话讲清楚webpack基本使用——1——完成webpack的初步构建1. 先回忆webpack是个啥2. webpack四大核心2.1 Entry(入口)2.2 Output(输出)2.3 Loader(加载器)2.4 Plugin(插件) 3. 按部就班实现webpack3.1 初始化项目3.2 完成项目骨架搭建3.3 实现webpack构建 一文…...

RabbitMQ基础篇

文章目录 1 RabbitMQ概述1.1 消息队列1.2 RabbitMQ体系结构 2 RabbitMQ工作模式2.1 简单模式&#xff08;Simple Queue&#xff09;2.2 工作队列模式&#xff08;Work Queues&#xff09;2.3 发布/订阅模式&#xff08;Publish/Subscribe&#xff09;2.4 路由模式&#xff08;R…...

GPT-5 传言:一场正在幕后发生的 AI 变革

新的一年&#xff0c;让我们从一个引人入胜的话题开始&#xff1a;如果我告诉你&#xff0c;GPT-5 并非虚构&#xff0c;而是真实存在呢&#xff1f;它不仅真实存在&#xff0c;而且正在你看不见的地方悄然塑造着世界。我的基本假设是&#xff1a;OpenAI 已经秘密开发出 GPT-5&…...

CSS布局与响应式

学习链接 Grid网格布局 前端五大主流网页布局 flex布局看这一篇就够了 grid布局看这一篇就够了 用六个案例学会响应式布局 伸缩盒响应式页面布局实战 实现响应式布局的五种方式 - csdn 如何完成响应式布局&#xff0c;有几种方法&#xff1f;看这个就够了 响应式布局总…...

C++的auto_ptr智能指针:从诞生到被弃用的历程

C作为一种功能强大的编程语言&#xff0c;为开发者提供了众多便捷的特性和工具&#xff0c;其中智能指针是其重要特性之一。智能指针能够自动管理内存&#xff0c;有效避免内存泄漏等常见问题。然而&#xff0c;并非所有智能指针都尽善尽美&#xff0c;auto_ptr便是其中的一个例…...

iOS - Objective-C 底层实现中的哈希表

1. 关联对象存储&#xff08;AssociationsHashMap&#xff09; // 关联对象的哈希表实现 typedef DenseMap<const void *, ObjcAssociation> ObjectAssociationMap; typedef DenseMap<DisguisedPtr<objc_object>, ObjectAssociationMap> AssociationsHashMa…...

什么是软件架构

什么是软件架构 程序员说&#xff0c;软件架构是要决定编写哪些C程序或OO类、使用哪些库和框架 程序经理说&#xff0c;软件架构就是模块的划分和接口的定义 系统分析员说&#xff0c;软件架构就是为业务领域对象的关系建模 配置管理员说&#xff0c;软件架构就是开发出来的…...

【Golang/nacos】nacos配置的增删查改,以及服务注册的golang实例及分析

前言 本文分析的实例来源于nacos在github上的开源仓库 nacos配置的增删查改 先具体来看一段代码&#xff0c;我将逐步分析每一段的作用 package mainimport ("fmt""time""github.com/nacos-group/nacos-sdk-go/clients""github.com/naco…...

RabbitMQ集群安装rabbitmq_delayed_message_exchange

1、单节点安装rabbitmq安装延迟队列 安装延迟队列rabbitmq_delayed_message_exchange可以参考这个文章&#xff1a; rabbitmq安装延迟队列-CSDN博客 2、集群安装rabbitmq_delayed_message_exchange 在第二个节点 join_cluster 之后&#xff0c;start_app 就会报错了 (CaseC…...

Linux UDP 编程详解

一、引言 在网络编程领域&#xff0c;UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09;作为一种轻量级的传输层协议&#xff0c;具有独特的优势和适用场景。与 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff0…...

【2024年华为OD机试】(B卷,100分)- 计算最接近的数 (Java JS PythonC/C++)

一、问题描述 题目解析 我们需要找到一个下标 i&#xff0c;使得表达式 X[i] - X[i 1] - ... - X[i K - 1] 的结果最接近于数组的中位数。如果有多个 i 满足条件&#xff0c;则返回最大的 i。 关键点&#xff1a; 中位数计算&#xff1a; 将数组排序后&#xff0c;中位数…...

Pytorch 自学笔记(三):利用自定义文本数据集构建Dataset和DataLoader

Pytorch 自学笔记&#xff08;三&#xff09; 1. Dataset与DataLoader1.1 torch.utils.data.Dataset1.2 torch.utils.data.DataLoader Pytorch 自学笔记系列的第三篇。针对Pytorch的Dataset和DataLoader进行简单的介绍&#xff0c;同时&#xff0c;介绍如何使用自定义文本数据集…...

QT 使用QSqlTableModel对数据库进行创建,插入,显示

文章目录 效果图概述功能点代码分析初始数据插入数据数据显示 总结 效果图 概述 本案例用于对数据库中的数据进行显示等其他操作&#xff0c;其他表格筛选&#xff0c;过滤等功能可看此博客 框架&#xff1a;数据模型使用QSqlTableModel&#xff0c;视图使用QTableView&#x…...

如何学习Transformer架构

Transformer架构自提出以来&#xff0c;在自然语言处理领域引发了革命性的变化。作为一种基于注意力机制的模型&#xff0c;Transformer解决了传统序列模型在并行化和长距离依赖方面的局限性。本文将探讨Transformer论文《Attention is All You Need》与Hugging Face Transform…...

浅谈云计算22 | Kubernetes容器编排引擎

Kubernetes容器编排引擎 一、Kubernetes管理对象1.1 Kubernetes组件和架构1.2 主要管理对象类型 二、Kubernetes 服务2.1 服务的作用与原理2.2 服务类型 三、Kubernetes网络管理3.1 网络模型与目标3.2 网络组件3.2.1 kube-proxy3.2.2 网络插件 3.3 网络通信流程 四、Kubernetes…...

计算 SAMOut V3 在将词汇表从1万 增加到6千万的情况下能够减少多少参数

当我们将词汇表从 60,000,000&#xff08;六千万&#xff09;减少到 10,000 时&#xff0c;实际上是在缩小模型的词嵌入层及其共享的语言模型头&#xff08;LM Head&#xff09;的规模。这将导致参数量显著减少。我们可以通过以下步骤来计算具体的参数减少量。 参数量减少计算…...

03.选择排序

一、题目思路 选择排序是一种简单直观的排序算法。它的工作原理是&#xff1a;首先在未排序序列中找到最小&#xff08;或最大&#xff09;元素&#xff0c;存放到排序序列的起始位置&#xff0c;然后&#xff0c;再从剩余未排序元素中继续寻找最小&#xff08;或最大&#xff…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...