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

STP---生成树协议

STP的作用

a)Stp通过阻塞端口来消除环路,并能够实现链路备份目的

b)消除了广播风暴

c)物理链路冗余,网络变成了层次化结构的网络

STP操作
  1. 选举一个根桥
  2. 每个非根交换机选举一个根端口
  3. 每个网段选举一个指定端口
  4. 阻塞非根,非指定端口
STP--生成树协议:作用专门设计出来解决二层环路问题的协议
线路冗余 设备冗余
交换机的广播风暴:洪范的数据帧在交换机之间来回循环发送,浪费资源
MAC 地址表的偏移
多帧复制
交换机会逻辑的阻塞一些端口,从而将一些链路断开,形成一种树形结构,从而形成无环的拓扑,之后当网络结构发生变换,STP 会监控整个网络,进而将原本阻塞的一些端口重新打开,形成备份路径
最短路径树--
IEEE组织
STP---802.1D标准下提出了生成树协议
PVST PVST +——思科提出的私有协议
RSTP- 快速生成树 802.1W
MSTP --多生成树 802.1t标准提出
STP ,一个交换网络只生成一颗树
跨层封装的协议---跨三四层封装的协议
STP 发送的数据包称为 BPDU---- 网桥协议数据单元
配置 BPDU ---用来做生成树的角色选举

       为了计算生成树,交换机之间需要交换相关的信息和参数,这些信息和参数被封装在BPDU( Bridge Protocol Data Unit )中。
        BPDU 有两种类型:配置 BPDU 和 TCN BPDU 。
        配置BPDU 包含了桥 ID 、路径开销和端口 ID 等参数。 STP 协议通过在交换机之间传递配置 BPDU 来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置 BPDU 。在网络拓扑稳定以后,只有根桥主动发送配置 BPDU ,其他交换机在收到上游传来的配置 BPDU 后,才会发送自己的配置 BPDU 。
        TCN BPDU是指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知。

STP--PVI 为0 RSTP 2 MSTP 3
ROOT-ID RID---指的是最终被选择成为树根设备的ID
Brige ID B-ID---指的是交换机的编号
前16为二进制为设备的优先级
48 位为设备的 MAC 地址---
RPC --根路径开销:非根设备到达根设备的开销
PORT -ID PID---前四位是接口的优先级,后12位是接口的编号
消息寿命默认是 20
TCNBPDU ---拓扑发送变化之后会发送TCN
BPDU---刷新MAC地址表
只包含三个参数
一个是 PID --协议ID
PVI--协议版本
BPDU -type 0X80代表TCN-BPDU
配置BPDU---选举生成树角色

根桥:生成树里面的‘老大’,桥id最小
备份根桥:生成树里面的“二把手”,老大挂了的时候,我当老大,桥ID第二小。
非根交换机:干活的小弟,都有一个根端口
根端口:离根桥最近的端口
指定端口:根桥所有参与生成树选举的端口,都一定是指定端口
非根非指定端口:被阻塞的端口---备用链路的端口
路径开销:是端口Cost值,可以用来选择最优的路径,值越小越优。根路径开销是端口到达根桥的过程中累计的路径开销。
BID:桥ID:是由桥优先级和桥MAC地址构成,桥优先级为高16位,MAC地址是低48位。
PID:端口ID:是由端口优先级和端口号构成,端口优先级为高4位,端口号                                   根网桥(R B)---整个交换网络需要选择唯一的根设备                                                                  根端口( R P)--所有非根设备都需要选择至少一个接口成为根端口(用来接收配置BPDU)

