HCIP STP(生成树)
目录
一、STP概述
二、生成树协议原理
三、802.1D生成树
四、STP的配置BPDU
1、配置BPDU的报文格式
2、配置BPDU的工作过程
3、TCN BPDU
4、TCN BPDU的工作过程
五、STP角色选举
1、根网桥选举
2、根端口选举
3、指定端口选举
4、非指定端口选举
六、STP的接口状态
1、接口状态
2、接口状态迁移
3、首次收敛
七、STP基本配置
1、配置生成树工作模式
2、配置网桥(可选)
3、备份根桥(可选)
4、配置交换机的STP优先级
5、配置接口路径开销(可选)
八、RSTP--快速生成树协议
1、802.1D生成树的缺点
2、快速生成树(RSTP)的改进点
1)端口角色
2)端口状态
3)RST BPDU
4)快速收敛机制
5)配置BPDU的处理
6)BPDU保护功能
3、快速生成树的原理
九、MSTP--多生成树协议
1、STP、RSTP缺点
2、MSTP概述
3、MST Region
4、MSTP配置
1)配置首生成树工作模式
2)启用MSTP
3)配置MST域
① 进入MST域视图
② 配置MST域的域名
③ 配置多生成树实例与VLAN的映射关系
④ 激活MST域的配置
4)MSTP配置根桥和备份根桥
5)修改优先级--可选
一、STP概述
以太网交换机网络中为了进行链路备份,提高网络的可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。为了解决交换网络中的环路问题,提出了生成树协议(STP)--Spanning Tree Protocol。

二、生成树协议原理
在二层交换网络中,逻辑的阻塞部分的接口,实现从根交换机到所有节点唯一的路径且为最佳路径,生成一个没有环路的拓扑,当最佳路径出现故障时,个别被阻塞的接口将打开,形成备份链路。生成树在生成过程中,应该尽量的生成一棵星型结构,且最短路径树;
三、802.1D生成树
生成树是相对比较早的一个协议了,所以,也经历了多种版本的更替。我们现在常见的主要是802.1D生成树,RSTP快速生成树协议--定义在802.1W中,也被称为802.1W生成树,MSTP多生成树协议--定义在802.1S中,也被称为802.1S生成树。
四、STP的配置BPDU
所谓BPDU---Bridge Protocol Data Unit,网桥协议数据单元--其实就是生成树需要发送的数据包的叫法。
BPDU是能够正常工作的根本,BPDU是STP的协议报文。
STP交换机之间会交互BPDU报文,这些BPDU报文携带着一些重要信息,正是基于这些信息,STP才能够顺利工作。
PBDU主要分为两大类:1、配置BPDU;2、TCN-BPDU。其中配置BPDU是STP进行拓扑计算的关键;TCN BPDU只在网络拓扑发生变更时才会触发。
1、配置BPDU的报文格式


2、配置BPDU的工作过程
所有交换机刚启动,所有接口都激活STP,一开始,并不知道谁是根,则所有设备都将自己判定为根网桥,从自己的所有激活了STP的接口发送配置BPDU,则其中将包含本机参数。之后,所有设备都交换参数后,将根据参数数值进行选举,之后将选举一个真正的根网桥。之后,只有根网桥将周期的发送配置BPDU,而其他非根网桥只能在接受到根网桥发送BPDU后进行转发。(转发时可以修改其中的参数)---发送周期为2S,MAX AGE---20S。
3、TCN BPDU
报文格式---仅拥有配置BPDU的前三个参数,其中BPDU类型指端为0x80。
4、TCN BPDU的工作过程
本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为回复,用于可靠传输消息;之后将TCN逐级转发到根网桥处,由根网桥回复TC消息来逐级回复到所有交换机;使所有交换机临时将MAC表的老化时间修改为15s(默认的,转发延时)
五、STP角色选举
1、根网桥选举

在一棵生成树实例中,有且仅有一台交换机为root;
BPDU中的 桥ID来决定
桥ID= 网桥优先级(0-65535公有) 默认32768 + MAC地址(只有存在svi接口的交换机才拥有mac地址,若存在多个mac选数值最小)
根网桥的选举 先比较优先级,小优; 若优先级相同,比较mac,数值小优;
2、根端口选举

