网卡绑定(bonding)
场景
服务器两块网卡要做冗余(主备)或带宽叠加(LACP)。
前置条件
- 两块网卡都没有在用
- 交换机侧配合(LACP 需要交换机配聚合)
- 有控制台兜底,改网络容易失联
配置
NetworkManager 方式(推荐):
nmcli con add type bond con-name bond0 ifname bond0 \
bond.options "mode=active-backup,miimon=100"
nmcli con add type ethernet con-name bond0-slave1 ifname ens33 master bond0
nmcli con add type ethernet con-name bond0-slave2 ifname ens34 master bond0
nmcli con mod bond0 ipv4.addresses 10.0.0.5/24
nmcli con mod bond0 ipv4.gateway 10.0.0.1
nmcli con mod bond0 ipv4.dns 10.0.0.2
nmcli con mod bond0 ipv4.method manual
nmcli con up bond0
常见模式:
| 模式 | 说明 |
|---|---|
active-backup(1) |
主备,交换机不用配 |
802.3ad(4) |
LACP,需要交换机配置聚合组 |
balance-xor(2) |
按哈希分流,交换机要配静态聚合 |
broadcast(3) |
双发,浪费带宽,特殊场景用 |
验证
cat /proc/net/bonding/bond0
nmcli con show
ip a show bond0
MII Status 和 Slave Interface 都要 up。
回滚
nmcli con delete bond0
nmcli con up ens33
坑
802.3ad交换机没配 LACP,链路根本起不来。- 主备模式切主时会有短暂丢包,
miimon别设太大。 - bond0 的 IP 配错或网关写错,直接失联。
- 两块网卡速率不同,LACP 只按最小的算。
- 改 bond 配置要重启网络,先确认能进控制台。
- 虚拟机上做 bonding 意义不大,宿主机层面已经冗余了。