In Ubuntu, you can setup network bonding. Creating multiple LAN connections to create a single network is called Network Bonding. The objective of Network bonding is to increase bandwidth and improve redundancy. In case you don’t know, setting up Network bonding to improve your connection is very easy.
Network bonds work on both physical and virtual ethernet devices. This process also enables the network to avoid a single point of failure as it promotes data redundancy. Thus, it increases fault tolerance too.
In this article, we will cover how you can setup Network bonding in Ubuntu. In addition, this write up will serve as a guide on how to configure, verify and view bonding logs.
Advantages of Network Bonding
Apart from fault tolerance, increased throughput, and improved redundancy, a few other advantages of Network bonding are:
- Uninterrupted services
- Faster internet connections and bandwidth
- Easier to implement
- Software applications needed to set up Network bonding can be easily downloaded
Network Bonding Types
There are a total of 7 types of bonding modes. Each bonding mode provides a different networking policy and implementation. Let’s take a careful look at each one:
- balance-rr, mode=0: This mode is based on the Round Robin policy. It activates round robins for fault tolerance and load balancing.
- active-backup, mode=1: It is based on the Active-Backup policy and provides fault tolerance.
- balance-xor, mode=2: This mode performs XOR (exclusive-OR) operations on the source MAC addresses and destination MAC addresses.
- broadcast, mode=3: This mode utilizes broadcast policy in its implementation.
- 802.3ad, mode=4: It is based on Dynamic-Link Aggregation mode.
- balance-tlb, mode=5: This mode is based on adaptive transmission load balancing or Transmit Load Balancing (TLB). Specifically, this method determines the distribution of packets depending on the current load of the network node.
- balance-alb, mode=6: It is based on Adaptive or Active Load Balancing (ALB).
Prerequisites
For this guide, ensure that you have:
- Sudo access to the server
- More than two network interfaces available on Ubuntu
Setup Network Bonding in Ubuntu
In this tutorial, we will set up Network Bonding on the virtual LAN connections. The same process can be applied to the physical LAN connection. So, let’s get started!
1. Update the System
First, update all the packages and repositories to their latest versions. This is a crucial step before installing any new packages. In addition, it also ensures that there is no conflict between the versions of dependent packages. Execute the command given below:
sudo apt update && sudo apt upgrade
The output should look something like this:

2. Install the Network Bonding Module on Ubuntu
Second, install the Bonding Module on Ubuntu. It might already exist on your system. Hence, checking if the bonding driver is loaded first is necessary. To check if it is already installed, use the modprobe
command. For example:
sudo modprobe bonding
This command will load all the bonding modules. To verify the bonding module, use the lsmod
command. For instance, type:
sudo lsmod | grep bonding
On the other hand, you will have to install it if it is not available. For this step, use the install
command followed by the package name.
For instance:
sudo apt install ifenslave
You will get a similar output:

Next, enable the autoload. This will automatically activate all the modules on boot.
Type:
echo 'bonding' | sudo tee -a /etc/modules
3. Configure Network Bonding
There are two types of Network bonding: temporary and permanent. For now, we are configuring temporary bonding. This means the bonding will be lost after the system reboots.
Create a Temporary Network Bond on Ubuntu
To begin, check the ethernet interfaces on your system with the ip
command. For example:
ip a
You will get a similar output as this:
From the screenshot above, we can see that there are two ethernet interfaces. Next, ensure that both are disconnected. For this step, use the ifconfig
command. For example:
sudo ifconfig enp9s0 down
sudo ifconfig enp10s0 down
After that, create the network bond mode0.
Type:
sudo ip link add bond0 type bond mode 802.3ad
Next, add both the interfaces to it. For this step, use the ip link set
command. For example:
sudo ip link set enp9s0 master bond0
sudo ip link set enp10s0 master bond0
Restart the service. Specifically, type:
sudo systemctl restart networking.service
Lastly, verify the bond using the ip link
command. Specifically, type:
sudo ip link
The output should look something like this:

Finally, you have created a temporary bond successfully. Remember, it will not exist if you reboot the system.
Create a Permanent Network Bond on Ubuntu
Alternatively, if you want to create a permanent bond, edit the Netplan file. The file exists in the /etc/netplan
directory. Open the file using the editor of your choice. For example:
sudo vim /etc/netplan/00-installer-config.yaml
And then, add the following configuration in the installer-config
file:
network:
version: 2
ethernets:
enp9s0:
dhcp4: no
enp10s0:
dhcp4: no
bonds:
bond0:
interfaces: [enp9s0, enp10s0]
addresses: [192.168.205.100/24]
gateway4: 192.186.205.1
parameters:
mode: active-backup
transmit-hash-policy: layer3+4
mii-monitor-interval: 1
nameservers:
addresses:
- "8.8.8.8"
- "1.1.1.1"

Save the file and exit the editor. Next, stop both the ethernet interfaces. For this step, execute the commands given below:
sudo ifconfig enp9s0 down
sudo ifconfig enp10s0 down
After that, restart the network using the reboot
command. For example:
sudo reboot.
Lastly, apply the settings as shown below:
sudo netplan apply
Once a permanent bond is created, you can then start the Network bond using the ifconfig
command.
Input:
sudo ifconfig bond0 up
Also, verify that the bond is running correctly. Use the ifconfig
command for this step. Specifically, type:
sudo ifconfig bond0
You should get a similar output:

4. Get Details About the Network Bonding
To get details about the bond interface and display it on the console, use the cat
command.
Input:
cat /proc/net/bonding/bond0
You can also verify the bond interface using the verify
command. For example:
verify bond0 interface
5. Check Network Bonding Information in Ubuntu
In addition, you can also investigate the other bonding information and generate its log. For this step, type:
tail -f /var/log/messages
And that’s a wrap! You have covered an in-depth tutorial on how to set up Network bonding in Ubuntu. So now you know how to configure and get information about Network bonding. For more information on Binding and LAN interfaces, check out Linux kernel documentation.
We hope the article was useful to you. In case you have any queries, drop them in the comments section.
If this guide helped you, please share it.