计算机网络-以太网链路聚合简介

news2024/11/18 15:38:44

一、网络可靠性是什么?

网络的可靠性指当设备或者链路出现单点或者多点故障时保证网络服务不间断的能力。

实际工作中网络需要保证可靠性,实现冗余设计。会从三个层次实现:

  • 链路冗余
  • 单板冗余
  • 整机设备冗余

网络的可靠性指当设备或者链路出现单点或者多点故障时保证网络服务不间断的能力。 网络可靠性

这次我们主要学习链路可靠性,通过一些技术实现多条网线共同工作,当其中一条断开不影响网络业务。 链路可靠性 为保证设备间链路可靠性,在设备间部署多条物理线路,为防止环路STP只保留一条链路转发流量,其余链路成为备份链路。

二、以太网链路聚合原理

2.1、概述

设备之间存在多条链路时,由于STP的存在,实际只会有一条链路转发流量,设备间链路带宽无法得到提升。STP知识参考之前的文章。 STP阻塞多余链路

以太网链路聚合Eth-Trunk:简称链路聚合,通过将多个物理接口捆绑成为一个逻辑接口,可以在不进行硬件升级的条件下,达到增加链路带宽的目的。简单讲就是提高链路利用率,让多条链路逻辑上成为一个端口,这样STP就将这个逻辑接口当成一个端口而不会进行阻塞。 链路聚合

2.2、工作原理

基本概念
基本概念

聚合组(Link Aggregation Group,LAG)::若干条链路捆绑在一起所形成的的逻辑链路。每个聚合组唯一对应着一个逻辑接口,这个逻辑接口又被称为链路聚合接口或Eth-Trunk接口。

成员接口和成员链路:组成Eth-Trunk接口的各个物理接口称为成员接口。成员接口对应的链路称为成员链路。

活动接口和活动链路:活动接口又叫选中(Selected)接口,是参与数据转发的成员接口。活动接口对应的链路被称为活动链路(Active link)

非活动接口和非活动链路:又叫非选中(Unselected)接口,是不参与转发数据的成员接口。非活动接口对应的链路被称为非活动链路(Inactive link)。

聚合模式 :根据是否开启LACP(Link Aggregation Control Protocol,链路聚合控制协议),链路聚合可以分为手工模式和LACP模式。

注意事项: 1、链路聚合接口可以作为普通的以太网接口来使用,与普通以太网接口的差别在于:转发的时候链路聚合组需要从成员接口中选择一个或多个接口来进行数据转发。也就是可以配置Trunk口与Access口等。

2、一个聚合组内要求成员接口以下参数相同:

  • 接口速率
  • 双工模式
  • VLAN配置

大白话讲就是,创建一个聚合逻辑组,然后将多个物理接口加入到聚合组,然后可以设置其中的活动接口和备份接口,比如4个接口只保留3个活动接口,接口对应就是那条链路,然后聚合组和普通的二层接口一致可以配置Trunk和Access等,两端设备建议保持一致。

三、链路聚合的两种工作模式

链路聚合有两种模式:手工模式,LACP模式。

3.1 手工模式

手工模式
手工模式

手工模式: Eth-Trunk的建立、成员接口的加入均由手动配置,双方系统之间不使用LACP进行协商。

正常情况下所有链路都是活动链路,该模式下所有活动链路都参与数据的转发,平均分担流量,如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。

当聚合的两端设备中存在一个不支持LACP协议时,可以使用手工模式。

手工模式下的缺陷不足: 不足1

为了使链路聚合接口正常工作,必须保证本端链路聚合接口中所有成员接口的对端接口:

  • 属于同一设备
  • 加入同一链路聚合接口

手工模式下,设备间没有报文交互,因此只能通过管理员人工确认。

不足2 手动模式下,设备只能通过物理层状态判断对端接口是否正常工作。

配置示例:

# 创建链路聚合组
[Huawei] interface eth-trunk trunk-id

