交换机STP工作原理

news2024/12/23 9:51:27

文章目录

  • 一、确定交换机角色
  • 二、确定端口角色
    • 1.根端口选举
    • 2.指定端口选举
    • 3.非指定端口选举
  • 三、确定端口状态
  • 常用查询命令
  • 实验
    • 拓扑实例一
    • 拓扑实例二
    • 拓扑实例三
    • 拓扑实例四
    • 拓扑图实例五

BPDU报文中携带的Root Identifier、Root Path Cost、Bridge Identifier、Port Identifier字段构成了消息优先级向量{ 根桥ID,根路径开销,发送设备BID,发送端口PID }。设备通过交互并比较消息优先级向量中各字段的值确定根桥、根端口、指定端口。

BID 由桥优先级(Bridge Priority)与桥MAC地址构成,高16位是桥优先级,其余的低48位是MAC地址。

根路径开销RPC(Root Path Cost)就是某端口到根桥所经过的各个桥上的各端口路径开销的累加值。路径开销(Path Cost)是一个 端口变量,是生成树协议用于选择链路的参考值。生成树协议通过计算路径开销,选择较为“强壮”的链路,阻塞多余的链路,将网络修剪成无环路的树形网络结构。

PID 由两部分构成的,高8位是端口优先级,低8位是端口号,端口号优先级取值范围为0-255,默认的优先级为128。 最新的中高端交换机,有说 高4位是端口优先级,后12位是端口号,由于中高端交换机的端口会超过255个,故需要增加端口的位数。不管怎么样PID都是有端口优先级和端口编号两部分组成。

一、确定交换机角色

交换机角色有两种,1.根交换机 2.非根交换机。一个生成树中只有一个根交换机,一至多个非根交换机。
根桥的选举
最小BID原则:BID最小的设备被选举为根桥。
STP中根桥的选举依据的是桥ID,STP中的每个交换机都会有一个桥ID(BridgeID 简称为BID)。桥ID由16位的桥优先级(Bridge Priority) 和
48位的MAC地址构成。
在STP网络中,桥优先级是可以配置的,取值范围是0~65535,默认值为32768,步长为4096。
优先级最高的设备(数值越小越优先)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。
在这里插入图片描述
注意:根桥 就是指的根交换机,非根桥就是指的非根交换机。

二、确定端口角色

1.根端口选举

    根端口的特点:
    		只存在于非根交换机上,每一个非根交换机上,有且只有1个根端口。
   选举规则:
			最小RPC原则:非根桥设备上,根路径开销RPC最小的端口被选举为根端口。
			最小发送设备BID原则:非根桥设备上如果有两个及以上端口的根路径开销相同,则收到BPDU报文中“发送设备BID”最小的端口被
			选举为根端口。
			最小PID原则:根路径开销相同的情况下,PID小的端口被选举为根端口,注意最小PID原则在什么情
			况下起作用,如下图。

在这里插入图片描述

2.指定端口选举

	指定端口的特点:
			每一个链路上,有且只有1个指定端口。
	选举规则:
	 		根交换机上每个端口到根交换机的根路径开销都是0,根交换机上没有根端口,根交换机上的端口都为指定端口。
	 		距离根网桥(根交换机的)的根路径开销成本较小的。
	 		链路上两端口分别所处的交换机的网桥ID较小的。
	 		最小PID原则:根路径开销相同的情况下,阻塞PID值较大的端口,PID小的端口被选举为指定端口,注意最小PID原则在什么情况下起作用。

在这里插入图片描述

3.非指定端口选举

非指定端口 也叫阻塞端口,判断出来根端口,指定端口,那么剩余的就是阻塞端口了。
阻塞端口特点是,只接收对端接口发送过来的BPDU报文。如果对端端口发送过来的其他报文,包括广播报文,那么在阻塞端口侧抓包也可以抓取到相应报文,但是阻塞端口对收到的这些报文进行了丢弃。也就是说不会让这些报文通过阻塞端口进入到阻塞端口所在的交换机内,进而进行转发。从而在逻辑上破除的环路问题。
同时如果阻塞端口所在的交换机在转发或广播数据帧时,也不会将数据转发或广播到本机上的阻塞端口,此时在阻塞端口是抓取不到任何报文。

三、确定端口状态

以华为S3700为例:
STP模式中有以下五种状态:
禁用:强制关闭,没有启用stp协议。
阻塞:只接收BPDU,不能发送BPDU.
侦听:比较BPDU,确定交换机角色和端口角色
学习:基于端口上接收的 数据帧,学习MAC地址表
转发:端口的最终的完美状态,可以发送和接收用户数据

