STP协议:如何消除网络环路风暴

news2025/6/1 7:22:50

生成树协议(STP,Spanning Tree Protocol)的主要功能:

  1. 消除网络环路导致的广播风暴问题(环路会引发MAC地址表不稳定)
  2. 防止网络中的主机接收重复数据帧

STP工作原理:

  1. 选举根桥(Root Bridge,RB)
  2. 在非根交换机上选举根端口(Root Port,RP)
  3. 为每个网段选举指定端口(Designated Port,DP),该端口负责转发BPDU报文(根桥端口默认为指定端口)
  4. 阻塞其他所有端口(Block/Discarding状态)

STP协议定义了三种端口角色:指定端口、根端口和预备端口。

  1. 指定端口(Designated Port,DP,标记:DESI)

    • 功能:负责向所连网段转发配置BPDU
    • 特点:每个网段有且仅有一个指定端口
    • 注意:根桥的所有端口默认都是指定端口
  2. 根端口(Root Port,RP,标记:ROOT)

    • 定义:非根交换机去往根桥的最优路径端口
    • 限制:每台交换机最多拥有一个根端口
    • 例外:根桥上不存在根端口
  3. 预备端口(标记:ALTE)

    • 条件:既非指定端口也非根端口的端口
    • 状态:自动进入阻塞状态
  4. 桥ID组成与选举规则

    • 构成:优先级(0-65535,默认32768)+ MAC地址
    • 选举:STP网络中桥ID最小的交换机成为根桥
  5. 根路径开销(Root Path Cost,RPC)

    • 作用:用于选举根端口和指定端口(值越小越优先)
    • 计算:等于从根桥到该交换机沿途所有入方向接口Cost值的累和

根端口选举规则:

  1. 首先比较路径开销
  2. 若开销相同,则比较桥ID
  3. 若桥ID也相同,则比较端口ID

端口ID说明:

  • 由端口优先级(0-240)和端口号组成
  • 优先级取值规则:
    • 必须为16的整数倍
    • 默认值为128
  • 用于最终确定端口角色

STP协议运行下设备端口存在五种状态:

Forwarding(转发状态)

  • 可转发用户流量和BPDU报文
  • 仅根端口或指定端口可进入此状态

Learning(学习状态)

  • 根据接收的用户流量构建MAC地址表
  • 不转发用户流量
  • 设置此状态可避免临时环路

Listening(侦听状态)

  • 允许转发BPDU报文
  • 禁止转发用户流量

Blocking(阻塞状态)

  • 仅接收并处理BPDU
  • 不转发BPDU和用户流量
  • 预备端口的最终状态

Disabled(禁用状态)

  • 不处理或转发BPDU报文
  • 不转发用户流量

BPDU主要分为两类:配置BPDU和TCN BPDU。

  • 配置BPDU:包含桥ID、路径开销和端口ID等关键参数,用于STP协议的交换机选举和端口状态确定。在网络初始化阶段,所有交换机都会主动发送配置BPDU;当网络拓扑稳定后,仅根桥继续主动发送,其他交换机收到上游BPDU后才会响应。
  • TCN BPDU:当下游交换机检测到拓扑变化时,向上游发送的拓扑变更通知。

配置BPDU核心参数

  1. 根桥ID:由优先级和MAC地址组成,确保STP网络中唯一根桥。
  2. 根路径开销:到达根桥的最短路径开销。
  3. 指定桥ID:指定交换机的优先级和MAC地址。
  4. 指定端口ID:指定端口的优先级和端口号。
  5. 时间参数
    • Message Age:BPDU传播的当前生存时间。
    • Max Age:BPDU的最大保存时间(默认20秒)。
    • Hello Time:BPDU发送间隔(默认2秒,仅根桥触发)。
    • Forward Delay:端口状态迁移延时(默认15秒,含Listening→Learning→Forwarding阶段)。

关键时间说明

  • Hello Time:根桥每2秒发送BPDU,其他设备中继转发。
  • Forward Delay:控制端口状态转换及MAC表刷新。
  • Max Age:新旧BPDU切换的忠诚度判断阈值(20秒)。若Message Age > Max Age则丢弃BPDU;否则接收并转发(每经过一台交换机Message Age+1,仅在MSTP中可修改且需根桥调整生效)。

 