# 配置链路聚合模式,Mode lacp配置链路聚合模式为lacp模式,mode manual load-balance配置链路聚合模式为手工模式。
[Huawei-Eth-Trunk1] mode {lacp | manual load-balance }

# 将接口加入链路聚合组中(Eth-Trunk视图),可以在聚合组添加也可以手动进入物理以太网接口添加
[Huawei-Eth-Trunk1] trunkport interface-type { interface-number}

# 将接口加入链路聚合组中(以太网接口视图)
[Huawei-GigabitEthernet0/0/1] eth-trunk trunk-id

# 查看聚合口状态
[LSW2]display eth-trunk 1

# 查看接口信息
[LSW1]display interface Eth-Trunk 1

手工配置链路聚合只能人工判断接口状态,不能检测链路状态,默认所有链路都是活动链路。

3.2 LACP模式

LACP模式:采用LACP协议的一种链路聚合模式。设备间通过链路聚合控制协议数据单元(Link Aggregation Control Protocol Data Unit,LACPDU)进行交互,通过协议协商确保对端是同一台设备、同一个聚合接口的成员接口。

LACPDU报文中包含设备优先级、MAC地址、接口优先级、接口号等。

系统优先级:确定哪一边设备为主,另外一端根据主动端进行协商 系统优先级 LACP模式下,两端设备所选择的活动接口数目必须保持一致,否则链路聚合组就无法建立。此时可以使其中一端成为主动端,另一端(被动端)根据主动端选择活动接口。通过系统LACP优先级确定主动端,值越小优先级越高,如果优先级一样则MAC地址小的为主动端。

接口优先级:优先级越小越优先,一致就比较接口ID,如G1/0/1,G1/0/2,越小越优先 接口优先级

选出主动端后,两端都会以主动端的接口优先级来选择活动接口,优先级高的接口将优先被选为活动接口。接口LACP优先级值越小,优先级越高。

最大活动接口数:LACP模式可以选择性启用活动接口数量,也就是控制带宽速率 最大活动接口数1

最大活动接口数2
最大活动接口数2

LACP模式支持配置最大活动接口数目,当成员接口数目超过最大活动接口数目时会通过比较接口优先级、接口号选举出较优的接口成为活动接口,其余的则成为备份端口(非活动接口)。

当活动链路中出现链路故障时,可以从非活动链路中找出一条优先级最高(接口优先级、接口编号比较)的链路替换故障链路,实现总体带宽不发生变化、业务的不间断转发。

配置示例:

# 创建聚合口
interface Eth-Trunk1   
mode lacp-static       # 修改为lacp模式
trunkport Ethernet 0/0/1 to 0/0/3 # 添加接口

# 查看命令dis eth-trunk 1
# dis int eth-trunk 1

# 设置最大活动接口,其余为备份接口
max active-linknumber 2

# 使能允许不同速率端口加入同一Eth-Trunk接口的功能
[Huawei-Eth-Trunk1] mixed-rate link enable

# 配置系统LACP优先级
[Huawei] lacp priority priority

# 配置接口LACP优先级
[Huawei-GigabitEthernet0/0/1] lacp priority priority

# 配置最小活动接口数
[Huawei-Eth-Trunk1] least active-linknumber {number}

LACP选举过程:

选举主动端
选举主动端
配置最大活动接口
配置最大活动接口
被动端协商端口
被动端协商端口
选举完成
选举完成

3.3 负载分担

负载分担
负载分担

在使用Eth-Trunk转发数据时,由于聚合组两端设备之间有多条物理链路,如果每个数据帧在不同的链路上转发,则有可能导致数据帧到达对端时间不一致,从而引起数据乱序。

Eth-Trunk推荐采用逐流负载分担的方式,即一条相同的流负载到一条链路,这样既保证了同一数据流的数据帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担。

