OPCP - How to setup LACP on a Node
Objective
LACP configuration must be applied to the node before deploying an instance so that the network interfaces are properly aggregated.
This guide explains how to configure a node (physical server) in OPCP to enable LACP (Link Aggregation Control Protocol).
We will also see how to configure bonding (logical grouping of multiple network interfaces into a single virtual interface) within your instance to fully leverage LACP.
Standard users cannot setup LACP by themselves.
You must be an admin, or have available nodes in your OpenStack project.
It is recommended to setup LACP before deploying an instance.
This guide does not cover configuring a node that is already in production.
Why Use LACP?
LACP can be used in two specific use cases:
- Increase network capacity: By aggregating multiple network cards, you can add the bandwidth of each NIC to the aggregate, for the same networks.
- Increase resilience: Each OPCP server has 4×25 G interfaces and is connected to two network switches (A & B) to ensure resilience in case of hardware failure. LACP allows you to create virtual interfaces that remain available in the event of hardware failure by aggregating two NICs connected to different switches.
Requirements
Before starting, make sure you have the following:
- An active OPCP service.
- Configured OpenStack CLI access with the necessary permissions (
clouds.yamlor environment variables). - The admin role and/or transferred nodes within your project.
LACP is an advanced networking configuration requiring system and networking expertise. Apply this guide only if you are already familiar with: configuring nodes in OpenStack Ironic, managing ports in OpenStack Neutron, and using the OpenStack CLI.
Instructions
Node Configuration
1. List Nodes
The list of available nodes in your project can be displayed with the following command:
Example output:
2. Transfer Node Ownership (Admin Only)
An admin can transfer node ownership to a specific project:
3. List Network Ports
Each physical network interface card (NIC) of a node is represented in OpenStack as a port.
To list the ports associated with a node:
Example output:
To view detailed information about a port, including physical connection info:
This is particularly useful if you plan to configure a 2x2 LACP bonding, distributing NICs across two switches for better redundancy and fault tolerance.
Example output:
4. Enable Maintenance Mode
Before any network configuration change, the node must be placed in maintenance mode to prevent deployment during the operation:
5. Create a Port Group (LACP Bond)
A port group allows enabling LACP aggregation between multiple network interfaces.
You can create:
- a single port group for a 1×4 bond, or
- two port groups for 2×2 bonds.
Use the --mode 802.3ad parameter to enable LACP.
The --address <MAC> parameter must be equal to the MAC address of the PXE port only if it's being used. Otherwise, you can omit the parameter or set the MAC value from one of the physical interfaces you will use.
You can list all ports with openstack baremetal port list --node <node> --long and verify if PXE is used or not.
Note: We recommend prefixing the portgroup name with the node name for clearer identification when listing portgroups (e.g. <node-name>-<name>).
Example:
Example output:
6. Associate Ports to the Group
Each port on the node must be linked to the created port group:
Example:
7. Disable Maintenance Mode
Once configuration is complete, disable maintenance mode:
8. Create an Instance on the configured Node
After configuring your node with LACP, you can deploy an instance.
By default, OpenStack selects a host based on the flavor and scheduler rules, which doesn’t guarantee it will use the node you just configured.
To ensure your instance is deployed on that specific node, target it using its availability zone:
Example:
Summary of Steps
| Step | Action | Command |
|---|---|---|
| 1 | List nodes | openstack baremetal node list |
| 2 | Transfer ownership | openstack baremetal node set <node-id> --owner <tenant-id> |
| 3 | List ports | openstack baremetal port list --node <node-id> |
| 4 | Enable maintenance mode | openstack baremetal node maintenance set <node-id> |
| 5 | Create LACP group | openstack baremetal port group create --node <node-id> --name <port-group-name> --mode 802.3ad |
| 6 | Associate ports | openstack baremetal port set --port-group <port-group-id> <port-id> |
| 7 | Disable maintenance mode | openstack baremetal node maintenance unset <node-id> |
| 8 | Create instance | openstack server create --image <image-name> --nic net-id=<network-1> --flavor <flavor-id> --key-name <keypair-name> --availability-zone "nova::<node-id>" <instance-name> |
Instance Operating System Configuration
After configuring your node in OpenStack and deploying an OS, you need to configure networking to leverage bonding, which aggregates multiple NICs for higher performance and redundancy.
Check Bonding Configuration
On some images (like Debian 12 or Ubuntu 22.04), bonding is automatically detected and configured. However, other distributions may require manual adjustments.
1. Check Active Bonds
2. Check Member Interfaces
3. Check Transmit Hash Policy
To fully utilize available bandwidth, configure the policy to layer3+4 (some OSes default to layer2, which is less efficient).
For more information: Ubuntu Bonding Documentation.
Modify Configuration
1. Temporary Change (Non-Persistent)
To test your configuration manually:
Note: This configuration will reset on reboot.
2. Persistent Change (Example with Netplan and cloud-init)
Create the configuration file (e.g. /etc/cloud/cloud.cfg.d/99-custom-network.cfg) and include:
Then apply the configuration by rebooting the instance.
3. Test Bandwidth with iperf3
To properly test LACP, you need two nodes in the same network, both configured with LACP.
Iperf3 Server (Node 1)
Iperf3 Client (Node 2)
Use -P to generate multiple parallel streams to reach maximum throughput.
Example Result:
With a 4×25 Gbps link, you should achieve around 100 Gbps. Some system tuning might be required to fully reach this capacity.
Conclusion
You have successfully configured:
- LACP (802.3ad) at the OpenStack Baremetal node level;
- Bonding configuration within the guest OS;
- And validated network performance using
iperf3.
Your instance is now ready to leverage the full available bandwidth of the aggregated link.
Go further
If you need training or technical assistance for the implementation of our solutions, contact your sales representative or click this link to request a quote and have your project analyzed by our Professional Services team experts.
Join our community of users.