选举过程
1)首先比较根路径开销RPC,RPC值越小越优选;
2)当RPC相同时,比较上行交换机的BID,值越小越优选;
3)当上行交换机的BID相同时,比较上行交换机的PID,值越小越优选;
4)当上行PID相同时,比较本地交换机的PID,值越小越优选。
3、指定端口选举

选举过程
1)首选比较根路径开销RPC,RPC值越小越优选;
2)当RPC相同时,则比较链路两端交换机的的BID,值越小越优选;
3)当BID相同时,比较链路两端端口的PID,值越小越优选;
4、非指定端口选举

STP会对这些非指定端口的进行逻辑阻塞,即这些端口不能进行转发由终端计算机产生并发送的帧(用户数据帧)。
一旦非指定端口被逻辑阻塞后,STP(无环路工作拓扑就生成了)。
注:非指定端口可以接受并处理BPDU。
六、STP的接口状态
1、接口状态

2、接口状态迁移

1)Forwarding:转发状态,端口既可转发用户流量也可以转发BPDU,只有根端口或者指定端口才能进入Forwarding状态。
2)Learning:学习状态,端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路。
3)Listening:侦听状态,端口可以转发BPDU报文,但不能转发用户流量。
4)Blocking:阻塞状态,端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口最终状态。
5)Disabled:禁用状态,端口既不能处理和转发BPDU报文,也不能转发用户流量

3、首次收敛
首次收敛,所有设备最先进入的是阻塞状态,需要先停留20S(最大寿命时间)之后进入侦听状态,此状态停留15S选举角色,之后进入学习状态,再停留15S,总共50S。
七、STP基本配置
1、配置生成树工作模式
[Huawei]stp mode stp | rstp | mstp #三选一个模式
交换机支持STP、RSTP、MSTP三种生成树工作模式,默认情况工作再MSTP模式。
2、配置网桥(可选)
[Huawei]stp root primary
配置挡墙设备为根桥,缺省情况下,交换机不作为任何生成树的根桥,配置后该设备优先级数值自动为0,并且不能更改设备优先级。
3、备份根桥(可选)
[Huawei]stp root secondary
配置挡墙交换机为备份根桥,缺省情况下,交换机不作为任何生成树的备份根桥,配置后该设备优先级数值为4096,并且不能更改设备优先级。
4、配置交换机的STP优先级
[Huawei]stp priority ?INTEGER<0-61440> Bridge priority, in steps of 4096
缺省情况下,交换机的优先级取值是32768.
5、配置接口路径开销(可选)
[Huawei]stp pathcost-standard ?dot1d-1998 IEEE 802.1D-1998dot1t IEEE 802.1Tlegacy Legacy
配置接口路径开销计算方法,缺省情况下,路径开销之=值得计算方法为IEEE 802.1t(dot1t)标准方法。同一网络内所有交换机得接口路径开销应使用相同得计算方法。
[Huawei]int g0/0/1
[Huawei-GigabitEthernet0/0/1]stp cost ?INTEGER<1-200000000> Port path cost
设置当前接口得路径开销值。
八、RSTP--快速生成树协议
1、802.1D生成树的缺点
1)网络拓扑收敛慢,影响了用户通信质量;
2)STP没有细致区分接口状态和接口角色;
3)STP算法是被动算法,依赖定时器等待的方式判断拓扑变化,导致收敛速度慢。
4)STP算法要求在稳定的拓扑中,根桥主动发出配置BPDU,而其他设备进行处理,传遍整个STP网络,这也是导致拓扑收敛慢的原因之一。
2、快速生成树(RSTP)的改进点
1)端口角色