负载分担模式: Eth-trunk支持基于报文的IP地址或MAC地址来进行负载分担,可以配置不同的模式(本地有效,对出方向报文生效)将数据流分担到不同的成员接口上。

常见的模式有:源IP、源MAC、目的IP、目的MAC、源目IP、源目MAC。

实际业务中用户需要根据业务流量特征选择配置合适的负载分担方式。业务流量中某种参数变化越频繁,选择与此参数相关的负载分担方式就越容易实现负载均衡。

负载分担模式
负载分担模式

总结:链路聚合是通过在设备间连接多条线实现链路可靠性,但是会因为STP导致阻塞,因此需要链路聚合实现逻辑聚合成一个端口。链路聚合有两种方式,手动模式需要管理员确定端口状态变更,LACP通过报文实现协商,根据系统优先级和接口优先级确定主动端,可以配置最大接口数实现提高带宽以及链路备份功能。实际数据在还是在物理链路中传输,因此可能多条数据流走的接口不一致,可以按需选择合适的负载分担模式。好了,今天大概就是这些了。

如果对文章感兴趣可以微信搜索公众号:不喜欢热闹的孩子 不喜欢热闹的孩子

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1406965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【操作系统】实验三 编译 Linux 内核

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

《WebKit 技术内幕》学习之十二(1):安全机制

第12章 安全机制 安全机制对于浏览器和渲染引擎来说至关重要。一个不考虑安全机制的HTML5规范体系肯定不会受到广泛地使用,同时一个不安全的浏览器也不会得到广大用户的青睐。本章介绍的安全机制分成两个不同的部分,第一个部分是网页的安全,…

EVRPD-44U电机保护器参数设置您了解了么?

EVRPD-44U电机保护器是一款用于电动机保护的设备,其产品参数设置如下: 额定电流:EVRPD-44U电机保护器的额定电流为5-80A,可以根据实际负载电流进行选择。启动时间:电机保护器的启动时间可以通过设置菜单进行修改&…

动态规划解决马尔可夫决策过程

马尔可夫决策过程是强化学习中的基本问题模型之一,而解决马尔可夫决策过程的方法我们统称为强化学习算法。 动态规划( dynamic programming, DP )具体指的是在某些复杂问题中,将问题转化为若干个子问题,并在求解每个子…

实用VBA:17.大量word文件中的文本内容进行批量替换

1.需求场景 在工作中可能会遇到需要对大量word文件中的文字内容进行批量替换的情况。相比excel的批量处理,个人感觉word文档中由于包含大量样式信息,批处理时总感觉有顾虑。一者担心影响了文档的格式,误修改了文档的样式,那后果……

9.scala 伴生对象、伴生类、case class、case object

目录 概述伴生case 相关特性结束 概述 比较 case class vs class 1.toString equals hashcode 重写 2.不用 new 3.默认实现了序列化接口 case class vs case object 1.case class 修饰的类,必须要有参数列表 2.case object 修饰的对象,必须不能有参数列…

Redis(发布订阅、事务、redis整合springboot、集成 Spring Cache)

目录 一.redis的发布订阅 1、什么 是发布和订阅 2、Redis的发布和订阅 3、发布订阅的代码实现 二.Redis事务 1.事务简介 1、在事务执行之前 如果监听的key的值有变化就不能执行 2、在事务执行之前 如果监听的key的值没有变化就能执行 3、Exec之前就出现错误 4、Exec之…

多窗口大小和Ticker分组的Pandas滚动平均值

最近一个学弟在在进行数据分析时,经常需要计算不同时间窗口的滚动平均线。当数据是多维度的,比如包含多个股票或商品的每日价格时,我们可能需要为每个维度计算滚动平均线。然而,如果我们使用传统的groupby和apply方法,…

小红书商品笔记发布流程,如何避免盘营销

随着平台营销内容不断被管制,商品笔记慢慢出现在了人们的视野,这同时也意味着达人和品牌方们,可以名正言顺的在笔记内容中植入产品。商品链接的开通意味着,不管是达人还是品牌转化率都会进一步提升,今天来马文化传媒和…

