当前位置: 首页 > news >正文

链路聚合技术

一、链路聚合

1、链路聚合的概念

链路聚合可以将多个物理接口逻辑上捆绑成一个逻辑接口,即将多条物理链路,逻辑上看作是一条物理链路,实现在不提升硬件的情况下,达到叠加链路带宽链路备份负载分担的目的。

2、链路聚合的条件

实现链路聚合需满足以下条件:

  1. 链路聚合的所有成员接口需要具有相同的传输速率、双工模式、接口类型、PVID、允许列表。
  2. 聚合接口的成员接口的两端必须分别在同一台设备上,不能做跨设备的链路聚合。

注意:在华为设备中,物理接口在进行聚合的时候,不能做任何配置,只能在聚合之后再做配置,并且仅能在聚合口中配置。

3、成员接口和成员链路

组成Eth-Trunk接口的各个物理接口称为成员接口;成员接口对应的链路就是成员链路。在LACP模式中,会再划分活动接口和活动链路、非活动接口和非活动链路。

  • 活动接口和活动链路:选中(Selected)接口,是参与数据转发的成员接口。活动接口对应的链路称为活动链路。在链路聚合组中,只有活动链路负责转发数据。
  • 非活动接口和非活动链路:非选中(Unselected)接口,是不参与转发数据的成员接口。非活动接口对应的链路被称为非活动链路(Inactive link)。这些链路在正常情况下不参与数据转发,但在活动链路出现故障时,非活动链路可能会被激活以接替故障链路的工作。

二、链路聚合模式

根据是否开启LACP,链路聚合分为两个模式:手工模式、LACP模式。下面介绍两种模式的配置。

1、手工模式

LSW1配置:

# 创建聚合接口
[sw1]interface Eth-Trunk 0

# 将物理接口划入到聚合接口中
[sw1-Eth-Trunk0]trunkport GigabitEthernet 0/0/1
[sw1-Eth-Trunk0]trunkport GigabitEthernet 0/0/2

LSW2配置:

[sw1]interface Eth-Trunk 0
[sw1-Eth-Trunk0]trunkport GigabitEthernet 0/0/1
[sw1-Eth-Trunk0]trunkport GigabitEthernet 0/0/2

查看聚合接口:

[sw1]dis eth-trunk 0
Eth-Trunk0's state information is:
WorkingMode: NORMAL         Hash arithmetic: According to SIP-XOR-DIP         
Least Active-linknumber: 1  Max Bandwidth-affected-linknumber: 8              
Operate status: up          Number Of Up Port In Trunk: 2                     
--------------------------------------------------------------------------------
PortName                      Status      Weight 
GigabitEthernet0/0/1          Up          1      
GigabitEthernet0/0/2          Up          1 

2、LACP模式

LACP(Link Aggregation Control Protocol,链路聚合控制协议) 是一种动态链路聚合技术,属于 IEEE 802.3ad(后并入 802.1AX)标准的一部分。它允许网络设备自动协商并管理聚合链路,提供更高的带宽、负载均衡和冗余能力。

LACP模式下,两端设备所选择的活动接口数目必须保持一致,否则链路聚合组无法建立。同时,通过系统LACP优先级(默认为32768)确认主动端,值越小优先级越高。当优先级相同时,会比较MAC地址。

LSW1配置:

[sw1]int Eth-Trunk 0

# 配置LACP模式	
[sw1-Eth-Trunk0]mode lacp
# 设置最大活动接口数
[sw1-Eth-Trunk0]max active-linknumber 2
# 划分接口
[sw1-Eth-Trunk0]trunkport GigabitEthernet 0/0/1 to 0/0/3

# 设置优先级,成为主动端
[sw1]lacp priority 30000

LSW2配置:

[sw2]int Eth-Trunk 0
[sw2-Eth-Trunk0]mode lacp
[sw2-Eth-Trunk0]max active-linknumber 2
[sw2-Eth-Trunk0]trunkport GigabitEthernet 0/0/1 to 0/0/3

三、负载分担

1、基于数据包的负载分担

在转发流量时,按照报文(包)到来的次序,将报文均匀地分摊到参与负载的各条链路上。在使用Eth-Trunk转发数据时,由于聚合组两端设备之间有很多条物理链路,如果每个数据帧在不同的链路上转发,则有可能导致数据帧到达对端时间不一致,从而引发数据乱序。

2、基于数据流的负载分担

按照一定的规则(如五元组:源IP地址、目的IP地址、协议号、源端口号、目的端口号),将报文分成不同的流,同一条流的报文将在同一条链路上转发。这种方式通过哈希算法等机制,确保属于同一流的所有报文都经过同一条链路,从而保持报文的顺序性。华为默认采用该模式进行负载分担。

以下命令配置流量负载均衡的哈希算法:

[sw1-Eth-Trunk0]load-balance ?
  dst-ip       According to destination IP hash arithmetic
  dst-mac      According to destination MAC hash arithmetic
  src-dst-ip   According to source/destination IP hash arithmetic
  src-dst-mac  According to source/destination MAC hash arithmetic
  src-ip       According to source IP hash arithmetic
  src-mac      According to source MAC hash arithmetic

# 华为默认使用源目IP区分数据流
http://www.dtcms.com/a/98796.html

相关文章:

  • 基于Spring Boot的戒烟网站的设计与实现(LW+源码+讲解)
  • 每日OJ题_剑指offer数组篇(剑指offer04+剑指offer11+剑指offer21)
  • 深度学习 Deep Learning 第12章 深度学习的主流应用
  • python之kafka组件
  • 车辆vin码/车架号查询接口如何用Java实现
  • 数字内容体验提升用户参与策略
  • Java 求两个 List 集合的交集和差集
  • 交换综合实验
  • pycharm与python版本
  • 常见FPGA逻辑单元比较(仅参考)
  • 全国产1U机架式交换机解决方案
  • Linux: 进程间通信
  • Python 序列构成的数组(对序列使用+和_)
  • sqlmap基础命令总结
  • [C++] 智能指针 进阶
  • Mysql练习题
  • RPCGC阅读
  • 算法刷题记录——LeetCode篇(11.1) [第1001~1010题]
  • Linux进程管理之进程的概念、进程列表和详细的查看、进程各状态的含义
  • C 语言的未来:在变革中坚守核心价值
  • vue搭建一个树形菜单项目
  • 坚持“大客户战略”,昂瑞微深耕全球射频市场
  • 计算机网络 第二章:应用层(2)
  • 项目实战-角色列表
  • SQLAlchemy系列教程:事件驱动的数据库交互
  • vue3实现router路由
  • 用Python实现简易的命令行工具
  • 【Java集合夜话】第9篇下:深入剖析TreeMap源码:红黑树实现原理与面试总结(建议收藏)
  • day1_Flink基础
  • 【Git教程】将dev分支合并到master后,那么dev分支该如何处理