Introduction
In this article, we’ll look at how to set up LACP bonding on a server running CentOS 8. LACP bonding uses the Link Aggregation Control Protocol to combine two network interfaces into one logical interface. Today, we’ll use it to combine two ethernet interfaces. This is useful to increase the throughput from each ethernet device and to provide for a way to failover if there’s an error with one of the devices.
Prerequisites
- A Cloud VPS or Dedicated Server with CentOS 8 installed.
- The network switch of your server must be set up for a successful procedure
- Two active physical network interface connected to your switch
- You must be logged in via SSH as sudo or root user. This tutorial assumes that you are logged in as a sudo user.
Step 1: Log in using SSH
You must be logged in via SSH as sudo or root user. Please read this article for instructions if you don’t know how to connect.
Step 2: Disable NetworkManager
Within a server environment, we prefer to disable NetworkManager. These instructions won’t work if NetworkManager is enabled!
systemctl stop NetworkManager.service systemctl disable NetworkManager.service
Once the NetworkManager is disabled remove it
sudo yum -y remove NetworkManager NetworkManager-libnm NetworkManager-team NetworkManager-tui NetworkManager-wifi
Step 3: Load kernel module
The bonding module is not loaded by default in CentOS 8. We need to load it manually.
sudo modprobe bonding
To ensure that the kernel module bonding is loaded during boot we need to add the module into the modules configuration file
sudo su -c 'echo "bonding" >> /etc/modules'
Step 4: Find the active network interface
clear && echo $(ip -o -4 route get 8.8.8.8 | sed -nr 's/.*dev ([^\ ]+).*/\1/p')
Step 5: Create the bonding interface
Create a new bonding configuration file
sudo nano /etc/sysconfig/network-scripts/ifcfg-bond0
Add the following lines to the bonding configuration file
DEVICE=bond0 Type=Bond NAME=bond0 BONDING_MASTER=yes BOOTPROTO=none ONBOOT=yes IPADDR=192.168.1.10 PREFIX=24 GATEWAY=192.168.1.1 NM_CONTROLLED=no BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"
Step 6: Configure the network interface
In our article, we use eno1 and eno2 for the network interfaces. In your server environment, the network interface can be different. You have to use the network interface name you get back from step 4.
Edit the configuration file of network interface eno1
sudo nano /etc/sysconfig/network-scripts/ifcfg-eno1
Replace the configuration file with these lines
DEVICE=eno1 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes NM_CONTROLLED=no IPV6INIT=no MASTER=bond0 SLAVE=yes
Edit the configuration file of network interface en2
sudo nano /etc/sysconfig/network-scripts/ifcfg-eno2
Replace the configuration file with these lines
DEVICE=eno2 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes NM_CONTROLLED=no IPV6INIT=no MASTER=bond0 SLAVE=yes
Step 7: Reboot
sudo reboot
Conclusion
Congratulations, you have set up LACP (IEEE 802.3ad) bonding on your CentOS 8 server.
JW says
You forgot to add network-scripts before removing NetworkManager, that creates a problem. Wonder if that's why the dislikes