Wheelhouse docs

Bond two ports#

You will end up with two physical ports acting as one logical interface, negotiated with LACP. The reasons are redundancy — a cable can fail without the link going down — and, on some traffic mixes, throughput.

Before you start#

  • The operator role and a licence.
  • A switch configured for LACP on the matching ports, first. A bond whose partner is not running LACP does not fall back gracefully; it produces a link that appears up and loses traffic.
  • Console access, or a session that does not arrive on either port.

Step 1 — Create the bond#

Network → Interfaces → + Add interface, type Bond.

set interfaces bonding bond0 mode 802.3ad
set interfaces bonding bond0 member interface eth2
set interfaces bonding bond0 address 192.0.2.1/24
set interfaces bonding bond0 description 'uplink to core'

The panel writes mode 802.3ad — LACP — and takes one member. Add the second afterwards:

set interfaces bonding bond0 member interface eth3

Step 2 — Move the address and everything that named the port#

Exactly as for a bridge: take the address off the member, and update every rule, scope and service that named the physical port. Bridge two ports has the list, and it is the same list.

Check it worked#

The bond is up and both members are in it.

bash
show interfaces bonding bond0
cat /proc/net/bonding/bond0

The kernel's own file is the honest one: it names each member's LACP state. A member listed as down, or with a mismatched aggregator, is a switch that has not been configured.

The switch agrees. Diagnostics → Neighbours shows what LLDP neighbours announce on each port — See what the switch says it is. Two ports announcing the same switch and the same aggregation group is what you want to see.

Traffic survives a cable. Unplug one member and watch the Interfaces page counters keep moving on the other. Do this before you rely on it, not afterwards.

Undoing it#

delete interfaces bonding bond0
set interfaces ethernet eth2 address 192.0.2.1/24

Take the switch out of LACP at the same time, or the ports on that side will stay in a state nothing is answering.

See also#


Checked against ui/src/pages/Interfaces.tsx · ui/src/pages/Diagnostics.tsx

Updated 2026-09-02 bond lacp interfaces