指定端口( D P)---每段链路都会选择一个接口成为指定接口(用来转发配置BPDU)
非指定端口(N DP)---最终会被阻塞的端口--没有角色的接口都是非指定端口
根网桥( R B )---整个交换网络需要选择唯一的根设备
设备对比配置 BPDU 的参数后选择----根据配置
BPDU中的BID选择
Brige ID B-ID---指的是交换机的编号
前16为二进制为设备的优先级
48 位为设备的 MAC 地址---
优先级---0-65535 设备默认优先级数值为 32768
以4096作为步调修改--- 16 在stp协议中只使用前4位,后12位在MSTP中才使用,实际stp的优先级范围是0-61440
设备优先级的对比规则是数值越小越优--MAC地址根端口( R P)--所有非根设备都需要选择至少一个接口成为根端口(用来接收配置BPDU)----RPC-到达根设备的开销
沿途累加开销----生成树的开销只看入接口开销
入向 RPC --
1.会选择入向RPC值更小的作为根端口
2.会比较对端设备BID,会选择BID更小的设备对应的接口作为根端口
3.选择对端这边PID--接口id更小的作为根端口
PID---16位二进制
前4位是接口的优先级,后12位是接口的编号
0-240 接口默认的优先级是 128--- 16作为步调
修改接口优先级
4.如果对端设备PID一样时,将比较自身的接口PID,选择pid数值更小的作为根端口
指定端口--DP
指定端口( D P)---每段链路都会选择一个接口成
为指定接口(用来转发配置BPDU)0。如果一段链路对端是根端口,那么自身一定是指定
1.先比较接口的出向RPC
2.如果出向RPC一样,会看本设备的BID小的作为指定端口。
3,自环,选择自身端口PID更小的作为指定端口
4.只要接口收到自身发送的配置BPDU,则直接将该接口阻塞。
[Huawei]undo stp enable
[Huawei-GigabitEthernet0/0/1]undo stp enable --只关闭接口生成树
如果在阻塞状态一直没有收到配置 BPDU 则,将等待20s,之后直接进入下一个状态。如果收到的配置BPDU则直接进入下一个状态。listening状态,在进行生成树的选举---并且在生成树必须在
listening状态停留15S才能进入下一个状态。生成树为了避免一些设备选举完成一些设备没有完成的情况(害怕出现临时环路)。一旦在选举过程中,接口被认定为非指定接口,将直接回到阻塞状态。
learning状态:进行MAC地址表的学习,并且会在该状态停留15S,作用:尽量减少发送数据时广播的产生。
最终来到转发状态,这个状态接口才会发送业务数据
生成树初始收敛至少需要50S 的时间。收敛速度慢。
根桥设备故障--需要50S的时间重新选举角色 (重新收敛)
直连链路故障--
当根端口故障,但是设备还可以通过其他的端口收到配置BPDU,那么将直接进入listening状态。之后进入学习状态,一共需要30S
非直连链路故障--当根端口故障,但是设备不能通过其他的端口收到配置BPDU,那么将等待20S后,直接进入listening状态。之后进入学习状态,一共需要50S
配置:
[Huawei]stp enable -开启协议
[Huawei]stp mode stp --更改协议模式
[Huawei]display stp --查看stp的参数---
需要人为干涉生成树的选举结果
[Huawei]stp priority 24576 --修改设备BID的优先级-- 数值越小约优
[Huawei]stp root primary ---配置设备成为根桥设备。实质是将优先级改为0
[Huawei]stp root secondary ---配置备份根桥实质是将优先级改为4096
RSTP +MSTP
1.收敛速度慢的问题--RSTP
2.链路利用率低---MSTP
RSTP---
RSTP 改进点
1.变更端口角色---根端口 指定端口 非指定端口
根端口 指定端口 替代端口( ALTE ) 备份端口(backup)
替代端口( ALTE )---替代端口的作用是作为根端口的备份--当设备的根端口故障后,会从自身其他的替代端口中选择参数最优的作为新的根端口。
生成树比对配置 BPDU 中的一些参数最终参数不优的一些端口---不是根端口和指定端口备份端口(backup)---指定端口的备份:如果一个接口收到了自身发送的配置BPDU则该端口为备份端口。
2.修改端口状态---
禁用,阻塞,侦听,学习,转发--
DISCARDING ----丢弃状态:不能转发业务数据也不能进行MAC地址表的学习
Learning--学习状态:不能转发业务数据,但是可以进行MAC地址表的学习
FORWARDING ---转发状态---即能转发业务数据,也可以进行MAC地址表的学习
3.修改了配置BPDU报文中一些参数
P/A 机制---相当于是RSTP收敛速度的优化措施,本质是将已经选择出角色的端口(指定端口)直接进入转发状态,不需要等待生成树的计时器
同步状态是为了保证自身后面的交换网络漫游临时环路。
4.加快了生成树的失效判断时间--在STP中该时间为MAX AGE默认 20s,在RSTP中将其优化为3个周期时间(2s)
5.快速收敛机制---总结
1.根端口和指定端口的快速切换---本质是设计了两个新端口角色,省去了重新选举的时间
2.P/A机制
3.边缘端口
[Huawei-GigabitEthernet0/0/3]stp edged-port enable ----作用让连接PC的端口直接进入转发状态
[Huawei-GigabitEthernet0/0/3]stp bpdu-filter enable ----相当于过滤该接口的bpdu
[Huawei]stp bpdu-protection ---BPDU保护---如果边缘接口收到配置BPDU将直接变成普通端口进行角色选举
6.拓扑结构发生变化的处理机制---RSTP如果发生拓扑变更将直接发生TC置为1的RST-BPDU直接让其他设备将MAC地址表老化时间改为15S。
MSTP ---多生成树协议
改进点1.考虑了VLAN,MSTP生成树提出了实例的概念(instance )Instance的取值范围----0-4094
0---默认情况下所以VLAN都属于实例0
同时MSTP还提出了域的概念(region)---单域MSTP交换网络
1.域名必须相同---region name必须一样
2.必须具备相同的修订等级--revision level
3.相同的VLAN和实例映射关系
MSTP 配置:
1.配置VLAN
[Huawei]vlan batch 1 to 10
[Huawei-GigabitEthernet0/0/2]port link-type trunk
[Huawei-GigabitEthernet0/0/2]port trunk allow-pass vlan 1 to 10
[Huawei]stp enable
[Huawei]stp mode mstp
[Huawei-mst-region]region-name aa -配置MSTP域名称
[Huawei-mst-region]revision-level 1 --修改修订等级,可以不修改
[Huawei-mst-region]instance 1 vlan 1 to 5
[Huawei-mst-region]instance 2 vlan 6 to 10 --配置VLAN和实例映射关系
[Huawei-mst-region]active region-configuration ---必须激活配置
修改 MSTP 实例优先级
[Huawei]stp instance 1 root secondary --
链路聚合
VRRP
根端口只看接口收到的配置的 BPDU 的情况,指定端口只看发送BPDU 的情况。
配置BPDU--用来STP做角色选举的BPDU,初始情况下交换机没有根的情况下,所有交换机会先把自己当作根设备去发生配置BPDU--之后比对其中的参数,选择唯一的树根。选择出树根之后,只有根设备会每2秒发生配置
BPDU用来设备保活,之后其他设备只转发根设备M发送的配置BPDU。

