Skip to content

Linux Network Bonding

Mattscreative edited this page Dec 5, 2025 · 2 revisions

Linux Network Bonding Guide

Complete beginner-friendly guide to network bonding on Linux, covering Arch Linux, CachyOS, and other distributions including bond creation, bond modes, and bond configuration.


Table of Contents

  1. Understanding Bonding
  2. Creating Bonds
  3. Bond Modes
  4. Bond Configuration
  5. Troubleshooting

Understanding Bonding

What is Bonding?

Network bonding combines multiple network interfaces into one logical interface.

Benefits:

  • Increased bandwidth
  • Fault tolerance
  • Load balancing

Common uses:

  • Servers with multiple NICs
  • High-availability setups
  • Performance optimization

Creating Bonds

Load Bonding Module

Load module:

# Load bonding module
sudo modprobe bonding

# Make permanent
echo "bonding" | sudo tee -a /etc/modules-load.d/bonding.conf

Create Bond

Using ip command:

# Create bond interface
sudo ip link add bond0 type bond

# Bring up bond
sudo ip link set bond0 up

Using systemd-networkd:

# Create bond config
sudo vim /etc/systemd/network/bond0.netdev

Add:

[NetDev]
Name=bond0
Kind=bond

[Bond]
Mode=active-backup

Bond Modes

Bond Mode Options

Available modes:

  • mode=0 (balance-rr): Round-robin

  • Transmits packets in round-robin fashion

  • Provides load balancing

  • mode=1 (active-backup): Active-backup

  • One interface active, others backup

  • Provides fault tolerance

  • mode=4 (802.3ad): LACP

  • Requires switch support

  • Provides aggregation

  • mode=6 (balance-alb): Adaptive load balancing

  • Provides load balancing and fault tolerance

Set Bond Mode

Configure mode:

# Set mode
sudo ip link set bond0 type bond mode active-backup

# Or in config
sudo vim /etc/systemd/network/bond0.netdev

Add:

[Bond]
Mode=active-backup

Bond Configuration

Add Interfaces

Add to bond:

# Add interface
sudo ip link set eth0 master bond0
sudo ip link set eth1 master bond0

# Or in config
sudo vim /etc/systemd/network/eth0.network

Add:

[Match]
Name=eth0

[Network]
Bond=bond0

Configure Bond IP

Set IP address:

# Using systemd-networkd
sudo vim /etc/systemd/network/bond0.network

Add:

[Match]
Name=bond0

[Network]
DHCP=yes
# Or static
# Address=192.168.1.100/24
# Gateway=192.168.1.1

Troubleshooting

Bond Issues

Check bond:

# Check bond status
cat /proc/net/bonding/bond0

# Check interfaces
ip link show master bond0

# Check bond state
ip link show bond0

Interface Not Working

Verify:

# Check interface
ip link show eth0

# Check bond membership
cat /proc/net/bonding/bond0

# Re-add if needed
sudo ip link set eth0 master bond0

Summary

This guide covered network bonding for Arch Linux, CachyOS, and other distributions, including creation, modes, configuration, and troubleshooting.


Next Steps


This guide covers Arch Linux, CachyOS, and other Linux distributions. For distribution-specific details, refer to your distribution's documentation.

Clone this wiki locally