华为交换机:STP的详解和试验

前言

为了解决网络冗余链路所产生的问题,IEEE定义了802.1D协议,即生成树协议STP,利用生成树协议可以避免帧在环路中的增生和无限循环,生成树的主要思想是,当两个交换机之间存在多条链路时,通过一定的算法只激活其中最主要的一条链路,而将其他冗余链路阻塞掉变为备用链路,当主链路出现问题时,生成树协议将自动启用备用链路,整个过程不需要认为干预.

STP协议中定义了,根桥(RootBridge),根端口(Root Port),指定端口(Designated Port),路径开销(Path Cost)等概念,目的在于通过构建一棵自然树的方法阻塞冗余链路,同时实现链路备份和链路最优化.

STP协议的通信,是通过桥协议数据单元(BPDU)进行通信的,它是运行STP的交换机之间交流消息帧,所有的支持STP协议的交换机都能接收并处理BPDU报文.

STP工作过程

选举根桥->选举根端口->选举指定端口->STP阻塞非根

  • 1.选举根桥:交换机假定自己是根,然后发送BPDU报文给其他交换机,最终选出ID号最小的交换机作为根桥.
  • 2.选举根端口:每台非根交换机都会选举出一个根端口,并且仅有一个根端口,并按照优先级选择一个根端口.
  • 3.选举指定端口:选择一条网桥到根桥的路径成本最小的路径,或者发送方的网桥ID最大的作为指定端口.
  • 4.选择阻塞端口:至此,就会根据STP算法,从多个链路中选择性的阻塞掉一些端口的数据通信.

STP端口状态:

1.阻塞(Blocking):端口只接受BPDU,不能接收或发送数据,也不能把学习到的MAC地址天机到MAC地址表中.
2.转发(Forwarding):端口能够接收并转发数据,也能够学习MAC地址,并添加到MAC地址表中.
3.侦听(Listening):该状态是从阻塞到转发状态过程中的临时状态,该状态只能发送和接受BPDU数据.
4.学习(Learning):该状态是从阻塞到转发状态过程中的临时状态,该状态不能够发送或接收数据.
5.关闭(Disable):该状态端口只提供网络管理服务,不能接受发送任何数据,也就是停止服务的状态.

指定端口 Designated Port
根端口 Root Port
预备端口 Alternate Port

RSTP快速生成树

TP协议虽然解决了链路闭合引起的死循环问题,但是在端口从阻塞状态到转发状态间经过了一个只学习MAC地址但不参与转发的过程,产生了转发延时(默认15秒),从而使得生成树的收敛过程需要较长的时间,一般是转发延时的两倍.

为了解决STP收敛时间过长的缺点,IEEE又推出了802.1w标准,定义了RSTP(快速生成树)协议.RSTP协议在网络配置参数发生变化时,能够显著的减少网络的收敛时间,由于RSTP是从STP发展而来的,其与STP协议保持高度的兼容性,RSTP协议规定,在某些情况下,处于阻塞状态的端口不必经历阻塞->侦听->学习->转发这一个过程,就可以直接进入转发状态.

RSTP协议只有以下三种:
1.丢弃(Discarding):RSTP将STP中的阻塞,禁用,和侦听统称为丢弃模式.
2.学习(Learning):拓扑有所变动情况下,端口处于学习状态并学习MAC地址,将其添加到MAC地址表.
3.转发(Forwarding):在网络拓扑稳定后,端口处于转发状态,并开始转发数据包.

以上就是生成树协议的常用内容,对比后会发现,RSTP的收敛时间明显低于STP,解决了数据同步过慢的问题所在.

生成树的配置

在华为设备中STP默认是开启的,如下拓扑当设备启动之后,就已经开始选举根桥了。三台设备仅改了名字,其他什么都没有配置。我们来查看一下哪个是根桥。
在这里插入图片描述

判断根桥

首先我们需要判断当前的根桥是哪一个设备,我们分别在四台交换机上执行.
我们分别在3台交换机上执行display stp命令或者执行display stp brief,来查询默认那一台是根桥设备

SW1

