wiki/运维/操作系统/Linux/笔记/24.多网卡Bond.md
2026-04-08 15:02:24 +08:00

193 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 1、Bonding 概览
Bonding网卡绑定是把多块物理网卡组合成一个逻辑接口对外通常表现为一个 IP 地址。
常见目的:
- 提高链路可用性
- 实现故障切换
- 提升带宽或做负载分担
是否真正实现带宽叠加,取决于 **Bond 模式**、交换机配置、流量模型等因素。
## 2、常见 Bond 模式
### 2.1 `mode=0` `balance-rr`
轮询发送流量。
特点:
- 负载均衡
- 支持容错
- 需要交换机配合链路聚合
- 可能出现包乱序问题
### 2.2 `mode=1` `active-backup`
主备模式。
特点:
- 同时只有一块网卡工作
- 一块故障时自动切换到备份网卡
- 主要用于高可用
- 对交换机要求较低
这是生产中非常常见、也相对稳妥的模式。
### 2.3 `mode=2` `balance-xor`
基于哈希策略分担流量。
特点:
- 支持负载均衡和容错
- 需要交换机聚合配置
- 常结合 `xmit_hash_policy`
### 2.4 `mode=3` `broadcast`
所有包都从所有网卡发出。
特点:
- 容错强
- 资源浪费大
- 一般不常用
### 2.5 `mode=4` `802.3ad`
也就是 LACP 动态链路聚合。
特点:
- 标准化程度高
- 需要交换机支持 802.3ad / LACP
- 兼顾性能和可靠性
- 配置要求更高
### 2.6 `mode=5` `balance-tlb`
发送负载均衡。
特点:
- 不要求交换机特殊支持
- 主要对发送流量做均衡
### 2.7 `mode=6` `balance-alb`
自适应负载均衡。
特点:
-`mode=5` 基础上增强
- 不依赖交换机特殊支持
- 能做一定程度的接收负载均衡
## 3、模式选择建议
### 3.1 追求稳定高可用
优先考虑:
- `mode=1` `active-backup`
### 3.2 有交换机配合且希望聚合
优先考虑:
- `mode=4` `802.3ad`
### 3.3 没有交换机聚合能力
可考虑:
- `mode=1`
- `mode=6`
## 4、配置示例
不同发行版网络配置方式不同,常见有 `netplan``NetworkManager``ifcfg-*` 等。
### 4.1 Netplan 示例
```yaml
network:
version: 2
ethernets:
eth1:
addresses: []
dhcp4: no
eth2:
addresses: []
dhcp4: no
bonds:
bond0:
addresses:
- 192.168.30.10/24
gateway4: 192.168.30.250
nameservers:
addresses:
- 114.114.114.114
interfaces:
- eth1
- eth2
parameters:
mode: balance-alb
```
### 4.2 传统 ifcfg 配置示例
`/etc/sysconfig/network-scripts/ifcfg-bond0`
```ini
NAME=bond0
TYPE=Bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
BONDING_OPTS="mode=1 miimon=100"
```
从接口配置中要指定:
- `MASTER=bond0`
- `SLAVE=yes`
## 5、关键参数说明
### 5.1 `miimon`
用于指定链路检测间隔,单位通常是毫秒。
例如:
```ini
miimon=100
```
表示每 100 ms 检测一次链路状态。
### 5.2 `xmit_hash_policy`
用于指定发包哈希策略,在某些负载均衡模式中很关键。
## 6、常见运维注意点
- Bond 能不能真正提升带宽,要看连接模型和交换机配置
-`802.3ad` 前先确认交换机侧也已正确配置 LACP
- `active-backup` 最简单、最稳,适合先保高可用
- 做 Bond 前,最好先明确目标:是要容灾,还是要带宽聚合
- 变更 Bond 配置前要评估中断风险,最好有带外或控制台入口
## 7、小结
- Bonding 是把多块网卡组合成一个逻辑接口
- 常见目标是高可用、容错和流量分担
- `mode=1` 适合高可用,`mode=4` 适合标准聚合
- 配置时既要看 Linux 端,也要看交换机端是否匹配