HCIP学习--STP

news2024/11/25 2:31:09

在交换机上的线路冗余会产生的问题

昨天讲到了一个冗余的概念,下面就这个冗余引出来的问题来记录今天的内容

线路的冗余对于路由器来岁意味择可以选择更多的路线,但是对于交换机来说可不是啥好事情

比如下图假设A下面有一台设备要发送一个广播,然后A要洪范,对于A上面的接口来说先洪范到B,再洪范到C,最后洪范回A。对于A下面的接口来说先洪范到C,再洪范到B,最后洪范回A,然后就会顺时针和逆时针不停洪范,这样就出现了环,所以所以在交换机上做线路冗余,会出现一个二层桥接环路。会产以下问题

 

一个小注意事项·

(注:一台交换机上的一个接口可以映射多个MAC地址,但一台上一个MAC只能对应一

个接口)

例子

B下面好多台机子就是一台交换机上的一个接口可以映射多个MAC地址,但一台上一个MAC只能对应一个接口

广播风暴

顺逆时针不停洪范 

MAC地址表在翻滚

再洪范的过程中发出信息的所在接口,随着一次洪范凡而发生变化,比如A下面有一台设备要发送一个广播,然后A要洪范,A上面的接口洪范一圈回来,原来的A下面设备发出的信息的接口就会变成A和C相连的接口

一旦成环会对同一数据帧反复拷贝

就是在数据的不断洪范的过程中不断重新将数据拷贝转发

上述三个问题导致的后果

3个问题将不断占用硬件资源,逐渐导致设备性能极限,设备过热保护;重启或关机

解决办法

STP生成树

在一个二层交换网络中,生成一棵树型结构,逻辑的阻塞部分接口,使得从根到所有的节点仅存在唯一的路径;当最佳路径故障时,自动打开部分阻塞端口,来实现线路备份的作用;

生成树在生成过程中,应该尽量的生成一棵星型结构,且最短路径树

STP生成树

存在算法

802.1D      PVST PVST+(CISCO)      RSTP(802.1w)      MSTP(802.1S)

802.1D

 一个交换网络内仅存在一棵生成树实例

交换机间使用BPDU—桥协议数据单元 – 交换机间沟通互动收发的数据

BPDU

根网桥可以发送,在交换网络初始状态时,所有交换机均定义本地为根网桥,进行BPDU的发送;使得网络中所有交换机均收到其他设备的BPDU,之后基于数据中的参数进行比对,选举出根网桥;再所有非根网桥不再发送BPDU,而是仅接收和转发根网桥的BPDU;周期2s发送,hold time 20s;

TCN

拓扑变更消息(也是BPDU): 本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为回复,用于可靠传输消息;之后将TCN逐级转发到根网桥处,由根网桥回复TC消息来逐级回复到所有交换机;使所有交换机临时将MAC表的老化时间修改为15s(默认的,转发延时)

根网桥的选举过程

根网桥 – 在一棵生成树实例中,有且仅有一台交换机为root(根网桥)

首先比较优先级

优先级小优

网桥优先级(范围0-65535公有) 默认32768(你要你不修改它他就时32768,这个属性提供给人方便人来干涉)

若优先级相同,比较MAC地址数值

mac地址小优

注:透明交换机没有MAC,自然不支持生成树,支持生成树的交换机一定,一定也支持SVI技术;

SVI技术可以让交换机配置IP地址成为源或目标设备,自然出产时携带MAC,STP可以借用该MAC地址

接口角色的选取

根端口的选择

在每台非根网桥上,有且仅有一个接口;本地离根网桥最近的接口(最短、星型),接收来自根网桥的BPDU,转发用户的流量(该接口不阻塞)

cost值(默认华为使用802.1t标准)

不同带宽 存在不同cost有两个版本

802.1d标准:          802.1T标准

10M = 100             1000M= 20000

100M=19              100M=200000

1000M=4

10000M=2

>100000M=1

选择根端口首先比较从根网桥发出后,通过该接口进入时最小的cost值

 例子

下图abc三条链路都是100M对于右边的交换机根端口选的是2号接口

入向cost值相同,比较该接口对端设备的BID,小优

例子