<sw1>dis stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge         :32768.4c1f-cc84-251c        // 本机优先级
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20   // 数据包发送时间
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :32768.4c1f-cc07-29f3 / 20000      // 根桥MAC地址
CIST RegRoot/IRPC   :32768.4c1f-cc84-251c / 0		// 备份根桥MAC地址
CIST RootPortId     :128.1     //根端口ID
...<sw1>dis stp brief MSTID  Port                        Role  STP State     Protection0    GigabitEthernet0/0/1        ROOT  FORWARDING      NONE0    GigabitEthernet0/0/2        DESI  FORWARDING      NONE

知识点:

  • 优先级(CIST Bridge)的组成:默认是32768.+本地MAC,根桥的优先级默认为32768,,MAC地址由交换机的VLAN1接口的MAC地址决定,优先级越小的交换机越有可能被选为根桥
  • 根端口ID(CIST RootPortId)的组成:默认128.+端口号的总和

判断技巧:根据上面的注释,以及知识点第一条,我们可以发现一个规律,本地优先级CIST Bridge 中MAC部分如果和CIST Root/ERPC,即根桥MAC地址相同,则就是根桥。显然SW1不是根桥。

SW2
根据上面的知识点,发现SW2就是根桥

<sw2>dis stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge         :32768.4c1f-cc07-29f3
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :32768.4c1f-cc07-29f3 / 0
CIST RegRoot/IRPC   :32768.4c1f-cc07-29f3 / 0
CIST RootPortId     :0.0<sw2>dis stp brief MSTID  Port                        Role  STP State     Protection0    GigabitEthernet0/0/1        DESI  FORWARDING      NONE0    GigabitEthernet0/0/2        DESI  FORWARDING      NONE

SW3

[sw3]dis stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge         :32768.4c1f-ccea-78bd
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :32768.4c1f-cc07-29f3 / 20000
CIST RegRoot/IRPC   :32768.4c1f-ccea-78bd / 0
CIST RootPortId     :128.2<sw3>dis stp brief MSTID  Port                        Role  STP State     Protection0    GigabitEthernet0/0/1        ALTE  DISCARDING      NONE0    GigabitEthernet0/0/2        ROOT  FORWARDING      NONE

判断根桥总结
在这里插入图片描述

指定根桥

我们在设计这个拓扑时,想让SW1作为根桥,此时可在三层交换机上,直接通过以下命令,更换根桥设备.

方法1:指定根桥

[sw1]stp root ?primary    Primary root switch    //根桥secondary  Secondary root switch   //备份根桥,本次试验不涉及备份根桥
[sw1]stp root primary [sw1]dis stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge         :0    .4c1f-cc84-251c
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :0    .4c1f-cc84-251c / 0
CIST RegRoot/IRPC   :0    .4c1f-cc84-251c / 0
CIST RootPortId     :0.0

方法2:更改优先级

[sw1]stp priority ?INTEGER<0-61440>  Bridge priority, in steps of 4096

注意:必须是4096的倍数

配置边缘端口

对于运行生成树协议的二层网络,与终端相连的端口不用参与生成树计算,这些端口参与计算会影响网络拓扑的收敛速度,而且这些端口的状态改变也可能会引起网络震荡,导致用户流最中断.此时,可以通过执行命令stp edged-port enable将当前端口配置成边缘端口,该端口便不再参与生成树计算,从而帮助加快网络拓扑的收敛时间以及加强网络的稳定性.

需要注意:当前端口配置成边缘端口后,如果收到BPDU报文,那么交换设备会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,接下来将通过一个实验来演示边缘端口的配置,其配置拓扑图如下所示:

在这里插入图片描述

给指定端口配置

这里我们指定配置两台交换机的边缘端口,将Ge0/0/2配置为边缘端口.

#----在LSW1上操作-------------------------
<Huawei> system-view
[LSW1] stp mode rstp                                   // 设置成快速生成树
[LSW1] interface GigabitEthernet 0/0/2                 // 选择要配置的接口
[LSW1-GigabitEthernet0/0/2] stp edged-port enable      // 配置成边缘接口#----在LSW2上操作-------------------------
<Huawei> system-view
[LSW2] stp mode rstp                                   // 设置成快速生成树
[LSW2] interface GigabitEthernet 0/0/2                 // 选择要配置的接口
[LSW2-GigabitEthernet0/0/2] stp edged-port enable      // 配置成边缘接口

