生成树协议

文章目录

  • STP
    • 冗余交换网络为什么存在广播风暴?
      • 广播的危害?
      • 交换环路的危害?
    • 工作机制
      • BPDU
        • 什么是最好的bpdu
        • BPDU触发机制
    • STP选举步骤
    • 配置
      • 协议分析
      • 字段分析
      • 开销模式
      • 端口状态
    • 故障类型
      • 根桥故障
      • 直连故障
      • 间接故障 (链路中间可能有HUB,光路等情况)
    • 如何控制端口的选举
    • stp协议收敛为什么慢?

STP

注意:华为交换机默认开启MSTP

STP PVID 0 802.1D RSTP PVID 2 802.1W MSTP PVID 3
802.1S VBSTP 华为私有,用于和思科交换机做兼容(老版本交换机并不支持)

冗余交换网络为什么存在广播风暴?

1、交换机转发广播报文的机制是泛洪;
2、以太网帧中没有防环字段,帧在转发时没有TTL-1机制,所以会持续的存在广播环路问题。

广播的危害?

1、消耗交换机性能
2、消耗链路带宽
3、主机收到广播要交给CPU处理,影响主机性能

交换环路的危害?

1、广播风暴
2、MAC地址表震荡
3、重复数据帧的接收

工作机制

1、运行STP协议时,每台交换机认为自己时根桥,发送以自己为根的BPDU
2、交换BPDU后,进行根桥的选举,根桥确定后由根桥周期性(2s)发送以自身为根的BPDU,非根桥不在发送以自己为根的BPDU

BPDU

Bridge Protocol Data Unit:桥接协议数据单元

什么是最好的bpdu

1、ROOT ID最小的BPDU最好;
2、累计RPC之和最小;
3、BID最小;
4、PORT ID 最小
5、自身PORT ID小的

运行STP协议的交换机,出厂携带一个BID,桥标识符,用于标识自身; BID由桥优先级+MAC地址组成
桥优先级的取值范围,华为设备的取值范围为0-61440,取4096的倍数,默认为32768; 根桥ID:描述根桥的BID;
桥ID:描述自身的BID; 根桥ID=桥ID 则认为自身是根桥,根桥ID!=桥ID 则认为交换机不是根桥; PORT
ID:由端口优先级.port号组成; 端口优先级,取值范围0-240,默认值128,取16的倍数

STP协议一共2种BPDU
1、配置BPDU
2、TCN BPDU(拓扑改变通知BPDU)

BPDU触发机制

华为:
STP协议当接口UP/down并过渡到forwarding状态,会发生TCN BPDU

逐跳传给根桥,上游向下游发送TCA=1,TC=1的配置BPDU,用于确认TCN,并将TCN逐跳传给根桥,根桥在接收到TCN的端口上回送一个TCA=1,TC=1的配置BPDU,用于确认TCN,并通知网络拓扑发送变化,配置BPDU,在其它端口上则发送TCA=0,TC=1的配置BPDU

TCN从RP发向根桥

stp协议最早认为任何端口进入到forwarding状态或者进入disable状态时,认为stp拓扑发送变化,后来stp对拓扑发生变化的定义作出了优化:
1、当DP端口进入到forwarding状态认为拓扑发生了变化;
2、RP失效或者RP进入forwarding状态;
3、非根桥DP端口失效不认为拓扑发生变化;
4、根桥的DP失效直接发送TC BPDU。

STP选举步骤

1、选举根桥,根桥不存在根端口(两者互斥)
2、其他交换机为非根桥,在非根桥上选举根端口(RP),非根桥上有且只有一个根端口。
3、在每条链路上选举出一个指定端口(DP),每条链路有且只有一个指定端口(根端口和指定端口不能时同一个端口)
4、即不是根端口,也不是指定端口的端口,就成为阻塞端口。

发送时不累加开销,接收时累加开销
根桥:BID最小的交换机成为根桥。
先比较桥优先级,越小越优,桥优先级相同,则比较MAC地址,越小越优, 根桥可以被抢夺
STP通过交换BPDU(帧),来完成选举以及树的维护
根端口:交换机上接收最好的BPDU,可以假想为在交换机上有一台主机,看其去根交换机最近链路
指定端口:链路上发送最好BPDU的端口,可以假想为在链路上有一台主机,看其去根交换机最近链路

配置

协议分析

在这里插入图片描述

stp协议计时器的配置,仅在根桥配置即可。

