Configuring network teaming
1 Environment #
This document applies to the following products and product versions:
SUSE Linux Enterprise Server 15 SP3, 15 SP2, 15 SP1, 15 GA, 12 SP5, 12 SP4, 12 SP3
SUSE Linux Enterprise Server for SAP Applications 15 SP3, 15 SP2, 15 SP1, 15 GA, 12 SP5, 12 SP4, 12 SP3
SUSE Linux Enterprise High Availability Extension 15 SP3, 15 SP2, 15 SP1, 15 GA, 12 SP5, 12 SP4, 12 SP3
SUSE Linux Enterprise High Performance Computing 15 SP3, 15 SP2, 15 SP1, 15 GA
SUSE Linux Enterprise Desktop 15 SP3, 15 SP2, 15 SP1, 15 GA, 12 SP5, 12 SP4, 12 SP3
SUSE Linux Enterprise Real Time 15 SP3, 15 SP2, 15 SP1, 15 GA, 12 SP5, 12 SP4, 12 SP3
2 Introduction #
Network teaming combines two or more network cards into a single teaming device to increase bandwidth or provide redundancy. The behavior of the teaming device is configured using teaming modes. The following teaming modes are available:
All traffic is broadcast on all interfaces. Requires support from the switch. Provides fault tolerance.
Packets are transmitted in round-robin fashion from the first to the last available interface. Provides fault tolerance and load balancing.
Only one network interface is active. If it fails, a different interface becomes active. Provides fault tolerance.
The team device transmits packets via all its ports, performing load balancing (passive or active) with a use of hash functions. For passive load balancing, only the BPF hash function is used. For active load balancing, the runner finds the best balance by moving hashes between available ports. Provides fault tolerance and load balancing.
Aggregates interfaces into groups that share the same speed and duplex settings. Requires ethtool support in the interface drivers, and a switch that supports and is configured for IEEE 802.3ad Dynamic link aggregation. Provides fault tolerance and load balancing.
Currently, YaST cannot create a teaming device. You must configure network teaming manually.
3 Requirements #
Network connection
Existing network cards to include in the teaming device
Basic understanding of networking and IP addresses
The necessary packages are installed:
libteam-tools
libteamdctl0
python-libteam
4 Configuring network teaming #
Create a configuration file under
/etc/sysconfig/network/
. Usually this name will beifcfg-team0
. If you need more than one network teaming device, give them ascending numbers. For more information, seeman ifcfg
,man ifcfg-team
, and/etc/sysconfig/network/ifcfg.template
.STARTMODE=MODE 1 BOOTPROTO=IP_ASSIGNMENT 2 TEAM_RUNNER="TEAMING_MODE" 3 TEAM_PORT_DEVICE_0="FIRST_DEVICE_NAME" 4 TEAM_PORT_DEVICE_1="SECOND_DEVICE_NAME" 4 TEAM_LW_NAME="LINK_WATCHER" 5
Defines how the teaming device starts. Use
auto
to start the interface automatically on every reboot, or usemanual
to prevent the interface from starting automatically.Defines how IP addresses are assigned to the teaming device. Use
static
to manually assign static IP addresses with the variablesIPADDRESS
(for IPv4) andIPADDR6
(for IPv6). Usedhcp
to automatically assign dynamic IP addresses.Defines the teaming mode for this interface. Some teaming modes require additional variables. See
man ifcfg-team
for more information about mode-specific variables.Specifies one or more network cards to include in the teaming device.
Defines a link watcher to monitor the state of subordinate devices.
The default option
ethtool
only checks if the device is up and accessible. This option is fast, but does not check if the device can actually send or receive packets.If you need higher confidence in the connection, use the
arp_ping
option. This sends pings to a host specified by the variableTEAM_LW_ARP_PING_TARGET_HOST
. The teaming device is only considered to be up if replies are received.See
man ifcfg-team
for more information about watcher-specific variables.Example 1: Configuration for load balancing #STARTMODE=auto BOOTPROTO=static IPADDRESS="192.168.1.1/24" IPADDR6="fd00:deca:fbad:50::1/64" TEAM_RUNNER="loadbalance" TEAM_LB_TX_HASH="ipv4,ipv6,eth,vlan" TEAM_LB_TX_BALANCER_NAME="basic" TEAM_LB_TX_BALANCER_INTERVAL="100" TEAM_PORT_DEVICE_0="eth0" TEAM_PORT_DEVICE_1="eth1" TEAM_LW_NAME="ethtool" TEAM_LW_ETHTOOL_DELAY_UP="10" TEAM_LW_ETHTOOL_DELAY_DOWN="10"
Example 2: Configuration for failover (active-backup
) #STARTMODE=auto BOOTPROTO=static IPADDR="192.168.1.2/24" IPADDR6="fd00:deca:fbad:50::2/64" TEAM_RUNNER=activebackup TEAM_PORT_DEVICE_0="eth0" TEAM_PORT_DEVICE_1="eth1" TEAM_LW_NAME=ethtool TEAM_LW_ETHTOOL_DELAY_UP="10" TEAM_LW_ETHTOOL_DELAY_DOWN="10"
Remove the
ifcfg
files of the network cards that you included in the teaming device. Wicked will re-create the configuration files with the necessary parameters for teaming.Back up the configuration files before removing them.
Check if everything is included in Wicked's configuration file:
>
sudo
wicked show-config
Start the teaming device. This example uses the device name
team0
:>
sudo
wicked ifup all team0
If you need additional debug information, use the option
--debug all
after theall
subcommand.Do not use
systemctl
for starting or stopping the teaming device. Always use thewicked
command.Check the status of the teaming device:
Get the state of the teamd instance from Wicked:
>
sudo
wicked ifstatus --verbose team0
Get the state of the entire instance:
>
sudo
teamdctl team0 state
Get the systemd state of the teamd instance:
>
sudo
systemctl status teamd@team0
Each command shows a slightly different view depending on your needs.
If you make changes to the ifcfg-team0
file after
starting the device, reload its configuration with the command
wicked ifreload team0
.
5 Removing a network teaming device #
Stop the teaming device. This example uses the device name
team0
:>
sudo
wicked ifdown team0
Rename the file
/etc/sysconfig/network/ifcfg-team0
to/etc/sysconfig/network/.ifcfg-team0
to make it hidden from Wicked. If you definitely do not need the configuration anymore, you can delete the file instead.Reload the configuration:
>
sudo
wicked ifreload all
6 Next steps #
Adding VLANs over a network team