activebackup模式是linux teamd实现网络高可用的核心方案,主网卡承载全部流量、备网卡待命,故障时自动切换且业务不中断;配置需用nmcli持久化创建team0连接并设hwaddr_policy="by_active"确保mac随活跃端口切换,再添加team-slave绑定物理网卡,最后配置静态ip并启用autoconnect,通过teamdctl验证状态及ping测试确认切换可靠性。

在生产环境中用 nmcli 配置 Linux 网络团队(Teamd)实现高可用,核心是用 activebackup 模式 ——主网卡承载全部流量,备网卡实时待命,单点故障时自动切换,业务连接不中断。整个过程必须持久化、可验证、可回滚,不能依赖临时命令。
创建 team0 主接口并启用 activebackup 模式
这条命令生成 NetworkManager 管理的 team0 连接配置,自动写入 /etc/sysconfig/network-scripts/ifcfg-team0(RHEL/CentOS)或 /etc/NetworkManager/system-connections/team0.nmconnection(较新发行版),确保重启后仍生效:
nmcli connection add type team ifname team0 con-name team0 config '{"runner": {"name": "activebackup", "hwaddr_policy": "by_active"}, "link_watch": {"name": "ethtool"}}'
注意:hwaddr_policy: "by_active" 是关键——它让 team0 的 MAC 地址始终跟随当前活跃端口(如主网卡 down 后,team0 自动采用备网卡 MAC),避免交换机 ARP 表错乱导致通信中断。虚拟机环境尤其需要此项,物理机通常可省略但建议保留。
添加物理网卡作为 team 成员(slave)
每块物理网卡需单独注册为 team-slave 类型连接,并明确绑定到 team0。假设使用 ens33 和 ens37:
nmcli connection add type team-slave con-name team-ens33 ifname ens33 master team0nmcli connection add type team-slave con-name team-ens37 ifname ens37 master team0
此时不会给 ens33 或 ens37 分配 IP,它们仅作为底层通道;所有网络层配置都集中在 team0 上。若已有其他连接管理这两张网卡(如 “Wired connection 1”),需先 nmcli connection delete "Wired connection 1" 避免冲突。
配置 team0 的静态网络参数并启用
设置 IP、子网掩码、网关、DNS,并关闭 DHCP,再激活整个链路:
nmcli connection modify team0 ipv4.addresses 192.168.10.50/24nmcli connection modify team0 ipv4.gateway 192.168.10.1nmcli connection modify team0 ipv4.dns "8.8.8.8,114.114.114.114"nmcli connection modify team0 ipv4.method manualnmcli connection modify team0 connection.autoconnect yesnmcli connection up team0
执行后,ip addr show team0 应显示配置的 IP;teamdctl team0 state 可确认当前哪个端口处于 runner 状态(即主用),另一个为 port_down 或 waiting_for_link(备用)。
验证与故障模拟测试
高可用不是配完就结束,必须实测切换逻辑:
- 用
ping -I team0 192.168.10.1 -c 100持续发包,同时执行nmcli connection down team-ens33(模拟主网卡断开) - 观察 ping 是否仅丢失 1–3 个包后立即恢复——这是正常切换延迟(通常
- 运行
teamdctl team0 state,确认原ens33变为port_down,ens37升为runner - 再
nmcli connection up team-ens33,观察是否自动切回(activebackup 默认不回切,如需回切,需加"runner": {"name": "activebackup", "notify_peers_interval": 5}并配合交换机支持)
不复杂但容易忽略











