华为---STP协议简介(一)

2023-09-20 14:21:00

生成树协议简介

什么是生成树协议

        STP(Spanning Tree Protocol)是一种由交换机运行的、用来解决交换网络中环路问题的数据链路层协议。为提高网络可靠性,交换网络中通常会使用冗余链路,但是冗余链路会给交换网络带来环路风险,导致广播风暴以及MAC地址表不稳定等问题,影响用户通信质量。生成树协议STP可以在提高可靠性的同时又能避免环路带来的各种问题。

        注:屏蔽双绞线(ShieldedTwisted Pair)、信令转接点(SignalTransfer Point)等术语的缩写也是STP,应分清此 STP与彼 STP。


        没有冗余链路时,如上图所示某条链路出现故障,该链路交换机下的终端业务会中断。

        有冗余链路时,如上图所示某条链路出现故障,该链路交换机下的终端业务会中断,因为还有冗余链路保障网络连通;但是产生了环路。

生成树协议两个主要功能

  1. 消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
  2. 链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络通信。

网络环路产生的问题

        在有环路的交换网络中,会导致Mac地址表翻摆、广播风暴、多帧复制等问题。


名词解释

        桥(网桥):交换机早期的名字;
        桥(交换机)的Mac地址:每台交换机都有多个转发端口,每个端口有1个Mac地址,通常把端口编号最小的那个端口的Mac地址作为交换机的Mac地址;
        桥ID(BID):由桥优先级(2个字节,即16位二进制数)和桥Mac地址(6个字节,即48位二进制数)组成,优先级可以人为设置,取值范围是0~65535,步长为4096,默认为0x8000(十进制为32768);
        端口ID(PID):运行STP交换机的每个端口都有一个端口ID, 端口ID由端口优先级和端口号(即端口编号,如Ethernet0/0/3的端口编号为3)组成。 端口优先级取值范围是0到240, 步长为16, 即取值必须为16的整数倍,默认端口优先级为128;
        STP交换机:运行生成树协议的交换机;
        BPDU(Bridge Protocol Data Unit)网桥协议数据单元:是STP交换机相互交互的数据帧,BPDU是由STP交换机产生、交互和处理的,不是计算机等终端设备。


生成树协议工作原理

        STP协议的基本原理:在一个具有物理环路的交换网络中,交换机通过运行STP协议,自动生成一个没有环路的工作拓扑。该无环工作拓扑也称为STP树(STPTree),树节点为某些特定的交换机,树枝为某些特定的链路。一棵STP树包含唯一的一个根节点,任何一个节点到根节点的工作路径不但是唯一的,而且是最优的。当网络拓扑发生变化时,STP树也会发生相应变化。

生成树的产生过程

        交换网络中选举1台根桥(交换机) --> 非根桥(交换机)选举1个根端口 --> 选举指定端口 --> 阻塞剩余端口。

1.交换网络中选举1台根桥(交换机)

        根桥:网桥ID最小的为根桥,根桥是整个交换网络的逻辑中心,但不一定是物理中心,当网络拓扑发生变化时,根桥也可能发生变化。

        如上图所示,交换机默认优先级为32768,所有交换机优先级相同,则需要通过比较交换机Mac地址确定根桥,经过比较,交换机SW的BID最小,所以选举为根桥。

        如上图所示,对部分交换机优先级修改,交换机SW优先级最高(即,优先级值最小),交换机SW被选举为根桥。

2.非根桥(交换机)选举1个根端口

        根端口:是STP协议为非根桥选举出来的连接向根桥的端口,每台非根桥只能有1个根端口,根桥没有根端口。
       每台非根桥的STP交换机有多个用于连接网络的端口,通过比较每个连接网络端口的端口开销、端口对端网桥ID、端口对端端口ID来选举出1个根端口,以保证这个端口上的链路为到根桥的唯一1条最优路径。

        非根桥:没有被选举为根桥的STP交换机称为非根桥。
        端口的根路径开销(RPC-Root Path Cost):在运行STP协议的网络中,STP交换机端口到根桥的累计路径开销称为这个端口的根路径开销。
        端口的根路径开销与链路上的各个端口转发速率有关,端口转发速率越高开销越小。
        BID选举规则:先比较交换机优先级后比较交换机Mac地址,如果有1个优先级最高(优先级值最小)的交换机,则不需要再比较交换机Mac地址部分;如果有多个优先级最高(优先级值最小)的交换机,则需要再比较交换机Mac地址部分。
        PID选举规则:先比较交换机端口优先级后比较交换机端口号,如果有1个优先级最高(优先级值最小)的交换机端口,则不需要再比较交换机端口号部分;如果有多个优先级最高(优先级值最小)的交换机端口,则需要再比较交换机端口号部分。

SW4交换机根端口选举


