Windows Server: come scegliere la configurazione corretta del network teaming in base allo scenario

In Windows Server 2016 e successi vi sono due possibili modalità per creare un team tra schede di rete ovvero lo Switch Embedded Teaming (SET) e il Load Balancing and Failover (LBFO), ho descritto le differenze tra differenze tra le due modalità nel post Hyper-V: Confronto tra Switch Embedded Teaming (SET) e Load Balancing and Failover (LBFO).

Di seguito un rapido riepilogo delle caratteristiche delle due modalità:

Modalità Teaming Mode Load Balancing Mode Schede di rete Note
SET Switch Independent

Dynamic

Hyper-V Port

Max 8

Solo simmetriche

Richiede il ruolo Hyper-V e dovrebbe essere usata ogni volta che sia possibile
LBFO

Switch Independent

LACP

Static

Address Hash

Dynamic

Hyper-V Port

Max 32

Non verrà più sviluppata e l’utilizzo su switch virtuali e deprecato in Windows Server 2022

Prima di schematizzare quali sono le configurazioni più corrette in base agli scenari occorre analizzare le differenze tra i Teaming Mode e i Load Balancing Mode

Teaming Mode Static (IEEE 802.3ad draft v1)

Questa modalità richiede la configurazione sia sullo switch che sull’host per identificare quali collegamenti formano il team, tutte le schede di rete sono connesse allo stesso switch le cui porte sono configurate per utilizzare canali statici di aggregazione tramite un Link Aggregation Group (LAG).

Poiché si tratta di una soluzione configurata staticamente, non esiste alcun protocollo aggiuntivo per assistere lo switch e l’host nell’identificazione di cavi collegati in modo errato o altri errori che potrebbero causare il mancato funzionamento del team.

Queste modalità consente al traffico in entrata e in uscita di avvicinarsi ai limiti pratici della larghezza di banda aggregata perché il pool di membri del team viene visto come un unico canale.

Questa modalità richiede la connessione dell’host a un solo switch o a un singolo switch stack.

Questa modalità si dovrebbe usare questa modalità solo se lo switch non supporta l’LACP.

Teaming Mode LACP (IEEE 802.1ax)

Questa modalità è anche comunemente indicata come IEEE 802.3ad poiché è stata sviluppata nella IEEE 802.3ad prima di essere pubblicata come IEEE 802.1ax. La IEEE 802.1ax funziona utilizzando il protocollo LACP (Link Aggregation Control Protocol) per identificare dinamicamente i collegamenti di rete tra l’host e lo switch. 

Queste modalità consente al traffico in entrata e in uscita di avvicinarsi ai limiti pratici della larghezza di banda aggregata perché il pool di membri del team viene visto come un unico canale.

Questa modalità richiede la connessione dell’host a un solo switch o a un singolo switch stack.

È necessario utilizzare questa modalità quando si desidera che lo switch sia a conoscenza del team NIC per bilanciare il carico dei dati che lo switch invia al team NIC.

Teaming Mode Switch Independent

Questa modalità non richiede che lo switch partecipi al teaming, ciò implica che dal momento che lo switch non è a conoscenza che la scheda di rete fa parte di team nell’host, quindi gli adattatori di rete possono anche essere connessi a switch diversi senza la necessità che questi siano connessi in stack.

Questa modalità utilizza solo gli indirizzi MAC per controllare a quale interfaccia devono essere inviati i dati in entrata.

Questa modalità particolarmente indicata nelle seguenti situazioni:

  • se non si desidera apportare modifiche alla configurazione dello o degli switch;
  • si desidera connettere le schede di rete nel teaming a più switch non in stack;
  • è necessario creare un NIC teaming all’interno di una VM.

Load Balancing Mode Address Hash

Questo algoritmo crea un hash basato sui componenti dell’indirizzo del pacchetto, quindi assegna i pacchetti che hanno quel valore hash ad uno degli adattatori disponibili.

I componenti che possono essere specificati come input per la funzione di hashing includono:
• indirizzi MAC di origine e destinazione (modalità MacAddresses);
• indirizzi IP di origine e destinazione (modalità IPAddresses);
• porte di origine e destinazione e indirizzi IP di origine e destinazione (modalità TransportPorts).

L’hash delle porte TCP crea la distribuzione più granulare dei flussi di traffico risultanti in flussi più piccoli che possono essere spostati in modo indipendente tra i membri. Tuttavia, non può essere utilizzato per il traffico che non è basato su TCP o UDP o in cui le porte TCP e UDP sono nascoste dallo stack, ad esempio il traffico protetto da IPsec. In questi casi, l’hash ricade automaticamente sull’hash dell’indirizzo IP o, se il traffico non è traffico IP, sull’hash dell’indirizzo MAC.