RSTP和MSTP模式中,对端口状态进行了简化:
Discarding(丢弃),相当于STP中的禁用、侦听、阻塞,也就是不转发用户数据。
Learning(学习),和STP中的学习状态相同。
Forwarding(转发),和STP中的转发状态相同。

根端口和指定端口的最终状态为: 转发状态(Forwarding)
阻塞端口的最终状态为:丢弃状态(Discarding)

常用查询命令

[Huawei]dis stp \\显示stp信息,不指定实例就是默认查 instance 0 ,命令等同于[Huawei]dis stp instance 0 
CIST Bridge:指的就是本机的网桥ID,网桥ID是以本交换机上所有接口的最小mac地址与网桥优先级组成。
CIST root/ERPC:指的是总根的网桥ID,和到总根的开销。
CIST RegRoot/IRPC:指的是域根的网桥ID,以及到域根的开销。
CIST Root PortID:指的是该交换机在CIST生成树上的根端口的端口ID。

MSTP的实例0具有特殊的作用:称为CIST(Common Internal Spanning Tree),即公共与内部生成树,其他的实例称为MSTI(Multiple Spanning Tree Instance)。

总根是一个全局概念,对于所有互连的运行STP/RSTP/MSTP的交换机只能有一个总根,也即是CIST的根;而域根是一个局部概念,是相对于某个域的某个实例而言。
在这里插入图片描述
[Huawei]dis stp brief \显示stp的端口及端口的角色及状态
在这里插入图片描述
ROOT:表示根端口
ALTE:表示阻塞端口
DESI:表示指定端口
DISCARDING:表示丢弃
FORWARDING:表示转发
LEARNING:表示学习

实验

拓扑实例一

在这里插入图片描述

首先选举根网桥:
根据命令查出了,各个交换机上各自的BID,如上图。三台交换机的网桥优先级都是32768,仅跟据网桥优先级无法确定根网桥,然后再
比较MAC地址,LSW3的MAC地址最小。故LSW3是根网桥
其次选举根端口:
由于根网桥是LSW3,那么可以确定 LSW3上的E0/0/1和E0/0/2都是指定端口。需要比较的是以下红圈中的端口。
在这里插入图片描述
先看LSW1,由于LSW1是非根交换机,其上有且只有一个根端口。根据 最小RPC原则,发现LSW1的 E0/0/1和E0/0/2的路径成本是相同的都是200000,比较不出来。然后 根据 最小发送设备BID原则,需要比较LSW2和LSW3的BID。LSW3的BID小,则LSW1的E0/0/2为根端口
同理看LSW2,由于LSW1也是非根交换机。其上有且只有一个根端口。根据 最小RPC原则,发现LSW2的 E0/0/1和E0/0/2的路径成本是相同的都是200000,比较不出来。然后 根据 最小发送设备BID原则,需要比较LSW1和LSW3的BID。LSW3的BID小,则LSW2的E0/0/2为根端口
在这里插入图片描述
剩下的就是指定端口和非指定端口了
最后选举指定端口:
每一个链路上,有且只有一个指定端口。
LSW1-E0/0/1和 LSW2-E0/0/1处于同一个链路上,其中一个必为指定端口,而另一个则为阻塞端口。(因为这是一个物理环路,且开启了STP协议功能,所以一定有阻塞端口,不然会产生广播风暴)
首先根据根路径成本开销,可知LSW1-E0/0/1 和 LSW1-E0/0/1 的根路径成本都是200000,比较不出来。
然后根据端口所在交换机的BID进行比较,发现LSW2-E0/0/1的BID较小。所以 LSW2-E0/0/1是指定端口,那么LSW1-E0/0/1就只能是阻塞端口了。
在这里插入图片描述
在 LSW1、LSW2、LSW3上分别查看端口角色,来验证是否和上面分析的一致。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

拓扑实例二

在这里插入图片描述
首先 选举根交换机
根据最小BID规则,可知LSW4是根交换机。
其次 选举根端口
根端口只存在于非根交换机上,每个非根交换机上有且只有1个。
先看LSW2交换机,其上的E0/0/1、E0/0/2端口,到根交换机的根路径成本都是200000,故根据最小RPC原则比较不出。
再根据最小发送设备BID原则,和E0/0/1链接的对端交换机LSW1,和E0/0/2链接的对端交换机LSW4
比较LSW1、LSW4谁的BID最小。显然根交换机LSW4的BID最小。故LSW2的E0/0/2为根端口。
在LSW1上使用最小RPC原则,也是选举不出根端口,再根据最小发送设备BID原则,可知 LSW1上的E0/0/2是根端口。
在LSW3上使用最小RPC原则,也是选举不出根端口,再根据最小发送设备BID原则,可知 LSW4上的E0/0/2是根端口。