如上图所示,SW4交换机到根桥SW有3条路径,路径开销分别为:

  1. SW4:GE 0/0/1-->SW:GE 0/0/2,SW4的E0/0/1端口路径开销为20000。
  2. SW4:GE 0/0/2-->SW2:GE0/0/2-->SW2:GE 0/0/1-->SW:GE 0/0/1
    SW4的E0/0/2端口路径开销为20000+20000=40000

  3. SW4:Ethernet 0/0/3-->SW3:Ethernet 0/0/2-->SW3:Ethernet 0/0/3-->SW2:Ethernet 0/0/2-->SW2:GE 0/0/1-->SW:GE 0/0/1
    SW4的E0/0/1端口路径开销为200000+200000+20000=420000

        注:从最后1条路径可以看出,路径开销不是SW4交换机和SW交换机之间的4个端口(SW3:Ethernet 0/0/2、SW3:Ethernet 0/0/3、SW2:Ethernet 0/0/2、SW2:GE 0/0/1)各自开销的累加,而是SW4交换机和SW交换机之间各个交换机之间路径(SW4-SW3、SW3-SW2、SW2-SW共3条路径)开销累加之和。

从3条路径开销得知SW4的GE 0/0/1端口路径开销最小,所以SW4交换机的根端口为GE 0/0/1。


SW3交换机根端口选举


如上图所示,SW3交换机到根桥SW有4条路径,路径开销分别为:

  1. SW3:E 0/0/2-->SW4:E 0/0/3-->SW4:GE 0/0/1-->SW:GE 0/0/2
    SW3的E 0/0/2端口路径开销为200000+20000=220000

  2. SW3:E 0/0/3-->SW2:E 0/0/2-->SW2:E 0/0/1-->SW:E 0/0/1
    SW3的E 0/0/3端口路径开销为200000+20000=220000

  3. SW3:E 0/0/3-->SW2:E 0/0/2-->SW2:GE 0/0/2-->SW4:GE 0/0/2-->SW4:GE 0/0/1-->SW:GE 0/0/2
    SW3的E 0/0/3端口路径开销为200000+20000+20000=240000

  4. SW3:E 0/0/2-->SW4:E 0/0/3-->SW4:GE 0/0/2-->SW2:GE 0/0/2-->SW2:GE 0/0/1-->SW:GE 0/0/1
    SW3的E 0/0/2端口路径开销为200000+20000+20000=240000

从4条路径开销得知SW4的E0/0/1端口路径开销最小的有2个,开销值都为220000,则需要比较BID(桥ID)来确定根端口。

SW3交换机去往根桥方向的相邻交换机ID为:SW2的ID为32768.4c1f-cc6b-343a,SW4的ID为32768.4c1f-cc6b-641e,SW2的BID小,则与SW2相连的SW3的E 0/0/3端口为SW3的根端口。


SW7交换机根端口选举

        SW7交换机到根桥SW有4条路径(跟SW3交换机相似,此处省略),端口路径开销和BID都相同,则需比较端口ID(PID)来确定根端口。

        SW7交换机去往根桥方向的相邻交换机端口ID为:SW3的Ethernet0/0/1端口ID为128.1,SW3的Ethernet0/0/4端口ID为128.4,SW3的Ethernet0/0/1端口ID小,则与SW3相连的SW7的E 0/0/1端口为SW7的根端口;
        如果手动修改SW3的Ethernet0/0/1端口ID为64.1,SW3的Ethernet0/0/4端口ID为48.4,SW3的Ethernet0/0/4端口优先级高(48<64),则与SW3相连的SW7的E 0/0/2端口为SW7的根端口;

        注:上图中,如果SW3和SW7之间用集线器HUB相连,则 SW7交换机Ethernet0/0/1端口和Ethernet0/0/2端口去往根桥方向的相邻交换机端口ID都为SW3的Ethernet0/0/1端口,PID是相同的,这种情况下则需要比较SW7自己的Ethernet0/0/1端口和Ethernet0/0/2端口PID来确定根端口。因为集线器HUB在实际应用中很少用,在此不再赘述。

3.选举指定端口

        指定端口用于确定除了根端口外要保留通信的端口,即连接两台STP交换机的两个端口,其中一个是指定端口,另外一个是根端口或者是阻塞端口。

指定端口举例说明

        上图按照根桥端口和根端口对端端口都是指定端口,标记出了部分指定端口;还剩下SW4:E0/0/3---SW3:E0/0/2、SW4:GE0/0/2---SW2:GE0/0/2、SW3:E0/0/1---SW7:E0/0/1共3条链路还没确定指定端口。

        按照端口根路径开销确定指定端口:
SW4:E0/0/3---SW3:E0/0/2链路:SW4:E0/0/3的RPC为20000,SW3:E0/0/2的RPC为220000,SW4:E0/0/3的RPC<SW3:E0/0/2的RPC,SW4:E0/0/3为指定端口。


SW4:GE0/0/2---SW2:GE0/0/2链路:SW4:GE0/0/2的RPC为20000,SW2:GE0/0/2的RPC为20000,SW4:GE0/0/2的RPC=SW3:GE0/0/2的RPC,需要比较各自交换机ID才能确定指定端口。SW2的ID为32768.4c1f-cc6b-343a,SW4的ID为32768.4c1f-cc6b-641e,SW2的BID小,则SW2:GE0/0/2为指定端口。

