STP生成树协议基本配置示例---STP逻辑树产生和修改

2023-09-21 23:50:45

        STP是用来避免数据链路层出现逻辑环路的协议,运行STP协议的设备通过交互信息发现环路,并通过阻塞特定端口,最终将网络结构修剪成无环路的树形结构。在网络出现故障的时候,STP能快速发现链路故障,并尽快找出另外一条路径进行数据传输。

        交换机上运行的STP通过BPDU信息的交互,选举根交换机,然后每台非根交换机选择用来与根交换机通信的根端口,之后每个网段选择用来转发数据至根交换机的指定端口,最后剩余端口则被阻塞。

配置思路

        启用STP协议--->配置STP模式--->配置根桥和备份根桥--->配置指定端口

        由于默认情况下,运行STP协议的网络中,根交换机、根端口、指定端口选择可能基于交换机的MAC地址的大小,因此带来了不确性,极可能由此产生网络隐患。通过手动配置根交换机、根端口、指定端口更能保障网络稳定性。

示例配置

        SW1作为主根交换机,SW2作为SW1的备份根交换机。同时对于S4交换机,E0/0/1接口应该作为根端口。对于S2和S3之间的链路,应该保证S2的E0/0/3接口作为指定端口。同时在交换机S3上,存在两个接口E 0/0/10、E0/0/11连接到测试PC,测试PC经常上下线网络,需要将交换机S3与之相连的对应端口定义为边缘端口,避免测试电脑上下线对网络产生的影响。

网络拓扑图

每台交换机启用STP协议和配置STP模式,配置代码如下:

<Huawei>system-view 
[Huawei]sysname SW1
[SW1]stp enable   //启用STP协议
[SW1]stp mode stp  //配置STP模式为STP

<Huawei>system-view 
[Huawei]sysname SW2
[SW2]stp enable 
[SW2]stp mode stp

<Huawei>system-view 
[Huawei]sysname SW3
[SW3]stp enable 
[SW3]stp mode stp

<Huawei>system-view 
[Huawei]sysname SW4
[SW4]stp enable 
[SW4]stp mode stp

<Huawei>system-view 
[Huawei]sysname SW5
[SW5]stp enable 
[SW5]stp mode stp

查看每台交换机的stp简要信息:


        从上图看出,默认情况下,SW3被选举为根交换机,SW1的根端口为GE 0/0/1,SW2的根端口为GE 0/0/1,SW4的根端口为GE 0/0/1,SW5的根端口为E 0/0/1。但实际上,SW1和SW2交换机性能要优于SW3,应当选举SW1或者SW2为根桥,并设置其中1个交换机为备用根桥,这样网络整体性能更好。

手动配置SW1为根桥,SW2交换机为备用根桥,配置代码如下:

[SW1]stp priority 4096  //设置SW1交换机的stp优先级为4096

[SW2]stp priority 8192  //设置SW2交换机的stp优先级为8192

        根交换机在网络中的位置是非常重要的,如果选择了一台性能较差的交换机,或者是部署在接入层的交换机作为根交换机,会影响到整个网络的通信质量及数据传输。所以确定根交换机的位置极为重要。


默认情况下STP交换机的stp优先级为32768


SW1交换机已经被设置为根桥

                如上图所示,还有一种方法设置SW1交换机为根桥,即通过命令 stp root primary直接指定SW1为根桥。使用此命令后,设备的桥优先级值会被自动设为 0,并且不能通过命令 stp priority priority来更改该设备的桥优先级。


        如上图所示,还有一种方法设置SW2为备份根桥,当SW1发生故障时可以接替SW1成为新的根桥。在设备上执行 stp root secondary命令后,设备的桥优先级的值会被自动设为 4 096,并且不能通过命令 stp priority priority来更改该设备的桥优先级。


        SW2的根端口为GE 0/0/3,SW3的根端口为GE 0/0/1,SW4的根端口为GE 0/0/1,SW5的根端口为E 0/0/1。

手动设置SW5的E 0/0/2端口为根端口,配置代码如下:

[SW5-Ethernet0/0/2]stp cost 100000 //设置SW5的E 0/0/2端口开销为100000

        SW5的E 0/0/2端口开销默认为200000

        生成树在选举出根交换机之后,将在每台非根交换机上选举根端口。选举时首先比较该交换机上每个端口到达根交换机的根路径开销,路径开销最小的端口将成为根端口。如果根路径开销值相同,则比较每个端口所在链路上的上行交换机ID,如果该交换机ID也相同,则比较每个端口所在链路上的上行端口ID。每台交换机上只能拥有一个根端口。


SW5的GE 0/0/2端口已经被设置为根端口

手动设置SW3的GE 0/0/2端口为指定端口,配置代码如下:

[SW3-GigabitEthernet0/0/1]stp cost 10000  //设置SW3的GE 0/0/1端口开销为10000

        SW3的GE 0/0/1端口开销默认为20000


        修改SW3的GE 0/0/1端口开销为10000,SW3的GE 0/0/2端口根路径开销为10000,小于SW2的GE 0/0/1端口根路径开销20000,则SW3的GE 0/0/2端口为指定端口。