相关文章:

STP---生成树协议

STP的作用 a)Stp通过阻塞端口来消除环路,并能够实现链路备份目的 b)消除了广播风暴 c)物理链路冗余,网络变成了层次化结构的网络 STP操作 选举一个根桥每个非根交换机选举一个根端口每个网段选举一个指定端口阻塞非根,非指定端口 STP--生成树…...

算法D38| 动态规划1 | 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

理论基础 无论大家之前对动态规划学到什么程度,一定要先看 我讲的 动态规划理论基础。 如果没做过动态规划的题目,看我讲的理论基础,会有感觉 是不是简单题想复杂了? 其实并没有,我讲的理论基础内容,在动…...

Vue教学13:组件的生命周期:掌握组件的每一个关键时刻

大家好,欢迎回到我们的Vue教学系列博客!在前十二篇博客中,我们学习了Vue.js的基础知识、安装Node.js与npm、使用Vue Devtools进行调试、Vue实例与生命周期钩子、数据绑定(单向与双向)、计算属性与侦听器、条件渲染和列…...

mitmproxy代理

文章目录 mitmproxy1. 网络代理2. 安装3. Https请求3.1 启动mitmproxy3.2 获取证书3.3 配置代理3.4 运行测试 4. 请求4.1 读取请求4.2 修改请求4.3 拦截请求 5. 响应5.1 读取响应5.2 修改响应 6. 案例:共享账号6.1 登录bilibili获取cookies6.2 在代理请求中设置cook…...

【GPU驱动开发】- mesa编译与链接过程详细分析

前言 不必害怕未知,无需恐惧犯错,做一个Creator! 一、总体框架图 暂时无法在飞书文档外展示此内容 二、Mesa API 处理 OpenGL 函数调用 Mesa API 负责实现 OpenGL 和其他图形 API 的函数接口。Mesa API 表是一个重要的数据结构&#xf…...

如何恢复已删除的华为手机图片?5 种方式分享

不幸的现实是,华为的珍贵时刻有时会因为意外删除、软件故障或其他不可预见的情况而在眨眼之间消失。在这种情况下,寻求恢复已删除的图片成为个人迫切关心的问题。 本文旨在为用户提供如何从华为恢复已删除图片的实用解决方案。我们将探索五种可行的方法…...

