---
title: "How to configure LACP link aggregation on Debian 9 to 11 (ifupdown)"
description: "Configure LACP link aggregation on your Debian 9 to 11 server using ifupdown"
url: https://docs.ovhcloud.com/en/guides/bare-metal-cloud/dedicated-servers/lacp-enable-ifupdown
lang: en
lastUpdated: 2026-07-01
---
# How to configure LACP link aggregation on Debian 9 to 11 (ifupdown)

## Objective

Link aggregation increases your server's availability and boosts the efficiency of your network connections. By bonding your network interfaces, you make your network links redundant: if one link goes down, traffic is automatically redirected to another available link. The available bandwidth is also increased thanks to aggregation.
Aggregation is based on IEEE 802.3ad, Link Aggregation Control Protocol (LACP) technology.

**This guide explains how to configure LACP link aggregation on Debian 9 to 11 (ifupdown configuration).**

:::warning
This guide provides instructions for configuring network interface bonding specifically using `ifupdown`, whose configuration file is located at `/etc/network/interfaces`. It also applies to the rescue system.

If your system's network configuration uses `Netplan` instead (Debian 12 or newer, Ubuntu 24.04 or newer), please refer to [this guide](/en/guides/bare-metal-cloud/dedicated-servers/lacp-enable-netplan.md).

:::

## Requirements

- A dedicated server with multiple network interfaces. On Scale and High Grade ranges, the public and private aggregations are enabled by default. On other ranges, you must first [enable OLA](/en/guides/bare-metal-cloud/dedicated-servers/ola-enable-manager.md) to aggregate your interfaces.


***

### OVHcloud Control Panel Access

- **Direct link:** <ManagerLink to="/#/dedicated-servers/server">Dedicated Servers</ManagerLink>
- **Navigation path:** <code className="action">Bare Metal Cloud</code> > <code className="action">Dedicated servers</code> > Select your server

***


:::warning
You will need to install the `ifenslave` package on the server before configuring interface bonding. To do so, please use the following command:

```
apt install ifenslave
```

:::

If you are configuring a fully-private aggregation (OLA), the server will no longer have public connectivity and you will be unable to SSH into it. In any case, your connection may drop while the bond is being configured, so we recommend using the IPMI/KVM console to access the server.

Click the `IPMI
` tab (1).
Next, click the `From a Java applet (KVM)
` button (2).
![remote kvm](/images/bare-metal-cloud/dedicated-servers/lacp-enable-ifupdown/remote_kvm2022.png)
A JNLP program will download. Open the program to enter the IPMI. Log in using valid credentials for the server.

By default, using an OVHcloud template, the NICs will be named either _ethX_ or _enoX_. If you are not using an OVHcloud template, you can find the names of your interfaces using the following command:

```bash
ip a
```

:::info
This command will yield numerous "interfaces." If you are having trouble determining which ones are your physical NICs, the first interface will still have the server's public IP address attached to it by default.

:::

To retrieve the names of the interfaces, execute the following command:

```bash
ip a
```

:::info
For the `hwaddress` parameter, use the MAC address of the bond's LACP fallback interface. For a public bond, you can obtain it from the `aggregationFallback` field of the `public` interface returned by the following API route:


🇪🇺EU▾