给全局端口配置

也可以给将边缘端口配置为全局模式,以下案例将配置全局端口.
其实就是指定把参与stp的端口配置成非边缘端口

[LSW1] stp mode rstp                  // 配置成快速生成树
[LSW1] stp edged-port default         // 配置边缘端口为全局模式[LSW1] interface GigabitEthernet 0/0/1              // 选择接口
[LSW1-GigabitEthernet0/0/1] stp edged-port disable  // 配置为非边缘端口

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

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

相关文章

【mysql】—— 函数的基本介绍

前言&#xff1a; MySQL是一种常用的关系型数据库管理系统&#xff0c;它提供了许多内置的函数来进行数据操作和处理。本期&#xff0c;我将给大家介绍的就是关于 “函数” 的相关知识&#xff01;&#xff01;&#xff01; 目录 &#xff08;一&#xff09;日期函数 &#…

一个好玩的浏览器插件

背景 最近抽空开发了一个有意思的浏览器插件。背景是我们在开发过程中有时需要做一些测试验证&#xff0c;需要修改请求头字段和响应头字段的内容&#xff0c;有时需要在页面做测试&#xff0c;反复请求同一个接口&#xff0c;并修改一些字段。 如果此时使用nginx做代理转发再…

数据库数据恢复-Oracle数据库truncate的数据恢复案例

Oracle数据库故障&分析&#xff1a; 北京某单位Oracle 11g R2数据库误执行truncate table CM_CHECK_ITEM_HIS&#xff0c;表数据丢失&#xff0c;查询该表时报错。数据库备份无法使用&#xff0c;表数据无法查询。 Oracle数据库Truncate数据的机理&#xff1a;执行Trunca…

element ui 表格组件与分页组件的二次封装

目录 效果图 组件封装 parseTime函数 debounce 函数 render通用渲染模版 页面使用 【扩展】vue 函数式组件 函数式组件特点&#xff1a; 函数式组件的优点&#xff1a; 【扩展】vue中的render函数 一、初步认识render函数 二、为什么使用render函数 三、render函数…

智慧工地:让工地可视化、数字化、智能化

智慧工地平台功能包括&#xff1a;劳务管理、施工安全管理、视频监控管理、机械安全管理、危大工程监管、现场物料监管、绿色文明施工、安全隐患排查、施工综合管理、施工质量管理、设备管理、系统管理等模块。 一、项目开发环境 技术架构&#xff1a;微服务 开发语言&#…

【面试高频题】二叉树“神级遍历“入门

题目描述 这是 LeetCode 上的 「99. 恢复二叉搜索树」 &#xff0c;难度为 「中等」。 Tag : 「二叉树」、「树的搜索」、「递归」、「迭代」、「中序遍历」、「Morris 遍历」 给你二叉搜索树的根节点 root&#xff0c;该树中的 恰好 两个节点的值被错误地交换。请在不改变其结…

【Hive SQL】统计同名路径下目录数量(基于reverse、split和substr函数)

首先&#xff0c;Hive事务表所产生的的路径信息如下&#xff1a; PS&#xff1a;其中路径信息格式为 /user/hive/warehouse/${database_name}.db/${table_name}/*/user/hive/warehouse/test.db/tran_ts/delete_delta_0000002_0000002_0000 /user/hive/warehouse/test.db/tran_…

【脑机接口开源数据处理包】brainflowBrainFlow是一个库,旨在获取,解析和分析脑电图,肌电图,心电图和其他类型的数据从生物传感器。

BrainFlow是一个库&#xff0c;旨在获取&#xff0c;解析和分析脑电图&#xff0c;肌电图&#xff0c;心电图和其他类型的数据从生物传感器。 brainflow开源库官网地址 [https://brainflow.readthedocs.io/en/stable/](https://brainflow.readthedocs.io/en/stable/) 它提供了…

AntDB数据库参加ACDU中国行杭州站,分享数据库运维实践与经验

关于ACDU 和中国行: ACDU是由墨天轮社区举办的中国数据库联盟的品牌活动之一&#xff0c;在线下汇集数据库领域的行业知名人士&#xff0c;共同探讨数据库前沿技术及其应用&#xff0c;促进行业发展和创新的平台&#xff0c;也为开发者们提供友好交流的机会。 AntDB作为具有技术…

