H3CNE--12.生成树协议

news2026/3/19 8:00:31
生成树协议技术背景如下图可以理解为是一个网状结构的网络可靠性很高挂了一根线另一根可以正常用但是会产生环路给每台交换机添加两台PC分别命名为A,B,C,D此时如果两台交换机刚刚开机A要和C通信此时SW1不认识C那么收到A的包后会广播发包从三口发出去但是根据交换机的工作原理收到一个广播包会直接进行广播那么在SW2上会再次广播此时不仅C收到了右侧的4口也收到了于是又发回SW1然后SW1 收到了再次广播依次循环这个包会在两个交换机来回转发消耗交换机的资源这就是广播风暴在交换机的学习中这个包的目的是C当广播从3出去C回一个包此时交换机学习C在3号口但是等下一次从4口传入的时候又会更新表因为交换机不支持一个mac对应多个端口于是这个C的MAC地址在地址表中反复跳来跳去叫做“MAC震荡”如果断掉一根线确实可以实现解决上述的两个问题但是就不能支持原本的目的——网络备份所以就需要一个东西解决这个问题那就是生成树协议生成树定义STPSpanning Tree Protocol生成树协议是用于在局域网中消除数据链路层物理环路的协议。通过在桥之间交换BPDUBridge Protocol Data Unit桥协议数据单元来保证设备完成生成树的计算通过它会把某个端口阻塞起来保证只有一条物理链路来传输数据阻塞并非将端口断掉只是一般数据不从阻塞口走当不阻塞的线路出故障或者断掉那么就会停止阻塞走原阻塞端口来实现网络中的网络备份STP相关概念BPDU在BPDU之前补充一下生成树协议是阻塞一个端口实现网络内无环路但是端口的选择肯定不是随机选择的是有选举机制和选举规则一般会选一个较差的端口定义桥协议数据单元用于传递STP协议相关报文分类配置BPDU用于传递STP的配置信息TCN BPDU用于通告拓扑变更信息配置BPDU他的存在类似于自我介绍每个交换机会将自己的链路情况和接口情况比如速率啊会通知给其他交换机他是一个数据帧用于传达自己的选举信息TCN BPDU用来告诉生成树协议网络拓扑的变更比如多了一条新的百兆口的链路生成树协议可能会重新选举挑选出被阻塞的端口STP的选举机制在所有交换机中选举出一台作为根网桥Root bridge)每台非根网桥交换机选举出一个根端口Root port每个物理段上选举出一个指定端口Designated port)剩下没有角色的端口就是阻塞端口Blocked Port选出根网桥选举规则桥IDbridge id 简称BID小的优先Bridge id的组成桥的优先级这个桥的MAC地址优先级默认32768必须是4096的倍数可以手动改假设有如下拓扑数字是桥优先级字母假设是MAC地址根据选举桥ID小的优先那么可以排除SW3再看MAC地址AC所以就是SW1会被选举为根网桥选出根端口非根网桥即不是根网桥的设备对应刚刚拓扑结构中的SW2和SW3选举规则到达根网桥开销小的有限对端交换机BID小的优先端口ID小的优先开销 cost代表路径耗费的代价和成本带宽越大开销越小比如还是如下拓扑在前面已经将A选举为根网桥那么根端口从B和C两台交换机中选择在B上很明显看出g0/1口比g0/2口到跟网桥的开销更小在C上则是g0/2的开销更小那么B的g0/1和C的g0/2就是被选举的根端口但是又有一种情况假设在同一交换机上两个端口到根网桥的开销相同的情况在原有拓扑下新增一台交换机则SW4到根网桥的两个端口开销一致此时开销就不足够比对了需要用到选举规则的第二条对端交换机BID小的优先根据选举规则那么应该选择g0/1端口为根端口至于第三种选举规则存在即合理确实有存在开销一致BID相同的情况比如在刚刚的交换机下方再加一台交换机用两根线相连此时针对SW5来讲两个端口的开销一致BID相同那么此时只能选择端口号小的端口为根端口所以SW5交换机的根端口就是g0/1一台交换机不可能有两个相同所以依次的排序选择就可以做到选出根端口选出指定端口就是在每个物理段上选举出一个指定端口每个物理段可以理解为每根网线上选出一个指定口选举规则和根端口选举规则类似他是根据线来选择端口根据选举规则看下面的拓扑图对交换机A来看指定端口就是g0/1和g0/2针对B和C之间的线来讲两侧开销一致比较BID很明显左侧的BID较小所以指定的口就是B的g0/2口交换机sw2和sw4的连线选择的端口就是sw2的g0/3同理sw3和sw4之间的线指定端口就是sw3的g0/3口那么四和五之间的线端口就都是sw4的两个接口所有指定口就是如下画框的内容那么剩下的没有杯选择成根端口和指定端口的端口就会设定为阻塞口那么根据刚刚的选择来看被阻塞的端口极速sw3的g0/1口sw4的g0/2口sw5的g/2口STP初始化流程主要是看交换机端口状态的变化交换机会有五个状态disable一般来说当端口被shutdown或者断开连接了就是这个状态没什么好说的后面三个是重点blocking交换机在刚刚开机的那一瞬间时候所有交换机会处于blocking状态无法转发此时可以接受BPDU但不发送BPDU不学习MAC地址不转发数据这个状态相当于是在说他能听别人在说什么自我介绍但是他自己不自我介绍类似于在监听一样监听的原因是阻塞端口总会要打开的当他收到要他打开的信息他就会打开所以需要监听listening但是刚刚的阻塞状态只会维持一瞬间之后后全部变成listening状态也就是监听状态接收并发送BPDU不学习MAC地址不转发数据持续15s这个状态其实就是在完成前面的STP选举的时候的状态选出跟网桥选出根端口选出指定端口都是在listening状态下进行这里的15s是雷打不动的固定15s无论是在15s之前选完也要用15s如果选举超时到了15s还是没选举出来依旧进入下一步但是这个时间可以改但是一般不改learning接收并发送BPDU,学习MAC地址不转发数据持续15s这里学习MAC地址其实用不了15s这里依旧留了15s是为了给前面没有选举出来的情况继续选举forwarding接收并发送BPDU学习MAC地址转发数据结束了learning状态的15s后就进入到最终的转发状态STP计时器Helo time之所以在选举结束后依旧需要每隔两秒发送一个BPDU是因为确认这条线路是否还活着确定网络是否挂掉的方式是看对方是否每隔2秒给自己发送BPDUmax age叫做最大生存时间如果连续10个周期都没收到对方发来的消息就说明该条线路挂掉了那么生成树就会重新选举根端口fowrading delay他指的是发现故障后将阻塞端口切换到正常转发的状态所需要的最大时间问题一所以当一个线路坏了最大需要的时间就是max age的20s加上选举的30s最久情况就是需要等待50s才能正常运行如果一开始就知道是挂在哪里那么只需要选举就行那么要的最短时间就是30s所以这也是生成树的一大缺点变更时间过长STP的另一问题上图中四台交换机练成一个环路选定阻塞口味sw4的2口那么如果A要给B通信就会是A——SW1——SW2——SW4——B这大概就是正常流程但是当SW2和SW4之间的线断掉了那么就会30-50s内选举结束然后开放SW4的2号口但是这一切的变更最多是50s此时A发送一个包给B底下链路的变更SW1是不清楚的所以他收到这个包之后依旧会发送给SW2但是这条路已经不通了因为变更只花了最多50s但是MAC地址的更新时间是300S也就是如果B300S都没发送来信息SW1才会更新MAC地址表这就回到300s内A发出的消息B收不到除非此时B主动找ASW1才会发现变更才会更新MAC地址表STP拓扑变更机制刚刚上述的问题的解决方式就是STP衍生出的STP拓扑变更机制MAX age超时/有接口变更为转发状态判断为拓扑发生变更向跟网桥发起TCN BPDU用于告知拓扑结构变化的包收到TCN BPDU的交换机继续向跟网桥转发TCN BPDU到达跟网桥位置跟网桥收到TCN BPDU后向所有端口发起TC置位的配置BPDU交换机收到TC置位配置BPDU后MAC地址表的老化时间缩短到15sBPDU只有根网桥可以发其他交换机只能转发所以发现问题的交换机需要向上传递TCN BPDU到根网桥只有根网桥可以做决策跟网桥收到后会发出一个置位BPDU也就是每2秒发送的那个BPDU包中会有一个TC控制位跟网桥收到出问题的TCN BPDU后就会发送一个配置BPDU并把包中的TC控制位设置为1是为了告诉其他相连交换机的老化时间设置为15s把问题解决STP的问题前面提过的变更时间太长了刚刚用TCN BPDU来解决慢的问题但是又衍生了一个新问题如果一个交换机连接一个PC如下图如果PCB关机了那么SW4的g0/3口会认为是有拓扑变更就会开始发TCN BPDU如果这个台电脑经常开机关机就会导致网络中TCN BPDU和TC置位BPDU大量发送但是在实际工作用已经几乎不用生成树协议了因为太过时了就算要用也会用RSTP和MSTPRSTP在NE中不做重点要求只做理解RSTP叫做快速生成树协议端口状态减少到三种端口角色增加到四种端口和指定端口不变边缘端口机制当链路激活边缘端口立即进入转发状态不参与STP计算边缘端口UP/DOWN不会触发拓扑变更建议把链接PC的端口配置为边缘端口这里选择的备份就是在选择根端口和指定端口的时候同时选择出来备份端口如果挂了就直接切换备用的用于加快更新速度因为在原本STP情况下如果根端口或者指定端口挂了需要话费30s来重新选举但是RSTP提前选择好了备份主端口挂了就用备份的他的边缘端口机制也解决了前面提到的PC频繁上下线导致TCN BPDU和置位BPDU在网络内到处都是的情况MST中文叫多生成树协议同时解决了STP和RSTP的问题——资源浪费因为如果阻塞端口那么被阻塞的设备就被浪费了也就是将流量和指定VLAN 范围绑定每一段的VLAN 是走某一条资源另外一段走另外一条资源实现资源的不浪费实验实验部分可以参考邓方鸣老师的STP实验文档

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

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> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…