Is NIC teaming deprecated in 9.1?

Hi there,
I was about to setup NIC teaming on Rocky Linux 9.1 (Blue Onyx) but noticed that teaming is deprecated on RHEL 9. As Rocky Linux is a down stream of RHEL, is this applicable to Rocky Linux 9.1 as well? If so, what are the steps for NIC bonding? Will someone be able to put me in right direction please? Thanks in advance.

Yes. Rocky is basically: 1. Take RHEL sources, 2. sed s/RH/Rocky/, 3. Build packages
If Red Hat drops something out of RHEL sources, then Rocky won’t have it either.

I’d guess that the upstream future development for bond looks more sustained than for teams.

Red Hat does have documentation for bonds:

Thanks for the feedback @jlehtone. I have gone through the above documentation, sorry I’m naive to Linux, bridges already exist in the example, but, in my instance, I don’t have them. I have been googling but everywhere talks about using network scripts (/etc/sysconfig/network-scripts/). So do I need to create bridges as well? If the answer is yes, why do I need two bridges? I didn’t get 3.ii in the article exactly. Will you please advise? thanks in advance.

That system was around a long time and has been only relatively recently replaced with NetworkManager.
Until el8 the NM did still default to use the legacy syntax of network-scripts.
That is why there are so many “old guides” and not much pressure has been on writing new.

No. You should know if you have a need for a bridge (a “virtual network switch”).
I’d guess that guide writers had virtualization host and wanted to show that you can trunk multiple VLANs through bond to guests (with bridged networking).

Perhaps section 9.9. Configuring a network bond using RHEL System Roles has most benefits: Chapter 9. Configuring network bonding Red Hat Enterprise Linux 9 | Red Hat Customer Portal

One needs couple packages:

$ sudo dnf install ansible-core rhel-system-roles

Then a playbook, bond-ethernet.yml:

---
- name: Configure the network
  hosts: localhost
  tasks:
  name: Configure a network bond that uses two Ethernet ports
  - include_role:
      name: rhel-system-roles.network

    vars:
      network_connections:
        # Define the bond profile
        - name: bond0
          type: bond
          interface_name: bond0
          ip:
            dhcp4: true
            auto6: false
          bond:
            mode: active-backup
          state: up

        # Add an Ethernet profile to the bond
        - name: bond0-port1
          interface_name: enp7s0
          type: ethernet
          controller: bond0
          state: up

        # Add a second Ethernet profile to the bond
        - name: bond0-port2
          interface_name: enp8s0
          type: ethernet
          controller: bond0
          state: up

This bond will use DHCP to configure IPv4 and not set up IPv6. Change the config to match your system/needs. See the RHEL doc and Ansible Galaxy for more details.

Then apply the config:

$ ansible-playbook bond-ethernet.yml --become

The nice part is that you can run it again and it will not make further changes (unless necessary).
Make a backup of this (and other plays) and you then you have all config “at hand”, should you need to make a fresh (re)install.