3.5 KiB
3.5 KiB
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=1active-backup
3.2 有交换机配合且希望聚合
优先考虑:
mode=4802.3ad
3.3 没有交换机聚合能力
可考虑:
mode=1mode=6
4、配置示例
不同发行版网络配置方式不同,常见有 netplan、NetworkManager、ifcfg-* 等。
4.1 Netplan 示例
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
NAME=bond0
TYPE=Bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
BONDING_OPTS="mode=1 miimon=100"
从接口配置中要指定:
MASTER=bond0SLAVE=yes
5、关键参数说明
5.1 miimon
用于指定链路检测间隔,单位通常是毫秒。
例如:
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 端,也要看交换机端是否匹配