LACP – Link Aggregation Control Protocol

LACP – Link Aggregation Control Protocol

Questo articolo descrive i principi del protocollo LACP spiegandone i concetti base e le modalità di utilizzo.

 

 

Il sistema di Link Aggregation in conformità con lo standard IEEE 802.1AX-2008 (precedentemente conosciuto anche come IEEE 802.3ad) descrive come combinare due o più canali Ethernet in parallelo.

I vantaggi del Link Aggregation in contrasto con le connessioni a singolo cavo tradizionali sono:

  • Maggiore velocità potenziale della trasmissione
  • Maggiore accessibilità

Prerequisiti

Per poter usare la tecnica del Link Aggregation in modalità LACP sono obbligatori:

  • I singoli link devono operare in Full Duplex Mode
  • Tutti i link di un trunk LACP (LAG) devono avere la stessa velocità (almeno di 1Gbit/s)
  • I punti di partenza dei singoli link facenti parte del trunk devono risiedere sullo stesso device o switch
  • I punti di arrivo dei singoli link facenti parte del trunk devono risiedere sullo stesso device o switch, ovviamente diverso la primo.
    • Nota: esiste un tipo particolare di Link Aggregation per il trunking fra switch (SMLT) che non è compatibile con LACP. La tecnica LACP può essere comunque utilizzata per collegare in trunk 2 switch , preferibilmente dello stesso produttore per aver le migliori perfomance.

Proprietà

La Link Aggregation (LAG) in conformità con lo standard IEEE 802.1AX-2008 (in precedenza IEEE 802.3ad) ha le seguenti proprietà:

  • Il LAG fornisce il ripristino automatico quando i singoli collegamenti fisici falliscono. Finché esiste almeno un collegamento fisico, la connessione LAG continuerà ad esistere.
  • La trasmissione dei dati sarà distribuita come frame sui collegamenti fisici.
  • Tutti i frame che fanno parte di uno specifico pacchetto di comunicazione dati saranno comunque trasmessi sulla stessa connessione fisica. Ciò garantisce che l’invio dei singoli frame di un pacchetto di comunicazione dati sia ricevuto nell’ordine corretto (e impedisce l’ordine errato).

Distribuzione della trasmissione dei dati

L’aggregazione dei collegamenti consente la distribuzione dei frame Ethernet su tutti i collegamenti fisici disponibili per una connessione LAG. In tal modo, il potenziale throughput dei dati supererà la velocità dei dati di un singolo collegamento fisico.

PS: E’ bene fin da subito precisare il concetto di banda totale di un trunk LACP. LACP non è un metodo per creare un unico canale di larghezza di banda somma dei canali che lo compongono (ad esempio un trunk LACP formato da 2 canali da 1Gbit/s non genera un canale da 2Gbit/s in senso stretto).

Entrando nel dettaglio fornendo un chiaro esempio:

  • un PC A con due canali da 1GBit via LACP ed intestato su uno switch con le porte configurate in LACP
  • un SERVER B anch’esso collegato con due canali 1Gbit via LACP con lo stesso switch configurato sulle seconde due porte in LACP

Nel trasferimento di uno o più file la velocità massima sarà di 1Gbit in quanto la sessione aperta sull’host remoto è singola.

Ora aggiungiamo al disegno di rete un ulteriore elemento:

  • un PC C con due canali da 1Gbit/s via LACP , oppure con un solo collegamento normale ad 1Gbit/s , tanto non cambia il risultato

Sempre nel caso di trasferimento di uno o più file da parte dei due PC (A e C) verso il medesimo server (B) avremo che ognuno dei due client godrà di un collegamento ad 1Gbit/s effettivo e non condiviso (500Mbit/s e 500Mbit/s) come sarebbe senza LAG-LACP. Quindi l’aumento del throughput nel caso di trunk LACP deve essere inteso come complessivo nell’uso del network e non come un unico canale aggregato punto-punto.

Naturalmente, lo standard IEEE non definisce un algoritmo specifico per la distribuzione (Frame Distribution).

Le linee guida sono:

  • L’ordine dei frame per uno specifico pacchetto di comunicazione dati non può essere trasposto.
  • I frame non possono essere duplicati.

Link Aggregation

Esistono fondamentalmente due tipi di LAG:

Static Link Aggregation

In un LAG di tipo statico tutte le impostazione vengono definite in partenza su entrambe le terminazioni dei singoli link

