This guide details the process of configuring an interface using Network Manager (nmtui). Creating an interface or bond will be covered.
Types of bonds: Round-robin, Active-backup, XOR, Broadcast, 802.3ad (LACP, needs switch support), Adaptive Transmit Load Balancing and Adaptive Load Balancing.
Server running Ubuntu 20.04 or Centos 7
Network Manager Installed (nmtui)
- In the terminal run the following command to check the interface names you wish to configure:
- For this example we will configure interface “eno1”
- Now to open up the network manager run this command in the terminal:
- It will bring up this UI. Click “Edit a Connection”.
- Now you can click “Add”, then “Ethernet” or the type you are trying to configure.
- Fill in the information, as seen below. Make sure to make the IPvX manually set.
- Once the interface is made you will need to go back to the “Activate a Connection”. Then deactivate then reactivate the connection to ensure it has been established.
- Once competed you can go “Quit” out of the UI, and run the command “ip a” again to ensure the IP is established on the network interface .
Creating a Bond
- Run the command “ip a” to confirm the name of the interfaces you wish to bond together. For this example we will be bonding interfaces enp2s0f0 and enp2s0f1 together.
- In the Network Manager UI (“nmtui” command in the terminal), you can add a connection as a bond.
- Now you can add the interfaces from the previous steps to the bond. Repeat for all interfaces you wish to bond together.
- Now choose a bond type.
- Like the single interface step, you will need to configure the IPvX settings. Once done you can click “ok” to create the bond.
- Now go to the “Activate a Connection” tab and deactivate and reactivate the connection to establish the bond.
- Run “ip a” in the terminal to confirm the bond has been created.
To test the bond we can download an application called iperf. Iperf is used to determine the max theoretical bandwidth. Iperf is a commonly used network testing tool that can create Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) data streams and measure the throughput of a network that is carrying them.
yum install iperf -y ip a #to determine the IP address of the nodes that will be used to perform the test iperf -s #to use one of the nodes as an iperf "server". The bond on this unit is the one that will be stress tested. iperf -c [Iperf Server IP] #to connect to the server as a client. This will initiate the bandwidth test.
apt install iperf -y ip a #to determine the IP address of the nodes that will be used to perform the test iperf -s #to use one of the nodes as an iperf "server". The bond on this unit is the one that will be stress tested. iperf -c [Iperf Server IP] #to connect to the server as a client. This will initiate the bandwidth test.
The output looks like this:
(NOTE: These example images are done without a Network Bond and only display the proper usage of the command. Results will vary.)