配置所需要的命令: 

[SWA]stp mode stp                        配置交换机的生成树协议模式
[SWA]stp priority 4096                   配置交换机优先级
[SWC]interface GigabitEthernet 0/0/1     进入接口
[SWC-GigabitEthernet0/0/1]stp cost 2000  配置路径开销
[SWA]display stp                         配置验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2392594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

哈工大计算机系统2025大作业——Hello的程序人生

计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 计算学部 学   号 2023113072 班 级 23L0513 学 生 董国帅 指 导 教 师 史先俊 计算机科学与…

Vue中van-stepper与input值不同步问题及解决方案

一、问题描述 在使用Vant UI的van-stepper步进器组件与原生input输入框绑定同一响应式数据时,出现以下现象: 通过步进器修改值后,页面直接输出{{ count }}和watch监听器均能获取最新值但input输入框显示的数值未同步更新,仍为旧…

react基础技术栈

react基础技术栈 react项目构建react的事件绑定React组件的响应式数据条件渲染和列表循环表单绑定 Props和组件间传值,插槽react中的样式操作 生命周期ref 和 context函数组件和hook高阶组件React性能问题React-route的三个版本react-router使用步骤react-router提供…

Three.js搭建小米SU7三维汽车实战(4)场景搭建

场地搭建 javascript // 导入threejs import * as THREE from "three"; // 导入轨道控制器 import { OrbitControls } from "three/addons/controls/OrbitControls.js"; // 1. 创建场景 const scene new THREE.Scene(); // 2. 创建相机 const camera ne…

Excel 统计某个字符串在指定区域出现的次数

【本文概要】 Excel 统计某个字符串在指定区域出现的次数: 1、Excel 统计一个单元格内的某字符串的出现次数 2、Excel 统计某一列所有单元格内的某字符串的出现次数 3、Excel 统计某一区域所有单元格内的某字符串的出现次数 1、Excel 统计一个单元格内的某字符串的出…

【Linux我做主】进度条小程序深度解析

Linux下C语言进度条程序深度解析 进度条小程序GitHub地址 前言前置知识回车换行(CR/LF)的深度解析历史渊源与技术规范在进度条/倒计时中的应用 缓冲区机制的全面剖析缓冲区引入缓冲类型对比进度条开发中的关键控制 进度条实现以小见大——倒计时倒计时最…

从Homebrew找到openssl.cnf文件并拷贝到Go项目下使用

安装OpenSSL 在 macOS 上下载和安装 OpenSSL 最常见和推荐的方式是使用 Homebrew,这是一个 macOS 缺失的包管理器。 如果您还没有安装 Homebrew,请先安装它。安装 Homebrew 后,安装 OpenSSL 只需要一条命令。 步骤 1:安装 Home…

微信小程序一次性订阅封装

封装代码如下&#xff1a; export async function subscribeMessage(tmplIds: string[]): Promise<ISubscribeMessagePromise> {// 模板ID// 1、获取设置状态const settings (await wx.getSetting({ withSubscriptions: true })).subscriptionsSetting || {}console.log…

安全帽检测算法AI智能分析网关V4守护工地/矿山/工厂等多场景作业安全

一、方案概述​ 在工业生产与建筑施工场景中&#xff0c;安全帽是保障人员安全的重要装备。但传统人工巡检效率低、易疏漏&#xff0c;难以满足现代安全管理需求。AI智能分析网关V4安全帽检测方案&#xff0c;借助人工智能与计算机视觉技术&#xff0c;实现作业现场安全帽佩戴…

Python自动化之selenium语句——打开、关闭浏览器和网页

目录 一、打开谷歌浏览器 1.双击桌面的Pycharm工具 2.新建Python文件&#xff0c;输入文件名 3.新建的Python文件如下 4.安装selenium库 5.导入包 二、打开网页、关闭网页、关闭浏览器 1.导入增加一个时间包 2.使用函数打包之前写的浏览器的配置 3.调用 4.打开百度网…

【数据结构】--二叉树--堆(上)

