首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Linux网络:聚合链路技术之team

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

作者头像
用户5921339
发布2025-10-20 18:33:23
发布2025-10-20 18:33:23
1850
举报

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

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

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

一、team支持的主要模式:

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

二、工作原理

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

三、配置示例:

3.1 基于nmcli创建(NetworkManager管理)

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

  • 创建 team 接口
代码语言:javascript
复制
nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'
  • 添加从接口
代码语言:javascript
复制
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 team0
  • 设置IP地址、网关和DNS
代码语言:javascript
复制
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 yes
  • 启动接口
代码语言:javascript
复制
nmcli con up team0
nmcli con up team0-slave1
nmcli con up team0-slave2
  • 查看team接口的状态
代码语言:javascript
复制
teamnl team0 ports
teamdctl team0 state
  • 删除team接口
代码语言:javascript
复制
nmcli connection delete team0-slave1
nmcli connection delete team0-slave2
nmcli connection delete team0
3.2 基于 teamd JSON配置文件
  • 编辑配置文件:/etc/teamd/team0.conf
代码语言:javascript
复制
{
    "device": "team0",
    "runner": { "name": "activebackup" },
    "link_watch": { "name": "ethtool" },
    "ports": {
        "ens33": {
                "prio": -10,
                "sticky": true
        },
        "ens36": {
                "prio": 100
        }
    }
}
  • 以守护进程的方式运行teamd
代码语言:javascript
复制
teamd -g -f /etc/teamd/team0.conf -d
  • 设置teamo接口地址并启用
代码语言:javascript
复制
ip addr add 192.168.15.136/24 dev team0
ip link set dev team0 up
  • 终止守护进程
代码语言:javascript
复制
teamd -t team0 -k
3.3 RHEL/CentOS ifcfg 文件方式
  • 编辑ifcfg-team0文件
代码语言:javascript
复制
#/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=1476
  • 编辑ifcfg-ens33文件
代码语言:javascript
复制
#/etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
DEVICETYPE=TeamPort
ONBOOT=yes
TEAM_MASTER=team0
  • 编辑ifcfg-ens36文件
代码语言:javascript
复制
#/etc/sysconfig/network-scripts/ifcfg-ens36
DEVICE=ens36
DEVICETYPE=TeamPort
ONBOOT=yes
TEAM_MASTER=team0
  • 重启网络
代码语言:javascript
复制
nmcli con reload
nmcli con up team0

四、使用建议

  • 简单冗余 → 选 activebackup 模式
  • 高吞吐(交换机支持LACP)→ 选lacp模式
  • 配置LACP时,要保证交换机端也启用对应的LAG/LACP组
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT人家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、team支持的主要模式:
  • 二、工作原理
  • 三、配置示例:
    • 3.1 基于nmcli创建(NetworkManager管理)
    • 3.2 基于 teamd JSON配置文件
    • 3.3 RHEL/CentOS ifcfg 文件方式
  • 四、使用建议
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档