下面这张图在下面的接口最红的那两个接口,根的距离一样,那就不比下面的了要比较上面的两台设备的BID,谁小就选谁(万一有一天根设备挂了,要选一个新设备,那BID小的就可能成为新老大,所以选小的) 

对端BID也相同,比较该接口对端设备的接口的PID;先比接口优先级(接口优先级 0-255, 默认128,同一方便人去干涉),小优,若优先级一致,比较接口编号(也就是g0/0/0这个编号)小优

看下图cost相同,BID也相同了,现在时比上面接口的PID

 

连对端PID也相同,比较本地PID,小优

例子

看下图上面时一台交换机中间是一台集线器再来下面的设备就是交换机,这样对端PID就相同了,这次就是比较本地的PID也就是下面交换机的接口

 指定端口的选择

在每一段存在STP的物理链路上,有且仅有一个;转发来自根网桥的BPDU,同时可以转发用户流量(不阻塞);默认根网桥上所有接口为指定端口

(根端口对端一定时指定端口,根网桥的所有接口都是指定端口)

选择指定端口首先比较从根网桥发出后,通过该接口进入这段链路时的cost值最小(出向)

下图中b设备的6号接口就是指定端口

接口距离根网桥近的比较本地BID小优(未来谁是根) 

如下图3和4端口所在链路选择时比较A和B的BID(原理与更端口选择同理)

 

 本地BID相同,比较本地的PID,

看下图交换机自己连自己

本地PID,相同,直接阻塞该端口

看下图

上面设备是交换机,下面是集线器,那就直接在交换机下面的接口成指定端口,然后下面就全断了

 再来一种实际工程的情况

网线破损rg48双绞线里面4个负责发数据4个负责收数据然后其中有一个收发接触到了

数据又收又发那样也出环了也会堵塞,会关注BPDU,当网络拓扑发生变化可以调整。

非指定端口(阻塞端口)

当以上所有角色全部选举完成后,剩余没有任何角色的接口为非指定;

 该接口逻辑阻塞,实际可以接收到信息,但不转发

接口状态

down

STP未运行,没有BPDU收发,一旦可以进行BPDU收发进入下一状态

侦听

强制15s;所有交换机进行BPDU收发,选举所有角色(这个阶段角色选举完成);接口角色为非指定端口直接进入阻塞状态;若为指定端口和根端口进入学习状态;

学习

强制15s;关注用户流量中的源MAC地址, 指定端口和根端口学习所有接口连接设备的MAC地址,生成MAC表;之后进入转发状态;

转发

指端端口和根端口进入,可以转发用户报文;

阻塞

逻辑阻塞

注:只有到接口进入到转发状态后,才能为用户转发数据报文,之前的30s不能转发任何数据;

802.1D的收敛时间

初次收敛

初次收敛时间是30s ,由15侦听+15s学习组成

结构变化时收敛时间

存在直连检测

本地存在阻塞端口,若其他端口断开,该阻塞端口马上进入15s是侦听(选举);结果若原来端口未启用,那么将再进入15s学习---总30s

例子

看下图a设备的5号接口时堵塞接口然后1和6接口对应的那条线断掉了,5接口就会进入侦听状态,然后15s后6端口还未启用,再果15s5端口代替6端口身份

 

没有直连检测

本地不存在阻塞端口,若某个端口断开,将发送次优BPDU(以本地为根)给其他邻居交换机,其他交换机无视该数据,进行20s hold time计时,到时时阻塞接口进入15s侦听,15s学习=总50s

看下图若断线是2和3接口对应的线,b收不到root的信息就会自己成为root(这个叫次优路径),然后回向a发送BPDU,然后a不理,然后经过hold time 20s然后5进入侦听,5侦听完后,将root的信息转给b,然后15秒学习时间,最后完成收敛

802.1D的缺点

1、收敛慢,收敛需要30秒(在以前刚发名的时候由于时代的限制人们不觉得慢)

2、链路利用率低

(基于这个链路利用率低思科发明了PVST)

802.1D配置

[sw1]stp mode stp   修改为802.1d算法,当下华为默认为MSTP;

[sw1]stp priority 4096    修改网桥优先级

[sw1-GigabitEthernet0/0/1]stp cost ?   修改接口cost值

  INTEGER<1-200000000>  Port path cost

[sw1-GigabitEthernet0/0/1]stp port priority ?  修改接口优先级

  INTEGER<0-240>  Port priority, in steps of 16

