What it is¶
teamd is the userspace daemon of the libteam project. It controls a kernel team device that combines multiple NICs into one logical interface for redundancy or throughput. The behaviour depends on the selected runner: activebackup, loadbalance, roundrobin, broadcast, or lacp (802.3ad).
Status: Red Hat deprecated network teaming in RHEL 9 and recommends the in-kernel bonding driver for new setups. Teaming still works on RHEL 8 and older systems, and the concepts (active-backup, LACP, hashing) map directly onto bonding modes. For new builds, create type bond connections with nmcli instead.
Create a load-balancing team¶
nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "loadbalance"}}'
nmcli connection modify team0 ipv4.addresses 192.168.1.50/24
nmcli connection modify team0 ipv4.method manual
nmcli connection add type team-slave con-name team0-eth0 ifname eth0 master team0
nmcli connection add type team-slave con-name team0-eth1 ifname eth1 master team0
nmcli connection up team0-eth0
nmcli connection up team0-eth1
teamdctl team0 state
Create an active-backup team¶
nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'
nmcli connection modify team0 ipv4.addresses 192.168.1.50/24 ipv4.method manual
nmcli connection add type team-slave con-name team0-eth0 ifname eth0 master team0
nmcli connection add type team-slave con-name team0-eth1 ifname eth1 master team0
nmcli connection up team0-eth0
nmcli connection up team0-eth1
Check the state:
teamdctl team0 state
setup:
runner: activebackup
ports:
eth0
link watches:
link summary: up
eth1
link watches:
link summary: up
runner:
active port: eth0
Test failover¶
ping -I team0 192.168.1.13 & # keep traffic flowing
nmcli device disconnect eth0
teamdctl team0 state # active port should have moved to eth1
nmcli device connect eth0
Pings should continue with at most a brief gap. When eth0 returns it rejoins as a backup and does not take over again unless a port priority makes it preferred.
Bonding equivalent (recommended for new builds)¶
nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=100"
nmcli connection add type ethernet slave-type bond con-name bond0-eth0 ifname eth0 master bond0
nmcli connection add type ethernet slave-type bond con-name bond0-eth1 ifname eth1 master bond0
nmcli connection modify bond0 ipv4.addresses 192.168.1.50/24 ipv4.method manual
nmcli connection up bond0
cat /proc/net/bonding/bond0
For LACP use mode=802.3ad, and configure a matching port-channel on the switch. See nmcli for general connection handling.