From bccc443dac713fb035937d03f9668fa3bf6c6608 Mon Sep 17 00:00:00 2001 From: Shalaka Harne Date: Mon, 13 Oct 2025 22:15:29 +0530 Subject: [PATCH 1/3] Updated content. --- tasks/networkmanager-nmcli-conf-nwbehavior.xml | 1 + tasks/networkmanager-nmcli-configure.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/tasks/networkmanager-nmcli-conf-nwbehavior.xml b/tasks/networkmanager-nmcli-conf-nwbehavior.xml index 1f550266b..37b5f4058 100644 --- a/tasks/networkmanager-nmcli-conf-nwbehavior.xml +++ b/tasks/networkmanager-nmcli-conf-nwbehavior.xml @@ -75,6 +75,7 @@ Stop the &nm; service: Create spinoff files in the /etc/NetworkManager/conf.d/ if they do not exist. +To prevent NetworkManager from managing specific interfaces such as Ethernet ports, add them to /etc/NetworkManager/conf.d/unmanaged-devices.conf. Alternatively, back up the existing configuration files before modifying them. diff --git a/tasks/networkmanager-nmcli-configure.xml b/tasks/networkmanager-nmcli-configure.xml index c4db67a22..5dc3df0da 100644 --- a/tasks/networkmanager-nmcli-configure.xml +++ b/tasks/networkmanager-nmcli-configure.xml @@ -374,6 +374,7 @@ create a connection profile: Install the teamd and NetworkManager-team packages: &prompt.sudo; zypper install teamd &prompt.sudo; zypper install NetworkManager-team +teamd, NetworkManager-team, and libteam-tools packages are deprecated in &productname;&productnumber; as the upstream activities are deprecated. You must migrate existing team interfaces to bonding configurations managed through NetworkManager. NetworkManager bonding supports many bonding scenarios, including LACP. Install two or more physical or virtual devices on the server: From 9b53daf20c0fe1dc8dd98c28540db15c90bcba93 Mon Sep 17 00:00:00 2001 From: Shalaka Harne <135588263+harneshalaka@users.noreply.github.com> Date: Wed, 22 Oct 2025 11:32:29 +0530 Subject: [PATCH 2/3] Apply suggestions from code review Co-authored-by: Daria Vladykina --- tasks/networkmanager-nmcli-configure.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/networkmanager-nmcli-configure.xml b/tasks/networkmanager-nmcli-configure.xml index 5dc3df0da..f5dbf957a 100644 --- a/tasks/networkmanager-nmcli-configure.xml +++ b/tasks/networkmanager-nmcli-configure.xml @@ -374,7 +374,7 @@ create a connection profile: Install the teamd and NetworkManager-team packages: &prompt.sudo; zypper install teamd &prompt.sudo; zypper install NetworkManager-team -teamd, NetworkManager-team, and libteam-tools packages are deprecated in &productname;&productnumber; as the upstream activities are deprecated. You must migrate existing team interfaces to bonding configurations managed through NetworkManager. NetworkManager bonding supports many bonding scenarios, including LACP. +The teamd, NetworkManager-team and libteam-tools packages are deprecated in &productname; &productnumber; as the upstream activities are deprecated. You must migrate existing team interfaces to bonding configurations managed through NetworkManager. NetworkManager bonding supports many bonding scenarios, including LACP. Install two or more physical or virtual devices on the server: From c2903fe3023a7a9af847fae590e934d9e8c4aa3e Mon Sep 17 00:00:00 2001 From: Shalaka Harne Date: Thu, 23 Oct 2025 22:33:22 +0530 Subject: [PATCH 3/3] Added content. --- .../networkmanager-nmcli-conf-nwbehavior.xml | 4 +- tasks/networkmanager-nmcli-configure.xml | 100 +++++++++++++++++- 2 files changed, 100 insertions(+), 4 deletions(-) diff --git a/tasks/networkmanager-nmcli-conf-nwbehavior.xml b/tasks/networkmanager-nmcli-conf-nwbehavior.xml index 37b5f4058..af8125179 100644 --- a/tasks/networkmanager-nmcli-conf-nwbehavior.xml +++ b/tasks/networkmanager-nmcli-conf-nwbehavior.xml @@ -68,7 +68,7 @@ domains=ALL Stop the &nm; service: -&prompt.sudo;systemctl stop network +&prompt.sudo; systemctl stop network @@ -88,7 +88,7 @@ Stop the &nm; service: &prompt.sudo;systemctl start network View the existing configuration and settings: -&prompt.sudo;nmcli general show +&prompt.sudo; nmcli general show \ No newline at end of file diff --git a/tasks/networkmanager-nmcli-configure.xml b/tasks/networkmanager-nmcli-configure.xml index f5dbf957a..140ad2f7d 100644 --- a/tasks/networkmanager-nmcli-configure.xml +++ b/tasks/networkmanager-nmcli-configure.xml @@ -374,8 +374,7 @@ create a connection profile: Install the teamd and NetworkManager-team packages: &prompt.sudo; zypper install teamd &prompt.sudo; zypper install NetworkManager-team -The teamd, NetworkManager-team and libteam-tools packages are deprecated in &productname; &productnumber; as the upstream activities are deprecated. You must migrate existing team interfaces to bonding configurations managed through NetworkManager. NetworkManager bonding supports many bonding scenarios, including LACP. - +The teamd, NetworkManager-team and libteam-tools packages are deprecated in &productname; &productnumber; as the upstream activities are deprecated. You must migrate existing team interfaces to bonding configurations managed through NetworkManager. NetworkManager bonding supports many bonding scenarios, including LACP. Install two or more physical or virtual devices on the server: @@ -688,4 +687,101 @@ connection: + +
+ Convert teamd configuration to &nm; + In &productname;&productnumber;, libteam and teamd are deprecated and hence Network Load Balancing configurations that relied on libteam in the past must be converted to a NetworkManager based bonding interface. + + Active Load Balancing with LACP + + A sample team0 interface configuration (/etc/sysconfig/network/ifcfg-team0) is mentioned below based on which the commands are described. + BOOTPROTO="static" +STARTMODE="onboot" + +TEAM_RUNNER="lacp" +TEAM_LACP_TX_HASH="l4,l3,eth,vlan" +TEAM_LACP_TX_BALANCER_NAME="basic" +TEAM_LACP_TX_BALANCER_INTERVAL="100" +TEAM_LACP_ACTIVE=true +TEAM_LACP_SELECT_POLICY="lacp_prio" +TEAM_LW_NAME="ethtool" +TEAM_LW_ETHTOOL_DELAY_UP="10" +TEAM_LW_ETHTOOL_DELAY_DOWN="10" +IPADDR="10.1.1.1" +NETMASK="255.255.255.0" +IPADDR_0="2001:db8::1" +PREFIXLEN_0="64" +TEAM_PORT_DEVICE_0="eth0" +TEAM_PORT_DEVICE_1="eth3" +This configuration describes a network bond using active transmit load balancing. Any load balancing that happens on incoming traffic is performed by the switch. + + +Run the following nmcli commands to configure a bonding interface (bond0), and add the Ethernet ports to it: + +&prompt.sudo; nmcli connection add type bond bond-options "...." \ +ifname bond0 con-name bond0 \ +ipv4.method manual ipv4.address 10.1.1.1/24 \ +ipv6.method manual ipv6.address 2001:db8::1/64 +&prompt.sudo; nmcli connection add type ethernet ifname eth0 con-name eth0 master bond0 +&prompt.sudo; nmcli connection add type ethernet ifname eth3 con-name eth3 master bond0 +&prompt.sudo; nmcli connection modify bond0 connection.autoconnect-slaves yes + +For the specific ifcfg-team0 example shown above, you can translate the LACP settings into options for the bond device shown as "..." as given below: + + +TX_BALANCER_NAME=basic indicates active load balancing. There is no other balancer in teamd, so this is actually redundant and can be ignored. + + +The protocol chosen for managing the bond needs to be provided to the kernel via the mode option. The TEAM_RUNNER variable above specifies LACP, the Link Aggregation Protocol. This is defined by IEEE 802.3ad, and that's also the name by which it is referred to in the kernel bond documentation. So the corresponding option is mode=802.3ad + + +The TX_HASH setting describes which headers are used to distribute outgoing packets to links. The bonding equivalent to the above settings is xmit_hash_policy=layer3+4 + +The TX_BALANCER_INTERVAL describes how frequently the status of the Ethernet ports is inspected (in milliseconds). The corresponding option is miimon=100. +The LW_NAME variable specifies the link watch method. The bonding driver can check the availability of a link using one of two methods; one, by using some generic ioctls, or by using the NIC driver's internal netif_carrier_ok logic. When LW_NAME is set to ethtool, choose use_carrier=0; otherwise, choose use_carrier=1. +When ethtool is used, the corresponding DELAY values can be translated to bonding options updelay; and downdelay, respectively. +So with all of the above together, the first nmcli command would use bond-options mode=802.3ad,miimon=100,xmit_hash_policy=layer3+4,use_carrier=0,updelay=10,downdelay=10.The resulting configuration is persistent, it activates whenever the system reboots. + + + + +Active-Passive setups using MII monitoring +This is another way of using is active-backup, where two or more Ethernet ports are used for redundancy in the face of network failures. Usually, each NIC is connected to a different switch in order to establish a separate network path. When the active link is failing, the connection will automatically fail over to the secondary port. +A typical ifcfg file for a teaming based active-backup setup would look like this (excluding the BOOTPROTO, IPADDR settings and so on from the example given above). +TEAM_RUNNER="activebackup" +TEAM_LW_NAME="ethtool" +TEAM_PORT_DEVICE_0="eth0" +TEAM_PORT_DEVICE_1="eth3" + + +Run the following command to migrate configurations to NetworkManager based bonding connections. + +The mode parameter needs to be set as mode=active-backup. +The link watch method chosen here is ethtool, which translated to miimon=100 use_carrier=0. + + + + +Active-Passive setups using ARP for link monitoring +The activebackup runner in teamd supports other link watch methods apart from ethtool; in particular, ARP pings. A typical configuration snippet would look like this: +TEAM_RUNNER="activebackup" +TEAM_LW_NAME="arp_ping" +TEAM_LW_ARP_PING_TARGET=10.1.2.3 +TEAM_LW_ARP_PING_INTERVAL=60 + + + +This is translated to bond-options mode=active-backup arp_ip_target=10.1.2.3 arp_interval=60. +Other link watch types supported by teams are not supported by the kernel bonding driver. In particular, if you are using nsna_ping, you need to change to using ARP pings. + + + +Managing Unused Interfaces +By default, NetworkManager manages all network interfaces available on the system. This may sometimes cause issues in some configurations. In this case, you can configure NetworkManager to not manage the NIC by adding them to /etc/NetworkManager/conf.d/unmanaged-devices.conf. +To ignore eth1 completely,including across reboots, add the following content to /etc/NetworkManager/conf.d/unmanaged-devices.conf: +[keyfile] +unmanaged-devices=interface-name:eth1 + + +
\ No newline at end of file