jjzjj

华为eNSP模拟器配置MSTP多实例生成树

嘎嘎_嘎 2023-12-16 原文

传统的stp、rstp有其必然的缺陷

1.统一局域网内所有的vlan共享一个生成树,无法在vlan间实现数据流量的负载均衡。
2.链路利用率低,被阻塞的冗余链路不承载任何流量,造成了带宽的浪费,还可能造成部分vlan报文无法转发。
MSTP在它们的基础上加以了很多的改良

1.可以配置多实例

2.一个实例可以承担多个vlan

实验拓扑依据需求如下:

第一步:设备改名,创建vlan

SW1:
<Huawei>sy
<Huawei>sysna SW1
[SW1]vlan b 10 20

SW2:
<Huawei>sy
[Huawei]sysna SW2
[SW2]vlan b 10 20

SW3:
<Huawei>sy
[Huawei]sysna SW3
[SW3]vlan b 10 20

第二步:放行相应vlan

SW1:
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]po l t
[SW1-GigabitEthernet0/0/1]po t a v 10 20
[SW1-GigabitEthernet0/0/1]qu
[SW1]int Eth-Trunk 1
[SW1-Eth-Trunk1]trunkport g0/0/2
[SW1-Eth-Trunk1]trunkport g0/0/3
[SW1-Eth-Trunk1]po l t
[SW1-Eth-Trunk1]po t a v 10 20
[SW1-Eth-Trunk1]qu

SW2:
[SW2]int g0/0/1
[SW2-GigabitEthernet0/0/1]po l t
[SW2-GigabitEthernet0/0/1]po t a v 10 20
[SW2-GigabitEthernet0/0/1]int Eth-Trunk 1
[SW2-Eth-Trunk1]trunkport g0/0/2
[SW2-Eth-Trunk1]trunkport g0/0/3
[SW2-Eth-Trunk1]po l t
[SW2-Eth-Trunk1]po t a v 10 20
[SW2-Eth-Trunk1]qu

SW3:
[SW2]int e0/0/1
[SW2-Ethernet0/0/1]po l t
[SW2-Ethernet0/0/1]po t a v 10 20
[SW2-Ethernet0/0/1]int e0/0/2
[SW2-Ethernet0/0/2]po l t
[SW2-Ethernet0/0/2]po t a v 10 20
[SW2-Ethernet0/0/2]int e0/0/3
[SW2-Ethernet0/0/3]po l a
[SW2-Ethernet0/0/3]po d v 10
[SW2-Ethernet0/0/3]int e0/0/4
[SW2-Ethernet0/0/4]po l a
[SW2-Ethernet0/0/4]po d v 20
[SW2-Ethernet0/0/4]qu
[SW2]

第三步:配置mstp并划分实例

SW1:
[SW1]stp mo mstp                     //模式为mstp,不过ensp默认就是mstp
[SW1]stp region-configuration        //进入MSTP视图
[SW1-mst-region]region-name hw       //生成树的名称为hw
[SW1-mst-region]revision-level 1        //域名修订级别为1
[SW1-mst-region]instance 1 vlan 10           //将vlan 10 加入实例1
[SW1-mst-region]instance 2 vlan 20            //将vlan 20 加入实例2
此时用disp th 查看不到任何的效果,因为这些配置还没有生效
[SW1-mst-region]active region-configuration    //使用配置的命令生效


SW2:与SW1一样的操作
[SW2]stp mo mstp 
[SW2]stp region-configuration 
[SW2-mst-region]region-name hw
[SW2-mst-region]revision-level 1
[SW2-mst-region]instance 1 vlan 10
[SW2-mst-region]instance 2 vlan 20
[SW2-mst-region]active region-configuration

SW3:与SW1一样的操作
[SW2]sysname SW3
[SW3]stp mo mstp 
[SW3]stp region-configuration 
[SW3-mst-region]region-name hw
[SW3-mst-region]revision-level 1
[SW3-mst-region]instance 1 vlan 10
[SW3-mst-region]instance 2 vlan 20
[SW3-mst-region]active region-configuration

用disp stp brief 查看SW3端口转发信息

 可以看到不管是实例1还是实例2,e0/0/1端口都是堵塞的状态,这并没有达到负载分担的效果

第四步:调整优先级

SW1:
[SW1]stp instance 1 root primary 
[SW1]stp instance 2 root secondary 

SW2:
[SW2]stp instance 1 root secondary 
[SW2]stp instance 2 root primary

再次查看SW3端口转发信息

 可以看到实例1走e0/0/1端口,实例2走e0/0/2端口

有关华为eNSP模拟器配置MSTP多实例生成树的更多相关文章

  1. ruby-on-rails - 如何使用 instance_variable_set 正确设置实例变量? - 2

    我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击

  2. ruby 正则表达式 - 如何替换字符串中匹配项的第 n 个实例 - 2

    在我的应用程序中,我需要能够找到所有数字子字符串,然后扫描每个子字符串,找到第一个匹配范围(例如5到15之间)的子字符串,并将该实例替换为另一个字符串“X”。我的测试字符串s="1foo100bar10gee1"我的初始模式是1个或多个数字的任何字符串,例如,re=Regexp.new(/\d+/)matches=s.scan(re)给出["1","100","10","1"]如果我想用“X”替换第N个匹配项,并且只替换第N个匹配项,我该怎么做?例如,如果我想替换第三个匹配项“10”(匹配项[2]),我不能只说s[matches[2]]="X"因为它做了两次替换“1fooX0barXg

  3. ruby - 如何模拟 Net::HTTP::Post? - 2

    是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou

  4. 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

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

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

  6. ruby-on-rails - Rails - 从另一个模型中创建一个模型的实例 - 2

    我有一个正在构建的应用程序,我需要一个模型来创建另一个模型的实例。我希望每辆车都有4个轮胎。汽车模型classCar轮胎模型classTire但是,在make_tires内部有一个错误,如果我为Tire尝试它,则没有用于创建或新建的activerecord方法。当我检查轮胎时,它没有这些方法。我该如何补救?错误是这样的:未定义的方法'create'forActiveRecord::AttributeMethods::Serialization::Tire::Module我测试了两个环境:测试和开发,它们都因相同的错误而失败。 最佳答案

  7. ruby-on-rails - RSpec:避免使用允许接收的任何实例 - 2

    我正在处理旧代码的一部分。beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)endRubocop错误如下:Avoidstubbingusing'allow_any_instance_of'我读到了RuboCop::RSpec:AnyInstance我试着像下面那样改变它。由此beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)end对此:let(:sport_

  8. ruby-on-rails - 使用 ruby​​ 将多个实例变量转换为散列的更好方法? - 2

    我收到格式为的回复#我需要将其转换为哈希值(针对活跃商家)。目前我正在遍历变量并执行此操作:response.instance_variables.eachdo|r|my_hash.merge!(r.to_s.delete("@").intern=>response.instance_eval(r.to_s.delete("@")))end这有效,它将生成{:first="charlie",:last=>"kelly"},但它似乎有点hacky和不稳定。有更好的方法吗?编辑:我刚刚意识到我可以使用instance_variable_get作为该等式的第二部分,但这仍然是主要问题。

  9. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  10. 华为常用命令 - 2

    system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100

随机推荐