遇到流氓软件无法删除?强制删除文件解救你!

在使用电脑的过程中,我们有时会遇到一些文件无法正常删除的情况,这可能是由于文件被其他程序占用或者权限问题。本文将介绍三种常见的方法,详细解释如何在电脑上强制删除文件,以便用户在面对这一问题时能够快速解决。 方法1&#…

数据挖掘笔记1

课程:清华大学-数据挖掘:理论与算法(国家级精品课)_哔哩哔哩_bilibili 一、Learning Resources 二、Data 数据是最底层的一种表现形式。数据具有连续性。从存储上来讲,数据分为逻辑上的和物理层的。大数据&#xff1…

python-分享篇-代码雨

文章目录 代码效果 代码 import sys import random import pygame from pygame.locals import *# 屏幕大小 WIDTH 800 HEIGHT 600 # 下落速度范围 SPEED [15, 30] # 字母大小范围 SIZE [5, 30] # CODE长度范围 LEN [1, 8]# 随机生成一个颜色 def randomColor():return (r…

按条件自动搜索文件

在计算机的某个文件夹中,假如有一大堆不同格式的文件,如下图: 我们的目的:快速查找出文件名中包含某文字内容的指定格式的文件,看看它们都放在哪里?通过分析,可能在当前文件夹中也可能在某个子…

【寒假打卡】Day01

文章目录 选择编程HJ99 自守数OR86 返回小于 N 的质数个数 选择 如下代码输出的是什么( ) char a101; int sum200; a27;suma; printf("%d\n",sum);A: 32 B: 99 C: 328 D: 72 答案: C 解析: 首先,char a …

Idea Community社区版如何添加Run Dashboard

最近在学习spring cloud,跟着视频添加run dashboard,发现里面介绍的方法无法适用于idea community(社区版)。 然后自己研究了一下,成功添加,下面分享自己的方法。 如图,我的项目里添加了两个module,我想通…

Python中的open与JSON的使用

目录 1 使用 open 函数进行文件操作 2 使用 json 模块进行 JSON 数据处理: 2.1 写入JSON 文件 2.2 读取JSON 文件 在 Python 中,open 函数和 json 模块常用于文件的读写和 JSON 数据的处理。 1 使用 open 函数进行文件操作 open 函数用于打开文件…

数据结构:搜索二叉树 | 红黑树 | 验证是否为红黑树

文章目录 1.红黑树的概述2.红黑树的性质3.红黑树的代码实现3.1.红黑树的节点定义3.2.红黑树的插入操作3.3.红黑树是否平衡 黑红树是一颗特殊的搜索二叉树,本文在前文的基础上,图解红黑树插入:前文 链接,完整对部分关键代码展示&a…

【STM32CubeMX串口通信详解】USART2 -- DMA发送 + DMA空闲中断 接收不定长数据

( 本篇正在编写、更新状态中.....) 文章目录: 前言 前言 本篇,详细地用截图解释 CubeMX 对 USART2 的配置,HAL函数使用,和收发程序的编写。 收、发机制:DMA发送 DAM空闲中断接收。 DMA空…

物业app开发,提升社区管理效率

随着城市化进程的加速,小区和社区管理面临着越来越多的挑战。传统的管理模式已经无法满足高效管理的需求,而物业app的应用正逐渐成为解决问题的最佳选择。通过物业app,管理人员可以更好地管理小区设施、维护房屋,居民们也能够更便…

pytestallure分析redis的数据并动态生成testCase报告

1.pytest.mark.parametrize pytest.mark.parametrize 是一个pytest的装饰器,它可以用于将参数传递给测试函数。使用 pytest.mark.parametrize 装饰器时,需要在装饰器中指定参数名称和参数值。对于多个参数,可以使用多个装饰器。 下面是一些…