【SW1】stp timer hello 300
[SW1]stp  timer forward-delay 2000 #1、决定了在监听状态和学习状态维持的时间,2、收到TC BPDU后MAC地址的老化时间
[SW1]stp timer max-age 3000

字段分析

在这里插入图片描述

flags:
TC bit:拓扑改变
TCA bit:拓扑改变确认
message age :BPDU存活时间,根桥发送时为0.每经过一台交换机+1
max age :BPDU最大存活时间,默认是20s,当message age等于max age,则认为该BPDU失效
hello timer :BPDU发送间隔,默认是2s
forway delay :端口在监听状态和学习状态分别等待的时间,默认是15s

开销模式

stp pathcost-standard 命令修改路径开销标准dot1d-1998     IEEE 802.1D-1998    #IEEE标准,比较老,一般不建议使用dot1t          IEEE 802.1T         #IEEE标准,新标准,华为默认legacy         Legacy              #华为私有标准

端口状态

1、禁用状态(disabled):接口被shutdown,端口即不处理和转发BPDU报文,也不转发用户流量
2、阻塞(blocking):接口使能/RP或者DP不在是RP或DP的时候,端口仅仅能接收并处理BPDU报文,但不能转发用户流量;
3、监听(listening):当block成为RP或者DP时,监听时间15s,即转发延时时间,默认15s,端口可以转发BPDU报文,但不转发用户流量;
4、学习(learning):listening经历转发延时后进入learning状态,端口可以根据收到的用户流量构建MAC地址表,但不转发用户流量,增加learning状态时为了防止临时环路
5、转发(forwarding):在learning经历转发延时后进入forwarding,端口即可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入forwarding状态
端口状态转化
在这里插入图片描述

故障类型

根桥故障

需要50s时间进入转发状态

直连故障

1、存在AP端口的交换机出现RP的直连故障,AP成为新的RP,在经历2倍的转发延(30s)时后进入转发状态,故障恢复。
2、不存在AP端口的交换机出现RP的直连故障后,该交换机会以自己为根发送BPDU,下游交换机等待20s老化,才处理该BPDU,当下游端口确定时DP时,经历2倍的转发延时进入转发状态,总计50s恢复故障。

间接故障 (链路中间可能有HUB,光路等情况)

1、存在AP端口的交换机出现RP的直连故障,RP的BPDU老化后(20s),AP成为新的RP,在经历2倍的转发延(30s)时后进入转发状态,50s故障恢复。
2、不存在AP端口的交换机出现RP的直连故障后,该交换机会以自己为根发送BPDU,下游交换机等待20s老化,才处理该BPDU,当下游端口确定时DP时,经历2倍的转发延时进入转发状态,总计50s恢复故障。
故障将导致MAC地址表学习到的MAC地址表项错误,由于MAC地址需要300S的老化时间,所以在300s内,无法学习到正确的转发mac地址以及端口,所以有了TC BPDU ,接收到TC BPDU后,交换机会将mac地址表对应端口的老化时间更改为15s(可能时因为端口需要经历listening和learning状态,当15s老化以后,端口状态已经到达listening向learning转变状态,可以更好的让端口在达到forwarding状态后学习到正确的mac地址),到时间后从新开始学习正确的mac地址表项。

mac地址更改为15s的老化时间有效期为35,即在35s内会持续发送TC=1的报文,当35s以后,端口老化时间会恢复为300s
定义为35s时因为交换机可能会学习到新根桥,而老根桥老化时间为20s,另外15s时学习的时间,学习15s时考虑到网络中最好最多有7层拓扑,BPDU的转发时间为2s,所以当有7层网络时,大约15s可以传遍所有拓扑

如何控制端口的选举

1、更改接口的cost值(如果想控制某端口的角色,需要更改本端端口cost值);
2、更改接口的port id值(如果想控制某端口的角色,需要更改对端端口port id值);

stp协议收敛为什么慢?

端口角色的计算实际上非常快,比如当AP被计算为RP或者DP时,这个选举过程时非常快的,但为什么要等待30s?
监听状态15s,为了防止临时环路,让BPDU有足够的时间传递到全网,防止STP收敛过程中新的AP端口还没被计算出来,而其他端口都处于转发状态导致的临时环路;
学习状态15s,在stp收敛过程中存在MAC地址提前老化,为了避免大量未知MAC地址地址的单播帧被泛洪转发,设计一段MAC地址学习时间,避免泛洪过多。
所以stp协议为了避免临时环路和泛洪,被动等待计时器超时机制收敛,收敛慢。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WEB集群——tomcat