Dynamic Link Aggregation – Link Aggregation Control Protocol (LACP)

In un LAG di tipo dinamico, oltre al bonding dei canali come nel caso del LAG statico, vengono introdotte, tramite il protocollo LACP, ulteriori informazioni per il controllo del trunk LAG stesso. Queste informazioni sono contenute in unità di dati chiamate LACPDU (Link Aggregation Control Protocol Data Unit).

Nel dettaglio alcune caratteristiche:

  • Ogni singola porta può essere configurata come LACP attivo o passivo:
    • LACP attivo:  la porta preferisce trasmettere i LACPDU e quindi parlare il protocollo, indipendentemente dal fatto che la sua controparte utilizzi o meno il LACP passivo.Ogni singola porta può essere configurata come un LACP attivo o passivo utilizzando il protocollo di controllo.LACP passivo: la porta preferisce non trasmettere LACPDU. La porta trasmetterà solo LACPDU quando la sua controparte usa LACP attivo.
  • I pacchetti LACP vengono inviati con l’indirizzo MAC del gruppo multicast 01: 80: c2: 00: 00: 02 (01-80-c2-00-00-02)
  • Il numero massimo delle porte di un LAG/LACP è 8.
  • I pacchetti LACPDU vengono inviati con l’indirizzo MAC del gruppo multicast 01: 80: c2: 00: 00: 02 (01-80-c2-00-00-02)
  • I pacchetti LACP vengono trasmessi ogni secondo

I vantaggi rispetto la configurazione statica sono:

  • Gestione del failover immediato. Nel caso d’interruzione di un collegamento fisico verrà immediatamente escluso dal raggruppamento. I pacchetti LACPDU non sono un componente di questa connessione, ciò garantisce che nessun pacchetto dati vada perso a causa del collegamento fallito.
  • Entrambi i dispositivi possono confermare reciprocamente la configurazione del LAG. Con l’aggregazione di link statici, gli errori nella configurazione o nel cablaggio spesso non vengono rilevati rapidamente.

Distribuzione dei pacchetti in un trunk LACP

In un trunk LACP un algoritmo di distribuzione seleziona la porta di aggregazione utilizzata per trasmettere un determinato frame, in maniera tale che i frames seguenti, all’ interno di una stessa sessione, utilizzino la stessa porta di aggregazione. L’algoritmo può utilizzare le informazioni contenute nel frame per prendere la sua decisione d’instradamento, in combinazione con altre informazioni associate al frame, come ad esempio la sua porta di aggregazione in ricezione nel caso di un bridge.

L’algoritmo può assegnare uno o più conversazioni alla stessa porta d’aggregazione, tuttavia non deve allocare alcuni dei frames di una determinata conversazione ad una porta d’aggregazione ed il resto ad una diversa.