Facebook 广告:如何为移动设备投放广告

图片来源于&#xff1a;SaleSmartly官网 如果您希望目标受众发现并看到您的企业&#xff0c;那么广告是至关重要的&#xff0c;但是哪些是宣传您的品牌的最佳方式呢&#xff1f;当今最常用的平台&#xff08;手机&#xff09;上的广告怎么样&#xff1f;能够回答这些问题很重要…

Postman —— HTTP请求基础组成部分

一般来说&#xff0c;所有的HTTP Request都有最基础的4个部分组成&#xff1a;URL、 Method、 Headers和body。 &#xff08;1&#xff09;Method 要选择Request的Method是很简单的&#xff0c;Postman支持所有的请求方式。 &#xff08;2&#xff09;URL 要组装一条Request…

Android获取系统读取权限

在Androidifest.xml文件中加上授权语句 <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE"/>

01 PHP基础知识讲解

一 php基础知识 PHP文件的默认拓展名是“php”。 PHP文件中包含HTML标记、PHP标记、PHP代码以及空格和注释。 PHP标记&#xff1a;开始标记<?php 结束标记 ?> 中间内容是PHP代码。 PHP代码&#xff1a;学习第一个指令 echo 功能是用于输出字符串 。 语句结束符&a…

电脑更换硬盘的时候怎么迁移系统?

为什么需要迁移系统&#xff1f; 在一些关于电脑DIY或Windows相关的论坛社区中&#xff0c;有很多人发帖询问怎么迁移系统。那么这个系统迁移&#xff0c;究竟是何含义呢&#xff1f;通俗易懂地解释一下&#xff0c;就是创建一个完整无缺的操作系统复制品&#xff0c;它与系…

一文了解VR全景,VR全景有哪些优势?

引言&#xff1a; VR全景技术近年来崭露头角&#xff0c;已经成为宣传领域的一大亮点。不仅在娱乐&#xff0c;旅游行业广泛应用&#xff0c;还在商业和教育等领域崭露头角。 一&#xff0e;什么是VR全景&#xff1f; VR全景&#xff0c;全名Virtual Reality Panorama&#x…

服务器数据恢复-EVA存储多块硬盘磁头和盘片损坏离线的数据恢复案例

服务器数据恢复环境&#xff1a; HP EVA某型号存储&#xff0c;存储中一共有23块磁盘&#xff0c;上层映射给一台windows server服务器上。 服务器故障&检测&分析&#xff1a; 该EVA存储上三块硬盘指示灯显示黄色&#xff0c;此时存储设备还能正常工作。运维更换显示黄…

SLAM从入门到精通(编写第一个package)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们安装了ROS环境&#xff0c;接着就可以开始进行ROS程序的开发了。在开发之前&#xff0c;我们有几个概念需要厘清一下。第一个是workspace&…

springboot之三:原理分析之自动配置condition

导入&#xff1a; SpringBoot是如何知道要创建哪个Bean的&#xff1f;比如Spring Boot是如何知道要创建RedisTemplate的&#xff1f; Condition&#xff1a; Condition是在Spring4.0增加的条件判断功能&#xff0c;通过这个可以实现选择性的创建Bean操作。 自定义条件&…

数仓学习之DWD学习

登录不是原子行为&#xff0c;而登录成功是&#xff0c; 而支付也不是原子&#xff0c;也分成功失败。 什么是原子型? 一条线 注意一下密码, mysql的密码是MD5加密,而MD5的长度为固定的32 1.怎么构建事务表? 1.确定表名 2.确定一行数据所表示的含义 3.确定列定义 4.确定度…

让NPU跑起来iTOP_RK3588开发板在Linux系统中使用NPU

下载 rknpu2 并拷贝到虚拟机 Ubuntu&#xff0c;如下图所示&#xff0c;RKNPU2 提供了访问 rk3588 芯片 NPU的高级接口。 下载地址为“iTOP-3588 开发板\02_【iTOP-RK3588 开发板】开发资料\12_NPU 使用配套资料\01_rknpu2 工具” 对于 RK3588 来说&#xff0c;Linux 平台 RK…