通过 python 和 wget 批量下载文件(在Linux/Ubuntu/Debian中测试)

首先创建一个文本文件d.txt, 一行一个链接。 你可以使用简单的 Python 脚本逐行读取文件 (d.txt) 中的链接,并使用 wget 下载文件: import subprocess# File containing download links (replace with your file path) file_path d.txt# Function to …...

个人博客系列-后端项目-RBAC角色管理(6)

设计用户表 ## 用户表 class User(models.Model):username models.CharField(max_length255, uniqueTrue, verbose_name"手机号")password models.CharField(max_length255, uniqueFalse, verbose_name"密码")is_vip models.BooleanField(defaultFalse…...

机器学习-启航

文章目录 原理分析机器学习的两种典型任务机器学习分类总结数据机器学习分类解读简单复杂 原理分析 马克思主义哲学-规律篇 规律客观存在,万事万物皆有规律。 机器学习则是多维角度拆解分析复杂事实数据,发现复杂事实背后的规律,然后将规律用…...

驱动调试第014期-变频调速的原理及相关计算公式应用

一、引言 变频调速是一种通过改变电源频率来实现电动机调速的技术。它具有高效、精确、可靠等优点,广泛应用于工业、商业和家用领域。本文将介绍变频调速的基本原理、优点以及应用领域,并通过详细的公式计算过程和图片说明来帮助读者更好地理解。 二、变…...

JavaWeb环境配置 IDE2022版

一、新建一个javaweb文件 文件名可以自己随意改 二、给建立的项目添加框架支持 勾选Web Application,点击确定 建立成功界面,会生成一个新的web文件夹 三、配置tomcat 1、两种打开配置文件方式: 第一种 第二种 2、打开后,点击号&#xf…...

Matlab偏微分方程拟合 | 完整源码 | 视频教程

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《复杂函数拟合案例分享》本专栏旨在提供 1.以案例的形式讲解各类复杂函数拟合的程序实现方法,并提供所有案例完整源码;2.…...

什么是yocto基本组件(bitbake,recipes,classes,configuration,layer)

文章目录 1基本组件1.1 bitbake1.2 Recipes1.3 Classes1.4 Configurations2 层的理解2.1 层结构2.2 nxp yocto示例2.3 ti yocto示例1基本组件 1.1 bitbake bitbake,是OpenEmbedded构建系统的核心工具,负责解析元数据,从中生成任务列表,然后执行这些任务。bitbake是一个通…...

electron 程序与安装包图标放大与制作

原因 electron-builder 在打包时需要最小支持到256x256像素的icon图标。原有历史图标都太小了。需要尝试将图标放大。 工具 convertio.co/zh/ico-png/ 在线ico转png网站 https://github.com/upscayl/upscayl 图片放大工具 csdn下载 greenfish-icon-editor-pro.en.softonic.c…...

nginx,php-fpm

一,Nginx是异步非阻塞多进程,io多路复用 1、master进程:管理进程 master进程主要用来管理worker进程,具体包括如下4个主要功能: (1)接收来自外界的信号。 (2)向各worker进…...

网络编程(3/4)

广播 ​ #include<myhead.h>int main(int argc, const char *argv[]) {//1、创建套接字int sfd socket(AF_INET, SOCK_DGRAM, 0);if(sfd -1){perror("socket error");return -1;}//2、将套接字设置成允许广播int broadcast 1;if(setsockopt(sfd, SOL_SOC…...

vue computed计算属性

模板中的表达式虽然方便&#xff0c;但也只能用来做简单的操作&#xff1b;如果在模板中写太多逻辑&#xff0c;会让模板变得臃肿&#xff0c;难以维护&#xff1b;因此我们推荐使用计算属性来描述依赖响应式状态的复杂逻辑 1. 选项式 API 中&#xff0c;可以提供computed选项来…...

智慧路灯物联网管理平台及应用

资产维护 路灯物联网涉及的设备数量大,种类多,生产厂家和批次多样化,对路灯物联网的资产维护是一项艰巨的工作。资产维护管理能够有效的管理路灯资产及各类传感设备资产信息,实现精细化管理。平台提供了对集中控制器、各感测设备节点控制器等设备的信息进行管理,包括录入…...

基于OpenCV的图形分析辨认02

目录 一、前言 二、实验目的 三、实验内容 四、实验过程 一、前言 编程语言&#xff1a;Python&#xff0c;编程软件&#xff1a;vscode或pycharm&#xff0c;必备的第三方库&#xff1a;OpenCV&#xff0c;numpy&#xff0c;matplotlib&#xff0c;os等等。 关于OpenCV&…...