RSTP的端口角色共有四种:根端口、指定端口、Alternate端口和Backup端口。
根端口和指定端口的作用同STP中定义,Alternate端口和Backup端口的描述如下:
从配置BPDU报文发送角度来看:
Alternate端口就是由于学习到其他网桥发送的配置BPDU报文而阻塞的端口。
Backup端口就是由于学习到自己发送的配置BPDU报文而阻塞的端口。
从用户流量角度来看:
Alternate端口提供了从指定桥到根的另一条可切换路径,作为根端口的备份端口。
Backup端口作为指定端口的备份,提供了一条从根桥到相应网段的备份通路。给一个RSTP域内所有端口分配角色的过程就是整个拓扑收敛的过程。
2)端口状态
RSTP的状态规范缩减为3种,根据端口是否转发用户流量和学习MAC地址来划分:
Discarding状态:不转发用户流量也不学习MAC地址;
Learning状态:不转发用户流量但是学习MAC地址;
Forwarding状态:既转发用户流量又学习MAC地址。

3)RST BPDU
RSTP 的配置BPDU充分利用了STP报文中的Flag字段,明确了端口角色。
除了保证和STP格式基本一致之外,RSTP作了如下变化:
Type字段:配置BPDU类型不再是0而是2,所以运行STP的设备收到RSTP的配置BPDU时会丢弃。
Flag字段:使用了原来保留的中间6位,这样改变的配置BPDU叫做RST BPDU。
RST BPDU报文格式:

4)快速收敛机制



注:这个P/A机制是RSTP快速收敛的核心手段,因为他改变了STP依照计时器收敛的方法,可以理解为完成收敛选举后立即切换状态,完成收敛。
5)配置BPDU的处理


6)BPDU保护功能

在交换机上,通常将直接与用户终端(如PC机)或文件服务器等非交换设备相连的端口配置为边缘端口。
如上图所示,SW3与某主机互联,并设置该互联接口为边缘端口;后来该主机被恶意用户侵占,并伪造RST BPDU攻击SW3,因此边缘端口会收到RST BPDU,失去边缘端口特征,并进行生成树计算。
3、快速生成树的原理
取消了计时器,而是在一个状态工作完成后,直接进入下一状态;
分段式同步,两台设备间逐级收敛;使用请求和同意标记;依赖标记位的第1和第6位
BPDU的保活为6s;hello time 2s;
将端口加速(边缘接口)、上行链路加速、骨干加速集成了
兼容802.1d和PVST,但802.1d和PVST没有使用标记位中的第1-6位,故不能快速收敛;因此如果网络中有一台设备不支持快速收敛,那么其他开启快速收敛的设备也不能快速;
当tcn消息出现时,不需要等待根网桥的BPDU,就可以刷新本地的cam表;
注:RSTP配置与STP一样,只需要修改模式为RSTP即可。
九、MSTP--多生成树协议
1、STP、RSTP缺点
RSTP在STP基础上进行了改进,实现网络拓扑快速收敛,但在划分VLAN的网络中运行RSTP/STP,局域网所有的VLAN共享一颗生成树,被阻塞后的链路将不承载任何流量,无法在VLAN间实现流量的负载均衡,导致链路带宽利用率、设备资源利用率较低。
为了弥补RSTP/STP的缺陷,IEEE2002年发布了802.1S标准MSTP--多生成树协议,MSTP兼容STP和RSTP,通过建立多颗无环的树,解决广播风暴并实现冗余备份。
2、MSTP概述
MSTP是IEEE802.1S中定义的生生成树协议,MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
MSTP可以将一个或多个VLAN映射到一个instance(实例),再基于instance计算生成树,映射到同一个instance的VLAN共享同一棵生成树。

如上图,经计算生成两棵生成树:
instance1对应的生成树以SW1为根交换设备,转发VLAN1-VLAN10的报文;
instance2对应的生成树以SW2为根交换设备,转发VLAN11-VLAN20的报文;
不同VALN的报文沿不同的路径转发,实现了负载分担。
注:生成树不是基于VLAN运行的,而是基于instance运行的。
3、MST Region