然后 选举指定端口
每一个链路上,有且只有1个指定端口;故和根端口直连的对端端口 一定是指定端口(即LSW3的E0/0/1)。因为每条链路上必须有一
个指定端口。
根交换机上的端口都是指定端口;
故此时,还需要确定的端口就是以下红圈中的了。
在这里插入图片描述
首先 看上图中 红圈标记的两端口的 根成本路径,如下可知 LSW2的E0/0/1路径成本为200000。而LSW1两条到根网桥的线路的根路径成本都是400000。所以不管怎么, LSW2的E0/0/1的路径成本小。就不用再根据BID,PID进行比较了。故LSW2的E0/0/1是指定端口。那么剩余的LSW1 E0/0/1就只能是阻塞端口了。
在这里插入图片描述
最终的拓扑图上的端口角色如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

拓扑实例三

在这里插入图片描述
首先 选举根交换机
根据最小BID规则,可知LSW4是根交换机。
其次 选举根端口
根端口只存在于非根交换机上,每个非根交换机上有且只有1个。
先看LSW2交换机,其上的E0/0/1、E0/0/2、E0/0/3端口,到根交换机的根路径成本都是200000,故根据最小RPC原则比较不出。
再根据最小发送设备BID原则,和E0/0/1链接的对端交换机LSW1,和E0/0/2链接的对端交换机LSW3,和E0/0/3链接的对端交换机LSW4。
比较LSW1、LSW3、LSW4谁的BID最小。显然根交换机LSW4的BID最小。故LSW2的E0/0/3为根端口。
在LSW3上最小RPC原则,也是选举不出根端口,再根据最小发送设备BID原则,可知 LSW3上的E0/0/3是根端口。
在LSW4上最小RPC原则,也是选举不出根端口,再根据最小发送设备BID原则,可知 LSW4上的E0/0/3是根端口。
在这里插入图片描述
在这里插入图片描述
最后 选举指定端口。
由于LSW4是根交换机,故其上的E0/0/1、E0/0/2、E0/0/3端口 都是指定端口。
此时需要比较的是以下红圈中的三条链路上的6个端口。
在这里插入图片描述
由于每一个链路上,有且只有1个指定端口。
三条链路一一分析,先看哪一条链路都行。
下面先看LSW1和LSW2的直连链路,先看两端口的根路径成本,如下图可知,两者相等。都是200000。
在这里插入图片描述
然后再用端口所在交换机的BID进行比较,发现LSW2的BID较小。故LSW2的E0/0/1是指定端口。
用同样的方法,
比较LSW1和LSW3直连链路,根路径成本也是相等。故再按端口所在交换机的BID进行比较,发现LSW3的BID较小。故LSW3的E0/0/1是指定端口。
比较LSW2和LSW3直连链路,根路径成本也是相等。故再按端口所在交换机的BID进行比较,发现LSW3的BID较小。故LSW3的E0/0/2是指定端口。
那么剩余的LSW1的E0/0/1、E0/0/2 和 LSW2的E0/0/2端口都是非指定端口(也叫阻塞端口)。

最终整个拓扑图的端口角色如下:
在这里插入图片描述
通过命令分别查看是否和上面的分析的一致
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这三个阻塞端口分别实现了,在逻辑上阻断每一条物理环路。

拓扑实例四

