ETH-TRUNK链路原理和实验

2024-04-27 15:48
文章标签 原理 实验 链路 trunk eth

本文主要是介绍ETH-TRUNK链路原理和实验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用聚合链路目的:

在这里插入图片描述
在华为设备中被称为Eth-Trunk,是将一组相同类型的物理以太网接口捆绑在一起的逻辑接口,是一种用来增加带宽的方式(比如一些设备有多个接口,但是每个接口的最大带宽不满足要求,就可以使用链路聚合的方式),并且比普通的单纯增加链路提高了可靠性(例如备份),并且能够实现有序的负载分担。

同样的Eth-Trunk跟普通的物理以太网口相同,可以配置access,hybrid,trunk或者tunnel接口。

聚合链路负载原理:

在这里插入图片描述
1.Eth-Trunk模块从MAC子层接收到一个数据帧后,根据负载分担方式提取数据帧的源MAC地址/IP地址或目的MAC地址/IP地址(按照自己配置的负载分担的方式提取相同的字段)。
2.根据HASH算法进行计算,得到HASH-KEY值。
3.Eth-Trunk模块根据HASH-KEY值在转发表中查找对应的接口,把数据帧从该接口发送出去。

聚合链路的两种配置方式:

手工负载分担模式(manual,为默认值): 在该模式下,Eth-Trunk接口的建立、成员接口的加入,以及那些接口作为活动接口完全由手工决定的。在该模式下所有活动链路都参与数据的转发,平均分担流量。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。常用在对端链路不支持LACP的模式下。

配置:
mode manual load-balance //手工模式
trunkport Ethernet 0/0/1 to 0/0/3 //将接口加入其中,加入接口时,接口必须为hybrid口,加入之前接口不要做任何的配置
load-balance x //配置相应的负载分担模式
在这里插入图片描述
由于负载分担配置仅对出方向的流量有效,因此链路两端接的负载分担方式可以不一致,互不影响。
查看命令:dis eth-trunk 1
在这里插入图片描述
可以查看到自己这端加入聚合链路的链路和状态,并可以查看最小的激活链路数等(默认为1)。

但是可以发现局限性,仅能看到本端链路聚合专业,但如果对方其实没有进行链路聚合不能够被发现。

LACP模式(根据不同的系统版本lacp或者lacp-static): 是一种利用LACP协议进行聚合参数协商、确定活动接口和非活动接口的高级链路集合方式。在这个模式下,接口的建立和成员的接入虽然是手工完成的,但是具体哪些接口作为活动接口,哪些接口作为备份(注意,手工负载分担模式中无法做备份,全部正常的接口必须进行工作)是依靠LACP报文协商出来的。并且为了使得两端设备所选择的活动接口必须保持一致(不一致无法建立),我们引入了系统优先级这一概念,可以使得其中一端有更高的优先级(默认为32768,数值越小优先级越高,优先级相同的会比较系统的MAC地址,越小的越优先),也就是作为主设备,另外一端根据高优先级一端来选择活动接口即可(作为从设备)。除此之外,我们还有另外一个优先级——接口优先级(默认为32768,数值也是越小越好,相同时比较接口编号,编号越小越优先),在系统优先级高的一端进入参加聚合的接口下进行接口优先级的配置,接口优先级越高的会被优先选举为活动接口。

相应配置:
模式:
mode lacp-static或者mode lacp
聚合接口加入物理接口:(两种方式,一种是在被加入接口上,另外一种是在聚合接口上)
被加入接口上:(首先进入被加入的接口)
eth-trunk 1 //直接输入对应拒绝接口的编号
聚合接口上:(进入聚合接口上)
trunkport GigabitEthernet 0/0/1 //输入要加入聚合接口的物理接口即可
系统优先级:
lacp priority xxx //全局配置模式下,范围为0-65535,越小越优先
接口优先级:
lacp priority xxx //命令相同,但是需要进入相应接口下,范围为0-65535,越小越优先
查看聚合链路的命令:
dis eth-trunk 1 //查看聚合链路的信息,不仅有自己的信息,也有对方的信息
在这里插入图片描述
其中:
System ID:自己系统的MAC地址
SystemID:对端系统的MAC地址
System Priority:自己的系统的优先级
SysPri:对方的系统优先级
PortPri:接口优先级
Status:Selected表示是活动的,Unselected表示备份
Max Active-linnumber:最大活动链路数
Least Active-linnumber:最小活动链路数
Number Of Up Port In Trunk:加入聚合接口的物理接口数

dis lacp statistics eth-trunk 1 //查看lacp在聚合链路中发送PDU的信息
在这里插入图片描述

LACP中的其他参数:
1.配置活动接口输上限阈值:默认为8,也就是按照优先级由高到低选择其对应数量的活动接口,如果接口数目超过阈值,高优先级接口成为备份接口。
配置:
max active-linknumber x //进入聚合接口下配置(范围1-8)
2.配置活动接口的下线阈值: 默认为1,也就是LACP中最少有多少个活动接口,如果无法满足最小的活动端口要求,聚合链路不会开启,其他接口恢复成独立的状态。
配置:
least active-linknumber x //进入聚合接口下配置(范围1-8)
3.LACP的抢占:默认是关闭,也就是有一个接口优先级高的链路加入聚合后,开启后会抢占原来接口优先级低的接口成为活动的接口。
配置:
lacp preempt enable //进入聚合接口开启抢占功能
4.LACP的抢占时间:默认为30s,在抢占开启后会生效,意味着在30s后会将活动端口抢占过来,可以修改。
配置:
lacp preempt delay x //进入聚合接口配置抢占时间(范围10-180s)
5.接收LACP报文超时时间: 默认为90s,也就是在90s内没有收到对端的LACP报文,就会认为对端不可达,然后将本端相应的聚合接口关闭掉,不再进行流量的转发。
配置:
lacp timeout fast\slow //进入聚合接口配置LACP报文超时时间,表示多久没有接收到对方的报文就认为对方出现故障,然后自己也退出lacp聚合链路中
6.负载分担模式:这里和手工负载分担模式中类似。

参考资料:《华为交换机学习指南》

这篇关于ETH-TRUNK链路原理和实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/940906

相关文章

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

springboot filter实现请求响应全链路拦截

《springbootfilter实现请求响应全链路拦截》这篇文章主要为大家详细介绍了SpringBoot如何结合Filter同时拦截请求和响应,从而实现​​日志采集自动化,感兴趣的小伙伴可以跟随小... 目录一、为什么你需要这个过滤器?​​​二、核心实现:一个Filter搞定双向数据流​​​​三、完整代码

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2