PVST

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

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

相关文章

第二讲:BeanFactory的实现

BeanFactory的实现 1. 环境准备2. 初始化DefaultListableBeanFactory3. 手动注册BeanDefinition4. 手动添加后置处理器5. 获取被依赖注入的Bean对象6. 让所有的单例bean初始化时加载7. 总结 Spring 的发展历史较为悠久&#xff0c;因此很多资料还在讲解它较旧的实现&#xff0c…

ROS与STM32通信(二)-pyserial

文章目录 下位机上位机自定义msg消息发布订阅 ROS与STM32通信一般分为两种&#xff0c; STM32上运行ros节点实现通信使用普通的串口库进行通信&#xff0c;然后以话题方式发布 第一种方式具体实现过程可参考上篇文章ROS与STM32通信-rosserial&#xff0c;上述文章中的收发频率…

一例Vague病毒的分析

这是一例通过U盘传播的文件夹病毒&#xff0c;有收集用户文件的行为&#xff0c;但是&#xff0c;没有回传和远控行为&#xff0c;有点奇怪&#xff0c;其中的字符串进行了加密。 样本比较简单&#xff0c;使用IDA很容易就看明白了。 根据匹配到威胁情报&#xff0c;有叫Vague蠕…

阿里云服务器和轻量云服务器对比有什么区别?

阿里云轻量应用服务器和云服务器ECS有什么区别&#xff1f;ECS是专业级云服务器&#xff0c;轻量应用服务器是轻量级服务器&#xff0c;轻量服务器使用门槛更低&#xff0c;适合个人开发者或中小企业新手使用&#xff0c;可视化运维&#xff0c;云服务器ECS适合集群类、高可用、…

初识SD绘画

最近sd绘画可谓是火的一塌糊涂&#xff0c;AI的绘画能力是真强大。废话不多说&#xff0c;直入主题。 1&#xff0c;sd的本地安装大体有2种&#xff0c;一种是官网安装&#xff0c;一种是秋叶大神的整合包。我安装的是秋叶大神的包&#xff0c;里面的插件和模型都有了&#xf…

Personalize Segment Anything Model with One Shot【论文翻译】

​ 论文基础信息如下 https://arxiv.org/pdf/2305.03048.pdfhttps://github.com/ZrrSkywalker/Personalize-SAM Abstract 通过大数据预训练驱动&#xff0c;分段任意模型&#xff08;Segment Anything Model&#xff0c;SAM&#xff09;已被证明是一个强大且可提示的框架&am…

嵌入式通信底层逻辑演变 SWIRE/UART/I2C/SPI

文章目录 一、概念1.0、计算机通讯框架OSI 7层模型1.1、根据数据排布传输方式---并行通信 / 串行通信1.2、根据数据传输方向与时间关系分类----单工通信/半双工通信/全双工通1.3、半双工通信的 应答与流控机制----如I2C&#xff0c;通过开漏线与特性 实现1.4、根据收发方时间基…

【C++入门到精通】C++入门 —— 容器适配器、stack和queue(STL)

阅读导航 前言stack1. stack概念2. stack特点3. stack使用 queue1. queue概念2. queue特点3. queue使用 容器适配器1. 什么是适配器2. STL标准库中stack和queue的底层结构3. STL标准库中对于stack和queue的模拟实现⭕stack的模拟实现⭕stack的模拟实现 总结温馨提示 前言 文章…

单链表-Java实现

目录 概念 什么是链表&#xff1f; 为什么链表的头节点不能动&#xff0c;或者不能操作&#xff1f; 链表和数组的区别是什么&#xff1f; 实现 节点 单链表 末尾添加 遍历 按编号添加&#xff1a; 修改节点 删除 面试题 求单链表的长度 求单链表倒数第K个节点 …

Qt关于hex转double,或者QByteArray转double