一、树的概念和结构 概念&#xff1a; 树是一种非线性的数据结构&#xff0c;他是由n(n>0)个有限结点组成一个具有层次关系的集合。其叫做树&#xff0c;是因为他倒过来看就和一棵树差不多&#xff0c;其实际上是根在上&#xff0c;树枝在下的。 树的特点&#xff1a; 1…

多线程(5)——单例模式,阻塞队列

目录 单例模式饿汉模式懒汉模式—单线程版懒汉模式—多线程版&#xff08;经典面试题&#xff09;懒汉模式—多线程版&#xff08;改进&#xff09; 阻塞队列阻塞队列是什么生产者消费者模型标准库中的阻塞队列-BlockingQueue阻塞队列实现 单例模式 单例模式是一种设计模式&am…

视频监控汇聚平台EasyCVR工业与安全监控:防爆摄像机的安全应用与注意事项

石油、化工、煤矿等行业存在易燃易爆气体、粉尘&#xff0c;普通监控设备易因电火花、高温引发爆炸火灾。随着工业规模扩大&#xff0c;安全生产监控需求激增&#xff0c;防爆摄像机成为保障安全的关键。加之国家法规与行业标准对危险环境监控设备要求严格&#xff0c;规范其应…

基于 Redis 实现分布式锁:原理及注意事项

文章目录 基于 Redis 实现分布式锁&#xff1a;原理及注意事项基于 Redis 实现分布式锁的原理Redis 分布式锁的过期时间和锁续期机制如何防止锁被其他 goroutine 删除&#xff1f;Redis 分布式锁存在的单点故障问题&#xff1a;基于 RedLock 的解决方案高并发场景中 Redis 分布…

手机设备多?怎样设置IP保证不关联

在移动互联网时代&#xff0c;多设备运营&#xff08;如电商、游戏工作室、社交媒体矩阵&#xff09;常面临IP关联风险&#xff0c;轻则账号受限&#xff0c;重则封禁。以下提供6种高效设置独立IP的方法&#xff0c;结合技术原理与实操建议&#xff0c;助您打造稳定合规的运营环…

哈尔滨工业大学计算机系统大作业程序人生-Hello’s P2P

摘 要 文章以C语言程序设计经典案例hello.c为研究对象&#xff0c;系统解析程序在计算机系统中的完整生命周期。剖析源代码通过预处理、编译、汇编、链接四阶段演化为可执行目标程序的编译系统工作机制&#xff0c;继而从进程视角揭示程序运行时计算机体系结构的协同运作&…

Linux系统管理与编程24:基础条件准备-混搭“本地+阿里云”yum源

兰生幽谷&#xff0c;不为莫服而不芳&#xff1b; 君子行义&#xff0c;不为莫知而止休。 1.添加宿主机共享文件夹 Linux虚拟机可以和宿主机共享文件夹&#xff0c;这样有利于工具文件的共享。具体操作如下&#xff1a; 1&#xff09;vmware workstation共享文件夹 虚拟机…

如何在 Windows 10 PC 上获取 iPhone短信

您可以轻松地将媒体数据从 iPhone 传输到 Windows 计算机&#xff0c;并直接访问计算机上的数据。但是&#xff0c;您可以在 Windows 10 PC 上接收 iPhone 短信吗&#xff1f;有什么功能或工具支持它吗&#xff1f;如果您发现在 Windows 10 PC 上接收 iPhone 消息很困难&#x…

Linux 系统中的软链接与硬链接

目录 一、什么是软链接&#xff1f; 1. 创建软链接 2. 软链接的特性 3. 软链接的用途 二、什么是硬链接&#xff1f; 1. 创建硬链接 2. 硬链接的特性 3. 硬链接的用途 4. 目录硬链接的特殊性 ​编辑 三、软链接与硬链接的区别 1. inode 编号 2. 路径依赖 3. 删除行…

Python爬虫第22节- 结合Selenium识别滑动验证码实战

目录 一、引言 二、滑动验证码原理与反爬机制 2.1 验证码原理 2.2 反爬机制 三、工程实战&#xff1a;滑动验证码识别全流程 3.1 工程准备 3.1.1 环境依赖 3.1.2 目标网站与验证码识别案例 3.2 核心破解流程 3.2.1 自动化打开网页与登录 3.2.2 获取验证码图片&#…