Blog

Linux Network Bonding: configurare la ridondanza e il bilanciamento del carico delle interfacce di rete

Dario Fadda Giugno 3, 2026

Cos’è il Network Bonding su Linux?

Il network bonding (detto anche NIC bonding, link aggregation o NIC teaming) è una tecnica che consente di unire due o più interfacce di rete fisiche in un’unica interfaccia logica. Il risultato? Maggiore larghezza di banda, ridondanza contro i guasti, o entrambi — a seconda della modalità scelta.

Il kernel Linux gestisce tutto questo tramite il modulo bonding, disponibile di default in quasi tutte le distribuzioni moderne. L’interfaccia bond appare al sistema operativo e alle applicazioni come una singola NIC: tutto il traffico la attraversa in modo trasparente.

Importante: il bonding non è la stessa cosa del bridging. Un bridge connette segmenti di rete separati; il bonding aggrega più interfacce in una sola. Scopo diverso, configurazione diversa. Inoltre, le interfacce Wi-Fi generalmente non sono compatibili con il bonding — i driver wireless non supportano la modalità promiscua e la manipolazione dei MAC address che il bonding richiede. Usate esclusivamente NIC Ethernet cablate.

Le 7 modalità di bonding

La scelta della modalità è la decisione più importante nell’intera configurazione. Ecco una panoramica pratica:

Mode 0 — Round-Robin (balance-rr)

I pacchetti vengono trasmessi in sequenza su tutte le interfacce. Offre bilanciamento del carico e tolleranza ai guasti, ma richiede una configurazione di static link aggregation sullo switch. Senza di essa si verificano pacchetti fuori sequenza e prestazioni scadenti.

Mode 1 — Active-Backup

Una sola interfaccia è attiva alla volta. Se quella attiva cade, subentra immediatamente una di riserva. Non richiede configurazione sullo switch: è la modalità più sicura e compatibile. Usatela se il vostro obiettivo è la pura ridondanza.

Mode 4 — 802.3ad (LACP)

Link Aggregation dinamica secondo lo standard IEEE 802.3ad. Richiede uno switch gestito con LACP abilitato. È la modalità più usata in ambienti enterprise: se il vostro switch lo supporta, questa è la scelta per la produzione.

Mode 6 — Balance-ALB

Bilancia sia il traffico in uscita sia quello in entrata tramite negoziazione ARP. Non richiede configurazione sullo switch: ottima scelta per home lab o server senza switch gestiti.

Per home lab senza switch gestito: Mode 1 (failover) o Mode 6 (load balancing). Per server di produzione con switch gestito: Mode 4 (LACP).

Prerequisiti

Prima di iniziare, verificate di avere:

  • Due o più NIC fisiche (o virtuali, in una VM)
  • Accesso root o sudo
  • Il modulo bonding del kernel (incluso nella maggior parte delle distribuzioni)

Verificate che il modulo sia disponibile:

modinfo bonding

Caricatelo immediatamente se necessario:

sudo modprobe bonding

Identificate le vostre interfacce prima di toccare qualsiasi configurazione:

ip link show

Sui sistemi moderni vedrete nomi come enp3s0, enp4s0 oppure eth0, eth1. Annotateli.

Metodo 1: NetworkManager con nmcli (desktop e server moderni)

Se usate Ubuntu, Fedora, Debian con NetworkManager o qualsiasi distribuzione desktop, questo è l’approccio più diretto. NetworkManager supporta il bonding in modo nativo da anni.

Creare prima l’interfaccia bond:

sudo nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=100"

Aggiungere le interfacce fisiche come slave del bond:

sudo nmcli con add type ethernet slave-type bond con-name bond0-slave1 ifname enp3s0 master bond0
sudo nmcli con add type ethernet slave-type bond con-name bond0-slave2 ifname enp4s0 master bond0

Assegnare un indirizzo IP statico al bond:

sudo nmcli con modify bond0 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 1.1.1.1 ipv4.method manual

Oppure usare DHCP:

sudo nmcli con modify bond0 ipv4.method auto

Attivare la connessione:

sudo nmcli con up bond0

Verificare che il bond funzioni:

cat /proc/net/bonding/bond0

L’output mostrerà l’interfaccia slave attiva, lo stato MII, velocità e duplex di ogni NIC. Questo file è il vostro migliore alleato per il troubleshooting.