正常的00 ae 02 33这种类型的hex数据类型可以直接通过以下代码进行转换 double QDataConversion::hexToDouble(QByteArray p_buf) {double retValue 0;if(p_buf.size()>4){QString str1 byteArrayToHexStr(p_buf.mid(0,1));QString str2 byteArrayToHexStr(p_buf.mid(1,…

更安全,更高效的自学网络安全与黑客技术

学习网络安全&#xff08;黑客技术&#xff09; 网络安全是&#xff1a;黑客技术是&#xff1a;网络安全与黑客技术的关系&#xff1a;自学网络安全学习的误区和陷阱&#xff1a;学习网络安全前期需要准备...学习网络安全中期大致步骤&#xff1a;学习网络安全推荐的学习资料&a…

【电子通识】什么是异常分析中的A-B-A方法

工作有了一定的经验之后&#xff0c;在做问题分析的时候&#xff0c;经常会听到别人说把这个部品&#xff08;芯片/模块&#xff09;拿去ABA一下&#xff0c;看看跟谁走。那么对于新人来说是否就会问一个问题&#xff1a;什么是ABA呢&#xff1f; A-B-A 交换是一种简单直接的交…

华为OD七日集训第1期 - 按算法分类,由易到难,循序渐进,玩转OD(文末送书)

目录 一、适合人群二、本期训练时间三、如何参加四、7日集训第一期 ~ 华为OD初体验五、精心挑选21道高频100分经典题目&#xff0c;作为入门。第1天、逻辑分析第2天、字符串处理第3天、数据结构第4天、双指针第5天、递归回溯第6天、二分查找第7天、贪心算法 && 二叉树 …

【双指针】经典数组双指针题LeetCode

文章目录 27. 移除元素 简单283. 移动零 简单&#x1f525;167. 两数之和 II - 输入有序数组 中等11. 盛最多水的容器 中等&#x1f525;15. 三数之和 中等&#xff08;N数之和&#xff09;中等&#x1f525;42. 接雨水 困难 &#x1f525;26. 删除有序数组中的重复项 简单5. 最…

Qt快速学习(一)--对象,信号和槽

目录 1.Qt概述 1.1 什么是Qt 2.2 手动创建 2.3 pro文件 2.4 一个最简单的Qt应用程序 3 第一个Qt小程序 3.1 按钮的创建 3.2 对象模型&#xff08;对象树&#xff09; 3.3 Qt窗口坐标体系 4 信号和槽机制 4.1 系统自带的信号和槽 4.2 自定义信号和槽 4.3信号槽的拓展 4…

GSM/CDMA/VoLTE/VoIP通话

1.GSM(Global System for Mobile Communications) 本质是一种多址技术&#xff0c;将多个通话放入一段无线电频道的方法。特点是通过“时间划分”&#xff0c;称为时分多址。 2.CDMA(Code Division Multiple Access) 一种多址技术&#xff0c;将多个通话放入一段无线电频道的…

11_Redis经典五大类型源码及底层实现

Redis经典五大类型源码及底层实现 一、Redis数据类型的底层数据结构 SDS动态字符串双向链表压缩列表 zpilist哈希表 hashtable调表 skiplist整数集合 intset快速列表 quicklist紧凑列表 listpack 二、Redis源码地址 Github&#xff1a;https://github.com/redis/redis 三、…

Appium 2安装与使用java对Android进行自动化测试

文章目录 1、Appium 2.1安装1.1、系统要求1.2、安装Appium2.1服务1.3、安装UiAutomator2驱动1.4、安装Android SDK platform tools1.5、下载OpenJDK 2、Android自动代码例子2.1、安装Android自动化测试元素定位工具Appium Inspector2.2、编写android app自动化测试代码和使用ex…

Lemon8与中国各大社交平台的内容输出整合,将会掀起何种风浪?

近期,Lemon8迅速在北美地区展开了布局,短短几天的时间,下载量就冲到了美国APP下载总榜的前十,随后更是直登顶生活类APP首榜。作为字节跳动旗下的出海内容平台,一经问世后,就受到了大量用户的关注,并吸引了海外媒体以及营销人士的目光。那么Lemon8与中国各大社交平台的内容输出整…

机器学习笔记之优化算法(十六)梯度下降法在强凸函数上的收敛性

机器学习笔记之优化算法——梯度下降法在强凸函数上的收敛性 引言回顾&#xff1a;凸函数与强凸函数梯度下降法&#xff1a;凸函数上的收敛性分析 关于白老爹定理的一些新的认识梯度下降法在强凸函数上的收敛性收敛性定理介绍结论分析证明过程 引言 本节将介绍&#xff1a;梯度…