Introduction
LACP (Link Aggregation Control Protocol), also known as link aggregation, is a technology that combines multiple physical network links into a single logical connection. This increases available bandwidth beyond that of a single physical link and provides redundancy if one of the links fails.
This guide explains how to configure Dedicated Server ports and devices hosted in the MasterDC data center as part of the Server Housing service to use dual connectivity in LACP mode.
Requirements for a Working LACP Configuration
For dual connectivity to work correctly, the configuration on your server must match the configuration on the MasterDC switch. Otherwise, the LACP bond will not function properly.
Always follow the instructions in this guide and use the LACP Rate value provided when your Dedicated Server or Server Housing service was provisioned.
On Linux systems, you can also configure the distribution of outgoing traffic using the xmit_hash_policy parameter.
About the LACP Rate Parameter
When configuring LACP on your server, you will encounter the Rate parameter (sometimes called the LACP Timer). This parameter determines how often your server exchanges LACP control frames with the switch in the MasterDC data center.
You will receive the required value for this parameter when your Dedicated Server or Server Housing service is provisioned. The parameter can have one of two values:
- Fast – the server sends control packets every second. This allows a failed link to be detected quickly and traffic to be redirected to a working link within approximately 3 seconds.
- Slow – the server sends control packets every 30 seconds. In the event of a link failure, traffic redirection may take up to 90 seconds.
About the xmit_hash_policy Parameter
On Linux systems, the xmit_hash_policy parameter determines how outgoing traffic is distributed across the physical links in an LACP bond.
For the purposes of this guide, we will focus on the following two options:
layer2– distributes traffic based only on the MAC addresses of the communicating devices. In some situations, this may result in uneven utilisation of the available links.layer2+3– distributes traffic based on both MAC and IP addresses. This typically results in more efficient load distribution across the physical links in the bond.
At MasterDC, we recommend using layer2+3. The configuration examples below already reflect this recommendation. If you do not wish to use xmit_hash_policy, you may remove it from the configuration.
Configuring LACP on Linux
RHEL, CentOS, Rocky Linux, AlmaLinux and Fedora
On RHEL-based distributions, network configuration is managed using NetworkManager and the nmcli command.
Enable Bonding
If bonding is not already enabled, load the bonding module using:
modprobe bondingConfigure the Network
- Create the main virtual interface (bond0). The following command enables LACP (mode 4). For the lacp_rate= parameter, use either 0 or 1 (0 for slow, 1 for fast) according to the instructions provided by MasterDC when the service was provisioned.
nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=4,miimon=100,lacp_rate=[0 or 1],xmit_hash_policy=layer2+3"Síťovou konfiguraci (IP adresu, gateway apod.) následně nastavujte na rozhraní bond0.
- Add the physical network interfaces connected to MasterDC switches with an LACP bond configured (for example eno1 and eno2):
nmcli connection add type ethernet con-name bond0-port1 ifname eno1 master bond0
nmcli connection add type ethernet con-name bond0-port2 ifname eno2 master bond0
Debian
On Debian, you must first install a supporting package and then modify two configuration files.
Install the ifenslave Package
Install the ifenslave package, which enables network interface bonding:
apt-get install ifenslaveEnable Bonding
Open the /etc/modules file and add the bonding module parameters. Set lacp_rate to either 0 or 1 (0=slow, 1=fast) according to the instructions for your service:
bonding mode=4 miimon=100 lacp_rate=[0 or 1]Configure the Network
Open /etc/network/interfaces and add the following configuration. Use the same value (0 or 1) for bond-lacp-rate as in the previous step. Replace eno1 and eno2 with the actual interface names if necessary.
auto eth0
iface eno1 inet manual
bond-master bond0
auto eth1
iface eno2 inet manual
bond-master bond0
auto bond0
iface bond0 inet static
...
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate [0 or 1]
bond-xmit-hash-policy layer2+3
bond-slaves noneUbuntu
Enable Bonding
Open the /etc/modules configuration file and add the following line to ensure the bonding module is loaded correctly. Set lacp_rate to 0 or 1 according to the instructions for your service:
bonding mode=4 miimon=100 lacp_rate=[0 or 1]Configure the Network
Recent Ubuntu releases use Netplan for network management. Configuration is stored in YAML format in a file located in /etc/netplan/.
A clean Ubuntu installation usually includes a pre-created file such as 00-installer-config.yaml. Open this file and replace its contents with the following configuration.
fast (for value 1) or slow (for value 0), not as a numeric value. Replace eno1 and eno2 with the actual interface names if required.network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: no
eno2:
dhcp4: no
bonds:
bond0:
interfaces:
- eno1
- eno2
parameters:
mode: 802.3ad
mii-monitor-interval: 100
lacp-rate: [fast or slow]
transmit-hash-policy: layer2+3After saving the file, apply the configuration:
netplan applyGentoo
To configure LACP on Gentoo, modify the network configuration file.
- Open /etc/conf.d/net and update it as shown below. Set lacp_rate to 0 or 1 according to the instructions for your service:
config_eno1=( "null" )
config_eno2=( "null" )
slaves_bond0="eno1 eno2"
config_bond0=( "IP_ADDRESS/MASK" )
bond_bond0=( "mode=4" "miimon=100" "lacp_rate=[0 OR 1]" "xmit_hash_policy=layer2+3" ) - Change to the network scripts directory:
cd /etc/init.d - Create a startup symlink for the new bond0 interface:
ln -s net.lo net.bond0 - Disable automatic startup of the original network interface. This prevents the system from starting the interface independently after a reboot and interfering with the bond.
rc-update del net.eno1 default - Add the new bonded interface to automatic startup:
rc-update add net.bond0 default - Finally, activate the new interface:
/etc/init.d/net.bond0 start
You can verify the bond status using:
cat /proc/net/bonding/bond0Configuring LACP on Windows
- Launch the Network Adapter Teaming console by running LbfoAdmin.exe. Press Win+R, enter LbfoAdmin.exe, and press Enter.
- In the lower-right section, Adapters and Interfaces, select an available network interface that will become part of the LACP team. Right-click it and select Add to New Team.
- In the new window, select the interfaces that will be included in the LACP team.
- Under Additional Properties, configure the following:
- Teaming mode: LACP
- Load balancing mode: Dynamic
The LACP timer must be configured in PowerShell. Unlike Linux, the value is specified as Fast or Slow, not as a number.
- Run PowerShell as Administrator and enter:
Get-NetLbfoTeam | select Name, LacpTimer - The command displays the team name and the current timer setting, for example:Name LacpTimer
—- ———
Team01 Fast - Based on the instructions provided when your service was provisioned, run one of the following commands. (replace Team01 with the actual name of your team).
Set-NetLbfoTeam -Name "Team01" -LacpTimer Slowor
Set-NetLbfoTeam -Name "Team01" -LacpTimer Fast
During team creation and when changing the timer setting in PowerShell, network connectivity will be briefly interrupted (typically for a few seconds) while the network interfaces resynchronise with the switch.