Metodo 2: systemd-networkd (server e installazioni minimali)

Per server senza NetworkManager, systemd-networkd gestisce il bonding in modo pulito. Adatto a Ubuntu Server, Debian minimale e configurazioni snelle.

Creare il file netdev per il bond:

sudo nano /etc/systemd/network/10-bond0.netdev
[NetDev]
Name=bond0
Kind=bond

[Bond]
Mode=active-backup
MIIMonitorSec=100ms
UpDelaySec=200ms
DownDelaySec=200ms

Configurare la rete per l’interfaccia bond:

sudo nano /etc/systemd/network/20-bond0.network
[Match]
Name=bond0

[Network]
DHCP=yes

Creare un file per ogni interfaccia slave (uno per NIC):

sudo nano /etc/systemd/network/30-bond0-slave1.network
[Match]
Name=enp3s0

[Network]
Bond=bond0

Riavviare il servizio e verificare:

sudo systemctl restart systemd-networkd
cat /proc/net/bonding/bond0

Metodo 3: Netplan (Ubuntu Server 18.04+)

Ubuntu Server usa Netplan come layer di configurazione di rete predefinito. Modificate il file di configurazione (di solito /etc/netplan/01-netcfg.yaml):

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: no
    enp4s0:
      dhcp4: no
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - enp4s0
      addresses:
        - 192.168.1.100/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 1.1.1.1
      parameters:
        mode: active-backup
        mii-monitor-interval: 100
        primary: enp3s0

Applicare la configurazione:

sudo netplan apply

Consiglio: su macchine remote, usate sudo netplan try prima di applicare definitivamente. Il comando applica la configurazione temporaneamente e la ripristina automaticamente dopo 120 secondi se non viene confermata — una rete di sicurezza preziosa.

Test del failover

Una volta configurato il bond, testate che il failover funzioni davvero. Con il bond attivo, simulate il guasto di una NIC scollegando fisicamente il cavo o disabilitando l’interfaccia via software:

sudo ip link set enp3s0 down

Il traffico dovrebbe continuare a fluire sull’interfaccia secondaria senza interruzioni percepibili. Verificate:

cat /proc/net/bonding/bond0

Il campo Currently Active Slave mostrerà la NIC di backup ora attiva.

Comandi utili per il monitoraggio

# Stato dettagliato del bond
cat /proc/net/bonding/bond0

# Statistiche di traffico per interfaccia
ip -s link show bond0

# Link failure count per slave
grep -A2 "Slave Interface" /proc/net/bonding/bond0

Problemi comuni e soluzioni

L’interfaccia bond non ha IP dopo il reboot: verificate che le connessioni NetworkManager siano impostate su autoconnect, oppure che i file systemd-networkd siano nel percorso corretto (/etc/systemd/network/).

Un solo slave risulta attivo anche in modalità round-robin o LACP: lo switch non è configurato correttamente per il LAG. Controllate la configurazione delle porte sullo switch.

I ping drop durano più del previsto durante il failover: aumentate il valore di UpDelaySec/DownDelaySec — un valore troppo basso può causare flapping. Valori tipici: 200ms per il down, 0ms per l’up.

Conclusione

Il network bonding su Linux è una soluzione matura, stabile e sorprendentemente semplice da configurare su distribuzioni moderne. Che vogliate ridondanza per un server critico o maggiore throughput per trasferimenti locali, i tre metodi descritti — nmcli, systemd-networkd e Netplan — coprono la quasi totalità degli scenari reali. Iniziate con Mode 1 (active-backup) se siete alle prime armi: non richiede switch gestito ed entra in produzione in pochi minuti.

Fonte: Linux Network Bonding: Combine Network Interfaces — LinuxBlog.io

💬 Unisciti alla discussione!


Questo è un blog del Fediverso: puoi trovare quindi questo articolo ovunque con @blog@spcnet.it e ogni commento/risposta apparirà qui sotto.

Se vuoi commentare su Linux Network Bonding: configurare la ridondanza e il bilanciamento del carico delle interfacce di rete, utilizza la discussione sul Forum.
Condividi la tua esperienza, confrontati con altri professionisti e approfondisci i dettagli tecnici nel nostro 👉 forum community