草庐IT

MSTP基本配置及优化

浩子一定能劈叉 2023-07-17 原文

MSTP是多实例生成树,所谓多实例指的是不止一棵树,在mstp系统中可以有多个根桥,而他们分别属于不同的实例(instance),只要他们的实例之间是相互独立的,那么他们便不会产生冲突,他们同时存在的主要意义是使链路可以实现负载均衡,即解决闲置链路的问题

MSTP在RSTP的基础上引入了实例的概念,这是一种类似docker的系统,在每一个单独的实例中权限并不会冲突,很好地解决了生成树协议的闲置链路问题,让链路可以更加高效的被使用。

本实验的思路是使用MSTP协议让两个属于不同网段(vlan)的部门的主机可以在所有链路都有数据的情况下实现通信

实验步骤:

1.配置vlan

2.配置MSTP

3.配置路由

实验拓扑

 1.配置vlan

vlan配置命令

vlan batch 10 20 /*每台交换机下均配置*/
int g 0/0/1 /*在trunk接口下配置*/
port link-type trunk
port trunk allow-pass vlan 10 20
int g0/0/2 /*在access接口下配置*/
port link-type access
port default vlan 10[20] /*依据直连主机的情况选择vlan号*/

各交换机vlan明细如下

由于两台机器属于不同网段,所以我们需要在两台三层交换机的vlanif10和vlanif20下分别配置ip地址(主机的网关)

/*LSW5下配置*/
interface Vlanif 10
ip address 192.168.10.1 30
/*LSW6下配置*/
interface Vlanif 20
ip address 192.168.20.1 30

2.配置mstp

/*每台交换机均要配置*/
stp mode mstp
stp region-configuration
region-name xxx
instance 2 vlan 10
instance 3 vlan 20
active region-configuration


/*在三层交换机上为不同的实例赋权*/

/*LSW5*/
stp instance 2 root primary
stp instance 3 root secondary
stp instance 0 root primary/*实例是系统默认的实例,未分配实例的vlan都会进入实例0,后期为了通信我们建立的三层接口将会进入这个实例,为了防止二层交换机优先级较优而导致上层端口被阻塞,我们在此也要对instance0进行赋权*/

/*LSW6*/
stp instance 3 root primary
stp instance 2 root secondary
stp instance 0 root secondary

查看stp端口阻塞情况

 可以看到实例2(vlan10)中LSW7的2口被阻塞,实例3(vlan20)中LSW7的1口被阻塞,如我们所愿

端口阻塞的情况是这样的

首先PC1发送ICMP ping报文,当数据流到达LSW7时,LSW7将其打上10标签,到达LSW5时,查询10在allow-pass list中,又由于PC1的目的ip是另一个网段,而LSW5的vlanif901端口(马上会配置,姑且这样看)可以通,所以tag由10变成901,发送至LSW6,LSW6查看后发现目的是vlan20,于是打上标签由901变为20,发送出去

 3.配置路由

由于两台三层交换机之间没有路由,所以要配置静态路由,但下一跳此时是不明确的,所以我们要在两台三层交换机上配置三层端口vlanif901以构造下一跳

/*LSW5*/
vlan 901
int g0/0/2
port trunk allow-pass vlan 901
int vlanif 901
ip address 192.168.1.1 24
ip route-static 192.168.20.0 24 192.168.1.2
/*LSW6*/
vlan 901
int g0/0/2
port trunk allow-pass vlan 901
int vlanif 901
ip address 192.168.1.2 24
ip route-static 192.168.10.0 24 192.168.1.1

验证连通性

 抓包

LSW7的3口:没有标签

 LSW7的1口:标签为10

 LSW5的2口:标签为901

 LSW6的1口:标签为20

 LSW7的4口:标签被untagged

 灾难测试

我们此时断掉一条链路,查看mstp的收敛情况

 (实际情况是在经历数十次timeout链路恢复)

优化

优化方法可以是在每个可能端口都刷上vlan901放行,也可以是VRRP优化,在此不再一一演示。

有关MSTP基本配置及优化的更多相关文章

  1. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  4. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  5. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  6. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  7. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  8. ruby-on-rails - 使用 HTTParty 的非常基本的 Rails 4.1 API 调用 - 2

    Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"

  9. Ruby 默认将 IRB 配置为 Pretty_Inspect - 2

    我是ruby​​的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽

  10. ruby - 是否可以将 IRB 提示配置为动态更改? - 2

    我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO

随机推荐