我们在使用新版本Linux时,会发现 team 已逐步替代 bonding 实现网卡绑定技术,今天就来详细了解一下 team 。 team 技术简介 team 是一种聚合物理和虚拟网络接口的方法,以提供高吞吐量或冗余的逻辑接口。因此,team是一个易扩展的解决方案,来满足负载平衡和冗余的要求。 如果想使用team功能,需要 teamd 和 NetworkManager-team 软件包,新版本的操作系统一般会默认安装;另外在服务器中需要有两个或者两个以上物理网卡(虚拟网卡也支持),并且连接到交换机。 team 和 bonding 之间的差异,可以查阅下表: 配置方法创建team接口:$ nmcli connection add type team ifname team0 con-name team0 config "{"runner": {"name": "activebackup"}}" 此命令创建一个使用 activebackup runner、名为 team0 的网络组。 注,team可用的 runner 如下: broadcast :在所有端口上的传输数据 roundrobin :在所有端口上依次传输数据 activebackup :在一个端口上的传输数据,其它端口为备份 loadbalance:按照负载均衡算法传输数据,如源-目的MAC地址哈希 random :在随机选择的端口上传输数据 lacp :实现 802.3ad 链路聚合控制协议(LACP) 2. 设置链接监视器 link-watchers 链路监视器支持不同的参数,例如这里使用 ethtool,并将其delay-up 参数设置为 2500 毫秒(2.5 秒):$ nmcli connection modify team0 team.link-watchers "name=ethtool delay-up=2500" link-watchers 类型包括: ethtool:使用 ethtool 工具来监视链接状态的变化,这是默认的 link-watcher arp_ping: 通过某端口发送 ARP 请求,如果有收到 ARP 请求,则认为链路为 up 状态 nsna_ping: 类似 arp_ping,但是使用 IPv6 邻居请求(NS,neighbor solicitation)和邻居发现机制(NA,neighbor advertisement)。只用于 IPv6 环境 3. 为team分配网络接口 这里将eno1、eno2两块网卡接入team0:$ nmcli connection add type team-slave con-name team0-port1 ifname eno1 master team0 $ nmcli connection add type team-slave con-name team0-port2 ifname eno2 master team0 4. 配置team0 的 IP 设置 设置包括的静态 IPv4 地址、网络掩码、默认网关:$ nmcli connection modify team0 ipv4.addresses "10.1.1.52/24" $ nmcli connection modify team0 ipv4.gateway "10.1.1.254" $ nmcli connection modify team0 ipv4.method manual 5. 激活连接:$ nmcli connection up team0 6. 显示team状态:$ teamdctl team0 state $ nmcli device status[root@node02 ~]# nmcli device status DEVICE TYPE STATE CONNECTION team0 team connected team0 eno1 ethernet connected team0-port1 eno2 ethernet connected team0-port2 lo loopback unmanaged --[root@node02 ~]# ip addr 2: eno1:mtu 1500 qdisc mq master team0 state UP group default qlen 1000 link/ether 2c:44:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff 3: eno2: mtu 1500 qdisc mq master team0 state UP group default qlen 1000 link/ether 2c:44:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff 20: team0: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 2c:44:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 10.1.1.52/24 brd 10.1.1.255 scope global noprefixroute team0 valid_lft forever preferred_lft forever 配置文件参考 team 生成的配置文件路径在 /etc/sysconfig/network-scripts/目录下,具体内容如下:# cat ifcfg-team0 TEAM_CONFIG="{ "runner": { "name": "activebackup" }, "link_watch": { "name": "ethtool", "delay_up": 2500 } }" PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no NAME=team0 DEVICE=team0 ONBOOT=yes DEVICETYPE=Team IPADDR=10.1.1.52 PREFIX=24 GATEWAY=10.1.1.254 # cat ifcfg-team0-port1 NAME=team0-port1 DEVICE=eno1 ONBOOT=yes TEAM_MASTER=team0 DEVICETYPE=TeamPort # cat ifcfg-team0-port2 NAME=team0-port2 DEVICE=eno2 ONBOOT=yes TEAM_MASTER=team0 DEVICETYPE=TeamPort ** 持续发布, 欢迎 +关注 **