在Ubuntu上配置链路聚合

前文:

今天想着给服务器弄个链路聚合,把服务器的几个网口利用上,然后顺便写一篇博文记录一下。

Linux上的6种链路聚合模式

1. mode=0 (balance-rr)

描述:该模式使用循环算法(Round-robin)发送数据包,顺序地将每个数据包发送到每个接口。

优点:

提供了负载均衡和故障冗余。
所有接口带宽可以被同时使用。

缺点:

需要交换机支持且配置成适当的模式。
数据包顺序可能会被打乱,这对某些应用可能有问题。

2. mode=1 (active-backup)

描述:只有一个活动接口,其他接口处于备用状态。当活动接口发生故障时,备用接口会被激活。

优点:

简单可靠,适用于任何网络设备,不需要特殊交换机支持。
提供故障冗余。

缺点:

不能增加带宽,只有一个接口是活动的。

3. mode=2 (balance-xor)

描述:根据源MAC地址和目标MAC地址的异或结果选择接口发送数据包,从而实现负载均衡。

优点:

提供负载均衡和故障冗余。
能够增加带宽使用效率。

缺点:

需要交换机支持且配置成适当的模式。

4. mode=3 (broadcast)

描述:将所有数据包广播到所有接口。

优点:

提供冗余。

缺点:

网络流量增加,效率低。
不适合需要高效带宽使用的场景。

5. mode=4 (802.3ad)

描述:使用IEEE 802.3ad 动态链路聚合协议(LACP)。动态协商和管理聚合链路。

优点:

动态协商,自动配置链路聚合。
提供负载均衡和故障冗余。
增加带宽使用效率。

缺点:

需要交换机支持IEEE 802.3ad并配置成LACP模式。

6. mode=5 (balance-tlb)

描述:基于传输负载(传输负载均衡,TLB)自动地在接口之间分配出站流量。接收流量由当前接口处理。

优点:

不需要特殊交换机支持。
提供负载均衡和故障冗余。

缺点:

接收流量不能负载均衡。

7. mode=6 (balance-alb)

描述:基于适应性负载均衡(自适应负载均衡,ALB),包括传输负载均衡(TLB)和接收负载均衡(RLB)。

优点:

提供负载均衡和故障冗余。
不需要特殊交换机支持。
增加传输和接收的带宽利用率。

缺点:

实现相对复杂。

对比图

mode mode名称 描述 负载均衡 冗余 交换机支持 场景
0 balance-rr 轮询方式 (Round-Robin),依次发送数据包 多数场景下的负载均衡
1 active-backup 主备模式 (Active-Backup),一个接口工作,另一个备用 需要高可用的场景
2 balance-xor 根据 MAC 地址对流量进行散列 多数场景下的负载均衡
3 broadcast 广播模式,所有数据包在所有链路上发送 需要极高冗余度的场景
4 802.3ad (LACP) IEEE 802.3ad 动态链路聚合 (Link Aggregation Control Protocol),自动协商多条链路为一条逻辑链路 企业级环境、需要动态链路聚合的场景
5 balance-tlb 自适应传输负载均衡 (Adaptive Transmit Load Balancing),基于流量自动平衡传输负载 客户端较多且接收流量较少的场景
6 balance-alb 自适应负载均衡 (Adaptive Load Balancing),在mode5的基础上增加了接收负载均衡 接收和发送流量都较多的场景

网络配置文件

从Ubuntu20.04开始,网络配置文件就更改到了/etc/netplan/00-installer-config.yaml

配置链路聚合

/etc/netplan/00-installer-config.yaml配置文件里,使用vim打开,在这个文件里添加以下代码,需要根据实际情况进行更改


  bonds:
    bond0: #链路聚合网络的名字
      dhcp4: no #自动true/手动no 获取ip地址
      addresses: [192.168.3.75/24] #ip地址
      gateway4: 192.168.3.1 #网关
      nameservers: #dns地址
        addresses:
          - 202.96.128.86 #根据实际情况进行更改
          - 202.96.134.33 #根据实际情况进行更改
      interfaces: #需要参与链路聚合的网卡名称
        - eno1
        - eno2
        - eno3
      parameters:
        mode: balance-alb #mode6的链路聚合模式
        mii-monitor-interval: 100 #设置 MII 监控间隔为100毫秒,用于检测链路状态
        lacp-rate: fast #配置 LACP(链路聚合控制协议)的速率为快速模式。LACP 是链路聚合的一种协议,用于协商链路聚合的成员。快速模式下,LACP 每秒发送一次 PDU(协议数据单元)
        transmit-hash-policy: layer2 #设置传输哈希策略为 layer2

应用

使用 netplan apply 进行应用

使用 ip a 查看是否出现bond0

查看速度

apt安装net-tools工具


sudo apt-get install net-tools -y

使用 ethtool bond0 命令可以查看到bond0的详细信息


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [email protected]

文章标题:在Ubuntu上配置链路聚合

字数:1.2k

本文作者:许子晋

发布时间:2024-08-13, 19:23:30

最后更新:2024-08-13, 20:22:07

原始链接:https://xuzijin.com/2024/08/13/Link-aggregation-on-Ubuntu/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。