python基础——基础语法

文章目录 一、基础知识1、字面量2、常用值类型3、注释4、输入输出5、数据类型转换6、其他 二、字符串拓展1、字符串定义2、字符串拼接3、字符串格式化4、格式化精度控制 三、条件/循环语句1、if2、while3、for循环 四、函数1、函数定义2、函数说明文档3、global关键字 五、数据…...

vue3 vue-i18n 多语言

1. 安装 npm install vue-i18n -s 2. 引入main.js import { createI18n } from vue-i18n import messages from ./i18n/index const i18n createI18n({legacy: false,locale: Cookies.get(language) || en_us, // set localefallbackLocale: en_us, // set fallback local…...

二级水平导航菜单栏的实现

1. 这个是本人设计的一带一路的二级水平导航栏HTML代码&#xff1b; 这里最后实现的效果是鼠标悬停在导航栏上面&#xff0c;就会显示下面的4个部分页面&#xff0c;这里只是以评论热 点作为例子&#xff0c;其他的类似&#xff1b; 2.首先要设计DIV&#xff0c;然后利用无…...

在GitLab Python库中,mr.changes()和mr.diffs()的区别

在GitLab Python库中&#xff0c;mr.changes()和mr.diffs()都用于获取合并请求&#xff08;Merge Request&#xff09;中的文件更改信息&#xff0c;但它们之间有一些区别&#xff1a; mr.changes()&#xff1a; mr.changes() 方法返回合并请求中所有文件的更改信息。返回的结果…...

JavaScript | 【讨论】微软早在2022年已经停用ie的今天,js开发还需要考虑ie9以下的情况嘛?

CSDN的C知道机器回复&#xff1a; 在进行JavaScript开发时&#xff0c;通常需要考虑IE9以下的况。尽管IE9以下的浏览器在市场份额上逐渐减少&#xff0c;但仍然有一部分用户在使用这些旧版本的浏览器。为了确保网站或应用在这些浏览器上能够正常运行&#xff0c;以下是一些需要…...

网康科技 NS-ASG 应用安全网关 SQL注入漏洞复现(CVE-2024-2022)

0x01 产品简介 网康科技的NS-ASG应用安全网关是一款软硬件一体化的产品,集成了SSL和IPSec,旨在保障业务访问的安全性,适配所有移动终端,提供多种链路均衡和选择技术,支持多种认证方式灵活组合,以及内置短信认证、LDAP令牌、USB KEY等多达13种认证方式。 0x02 漏洞概述 …...

英福康INFICON软件真空Tware32中文操作手册

英福康INFICON软件真空Tware32中文操作手册...

UnityAPI的学习——Quaternion类

Quaternion又称为四元数&#xff0c;由x、y、z和w这4个分量组成&#xff0c;属于struct类型。 在Unity中&#xff0c;用Quaternion来存储和表示对象的旋转角度。 Quaternion类实例属性 在Quaternion类中&#xff0c;涉及的实例属性主要有eulerAngles eulerAngles属性&#x…...

chromedriverUnable to obtain driver for chrome using ,selenium找不到chromedriver

1、下载chromedriver chromedriver下载网址&#xff1a;CNPM Binaries Mirror 老版本在&#xff1a;chromedriver/ 较新版本在&#xff1a;chrome-for-testing/ 2、设置了环境变量还是找不到chromedriverUnable to obtain driver for chrome using NoSuchDriverException:…...

剑指offer面试算法题目,自己总结的

JZ31 栈的压入、弹出序列-C++-CSDN博客 剑指 Offer(C++版本)系列:从尾到头打印单链表(C++)-CSDN博客 剑指offer》15--二进制中1的个数[C++]-CSDN博客 《剑指offer》14--剪绳子(整数拆分)[C++]-CSDN博客 剑指 Offer 12. 矩阵中的路径-CSDN博客 C++--机器人的运动范围…...

原生IP是什么?如何测试代理是不是原生IP?

一、什么是原生IP 原生IP地址是互联网服务提供商&#xff08;ISP&#xff09;直接分配给用户的真实IP地址&#xff0c;无需代理或转发。这类IP的注册国家与IP所在服务器的注册地相符。这种IP地址直接与用户的设备或网络关联&#xff0c;不会被任何中间服务器或代理转发或隐藏。…...