SW3:E0/0/1---SW7:E0/0/1链路:SW3:E0/0/1的RPC为220000,SW7:E0/0/1的RPC为420000,SW3:E0/0/1的RPC<SW7:E0/0/1的RPC,SW3:E0/0/1为指定端口。

4.阻塞剩余端口

        阻塞端口用于切断网络环路,在交换网络中,STP交换机通过交互BPDU消息,如果发现有环路,则选择地阻塞某些端口,最终将环路网络修改成逻辑上无环路的树形网络结构。

 

更多推荐

TCP socket && UDP && TCP协议 && IP协议 && 以太网等

第1题(编程题)题目名称:编写TCP版本的echoserver和echoclient题目内容:编写TCP版本的echoserver和echoclient第2题(编程题)题目名称:编写TCP版本的字典客户端和字典服务器题目内容:编写TCP版本的字典客户端和字典服务器第3题(编程题)题目名称:编写TCP版本的多线程服务器题

02_Bootstrap基础组件02

4排版使用Bootstrap的排版特性,您可以创建标题、段落、列表及其他内联元素,实际上它是把大部分在HTML的基本标签加了样式。所以这部分相对比较简单。4.1标题h1-h6重新定义样式,HTML中的所有标题标签,<h1>到<h6>均可使用。增加了.h1到.h6类,为的是给内联(inline)属性的文本赋予标题的样式。

远程连接PostgreSQL:配置指南与安全建议

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🐅🐾猫头虎建议程序员必备技术栈一览表📖:🛠️全栈技术FullStack:📚MERN/MEAN/MEVNStack|🌐Jamstack|🌍GraphQL|🔁RESTfulAPI|⚡WebSockets|🔄CI/CD|🌐Git&Versio

Linux安全加固:保护你的服务器

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🦄博客首页——🐅🐾猫头虎的博客🎐🐳《面试题大全专栏》🦕文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》🐾学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》🐅学会Gol

Cobra眼睛蛇-强大的Golang CLI框架,快速上手的脚手架搭建项目工具,详细安装和使用

Cobra眼睛蛇-强大的GolangCLI框架,快速上手的脚手架搭建项目工具,详细安装和使用。阅读过k8s源码的同学,应该都知道k8sScheduler、kubeadm、kubelet等核心组件的命令行交互全都是通过spf13写的Cobra库来实现。本文就来介绍下Cobra的相关概念及具体用法。关于Cobra是一个用于

MySQL常用配置详解

目录一、MySQL查看配置信息二、MySQL查看服务器当前运行状态的信息三、MySQL常用配置详解1、mysql(使用mysql命令登录数据库时的默认的设置)2、client(客户端默认设置内容)3、mysqld(服务端端配置)四、配置修改演示1、修改my.cnf配置文件(window系统修改my.ini配置文件)2、

二叉树经典OJ题——【数据结构】

W...Y的主页😊代码仓库分享💕今天我们来进行二叉树的OJ练习,就是利用二叉树的前序、中序、后续以及晨序遍历的特性进行OJ训练。话不多说,来看我们的第一道题。【leetcode965.单值二叉树】OJ链接如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回true;否则返

Wireshark把DDoS照原形

1前言MTU、传输速度、拥塞控制,还是各种重传,TCP传输相关的核心概念:学习了RFC规范和具体的Linux实现通过案例,把这些知识灵活运用了起来这种种还是在协议规范这大框架内的讨论,默认前提就是通信两端是遵照TCP规定工作,都是君子协定。若不遵TCP规范,甚至找漏洞攻击,这种小人行为也很常见,如DDoS攻击。2NTP

正则表达式元字符

正则表达式元字符-详细说明字符说明\将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n"匹配字符"n”。“\n"匹配换行符。序列”\\“匹配”\“,”\(“匹配”("。^匹配输入字符串开始的位置。如果设置了RegExp对象的Multiline属性,^还会与"\n"或"\r"之后的位置匹配。$匹配输入字符

如何用Stable Diffusion模型生成个人专属创意名片?

目录1什么是二维码?2什么是扩散模型?3StableDiffusion环境搭建4开始制作创意名片结语1什么是二维码?二维码是一种用于存储和传输信息的方便而广泛使用的图像编码技术。它是由黑色方块和白色空白区域组成的二维图形,可以通过扫描设备(如智能手机)进行解码。二维码基于特定的编码标准和解码算法——其中包括错误检测和纠

如何通过简历展示自己的执行力和动力?

导语:简历是求职过程中的重要工具,通过合适的展示方式能够有效地展示自己的执行力和动力。本文将分享一些技巧,帮助您在简历中突出这两个关键能力。突出成就和项目经历:在简历中详细描述您曾经完成的项目或工作,并着重强调其中的具体成果。指出您所负责的任务,并描述您是如何通过积极的执行力完成这些任务的。例如,提及您成功地完成了某个

热文推荐