Linux 网络:聚合链路技术之 team

team是Linux内核3.3引入的一种链路聚合驱动,它的功能和bonding类似,但是更灵活、可扩展性更强。

它通过teamd用户空间守护进程来控制,采用JSON格式配置,支持更高效的负载均衡和冗余机制。

简单来说:bonding是老牌方案,team是更现代的替代者。

一、team支持的主要模式

roundrobin(轮询):循环分配流量到所有端口,带宽可叠加。activebackup:主备模式,一个接口工作,另一个作为备份loadbalance:根据哈希算法(如MAC、IP、端口)分配流量broadcast:所有流量发送到每个端口(多播)lacp:兼容IEE 802.3ad LACP协议,与交换机协商动态聚合

二、工作原理

team守护进程启动后,根据配置将多个物理网卡纳入team。数据流根据runner算法分配到不同物理接口。link watcher(如ethtool,arp_ping)负责链路状态检测。如果某条链路断开,流量会自动切换。

三、配置示例

1. 基于nmcli创建(NetworkManager管理)

如创建activebackup模式,绑定ens33和ens36:

创建 team 接口:
复制
nmcli connection add type team con-name team0 ifname team0 config {"runner": {"name": "activebackup"}}1.
添加从接口:
复制
nmcli connection add type team-slave ifname ens33 con-name team0-slave1 master team0 nmcli connection add type team-slave ifname ens36 con-name team0-slave2 master team01.2.
设置IP地址、网关和DNS:
复制
nmcli connection modify team0 ipv4.addresses 192.168.15.136/24 ipv4.gateway 192.168.15.2 ipv4.dns 8.8.8.8,114.114.114.114 ipv4.method manual connection.autoconnect yes1.
启动接口:
复制
nmcli con up team0 nmcli con up team0-slave1 nmcli con up team0-slave21.2.3.
查看team接口的状态:
复制
teamnl team0 ports teamdctl team0 state1.2.

删除team接口:
复制
nmcli connection delete team0-slave1 nmcli connection delete team0-slave2 nmcli connection delete team01.2.3.
2. 基于 teamd JSON配置文件编辑配置文件:/etc/teamd/team0.conf
复制
{ "device": "team0", "runner": { "name": "activebackup" }, "link_watch": { "name": "ethtool" }, "ports": { "ens33": { "prio": -10, "sticky": true }, "ens36": { "prio": 100 } } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.

以守护进程的方式运行teamd:

复制
teamd -g -f /etc/teamd/team0.conf -d1.

设置teamo接口地址并启用:

复制
ip addr add 192.168.15.136/24 dev team0 ip link set dev team0 up1.2.

终止守护进程:

复制
teamd -t team0 -k1.
3. RHEL/CentOS ifcfg 文件方式

编辑ifcfg-team0文件:

复制
#/etc/sysconfig/network-scripts/ifcfg-team0 DEVICE=team0 DEVICETYPE=Team ONBOOT=yes BOOTPROTO=static IPADDR=192.168.15.136 PREFIX=24 GATEWAY=192.168.15.2 DNS1=114.114.114.114 TEAM_CONFIG={"runner": {"name":"lacp","active":true,"fast_rate":true, "tx_hash":["ipv4"], "ports":{"ens33:{}, "ens36":{}}}} MTU=14761.2.3.4.5.6.7.8.9.10.11.

编辑ifcfg-ens33文件:

复制
#/etc/sysconfig/network-scripts/ifcfg-ens33 DEVICE=ens33 DEVICETYPE=TeamPort ONBOOT=yes TEAM_MASTER=team01.2.3.4.5.

编辑ifcfg-ens36文件:

复制
#/etc/sysconfig/network-scripts/ifcfg-ens36 DEVICE=ens36 DEVICETYPE=TeamPort ONBOOT=yes TEAM_MASTER=team01.2.3.4.5.

重启网络:

复制
nmcli con reload nmcli con up team01.2.
四、使用建议简单冗余 → 选 activebackup 模式高吞吐(交换机支持LACP)→ 选lacp模式配置LACP时,要保证交换机端也启用对应的LAG/LACP组

THE END