在这里插入图片描述
首先 选举根交换机
根据最小BID规则,可知LSW4是根交换机。
其次 选举根端口
根端口只存在于非根交换机上,每个非根交换机上有且只有1个。
先看LSW2交换机,其上的E0/0/1、E0/0/4、E0/0/2、E0/0/3端口,到根交换机的根路径成本都是200000,故根据最小RPC原则比较不
出。
再根据最小发送设备BID原则,和E0/0/1、E0/0/4链接的对端交换机LSW1,和E0/0/2、E0/0/3链接的对端交换机LSW4,
比较LSW1、LSW4谁的BID最小。显然根交换机LSW4的BID最小。故从LSW2中的E0/0/2、E0/0/3中选举根端口。
此时就用到最小PID原则了,显然LSW2中的E0/0/2较小。故LSW2中的E0/0/2是根端口。
同样的比较方式:
在LSW1上最小RPC原则,也是选举不出根端口,再根据最小发送设备BID原则,确定从LSW1的 E0/0/2、E0/0/4选举根端口,最后再根据最小PID原则,可知LSW1的 E0/0/2为根端口。
在LSW3上最小RPC原则,也是选举不出根端口,再根据最小发送设备BID原则,确定从LSW3的 E0/0/2、E0/0/4选举根端口,最后再根据最小PID原则,可知LSW4的 E0/0/2为根端口。
在这里插入图片描述
然后选举指定端口
根交换机上的端口都是指定端口,故LSW4的E0/0/1、E0/0/3、E0/0/2、E0/0/4 端口都是指定端口
又根据每条链路上有且只有1个指定端口。故LSW2-E0/0/3 至 LSW4-E0/0/3 这条链路上的LSW2的E0/0/3只能是阻塞端口了(因为
LSW2的E0/0/2是根端口)。同理可知 LSW3的E0/0/4也是阻塞端口。LSW1的E0/0/2为根端口,故LSW3的E0/0/1只能是指定端口。
所以只有以下红圈中的端口需要确定了。
在这里插入图片描述
接下来 ,一条一条链路的分析,先看LSW1-E0/0/4 至 LSW1-E0/0/3 这条链路。经最小RPC原则,可知, LSW1-E0/0/3的根路径成本小,故而LSW1的E0/0/3为指定端口。而LSW1-E0/0/4只能为阻塞端口了。
再看LSW1-E0/0/1 至 LSW2-E0/0/1 这条链路。经最小RPC原则,可知, LSW2-E0/0/1的根路径成本小,故而LSW2的E0/0/1为指定端口。而LSW1-E0/0/1只能为阻塞端口了。
再看LSW1-E0/0/3 至 LSW2-E0/0/4 这条链路。经最小RPC原则,可知, LSW2-E0/0/4的根路径成本小,故而LSW2的E0/0/4为指定端口。而LSW1-E0/0/3只能为阻塞端口了。

故最终的拓扑端口角色如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

拓扑图实例五

在这里插入图片描述

虽然,三台交换机没有形成物理环路,那么只要开启的STP协议功能,当两台交换机上电后,同样会进行 1.选举根交换机 2.选举根端口 3.选举指定端口
选举根交换机:谁的网桥ID最小,谁是根交换机,故LSW8是根交换机。
然后选举根端口:根端口 只能在非根交换机上存在,有且只有一个。即每个非根交换机上有且只有1个。
根据最小RPC原则: 确定不了LSW7上的 E0/0/1,还是 E0/0/2是根端口,需要更加最小发送设备BID来确定,可知 LSW7的E0/0/1是根端口。
由于LSW9上只有一个端口,故这个端口就是此交换机的根端口。
选举指定端口:
根交换机上的端口都是指定端口。故 LSW8的E0/0/1是指定端口。
又由于每条链路上有且只有1个指定端口,故LSW7上的 E0/0/2是指定端口。
由于没有物理环路,也就没有 多余的端口用作 阻塞端口的角色。

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

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

相关文章

13年老鸟整理,性能测试技术知识体系总结,从零开始打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 从个人的实践经验…

新质生产力浪潮下,RPA如何成为助力先锋?

新质生产力浪潮下,RPA如何成为助力先锋? 在数字化、智能化的今天,“新质生产力”一词越来越频繁地出现在我们的视野中。那么,究竟什么是新质生产力?它与我们又有什么关系?更重要的是,在这一浪潮…

2024年,10大产业趋势:创新驱动下的全面转型与发展

本趋势指南深入探讨塑造企业创新未来的力量,以及为什么企业必须改变创新方式。指南概述了创新未来的愿景,其中人类智慧和AI技术在创新中相结合,相互补充和放大,这将是一个全新范围的端到端创新平台,旨在将各个点连接起…

用chatgpt写论文重复率高吗?如何降低重复率?

ChatGPT写的论文重复率很低 ChatGPT写作是基于已有的语料库和文献进行训练的,因此在写作过程中会不可避免地引用或借鉴已有的研究成果和观点。同时,由于ChatGPT的表述方式和写作风格与人类存在一定的差异,也可能会导致论文与其他文章相似度高…

Python中Matplotlib保存图像时去除边框(坐标轴、白色边框、透明边框)方法

