jjzjj

华为[ENSP]链路聚合实例(手工聚合链路配置实例+二层、三层链路聚合配置实例)

傲娇回忆杀 2023-05-18 原文

实验一、手工聚合链路的实验拓扑图如下图所示:

1.创建VLAN

分别在六个交换机上创建VLAN10和VLAN20

 

 

 

 

 

2. 配置交换机S1与S2之间的Eth-Trunk

配置交换机S1和S2之间的Eth-Trunk的方法有两种,分别介绍如下。

(1)在交换机S1上配置:先创建Eth-Trunk组,然后将每个端口加入该组:

(2)在交换机S2上配置:创建Eth-Trunk组,然后直接将3个端口加入该组:

 

以上两种方法都能完成创建Eth-Trunk组并加入成员,相比较而言,第二种方法比较简单且配置工作量少点,而且实现的效果都是一样的。

检查创建的Eth-Trunk。通过dis eth-trunk 1命令查看,结果表明Eth-Trunk1工作正常。

注释:在默认情况下,Eth-Trunk的工作模式为手工负载分担模式。

3.配置交换机S1和S2之间的Eth-Trunk为Trunk

配置S1和S2大的Eth-Trunk为Trunk并允许VLAN 10和VLAN 20的流量通过,实现两台交换机之间的VLAN通信。

配置交换机S1:

 4.配置Eth-Trunk的负载分担模式

默认情况下,该模式的负载分担模式为基于源、目的IP地址,此处修改交换机S1和S2的配置,使负载分担模式为基于源、目的MAC地址。

(1)配置交换机S1

(2)配置交换机S2

(3)通过dis eth-trunk1命令查看负载分担结果

 

(4)具体负载分担模式介绍如下

det-ip(基于目的IP地址)模式:从目的IP地址、出端口的TCP/UDP端口号中分别选择指定位的3bit数值进行异或运算,根据运算结果选择Eth-Trunk表中对应的出端口。

dst-mac(基于目的MAC地址)模式:从目的MAC地址、VLAN ID、以太网类型以及入端口信息中分别选择指定位的3bit数值进行异或运算,根据运算结果选择Eth-Trunk表中对应的出端口。

src-ip(基于源IP地址)模式:从源IP地址、入端口的TCP/UDP端口号中分别选择指定位的3bit数值进行异或运算,根据运算结果选择Eth-Trunk表中对应的出端口。

src-mac(基于源MAC地址)模式:从源MAC地址、VLAN ID、以太网类型以及入端口信息中分别选定指定位的3bit数值进行异或运算,根据运算结果选择Eth-Trunk表中对应的出端口。

src-dst-ip(基于源IP地址与目的IP地址的异或运算)模式:将目的IP地址、源IP地址两种负载分担模式的运算结果进行异或运算,根据运算结果选择Eth-Trunk表中对应的出端口。

src-dst-mac(基于源MAC地址与目的MAC地址的异或运算)模式:从目的MAC地址、源MAC地址、VLAN ID、以太网类型以及端口信息中分别选择指定位的3bit数值进行异或运算,根据运算结果选择Eth-Trunk表中对应的出端口。

(5)配置端口的阈值

配置端口的阈值,设置活动端口数下限阈值是为了保证最小带宽,当活动链路数目小于下限阈值时,Eth-Trunk端口的状态转变为关闭状态。

交换机S1和S2的配置如下:

1.配置交换机S1

2.配置交换机S2

如果两台交换机设置的阈值不一样,会以哪台交换机的阈值为准呢?

下限阈值不同,以下限阈值数值较大的一端为准。

上限阈值最大为8,可以进行更改,更改的命令为max bandwidth-affected-林肯number4。


实验二、二层链路聚合配置实例的拓扑图如下图所示:

(1)创建链路聚合组10

在S1和S2上创建链路聚合:

(2)配置链路聚合模式为静态LACP模式

在S1和S2上完成配置:

(3)将端口加入聚合组10

 

 一个基本的二层LACP模式的聚合链路配置完成之后,可通过dis eth-trunk 10命令查看结果:

由上可知,WorkingMode为STATIC,表示为静态的LACP模式,其他的都是默认值。

(4)手动定义活动端口阈值

1.在S1上配置:

2.通过dis eth-trunk 10命令来查看配置结果:

通过观察结果可知,修改了最大活动链路的条目为2,现在有三条链路,所以有一条链路为非活动链路,根据端口号,默认选择G0/0/3为非活动端口。

(5)修改系统LACP优先级,选择主动端

1.在S1上配置

2.配置完成后,Eth-trunk10端口在发生震荡之后重新建立,通过dis eth-trunk10 命令查看结果:

由上可知,交换机S1的系统优先级变成了100,成为了主动端。

(6)修改了端口LACP优先级,选择活动端口与非活动端口

通过修改端口LACP优先级,选择哪些是活动端口,哪些是非活动端口。

1.在S1上配置:

2.通过dis eth-trunk 10命令查看结果:

由上可知,端口优先级已经成为100了,可还是没有成为活动i端口,这是为什么呢?因为在默认情况下,抢占是被Disabled(禁止的),接下来我们开启抢占功能。

(7)开启抢占功能

通过dis eth-trunk 10命令查看结果:

由上可知,抢占功能已经开启,G0/0/3接口已成为活动端口(eNSP存在一些bug,请关闭G0/0/1后再开启该端口验证)。

(8)配置负载分担方式

1.在S1和S2上配置:

2.通过dis eth-trunk 10命令查看结果:

由上可知,负载分担方式已经变成了SA-XOR-DA,原来为SIP-XOR-DIP方式。至此,配置完毕。


实验三、三层链路聚合配置实例的拓扑图如下图所示:

 

(1)定义链路聚合组,开启三层链路聚合

此时只是创建了组,并没有加入组成员端口,此时端口状态为关闭状态。

(2)配置模式为静态LACP

 

(3)将端口加入链路聚合组

 

通过dis eth-trunk命令查看结果:

由上面可知,Eth-Trunk链路状态处于工作状态,并且物理接口G0/0/0、G0/0/1和G0/0/2成功加入链路聚合组Eth-Trunk1。

(4)完成数据通信测试

 

 此时,可以看到三层的Eth-Trunk可以进行通信了,并且其端口可以当作一个物理端口使用,可以运行路由协议。至此,实验完毕。

有关华为[ENSP]链路聚合实例(手工聚合链路配置实例+二层、三层链路聚合配置实例)的更多相关文章

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

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

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

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

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

  6. 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_

  7. 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作为该等式的第二部分,但这仍然是主要问题。

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

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

  9. 华为常用命令 - 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

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

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

随机推荐