注:instance0是缺省存在的,而缺省时,华为交换机上所有的VLAN都映射到了instance0。
通过设备VLAN映射表(即VLAN和MSTI的对应关系),把VLAN和MSTI联系起来。
每个VLAN只能对应一个MSTI,即同一个VALN的数据只能再一个MSTI中传输,而一个MSTI可能对应多个VLAN。
4、MSTP配置
1)配置首生成树工作模式
[SW1]stp mode mstp
2)启用MSTP
[SW1]stp enable
3)配置MST域
① 进入MST域视图
[SW1]stp region-configuration
② 配置MST域的域名
[SW1-mst-region]region-name ?STRING<1-32> A maximum of 32 characters can be entered
[SW1-mst-region]region-name xixi
③ 配置多生成树实例与VLAN的映射关系
[SW1-mst-region]instance ?INTEGER<0-48> Identifier of spanning tree instance
[SW1-mst-region]instance 1 vlan
[SW1-mst-region]instance 1 vlan ?INTEGER<1-4094> VLAN ID
[SW1-mst-region]instance 1 vlan 1 ?INTEGER<1-4094> VLAN IDto Range of VLAN<cr>
[SW1-mst-region]instance 1 vlan 1 to 5
④ 激活MST域的配置
[SW1-mst-region]active region-configuration
4)MSTP配置根桥和备份根桥
[SW1]stp instance ?INTEGER<0-48> Identifier of spanning tree instance
[SW1]stp instance 1 ?priority Specify bridge priorityroot Specify root switch
[SW1]stp instance 1 root ?primary Primary root switch #主根secondary Secondary root switch #备根
[SW1]stp instance 1 root primary
5)修改优先级--可选
[SW1]stp instance 1 priority ?INTEGER<0-61440> Bridge priority, in steps of 4096相关文章:
HCIP STP(生成树)
目录 一、STP概述 二、生成树协议原理 三、802.1D生成树 四、STP的配置BPDU 1、配置BPDU的报文格式 2、配置BPDU的工作过程 3、TCN BPDU 4、TCN BPDU的工作过程 五、STP角色选举 1、根网桥选举 2、根端口选举 3、指定端口选举 4、非指定端口选举 六、STP的接口状…...
【Unity开发必备】100多个 Unity 学习网址 资源 收藏整理大全【持续更新】
Unity 相关网站整理大全 众所周知,工欲善其事必先利其器,有一个好的工具可以让我们事半功倍,有一个好用的网站更是如此! 但是好用的网站真的太多了,收藏夹都满满的(但是几乎没打开用过😁)。 所以本文是对…...
Alpine Ridge控制器使其具备多种使用模式 - 英特尔发布雷电3接口:竟和USB Type-C统一了
同时又因为这建立在Type-C的基础上,雷电3也将利用现有的标准Type-C线缆引入有源支持。当使用Type-C的线缆时,雷电的速度就降到了20Gbps全双工——这与普通的Type-C的带宽相同——这是为了成本牺牲了一些带宽。可以比较一下,Type-C线的成本只有…...
容器——2.Collection 子接口之 List
文章目录 2.1. Arraylist 和 Vector 的区别?2.2. Arraylist 与 LinkedList 区别?2.2.1. 补充内容:双向链表和双向循环链表2.2.2. 补充内容:RandomAccess 接口 2.3 ArrayList 的扩容机制 2.1. Arraylist 和 Vector 的区别? ArrayList 是 List 的主要实现类,底层使…...
【工作记录】docker安装gitlab、重置密码@20230809
前言 本文记录下基于docker安装gitlab并重置管理员密码的过程。 作为记录的同时也希望能帮助到需要的朋友们。 搭建过程 1. 准备好docker环境并启动docker [rootslave-node1 docker-gitlab]# docker version Client:Version: 18.06.1-ceAPI version: 1.38…...
数据挖掘的基本概念和大数据的特点
数据挖掘是指从大量数据中提取有价值的信息或模式的过程。它通常使用计算机技术来分析数据,并利用统计学、机器学习、人工智能等方法来发现数据中的隐藏规律、趋势和关联性。 数据挖掘的基本概念包括以下几个方面: 数据预处理:对原始数据进行…...
LabVIEW开发分段反射器测试台
LabVIEW开发分段反射器测试台 随着对太空的观察需求越来越远,而不是当前技术(如哈勃望远镜)所能达到的,有必要增加太空望远镜主镜的尺寸。但是,增加主镜像的大小时存在几个问题。随着反射镜尺寸的增加,制造…...
二级python和二级c哪个简单,二级c语言和二级python
大家好,小编为大家解答二级c语言和二级office一起报可以吗的问题。很多人还不知道计算机二级c语言和python哪个好考,现在让我们一起来看看吧! 介绍Python有很多库和使用Qt编写的接口,这自然创建c调用Python的需求。一路摸索,充满艰辛的添加头…...
E: Package ‘curl‘ has no installation candidate/ E:软件包没有可用的安装源
解决方案: 访问etc/apt/source.list 修改或者添加安装源 不用版本的Linux 有不同的配置比如我的是Debian 12 其他版本的去搜索引擎搜索即可 vim /etc/apt/source.list 改成修改或添加 // 以下是官方示例 deb http://deb.debian.org/debian bookworm main non-…...
代理模式及常见的3种代理类型对比
代理模式及常见的3种代理类型对比 代理模式代理模式分类静态代理JDK动态代理CGLIB动态代理Fastclass机制 三种代理方式之间对比常见问题 代理模式 代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可…...
8.6 校招 内推 面经
绿泡泡: neituijunsir 交流裙,内推/实习/校招汇总表格 1、面经 | 车载测试-23 面经 | 车载测试-23 2、校招 | 荣耀2024届全球校园招聘启动(内推) 校招 | 荣耀2024届全球校园招聘启动(内推) 3、校招 |…...
【大数据之Flume】七、Flume进阶之自定义Sink
(1)概述: Sink 不断地轮询 Channel 中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统、或者被发送到另一个 Flume Agent。 Sink 是完全事务性的。在从 Channel 批量删除数据之前,每个 Sink 用 Chan…...
vue对于时间的处理
2023-08-05 11:25:45 假如这个就是我们要传的时间字符串 比如今天是2023-08-05(同一天):现在把这个时间字符串传入到 formatDate()这个方法,就会给你返回 11:25 比如今天是2023-08-06(前一天&a…...
Apache DolphinScheduler 3.1.8 版本发布,修复 SeaTunnel 相关 Bug
近日,Apache DolphinScheduler 发布了 3.1.8 版本。此版本主要基于 3.1.7 版本进行了 bug 修复,共计修复 16 个 bug, 1 个 doc, 2 个 chore。 其中修复了以下几个较为重要的问题: 修复在构建 SeaTunnel 任务节点的参数时错误的判断条件修复 …...
科技云报道:一波未平一波又起?AI大模型再出邪恶攻击工具
AI大模型的快速向前奔跑,让我们见识到了AI的无限可能,但也展示了AI在虚假信息、深度伪造和网络攻击方面的潜在威胁。 据安全分析平台Netenrich报道,近日,一款名为FraudGPT的AI工具近期在暗网上流通,并被犯罪分子用于编…...
深度对话|如何设计合适的网络经济激励措施
近日,我们与Mysten Labs的首席经济学家Alonso de Gortari进行了对话,讨论了如何在网络运营商和参与者之间找到激励措施的平衡,以及Sui的经济如何不断发展。 是什么让您选择将自己的经济学背景应用于区块链和Web3领域? 起初&…...
opencv带GStreamer之Windows编译
目录 1、下载GStreamer和安装2. GSTReamer CMake配置3. 验证是否配置成功 1、下载GStreamer和安装 下载地址如下: gstreamer-1.0-msvc-x86_64-1.18.2.msi gstreamer-1.0-devel-msvc-x86_64-1.18.2.msi 安装目录无要求,主要是安装完设置环境变量 xxx\1…...
Java并发编程之锁的升级
Java 中的锁机制是多线程编程中的一部分。锁一共有4种状态,级别从低到高依次是:无锁状态、偏向锁状态、轻量级锁状态和重量级锁状态,这几个状态会随着竞争情况逐渐升级。 锁可以升级但不能降级,意味着偏向锁升级成轻量级锁后不能…...
多核异构处理器A核与M核通信过程
多核异构处理器是指集成了不同类型或架构的CPU的系统级芯片(SoC)。 例如,有些处理器同时包含了高性能的A核(如Cortex-A)和低功耗的M核(如Cortex-M)。 这样的设计可以让不同的CPU负责不同的任务…...
面试热题(反转链表)
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left < right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 链表的题,大部分都可以用指针或者递归可以做,指针如果做不出来的话,…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
