前文:
今天想着给服务器弄个链路聚合,把服务器的几个网口利用上,然后顺便写一篇博文记录一下。
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]