[GET/dedicated/server/{serviceName}/networking](https://eu.api.ovh.com/console/?section=/dedicated/server&branch=v1#get-/dedicated/server/-serviceName-/networking)

:::

Here's an output example:

```text
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: ens22f0np0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether a1:b2:c3:d4:e5:c6 brd ff:ff:ff:ff:ff:ff
    inet 203.0.113.1/32 metric 100 scope global dynamic ens22f0np0
       valid_lft 71613sec preferred_lft 71613sec
    inet6 2001:db8:1:1b00:203:0:112:0/56 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::a6b2:c3ff:fed4:e5c6/64 scope link
       valid_lft forever preferred_lft forever
3: ens22f1np1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether a1:b2:c3:d4:e5:c7 brd ff:ff:ff:ff:ff:ff
4: ens33f0np0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether a1:b2:c3:d4:e5:d6 brd ff:ff:ff:ff:ff:ff
5: ens33f1np1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether a1:b2:c3:d4:e5:d7 brd ff:ff:ff:ff:ff:ff
```

Once you have determined the names of your interfaces, you can configure interfaces bonding in the OS.

### Configuring interface bonding

Select the tab below that matches your server configuration:

- **Two interfaces**: Advance servers with two physical NICs.
- **Four interfaces (default)**: Scale and High Grade servers ship with separate public and private bonds already configured. No action in the OVHcloud Control Panel is required.
- **Four interfaces (fully private / OLA)**: all interfaces combined into a single private (vRack) bond. This requires [enabling OLA](/en/guides/bare-metal-cloud/dedicated-servers/ola-enable-manager.md) in the OVHcloud Control Panel.


**Two interfaces**

Replace the content of `/etc/network/interfaces` with the following:
```bash
auto bond0
iface bond0 inet static
  address 203.0.113.1/32
  gateway 100.64.0.1
  # MAC address of the server's main public interface
  hwaddress ether a1:b2:c3:d4:e5:c6
  bond-mode 802.3ad
  bond-slaves ens22f0np0 ens22f1np1
  bond-lacp-rate fast
  bond-xmit_hash_policy layer3+4
  dns-nameservers 213.186.33.99

  up ip -6 addr add 2001:db8:1:1b00:203:0:112:0/56 dev bond0
  up ip -6 route add default via fe80::1 dev bond0
```

DHCP

```bash
auto bond0
iface bond0 inet dhcp
  # MAC address of the server's main public interface
  hwaddress ether a1:b2:c3:d4:e5:c6
  bond-mode 802.3ad
  bond-slaves ens22f0np0 ens22f1np1
  bond-lacp-rate fast
  bond-xmit_hash_policy layer3+4

  up ip -6 addr add 2001:db8:1:1b00:203:0:112:0/56 dev bond0
  up ip -6 route add default via fe80::1 dev bond0
```


**Four interfaces (default)**

This configuration bonds public interfaces into `bond0` (with public IP) and private interfaces into `bond1` (for vRack).
Replace the content of `/etc/network/interfaces` with the following:
**Static IP**
```bash
auto bond0
iface bond0 inet static
  address 203.0.113.1/32
  gateway 100.64.0.1
  # MAC address of the server's main public interface
  hwaddress ether a1:b2:c3:d4:e5:c6
  bond-mode 802.3ad
  bond-slaves ens22f0np0 ens22f1np1
  bond-lacp-rate fast
  bond-xmit_hash_policy layer3+4
  dns-nameservers 213.186.33.99

  up ip -6 addr add 2001:db8:1:1b00:203:0:112:0/56 dev bond0
  up ip -6 route add default via fe80::1 dev bond0

# Optional: private bond configuration
auto bond1
iface bond1 inet static
  address 10.0.0.1/24
  # MAC address of the server's main private interface
  hwaddress ether a1:b2:c3:d4:e5:d6
  bond-mode 802.3ad
  bond-slaves ens33f0np0 ens33f1np1
  bond-lacp-rate fast
  bond-xmit_hash_policy layer3+4
```

DHCP

```bash
auto bond0
iface bond0 inet dhcp
  # MAC address of the server's main public interface
  hwaddress ether a1:b2:c3:d4:e5:c6
  bond-mode 802.3ad
  bond-slaves ens22f0np0 ens22f1np1
  bond-lacp-rate fast
  bond-xmit_hash_policy layer3+4

  up ip -6 addr add 2001:db8:1:1b00:203:0:112:0/56 dev bond0
  up ip -6 route add default via fe80::1 dev bond0

# Optional: private bond configuration
auto bond1
iface bond1 inet static
  address 10.0.0.1/24
  # MAC address of the server's main private interface
  hwaddress ether a1:b2:c3:d4:e5:d6
  bond-mode 802.3ad
  bond-slaves ens33f0np0 ens33f1np1
  bond-lacp-rate fast
  bond-xmit_hash_policy layer3+4
```


**Four interfaces (fully private / OLA)**

This configuration aggregates all physical interfaces into a single bond for vRack use only. There is no public IP connectivity.
:::warning
Once OLA (fully private) is enabled, the public IP is no longer accessible. Make sure you have an alternative means of access (e.g. through another server in the vRack, or via KVM/IPMI) before applying this configuration.
:::
Replace the content of `/etc/network/interfaces` with the following:
```bash
auto bond0
iface bond0 inet static
  address 10.0.0.1/24
  # MAC address of the server's main private interface
  hwaddress ether a1:b2:c3:d4:e5:d6
  bond-mode 802.3ad
  bond-slaves ens22f0np0 ens22f1np1 ens33f0np0 ens33f1np1
  bond-lacp-rate fast
  bond-xmit_hash_policy layer3+4
```
:::info
In the fully-private (OLA) configuration, the bond uses the MAC address of the **main private** interface. The `address` field should be set to your vRack private IP.
:::


### Applying the configuration

Apply the configuration by restarting the networking daemon:

```bash
systemctl restart networking
```

This restart may take several seconds since it is building the bond interface. To test that the bond is working, ping another server on the same vRack. If it works, you are all set. If it does not, double-check your configurations or try rebooting the server.

## Go further

[Configuring OVHcloud Link Aggregation (OLA) in the OVHcloud Control Panel](/en/guides/bare-metal-cloud/dedicated-servers/ola-enable-manager.md)

[How to configure LACP link aggregation on Debian 12 or newer / Ubuntu 24.04 or newer (Netplan)](/en/guides/bare-metal-cloud/dedicated-servers/lacp-enable-netplan.md)

[How to configure NIC teaming for OVHcloud Link Aggregation (OLA) on Windows Server 2019](/en/guides/bare-metal-cloud/dedicated-servers/ola-enable-w2k19.md)

[How to configure LACP link aggregation on SLES 15](/en/guides/bare-metal-cloud/dedicated-servers/lacp-enable-sles15.md)

Join our [community of users](https://community.ovhcloud.com/).
