Network bonding (also called link aggregation or NIC teaming) combines two or more network interfaces into one logical interface. Done right, a cable, port or switch failure doesn’t take the server offline, and some modes also increase total throughput.

Where bonding applies: bonding needs multiple physical network ports, so it’s a dedicated server or on-premises technique. A VPS normally has a single virtual NIC; redundancy is handled by the host’s network.

Bonding modes

Mode Name Needs switch config What it does
0 balance-rr Usually Round-robin packets across links — can reorder packets
1 active-backup No One link active, the other takes over on failure
2 balance-xor Yes (static) Hash-based distribution
3 broadcast — Sends everything on all links (rare)
4 802.3ad (LACP) Yes, LACP Standard link aggregation; redundancy + combined throughput
5 balance-tlb No Adaptive transmit load balancing
6 balance-alb No Adaptive transmit and receive load balancing

The two you’ll use most:

  • active-backup (mode 1): simplest and works with any switch — pure redundancy.
  • 802.3ad / LACP (mode 4): redundancy plus aggregate bandwidth across many connections; the switch ports must be configured as an LACP group.

A single TCP connection never exceeds the speed of one link in LACP; the gain comes from many parallel connections.

Before you start

  • Use the server’s out-of-band console (IPMI/iDRAC/iLO, or your provider’s KVM) — a mistake can drop all network access.
  • Find interface names: ip -br link (e.g. eno1, eno2).
  • For LACP, ask your provider or network team to configure the switch ports.

Ubuntu: Netplan

/etc/netplan/01-bond.yaml:

network:
  version: 2
  ethernets:
    eno1: {}
    eno2: {}
  bonds:
    bond0:
      interfaces: [eno1, eno2]
      addresses: [203.0.113.20/24]
      routes:
        - to: default
          via: 203.0.113.1
      nameservers:
        addresses: [1.1.1.1, 8.8.8.8]
      parameters:
        mode: active-backup        # or 802.3ad
        primary: eno1
        mii-monitor-interval: 100
        # for 802.3ad:
        # lacp-rate: fast
        # transmit-hash-policy: layer3+4
netplan try      # applies with automatic rollback if you lose access
netplan apply

Debian: ifupdown

apt install -y ifenslave

/etc/network/interfaces:

auto bond0
iface bond0 inet static
    address 203.0.113.20/24
    gateway 203.0.113.1
    bond-slaves eno1 eno2
    bond-mode active-backup
    bond-primary eno1
    bond-miimon 100

Remove any separate iface eno1/eno2 stanzas, then systemctl restart networking (from the console).

AlmaLinux / Rocky: NetworkManager

nmcli con add type bond con-name bond0 ifname bond0 \
  bond.options "mode=active-backup,miimon=100,primary=eno1" \
  ipv4.method manual ipv4.addresses 203.0.113.20/24 ipv4.gateway 203.0.113.1 ipv4.dns "1.1.1.1"
nmcli con add type ethernet con-name bond0-eno1 ifname eno1 master bond0
nmcli con add type ethernet con-name bond0-eno2 ifname eno2 master bond0
nmcli con up bond0

Check the bond

cat /proc/net/bonding/bond0

Look for the bonding mode, MII Status: up for each slave, and (for active-backup) the Currently Active Slave. For LACP, check that both slaves share the same aggregator ID.

Test failover

From another machine, run a continuous ping to the server. Then on the console:

ip link set eno1 down
cat /proc/net/bonding/bond0    # active slave should switch to eno2
ip link set eno1 up

The ping should lose at most a packet or two.

Troubleshooting

  • LACP bond up but no traffic — switch ports not in an LACP group, or mismatched LACP rate.
  • Only one link used — expected for a single flow; use layer3+4 hashing for more spread.
  • Duplicate packets or MAC flapping alerts — mode 0 or 2 without matching switch config; use active-backup or LACP.

If you need bonding on one of our dedicated servers, contact the sales team before ordering to check whether a second uplink is available for your configuration. For network basics, see Debian network configuration.

  • Networking
  • Linux
  • Dedicated Servers