1. 简述静态网页和动态网页的区别。 2. 简述 Webl.0 和 Web2.0 的区别。 3. 安装tomcat8,配置服务启动脚本,部署jpress应用。 一、简述静态网页和动态网页的区别 (1)静态网页 1.什么是静态网页 请求响应信息,发…

【云原生】深入掌握k8s中Pod和生命周期

个人主页:征服bug-CSDN博客 kubernetes专栏:kubernetes_征服bug的博客-CSDN博客 目录 1 什么是 Pod 2 Pod 基本操作 3 Pod 运行多个容器 4 Pod 的 Labels(标签) 5 Pod 的生命周期 1 什么是 Pod 摘取官网: Pod | Kubernetes 1.1 简介 Pod 是可以在 …

文件上传漏洞(webshell)和文件包含漏洞

一、防护 1、防护 1、判断文件后缀,为图片的话才让上传成功。 2、解析文件内容(文件幻数)判断文件头和文件尾部是否一致 幻数 常见的 3、隐藏按钮(带上code唯一值) 4、二次渲染(类似拿着你的图片&#xff…

IoTDB 1.x 开启外部访问

对于部署的IoTDB数据库,如果需要局域网内其他设备进行访问的处理。 1、防火墙开放端口 无论windows还是liunx都需要你将6667默认的端口加入防火墙中,否则肯定是无法访问端口 2、修改配置文件 对conf/iotdb-datanode.properties文件中的 修改为本机的…

提取字符串标签中的文字js

DOM操作&#xff1a; const extractText (str) > {const parser new DOMParser();const doc parser.parseFromString(str, text/html);const textNodes doc.body.innerText.trim().split(\n);return textNodes; };const input <div>提取文字</div><p>…

《Python入门到精通》函数详解

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;小白零基础《Python入门到精通》 函数 1、函数的调用2、函数的参数2.1、变量的就近原则2.2、传递参数2.3、形参和实…

收藏!新增6省!2023年度杰青、优青名单汇总(附下载)

2023省级自然科学基金项目名单 杰青、优青项目是国家及各省市为促进青年科学和技术人才的成长&#xff0c;加速培养造就一批进入世界科技前沿的优秀学术带头人而特别设立的科学基金&#xff0c;是各个科研单位竞相争夺的青年科技人才。 按照惯例&#xff0c;2023年国家自然基…

【TypeScript】TS接口interface类型(三)

【TypeScript】TS接口interface类型&#xff08;三&#xff09; 【TypeScript】TS接口interface类型&#xff08;三&#xff09;一、接口类型二、实践使用2.1 常规类型2.2 设置属性只读 readonly2.3 设置索引签名2.4 设置可选属性2.5 函数类型接口 一、接口类型 TypeScript中的…

树和二叉树 --- 数据结构

目录 1.树的概念及结构 1.1树的概念 1.2树的表示 1.3树在实际生活中的运用 2.二叉树的概念及结构 2.1概念 2.2特殊的二叉树 2.3二叉树的性质 2.4二叉树的存储结构 1.树的概念及结构 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n (n>0)个有限结点组成…

广州VR制作 | 利用VR元宇宙平台开展林地管理培训的优势

在林业领域&#xff0c;实地调查是获取准确数据和深入了解森林生态的重要手段。然而&#xff0c;传统的实地调查方法存在诸多问题&#xff0c;如时间成本高、人力物力投入大、安全风险高等。为了解决这些教学痛点&#xff0c;我们引入了虚拟现实(VR)技术&#xff0c;通过虚拟林…

【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码、数据、讲解 &#x1f4a5;1 概述 由于能源的日益匮乏&#xff0c;电力需求的不断增长等&#xff0c;配电网中分布式能源渗透率不断提高&#xff0c;且逐渐向主动配电网方…

【Docker】数据库动态授权组件在Kubernetes集群下的测试过程记录

目录 背景 组件原理 测试设计 环境 测试脚本 脚本build为linux可执行文件 镜像构建 Dockerfile Docker build 镜像有效性验证 总结 资料获取方法 背景 我们都知道出于安全性考虑&#xff0c;生产环境的权限一般都是要做最小化控制&#xff0c;尤其是数据库的操作授…