Configure bond + VLAN + bridge
This lab builds the standard production networking stack: LACP bond under a VLAN-aware bridge.
Steps
1. Inspect current state
ip link show
cat /etc/network/interfaces
2. Configure the bond
Replace /etc/network/interfaces with:
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet manual
auto eno2
iface eno2 inet manual
auto bond0
iface bond0 inet manual
bond-slaves eno1 eno2
bond-miimon 100
bond-mode 802.3ad
bond-xmit-hash-policy layer3+4
auto vmbr0
iface vmbr0 inet static
address 10.0.0.11/24
gateway 10.0.0.1
bridge-ports bond0
bridge-vlan-aware yes
bridge-vids 10 20 30
bridge-stp off
Reload:
ifreload -a
3. Configure the upstream switch
On your switch, enable LACP on the corresponding ports. The exact syntax depends on the vendor:
- Cisco:
channel-group 1 mode active - Arista:
channel-group 1 mode active - Juniper:
set interfaces ge-0/0/X ether-options 802.3ad ae0 - Linux bridge peer: same
bond-mode 802.3adon the other side
4. Verify the bond
cat /proc/net/bonding/bond0
# Look for "MII Status: up" on both slaves and "Partner Mac Address" set
5. Verify VLAN forwarding
bridge vlan show
# Should show vmbr0 with vid 10, 20, 30 listed
6. Test throughput
On a second host on the same L2:
iperf3 -s # Server
iperf3 -c 10.0.0.11 # Client
You should see aggregate throughput close to the sum of both NICs.
Verification
cat /proc/net/bonding/bond0shows both slaves active and aggregated- A VM using
vmbr0withtag=20reaches the gateway at 10.0.0.1 - iperf3 reports near line-rate on the bond
- No errors on the switch ports (no dropped LACP PDUs)
Cleanup
Restore the previous /etc/network/interfaces or remove the bond with:
ifdown vmbr0
ifdown bond0