E possibile impostare le tre modalità MacAddresses, IPAddresses e TransportPorts tramite il cmdlet New-NetLbfoTeam, se il team viene creato tramite la GUI verrà impostato nella modalità predefinita  TransportPorts che fornisce il miglior equilibrio tra i membri del team

Di solito questa modalità è sufficiente per creare un ragionevole equilibrio tra gli adattatori disponibili, ma non è in grado di adattarsi ai membri del team sovrautilizzati/sottoutilizzati. Inoltre, tutto il traffico in entrata utilizza l’indirizzo MAC dell’interfaccia del team principale, quindi se si utilizza il Teaming Mode Switch Independent il traffico in entrata il traffico è limitato a un solo membro del team.

E’ consigliabile utilizzare questo algoritmo quando si creano team all’interno delle VM.

Load Balancing Mode Hyper-V Port

Questa modalità è intesa solo per l’utilizzo su un Hyper-V host e assegna l’indirizzo MAC di una VM ad un membro del team, ciò consente a una VM specifica di essere assegnata ad uno specifico membro del team.

L’algoritmo Hyper-V Port massimizza le performance quando viene utilizzato VMQs, per verificare se vi sono NIC che supportano VMQs è possibilie usare il cmdlet PowerShell Get-NetAdapterVmq, mentre per la configurazione è possibile usare il cmdlet Set-NetAdapterVmq.

Se l’host ha solo poche macchine virtuali, questa modalità potrebbe non essere sufficientemente granulare per ottenere una distribuzione ben bilanciata. Questa modalità utilizzata in combinazione con il Teaming Mode Switch Independent limiterà sempre una singola VM (ovvero il traffico da una singola porta dello switch) alla larghezza di banda disponibile su una singola interfaccia.

Normalmente non è necessario utilizzare la modalità Hyper-V Port, ma potrebbe essere utile quando si intende assicurarsi che ogni VM utilizzi sempre lo stesso collegamento.

Load Balancing Mode Dynamic

Questa modalità utilizza le migliori funzionalità delle modalità Address Hash e Hyper-V Port per bilanciare il traffico di rete in entrata e in uscita fornendo così un bilanciamento migliore dei precedenti due algoritmi. Come Hyper-V Port, il traffico in entrata viene suddiviso assegnando i membri del team a diversi indirizzi MAC, come l’Address Hash, il traffico in uscita viene suddiviso in base ad un hash derivato da indirizzo IP e porta.

Quando l’algoritmo determina che alcuni membri del team sono sovra/sottoutilizzati, ribilancia il traffico in uscita verso gli altri membri del team secondo necessità.

Questa modalità di bilanciamento del carico è quasi sempre l’opzione migliore.

Configurazione del network teaming

Viste le caratteristiche delle modalità di teaming (SET o LBFO), dei Teaming Mode (Switch Independent, LACP, Static) e dei Load Balancing Mode (Address Hash, Dynamic, Hyper-V Port) possiamo sintetizzare come segue le possibili configurazioni del network teaming.

Punto 1: Utilizzare la modalità SET se possibile

Non è possibile utilizzare SET se non è presente il ruolo Hyper-V, se le NIC non sono simmetriche, se si intende utilizzare più di 8 NIC o se si intende utilizzare feature non supportate da SET (RSC, RSS, TCP Chimney, HNV v1, IEEE 802.1X, IPSecTO).

Modalità Teaming Mode Load Balancing Mode Note
SET Switch Independent

Dynamic

Con NIC a velocità inferiore a 10 Gbps
SET Switch Independent

Hyper-V Port

Con NIC a velocità 10 Gbps o superiore

Punto 2: Utilizzare la modalità LBFO se non è possibile utilizzare SET

L’utilizzo di LBFO dovrebbe essere riservato a scenari in cui il ruolo Hyper-V non è istallato, oppure quanto SET non è supportato o quando si intende creare un network teaming in una VM.

Modalità Teaming Mode Load Balancing Mode Note
LBFO Switch Independent

Dynamic

Questa configurazione è quella più adatta nella maggior parte degli scenari (il traffico in ingresso sarà instradato ad un membro del team)
LBFO Switch Independent

Address Hash

Questa configurazione è la più adatta nel caso si voglia creare un Network Team in una VM (il traffico in ingresso sarà instradato al membro del team primario)
LBFO Switch Independent

Hyper-V Port

Questa configurazione è utilizzabile nel caso di Hyper-V Host e massimizza le performance se nel team ci sono NIC compatibili con VMQs (il traffico in ingresso sarà instradato allo stesso membro del team del traffico in uscita)
LBFO Switch Independent

Dynamic

Questa configurazione è quella più adatta se si desidera avvicinarsi ai limiti pratici della larghezza di banda aggregata accettando la dipendenza dagli switch

Riferimenti