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.
复制
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.
复制
teamnl team0 ports
teamdctl team0 state1.2.
复制
nmcli connection delete team0-slave1
nmcli connection delete team0-slave2
nmcli connection delete team01.2.3.
复制
{
"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.
编辑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.
THE END