stp边缘端口设置

        华为交换机STP里面,如果某一个指定端口位于整个网络的边缘,即不再与其他交换设备连接,而是直接与终端设备直连,这种端口叫做边缘端口。边缘端口一般接pc或终端,主要目的是提升用户体验感,终端可以比较快获取到地址。

SW5的GE 0/0/3端口和SW5的GE 0/0/4端口设置为边缘端口,配置代码如下:

[SW5-Ethernet0/0/3]stp edged-port enable
[SW5-Ethernet0/0/4]stp edged-port enable  //使能边缘端口

更多推荐

Spring 中经典的 9 种设计模式

1、简单工厂BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。2、工厂方法FactoryBean接口。3、单例模式Spring依赖注入Bean实例默认是单例的。4、适配器模式S

华为云云耀云服务器L实例评测|拉取创建canal镜像配置相关参数 & 搭建canal连接MySQL数据库 & spring项目应用canal初步

前言最近华为云云耀云服务器L实例上新,也搞了一台来玩,本篇博客介绍如何在华为云上部署canal的docker镜像,以及在spring项目中的初步应用。其他相关的华为云云耀云服务器L实例评测文章列表如下:初始化配置SSH连接&安装MySQL的docker镜像&安装redis以及主从搭建&7.2版本redis.conf配置

uniapp后台播放音频功能制作

在UniApp中,你可以使用uni.getRecorderManager()方法来创建一个录音管理器实例。但是,请注意,录音管理器并不直接用于后台音频播放功能,而是用于录制音频。如果想要在后台播放音频,你需要使用uni.getBackgroundAudioManager()。以下是一个示例,演示了如何在UniApp中使

Go 多版本管理工具

Go多版本管理工具文章目录Go多版本管理工具一、goget命令1.1使用方法:二、Goenv三、GVM(GoVersionManager)四、voidint/g4.1安装4.2冲突4.3使用在平时开发中,本地新旧项目并行开发的过程中,你大概率会遇到一个令人头疼的问题,如何同时使用两个不同版本的GolangRuntime

9.2.3.1 【MySQL】XDES Entry链表

当段中数据较少的时候,首先会查看表空间中是否有状态为FREE_FRAG的区,也就是找还有空闲空间的碎片区,如果找到了,那么从该区中取一些零碎的页把数据插进去;否则到表空间下申请一个状态为FREE的区,也就是空闲的区,把该区的状态变为FREE_FRAG,然后从该新申请的区中取一些零碎的页把数据插进去。之后不同的段使用零碎

ElasticSearch集群shard均衡策略

ES集群的rebalance和allocation功能,可以自动均衡集群内部数据、分配分片,保证各个节点间尽量均衡。但是,在高访问量或者节点宕机的情况下,大范围的rebalance会影响到集群性能。所以,调整好集群相关参数,是重中之重。1-shard分配策略集群分片分配是指将索引的shard分配到其他节点的过程,会在如

结合购物车功能,了解RedisTemplate中的BoundHashOperations源码

🧑‍💻作者名称:DaenCode🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开发。技术尚浅,闭关学习中······😎人生感悟:尝尽人生百味,方知世间冷暖。📖所属专栏:Redis相关源码分析专栏推荐专门

# 数据库开发-MySQL基础DDL-DML总结

数据库:英文为DataBase,简称DB,它是存储和管理数据的仓库。数据库管理系统(DataBaseManagementSystem,简称DBMS)DBMS是操作和管理数据库的大型软件。将来我们只需要操作这个软件,就可以通过这个软件来操纵和管理数据库了。需要给DBMS软件发送一条指令,告诉这个软件我们要执行的是什么样的

Keepalived+LVS负载均衡

Keepalived是一个用于实现高可用性的开源软件,它基于VRRP(VirtualRouterRedundancyProtocol)协议,允许多台服务器协同工作,以确保在某个服务器出现故障时服务的连续性。Keepalived的核心思想是将多台服务器配置成主服务器(MASTER)和备份服务器(BACKUP),它们共享一

计算机基础协议/概念:推送数据— —WebSocket与SSE;前端Blob/URL下载文件

计算机基础协议/概念:推送数据——WebSocket与SSE1WebSocket:双向通信1.1概念:通信过程①Upgrade:浏览器告知服务器升级为WebSocket协议②Switch:服务器升级成功后会返回101状态码③Communicate:浏览器和服务器就可以以WebSocket格式发送数据1.2实战:实现简易

GitHub上标星23K+的Redis进阶笔记(应用+原理+集群+拓展+源码)

先来看几道Redis面试题:redis为什么是key,value的,为什么不是支持SQL的?redis是多线程还是单线程?(回答单线程的请回吧,为什么请回,请往下看)redis的持久化开启了RDB和AOF下重启服务是如何加载的?(10个人9个回答错误)redis如果做集群该如何规划?AKF/CAP如何实现和设计?10万

热文推荐