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