Le informazione utilizzate per assegnare conversazioni ad una specifica porta di un link d’aggregazione potrebbero includere:

  • indirizzo MAC sorgente
  • indirizzo MAC di destinazione
  • l’identificativo della porta d’aggregazione ricevente
  • Il tipo di indirizzo di destinazione (indirizzo MAC unico o un gruppo di indirizzi MAC)
  • Il valore Ethernet/Type (ad esempio il protocollo d’identificazione
  • Informazioni di protocollo di grado più elevato (ad esempio informazioni di indirizzamento e di protocollo d’identificazione dallo strato LLC o sopra)
  • La combinazione di questi elementi

Un semplice approccio applica una funzione hash alle informazioni selezionate per generare un numero di porta. Questo sistema produce una selezione di porta d’aggregazione di tipo deterministico , cioè indipendente dallo storico, su un dato numero di porte di un link d’aggregazione. Tuttavia poichè è difficile selezionare una funzione di hash che generi una distribuzione uniforme del carico attraverso il set delle porte d’aggregazione per tutti i modelli di traffico, potrebbe essere più appropiato “pesare” la porta d’aggregazione in funzione del minor traffico presente su alcune. In approcci più sofisticati il bilanciamento del carico è dinamico, cioè la porta selezionata per un dato insieme di conversazioni cambia nel tempo, indipendentemente da eventuali cambiamenti che avvengono nell’appartenenza all’aggregazione.

Riallocazione dinamica delle conversazioni

Potrebbe essere necessario spostare una determinata conversazione o una serie di conversazioni da una porta d’aggregazione ad un’altra o ad altre, questo come risultato di:

  • Una porta d’aggregazione esistente viene rimossa dall’aggregazione
  • Una nuova porta d’aggregazione viene aggiunta all’aggregazione
  • Una decisione del Frame Distributor di redistribuire il traffico attraverso l’insieme delle porte d’aggregazione

Prima di spostare le conversazioni su di una nuova porta d’aggregazione, è necessario assicurarsi che tutti i frame già disponibile trasmessi che fanno parte di quelle conversazioni siano stati ricevuti con successo. La seguente procedura mostra come il protocollo Marker può essere usato per garantire che non si verifichi nessuna confusione nell’ordine dei frames:

  • Interrompere la trasmissione di frames per il set di conversazioni interessate. Se il Client Aggregator richiede la trasmissione di ulteriori frame che fanno parte di questo set di conversazioni, questi frame vengono scartati
  • Avviare un timer, scegliendo il periodo di timeout in modo tale che, se il timer scade, il sistema di destinazione può decidere se ha ricevuto o scartato tutti i frame trasmessi prima di avviare il timer
  • Utilizzare il protocollo Marker per inviare un Marker PDU sulla porta d’aggregazione precedentemente utilizzata per questo set di conversazioni
  • Attendere finchè non viene ricevuto il corrispondente Marker Response PDU o il timer scada
  • Riavviare la trasmissione dei frames per l’insieme di conversazioni su di una nuova porta d’aggregazione

Il valore di timeout appropriato dipende dal tipo di devices collegati. Ad esempio il valore massimo raccomandato per un collegamento di tipo bridge è di 1 secondo. Il valore di timeout può cambiare in funzione di altre circostanze come ad esempio in sistemi ad alte perfomance dove il valore può essere intese nella scala dei millisecondi. Se il valore di CollectorMaxDelay è 0 , risulta inferiore alla risoluzione del parametro stesso (10µ) e quindi il ritardo viene considerato come il ritardo fisico di propagazione del canale. Il Marker Protocol fornisce un’ottimizzazione che può comportare una più rapida riallocazione delle conversazioni rispetto a quella possibile senza l’uso di marcatori, comunque il periodo di timeout completo dovrebbe essere sempre utilizzato al fine di garantire che nessun frame rimanga in transito tra il Frame Distributor locale ed il Frame Collector remoto. L’uso del timer permette il recupero anche alla perdita di eventuali PDU Marker o PDU Response.

Considerazioni sulla scelta dell’algoritmo di distribuzione

Nella pratica esistono molteplici scenari d’utilizzo dei link d’aggregazione.

 

 

Esempi d’uso del Link Aggregation:

Nell’esempio A , dove c’e’ una relazione molti-a-molti fra i devices, attraverso il link aggregato, è sufficente per ciascun bridge allocare le conversazioni sui vari link del set d’aggregazione sulla base dell’ indirizzo MAC sorgente o di destinazione.

Negli esempi B e C, un numero di devices comunicano con un singolo server attraverso il link d’aggregazione. In questi casi , l’algoritmo di distribuzione impiegato nel server o nel bridge 2 può allocare il traffico dal server sulla base dell’indirizzo MAC di destinazione.  Tuttavia visto che la terminazione di tutte le conversazioni è costituito con un singolo server e quindi con un singolo indirizzo MAC, il traffico dei devices terminali al server dovrebbe essere assegnato sulla base dell’indirizzo MAC d’origine. Da evidenziare che l’algoritmo di raccolta è indipendente dall’algoritmo di distribuzione che viene utilizzato.

Negli esempi D e E, assumendo che i servers stiano usando un singolo indirizzo MAC per tutto il loro traffico, la migliore opzione per l’algoritmo di distribuzione usato per l’allocazione delle conversazioni sui link, è far uso di informazioni di più “alto livello” come ad esempio gli identificativi Transport Layer Socket.

Tabella delle referenze:

Documentazione ufficiale IEEE P802.1AX-REV ( ex 802.3ad LACP)

 

ISCRIVITI ALLA NEWSLETTER DI PC-GURU.IT

Grazie all’iscrizione ti informerò ogni volta che pubblicherò un nuovo contenuto.

Non perderti nemmeno un articolo!

Iscriviti alla nostra newsletter inserendo la tua mail qui :


 

 

 
admin

Author: admin

Share This Post On

Submit a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *