Link Aggregation e LACP: come aggregare più porte switch
Guida pratica al link aggregation con LACP 802.3ad: quando serve davvero, come si configura e perché due porte da 1 Gbps non fanno 2 Gbps per un singolo trasferimento.
Un server con una singola porta gigabit satura la linea al primo backup notturno. La reazione istintiva è passare a 10 Gbps, ma spesso basta aggregare due o quattro porte già disponibili. Il link aggregation combina più collegamenti fisici in un unico canale logico, aumentando la banda complessiva e garantendo ridondanza automatica se un cavo si guasta.
Cosa fa realmente il link aggregation
Il concetto è semplice: due o più porte Ethernet vengono presentate al sistema operativo e allo switch come una sola interfaccia. Il traffico viene distribuito sui membri del gruppo secondo un algoritmo di hashing.
Qui nasce il fraintendimento più comune. Aggregare due porte da 1 Gbps non produce un collegamento da 2 Gbps per un singolo trasferimento. L'algoritmo di distribuzione lavora per flusso, non per pacchetto: tutti i pacchetti di una stessa sessione TCP viaggiano sempre sullo stesso link fisico, per evitare che arrivino fuori ordine. Una copia di file da un singolo client resterà quindi limitata a 1 Gbps.
Il beneficio si vede quando i flussi sono molti:
- Un NAS con dieci client che scrivono contemporaneamente
- Un hypervisor con venti macchine virtuali
- Un uplink tra due switch che trasporta traffico di decine di dispositivi
- Un server web con centinaia di connessioni simultanee
LACP contro aggregazione statica
Esistono due modi per creare un gruppo aggregato.
Aggregazione statica (chiamata anche "trunk" o "static LAG"): si dichiarano le porte come membri del gruppo su entrambi i lati e si spera che la configurazione combaci. Nessuna negoziazione, nessun controllo. Se qualcuno collega male un cavo o dimentica una porta su un lato, si crea un loop di livello 2 o un blackhole di traffico difficile da diagnosticare.
LACP (IEEE 802.3ad): i due dispositivi si scambiano pacchetti LACPDU ogni secondo o ogni trenta secondi per negoziare e verificare l'aggregazione. Se la configurazione non combacia, il gruppo semplicemente non sale e le porte restano indipendenti. Se un cavo cade, gli altri membri riprendono il traffico in meno di un secondo.
Usare sempre LACP quando entrambi i lati lo supportano. L'aggregazione statica ha senso solo verso apparati che non parlano 802.3ad.
Modalità active e passive
LACP prevede due ruoli:
- Active: il dispositivo invia attivamente LACPDU e tenta la negoziazione
- Passive: risponde solo se l'altro lato inizia
Almeno un lato deve essere in active, altrimenti nessuno dei due parla e il gruppo non si forma mai. La configurazione più robusta è active su entrambi i lati.
L'intervallo di trasmissione può essere fast (1 secondo) o slow (30 secondi). Il fast rileva i guasti molto più rapidamente ed è la scelta corretta per collegamenti critici; deve però combaciare fra i due lati.
Algoritmi di hashing: la scelta che fa la differenza
Il modo in cui i flussi vengono distribuiti dipende dai campi usati per calcolare l'hash:
| Algoritmo | Campi usati | Quando usarlo |
|---|---|---|
layer2 | MAC sorgente e destinazione | Reti piatte, molti host diversi |
layer2+3 | MAC + indirizzi IP | Default equilibrato nella maggior parte dei casi |
layer3+4 | IP + porte TCP/UDP | Server con molte sessioni tra pochi host |
L'errore tipico: aggregare l'uplink verso il router usando hashing layer2. Tutti i pacchetti diretti a Internet hanno lo stesso MAC di destinazione, quindi finiscono tutti sullo stesso link fisico e l'aggregazione non serve a nulla. In quello scenario serve layer3+4.
Configurazione su MikroTik
Su RouterOS il gruppo si crea come interfaccia bonding:
# Crea il bond con due porte fisiche, modalità LACP
/interface bonding add name=bond1 slaves=ether3,ether4 \
mode=802.3ad transmit-hash-policy=layer-3-and-4 \
lacp-rate=1sec
# Verifica lo stato di negoziazione
/interface bonding monitor bond1
# Assegna il bond a un bridge, non le porte singole
/interface bridge port add bridge=bridge1 interface=bond1
Punto critico: una volta creato il bond, le porte membro non vanno più configurate individualmente. Ogni indirizzo IP, VLAN o appartenenza a bridge va applicato all'interfaccia bond.
Configurazione su Linux
Con systemd-networkd o con il classico driver bonding:
# Carica il modulo e crea il bond
modprobe bonding
ip link add bond0 type bond mode 802.3ad \
xmit_hash_policy layer3+4 lacp_rate fast
# Aggiungi le interfacce fisiche (devono essere down)
ip link set eth1 down && ip link set eth1 master bond0
ip link set eth2 down && ip link set eth2 master bond0
ip link set bond0 up
# Verifica che LACP abbia negoziato correttamente
cat /proc/net/bonding/bond0 | grep -A3 "Aggregator ID"
Nell'output cercare MII Status: up su tutti i membri e lo stesso Aggregator ID per tutte le porte. Se i membri hanno Aggregator ID diversi, la negoziazione è fallita e il traffico sta usando una sola porta.
Requisiti da verificare prima di iniziare
- Le porte devono avere stessa velocità e stesso duplex. Mischiare 1 Gbps e 100 Mbps non funziona.
- I membri devono terminare sullo stesso switch, salvo che lo switch supporti MLAG o stacking.
- Molti switch limitano il numero di porte per gruppo (tipicamente 8) e il numero di gruppi totali.
- Su alcuni apparati va disabilitato lo spanning tree sulle porte membro prima della configurazione.
Quando non serve
Il link aggregation non risolve tutti i problemi di banda. Se il collo di bottiglia è il disco del NAS, la CPU del firewall o la linea WAN, aggregare porte LAN non cambia nulla. Prima di intervenire, misurare dove si accumula effettivamente la congestione: un iftop sull'interfaccia o un grafico di utilizzo su base cinque minuti chiariscono la situazione in pochi minuti.
Per collegamenti dove serve davvero più banda su un singolo flusso, la strada corretta resta il passaggio a 2.5, 10 o 25 Gbps. L'aggregazione è la scelta giusta quando servono ridondanza e capacità aggregata su traffico eterogeneo.
Vuoi portare Velix a casa tua?
Verifica la copertura FTTH al tuo indirizzo in 30 secondi. Gratis, senza impegno.
Verifica copertura →