直接说解决方法: plt.savefig(‘image3.png’,bbox_inches‘tight’,pad_inches0) (三行搞定) import numpy as np import matplotlib.pyplot as pltimg np.random.randn(10,10)figplt.imshow(img) plt.axis(off) plt.savefig(image3.png,b…

面试题02.07.链表相交

方法一:暴力 public ListNode getIntersectionNode(ListNode headA, ListNode headB) {//先获得链表长度ListNode l1 headA;ListNode l2 headB;int m 0, n 0;while(l1 ! null){m;l1 l1.next;}while(l2 ! null){n;l2 l2.next;}ListNode l3 headA;for(int i …

YOLOv5_seg-Openvino和ONNXRuntime推理【CPU】

纯检测系列: YOLOv5-Openvino和ONNXRuntime推理【CPU】 YOLOv6-Openvino和ONNXRuntime推理【CPU】 YOLOv8-Openvino和ONNXRuntime推理【CPU】 YOLOv7-Openvino和ONNXRuntime推理【CPU】 YOLOv9-Openvino和ONNXRuntime推理【CPU】 跟踪系列: YOLOv5/6/7-O…

Ableton Live 12 Suite:音乐创作的全能工作站 mac版

在数字音乐制作的领域中,Ableton Live 11 Suite 无疑是引领潮流的旗舰产品。作为一款综合性的音乐制作和演出软件,它提供了从创作灵感的萌芽到最终作品完成的全方位解决方案。 Ableton Live 12 Suite Mac版软件获取 Ableton Live 11 Suite 凭借其强大的…

革命性创新:聚道云软件连接器如何为企业重塑财务管理流程?

一、客户介绍 某科技股份有限公司是一家专注于高性能存储技术领域的创新型科技公司。自公司成立以来,该公司始终秉持创新发展的理念,致力于为客户提供卓越的存储解决方案,以满足不同行业对数据存储的需求。作为业界的佼佼者,该公…

47、C++/引用,函数重载,类相关学习20240312

一、自己封装一个矩形类(Rect),拥有私有属性:宽度(width)、高度(height), 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show()。 代码&…

系统及其分类

系统定义 系统:指若干相互关联的事物组合而成的具有特定功能的整体。 系统的基本作用:对输入信号进行加工和处理,将其转换为所需要的输出信号。 系统分类 系统的分类错综复杂,主要考虑其数学模型的差异来划分不同类型。主要分为…

【干货详解】接口测试和功能测试有什么区别

本文主要分为两个部分: 第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之间的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什么要做? 第二部分&#xff1…

jquery-viewer(Viewer.js)—— 一个 jQuery 图片展示插件

用法&#xff1a; <link href"/path/to/viewer.css" rel"stylesheet"> <script src"/path/to/viewer.js"></script>new Viewer(element[, options]) 【element&#xff1a; HTMLElement类型&#xff0c;可以是img元素或包含…

蓝桥杯 - 大石头的搬运工 C++ 前缀和 算法 附Java python

题目 思路和解题方法 这段代码的目标是计算给定点集的最小总移动成本&#xff0c;使得所有点都在同一直线上。它通过计算每个点左边和右边的移动成本&#xff0c;然后在所有可能的分割点中选择最小成本。具体步骤如下&#xff1a; 读取输入的点集&#xff0c;每个点表示为 (y, …

C/C++ 树中王牌:红黑树的结构及实现

一、红黑树的定义 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路 径会比其他路径长出俩倍&#xff…

2024大广赛Canva可画都有哪些命题?

大广赛官网在3月8日发布了2024年Canva可画的命题&#xff0c;Canva可画是全球领先的视觉传播平台&#xff0c;2013年诞生于悉尼&#xff0c;2018年进入中国市场。秉承“赋予世界设计的力量”的使命&#xff0c;Canva可画为用户提供零门槛的设计编辑工具(网页端/App/小程序)&…

element-plus 完成下拉切换功能

项目场景&#xff1a; element-plus element-plus 完成下拉切换功能&#xff0c;选用了popover 组件去进行样式修改&#xff0c;本来大概是要实现下面这样的样式效果&#xff0c;没想到调整的时候&#xff0c;这个选择的高亮模块总是超出。 实现效果&#xff1a; 解决方案&am…

Linux/Cap

Enumeration nmap 第一次扫描发现系统对外开放了21&#xff0c;22&#xff0c;80端口&#xff0c;端口详细信息如下 除了22的ssh服务&#xff0c;80的http服务&#xff0c;还开了21端口&#xff0c;运行着ftp服务&#xff0c;从nmap给出的结果可以看到并没有启用匿名登录设置…

【力扣 - 找到字符串中所有字母异位词】

题目描述 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&#xff09;。 示例 1: 输入: s "cbaebabacd"…

能查看二十四节气并提醒的软件是什么 二十四节气提醒软件

阳光斜照&#xff0c;我站在窗前&#xff0c;感受着四季的变迁。每个季节都有它独特的韵味&#xff0c;而二十四节气&#xff0c;便是这四季变换的细腻注脚。它们不仅是大自然的节奏&#xff0c;更与农事、生活紧密相连&#xff0c;承载着古人的智慧和对自然的敬畏。 小时候&a…