Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
documentation.suse.com / Configuring network teaming

Configuring network teaming

Publication Date: 22 May 2023

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:

broadcast

All traffic is broadcast on all interfaces. Requires support from the switch. Provides fault tolerance.

roundrobin

Packets are transmitted in round-robin fashion from the first to the last available interface. Provides fault tolerance and load balancing.

activebackup

Only one network interface is active. If it fails, a different interface becomes active. Provides fault tolerance.

loadbalance

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.

lacp

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.

Note
Note: No teaming in YaST

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

  1. Create a configuration file under /etc/sysconfig/network/. Usually this name will be ifcfg-team0. If you need more than one network teaming device, give them ascending numbers. For more information, see man 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

    1

    Defines how the teaming device starts. Use auto to start the interface automatically on every reboot, or use manual to prevent the interface from starting automatically.

    2

    Defines how IP addresses are assigned to the teaming device. Use static to manually assign static IP addresses with the variables IPADDRESS (for IPv4) and IPADDR6 (for IPv6). Use dhcp to automatically assign dynamic IP addresses.

    3

    Defines the teaming mode for this interface. Some teaming modes require additional variables. See man ifcfg-team for more information about mode-specific variables.

    4

    Specifies one or more network cards to include in the teaming device.

    5

    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 variable TEAM_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"
  2. 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.

    Tip

    Back up the configuration files before removing them.

  3. Check if everything is included in Wicked's configuration file:

    > sudo wicked show-config
  4. 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 the all subcommand.

    Important

    Do not use systemctl for starting or stopping the teaming device. Always use the wicked command.

  5. 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

  1. Stop the teaming device. This example uses the device name team0:

    > sudo wicked ifdown team0
  2. 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.

  3. Reload the configuration:

    > sudo wicked ifreload all

6 Next steps

  • Adding VLANs over a network team