Dominare il Teaming NIC con PowerShell e GUI

Vuoi che i server rimangano disponibili senza interruzioni anche quando uno switch principale si guasta sul posto di lavoro? Vuoi che il tuo server acceda a più VLAN senza dipendere dai driver specifici di un determinato venditore? Vuoi semplificare la configurazione della rete per host fisici e virtuali nel tuo ambiente? Se hai risposto sì a una qualsiasi di queste domande, allora questo articolo è per te. Permetti al NIC Teaming di farlo.

Il NIC Teaming può migliorare la tolleranza ai guasti delle tue macchine, utilizzare meglio le risorse di rete (bilanciamento del carico), configurare le VLAN per l’uso della macchina e semplificare la configurazione della rete.

In questo articolo, imparerai cos’è il NIC teaming, le considerazioni speciali che esistono per l’utilizzo del NIC Teaming nelle macchine virtuali e come implementarlo nella tua organizzazione.

Prerequisiti

Non è necessario essere un esperto di Windows o di amministrazione di rete per capire il NIC teaming. Tuttavia, è necessario avere alcuni prerequisiti tecnici e conoscenze per comprendere e applicare questo articolo. Questi elementi sono:

  • Comprensione di come funzionano le reti (indirizzi MAC, indirizzi IP, VLAN)
  • Accesso a Windows Server 2016 (o 2019) con due o più adattatori di rete disponibili – tutto ciò che vedi si applica anche a Windows Server 2016, 2012R2 e Windows Server 2012

Comprensione del NIC Teaming

In una configurazione di rete tradizionale per un server fisico, si fornisce tolleranza ai guasti collegando più cavi di rete dal server a più switch fisici (possibilmente parte di uno stack di switch singolo). Pertanto, il server ha più indirizzi IP attivi in ​​tutti i momenti e il bilanciamento del carico non esiste.

Implementando un team di NIC sul tuo server, puoi mantenere una connessione a più switch fisici ma utilizzare solo un singolo indirizzo IP. Il bilanciamento del carico diventa facilmente disponibile. La tolleranza ai guasti diventa istantanea invece di dover attendere il timeout/aggiornamento dei record DNS e la gestione diventa più semplice.

Il team di NIC è una funzionalità in Windows Server che consente di raggruppare le NIC in “team”. Ogni team è composto da uno o più membri del team (NIC che fanno parte del team) e uno o più NIC virtuali disponibili per l’uso.

I membri del team sono gli adattatori di rete che il team utilizza per comunicare con lo switch. Le interfacce del team sono le schede di rete virtuali create quando si crea il team. Può essere difficile ricordarsi quale sia quale dato che le interfacce del team ricevono un indirizzo IP.

Qual è la differenza tra il teaming delle NIC e il bonding delle NIC?

Il teaming delle NIC è sinonimo di bonding delle NIC.

Il teaming delle NIC è disponibile in tutte le edizioni di Windows Server a partire da Windows Server 2012. Questa funzionalità è estremamente flessibile e offre agli amministratori una soluzione molto più semplice per Aggregazione dei collegamenti/bilanciamento del carico, failover e Networking definito dal software (VLAN).

Esistono soluzioni simili su determinati hardware di determinati fornitori, tuttavia, l’implementazione del teaming delle NIC di Microsoft mira a fornire queste funzionalità in modo hardware e fornitore-agnostico.

Qual è la differenza tra il teaming delle NIC e il bridging delle NIC?

NIC Teaming consente di creare un’interfaccia NIC che si estende su una o più schede NIC che si trovano tutte sulla stessa subnet. La bridging NIC consente di accoppiare schede NIC provenienti da subnet diverse per consentire la comunicazione tra le due subnet.

Quando si configura un NIC Team, è necessario impostare la modalità di teaming, la modalità di bilanciamento del carico, l’adattatore di standby, e la VLAN dell’interfaccia del team. Ogni componente viene spiegato di seguito.

Modalità di teaming

Quando si crea un NIC Team, è necessario selezionare la modalità di teaming da utilizzare. La modalità di teaming determina come il server e gli switch suddividono il traffico tra i collegamenti multipli. Esistono tre tipi di modalità di teaming: switch indipendente, LACP e statico.

Switch indipendente

Il teaming switch indipendente consente di connettere i membri del team a switch multipli non impilati. La modalità switch indipendente è l’unica modalità di teaming che non richiede modifiche di configurazione sugli switch a cui è collegato. Questa modalità utilizza solo gli indirizzi MAC per controllare a quale interfaccia inviare i dati in ingresso.

Esistono alcune situazioni in cui potrebbe essere opportuno utilizzare la modalità di teaming switch indipendente, ad esempio quando:

  • non si desidera apportare modifiche di configurazione agli switch collegati
  • si utilizzano switch multipli non impilati per i membri del team
  • si crea un NIC Team all’interno di una VM (ulteriori dettagli nella sezione Considerazioni per l’uso in macchine virtuali di seguito)

Se preferisci utilizzare un solo adattatore per il traffico e passare a un adattatore di standby solo durante un guasto del collegamento fisico, devi utilizzare la modalità di teaming indipendente dallo switch e configurare un adattatore di standby.

A standby adapter is not used often because it reduces the total bandwidth that is available for communicating with the server. The default setting is “None (all adapters Active)”.

Il teaming statico

statico richiede che tu configuri manualmente le porte sullo switch che si collegano con il team di NIC in un gruppo di aggregazione del collegamento (LAG). Il server e lo switch divideranno il traffico tra tutti i collegamenti che sono attivi.

Se una porta su uno dei due estremi è collegata ad un altro dispositivo, il traffico verrà diviso su questo collegamento che non se lo aspetta. Di conseguenza, non aiuta a isolare errori come cavi collegati in modo errato.

Dovresti utilizzare la modalità di teaming statico solo quando gli switch non supportano LACP.

LACP è simile al teaming statico, ma tiene traccia anche di ogni cavo attivo nel collegamento che è effettivamente collegato al LAG previsto. LACP non invierà dati attraverso i collegamenti che non sono collegati al LAG previsto.

Dovresti utilizzare LACP quando vuoi che lo switch sia consapevole del team di NIC al fine di bilanciare il carico dei dati che lo switch invia al team di NIC.

Importante: le modalità di teaming statico e LACP richiedono che tu colleghi l’host solo ad uno switch singolo o ad uno stack di switch singolo.

Modalità di bilanciamento del carico

La modalità di bilanciamento del carico determina come il team presenterà le interfacce per i dati in ingresso e determinerà quali adattatori utilizzare per i dati in uscita. Le opzioni disponibili sono il bilanciamento dell’indirizzo, la porta Hyper-V e Dynamic

A differenza di un “appliance di bilanciamento del carico”, il traffico in ingresso non verrà suddiviso equamente tra ogni link utilizzato dai membri del team.

Modalità di bilanciamento dell’indirizzo

Modalità di bilanciamento dell’indirizzo cercherà di utilizzare gli indirizzi IP e le porte di origine e destinazione per creare un equilibrio efficace tra i membri del team. Se non sono presenti porte in una connessione, verranno utilizzati solo gli indirizzi IP per determinare come bilanciare il carico. Se non sono presenti indirizzi IP in una connessione, verranno utilizzati gli indirizzi MAC.

Quando si crea un team di schede di rete, è possibile forzare il team a utilizzare solo IP+Porta, solo IP o solo indirizzo MAC. L’opzione IP+Porta è quella predefinita e offre il miglior equilibrio tra i membri del team. Per utilizzare solo IP o solo indirizzo MAC, sarà necessario creare il team di schede di rete tramite PowerShell.

Sebbene la modalità di bilanciamento del carico Address Hash faccia un buon lavoro nel suddividere il traffico in uscita tra i membri del team, non è in grado di adattarsi ai membri del team sovra-utilizzati o sottoutilizzati. Inoltre, tutto il traffico in entrata utilizza l’indirizzo MAC dell’interfaccia principale del team. Tuttavia, ciò è limitato a un singolo link se si utilizza la modalità di teaming Switch Independent.

È necessario utilizzare Address Hash quando si crea un team all’interno di una macchina virtuale.

Porta Hyper-V

La modalità Hyper-V Port è destinata esclusivamente all’uso su host di macchine virtuali Hyper-V. In questa modalità, verrà assegnato un indirizzo MAC a ciascuna macchina sull’host di macchine virtuali e quindi verrà assegnato un membro del team a ciascuno degli indirizzi MAC. Ciò consente a una specifica macchina virtuale di avere un membro del team prevedibile durante il normale funzionamento.

Avere membri del team prevedibili per ciascuna macchina virtuale significa che la larghezza di banda di una macchina virtuale è limitata al massimo del singolo collegamento su cui opera. Quando un host Hyper-V ha poche macchine virtuali, l’utilizzo della modalità di bilanciamento del carico Hyper-V Port potrebbe non essere molto equilibrato.

In genere, non è necessario utilizzare la modalità Hyper-V Port, ma potrebbe essere utile se è necessario garantire che ciascuna macchina virtuale utilizzi sempre lo stesso collegamento.

Modalità

La modalità dinamica utilizza le migliori caratteristiche delle modalità Address Hash e Hyper-V Port per bilanciare il traffico di rete in uscita e in entrata. Come in Hyper-V, il traffico in ingresso viene suddiviso assegnando membri del team a diversi indirizzi MAC. Come in Address Hash, il traffico in uscita viene suddiviso mediante un hash combinato derivato da IP/Porta. Questa miscela offre un migliore bilanciamento rispetto a ciascuno dei metodi sopra citati.

La modalità dinamica presenta un importante miglioramento: il monitoraggio dinamico del traffico. Quando l’algoritmo della modalità dinamica determina che determinati membri del team sono sovrautilizzati o sottoutilizzati, bilancerà il traffico in uscita su altri membri del team, se necessario.

I flussi TCP hanno un ritmo naturale che rende possibile prevedere futuri quantitativi di traffico/breaks nel TCP; Microsoft li chiama flowlets. La modalità di bilanciamento del carico dinamica può anche prevedere, attraverso i flowlets, quali membri del team diventeranno sovra/sotto-utilizzati e riequilibrare il traffico in uscita per prepararsi.

La modalità dinamica è quasi sempre la migliore opzione di bilanciamento del carico da utilizzare.

La VLAN dell’interfaccia del team

Quando si crea un team, per impostazione predefinita, verrà creata un’unica interfaccia di team. L’interfaccia del team ha un’impostazione VLAN per etichettare il traffico su un’interfaccia verso una specifica VLAN. L’impostazione della VLAN dell’interfaccia del team su una VLAN taggata viene tipicamente effettuata solo quando i membri del team dai quali è composto il NIC Team utilizzano la modalità ‘trunk’.

Dopo aver creato il team, è possibile creare altre interfacce di team su VLAN diverse.

Avviso: Microsoft consiglia di non impostare mai la VLAN per un’interfaccia all’interno di una macchina virtuale. Invece, utilizzare l’opzione avanzata “ID VLAN” dello switch Hyper-V per definire le VLAN per una VM.

Il Teaming di NIC nelle macchine virtuali

La configurazione dei team di NIC in una VM presenta alcune limitazioni. Microsoft specifica in particolare che l’utilizzo di “Teams su Teams” (team a livello di host e team a livello di VM) può essere molto imprevedibile e causare la perdita di connessione.

Tradizionalmente, per garantire la tolleranza ai guasti per una VM, era necessario che la VM fosse collegata a più switch virtuali esterni. Bisognava pianificare quali VM condividessero ciascuno switch virtuale per garantire che nessuno diventasse troppo congestionato. I problemi di bilanciamento del carico si complicavano ulteriormente con la possibilità di congestione causata dalle altre VM sull’host.

Oggi, è possibile distribuire un team di NIC sull’host della VM con un singolo adattatore di rete per ciascuna VM. Tutte le VM ottengono una tolleranza ai guasti completa in caso di guasti di porte fisiche o switch. Il traffico di tutte le VM può essere distribuito tra i membri del team per ottenere una migliore velocità complessiva e gestione della congestione. La tua configurazione può ora apparire come segue:

A NIC Team topology

Il teaming di NIC in una VM viene talvolta utilizzato per abilitare SR-IOV per ridurre il carico della CPU dello stack di rete. È inoltre necessario il supporto del BIOS e della NIC per il corretto funzionamento di SR-IOV.

Requisiti

L’utilizzo del teaming di NIC all’interno di una VM include questi requisiti per essere una “configurazione supportata”:

  1. Devi utilizzare più adattatori nella VM.
  2. Gli adattatori devono essere collegati a due switch virtuali entrambi di tipo “esterno”.
  3. Se si effettua il collegamento a switch fisici, gli switch devono trovarsi nella stessa sottorete L2.
  4. La modalità NIC Team della VM deve essere impostata su Switch Independent e la modalità di bilanciamento del carico deve essere impostata su *Address Hash*.

In Hyper-V, è necessario abilitare il teaming NIC per la VM dalla scheda Advanced Features di ciascun adattatore di rete che farà parte di un team. Di seguito puoi vedere un esempio di come appare questa impostazione.

NIC Teaming Hyper-V option

Massimizzazione delle prestazioni

Anche se il teaming NIC ha buone prestazioni di base, ci sono vari scenari in cui potresti dover migliorare le prestazioni. I dettagli di questi scenari esulano dallo scopo di questo articolo, ma se desideri saperne di più su come migliorare le prestazioni, focalizzati sui seguenti termini:

  • Remote Direct Memory Access (RDMA)
  • Switch Embedded Teaming (SET)
  • Receive Side Scaling (RSS)
  • Single-Root I/O Virtualization (SR-IOV)

In generale, queste impostazioni aggiuntive riducono l’onere della CPU per lo stack di rete e la latenza tra le connessioni. Puoi approfondire l’argomento del miglioramento delle prestazioni negli articoli Software and Hardware technologies explained e Higher performance through RDMA with SET.

Creazione di un team NIC su Windows Server

Armati di una conoscenza su come funziona il teaming NIC e con una visione per semplificare la tua rete, ora sei pronto per creare un team NIC!

Per questa dimostrazione, verrà creato un team di NIC su una macchina virtuale a causa delle limitazioni dell’ambiente di prova. La configurazione di un team di NIC su un server fisico è la stessa, ma se sono necessari passaggi specifici per le macchine virtuali, verranno indicati.

Come si verifica se il team di NIC è abilitato?

Il teaming di NIC è abilitato in tutte le versioni di Windows Server a partire dal 2012 (Server 2012, 2012R2, 2016 e 2019).

Configurazione del team di NIC tramite GUI

Per iniziare, avviare il Server Manager su una macchina Windows Server. Assicurarsi di essere connessi alla macchina su cui si desidera configurare il team di NIC.

  1. Innanzitutto, fare clic con il pulsante destro del mouse sul nome del server su cui creare il team di NIC e selezionare Configura il team di NIC.
Configure NIC Teaming option in Server Manager

2. Nella sezione Adattatori e interfacce, selezionare le NIC da aggiungere al nuovo team. Successivamente, fare clic con il pulsante destro del mouse sugli adattatori selezionati e selezionare Aggiungi a nuovo team.

Add to New Team option in Server Manager

Nota: è possibile configurare il team di NIC con una combinazione di uno o più adattatori (massimo: 32) e una o più interfacce di team.

3. Immettere un nome del team descrittivo e configurare le proprietà aggiuntive come necessario e fare clic su OK per creare il team.

In questo esempio, il team di NIC viene configurato su una macchina virtuale. Di conseguenza, non è possibile utilizzare la modalità di teaming o la modalità di bilanciamento del carico. Se questa demo venisse effettuata su un server fisico, probabilmente si utilizzerebbe Switch Independent o LACP se si utilizza un LAG sullo switch.

New Team dialog box

Ora il team di NIC dovrebbe essere stato creato sul server Windows.

Aggiunta di ulteriori NIC o interfacce al team NIC

Una volta creato, è possibile aggiungere NIC a un team configurato dalla stessa finestra di NIC Teaming. Per farlo, fare clic con il pulsante destro del mouse su una NIC disponibile e selezionare Aggiungi a Team “<Nome del team>”.

Add to Team “Demo” option

È anche possibile aggiungere ulteriori interfacce a un team selezionando la scheda Interfacce del team e quindi fare clic su ATTIVITÀ —> Aggiungi interfaccia come mostrato di seguito.

Add Interface option

Una volta visualizzata l’opzione di input, digitare la VLAN da utilizzare e, facoltativamente, un nome come mostrato di seguito.

New Team interface dialog box

Implementazione del NIC Teaming tramite Windows PowerShell

Ora che sai come configurare un team NIC tramite l’interfaccia grafica, vediamo come farlo tramite PowerShell.

Trovare i nomi delle NIC

Innanzitutto, devi decidere quali NIC aggiungere al team. Più specificamente, dovrai individuare i nomi delle NIC.

Per trovare i nomi delle NIC, utilizza il cmdlet Get-Adapter. Esegui questo cmdlet e osserva le tue opzioni come mostrato di seguito.

Get-Adapter PowerShell cmdlet

Una volta presi nota dei nomi, puoi creare il team con PowerShell! Per questa demo, utilizzeremo le NIC Ethernet 3 e 4 per il nuovo team NIC.

Creazione del team NIC

Ora che hai i nomi degli adattatori a disposizione, devi eseguire solo un altro cmdlet (New-NetLbfoTeam). Puoi vedere un esempio di esecuzione del cmdlet New-NetLbfoTeam e il relativo output di seguito.

Per il parametro TeamMembers, utilizzerai i nomi delle NIC raccolti in precedenza.

In questo esempio, il TeamingMode è impostato su SwitchIndependent. Se si sta configurando le porte dello switch in un LAG, probabilmente si desidera utilizzare il valore LACP. Se non si utilizza un LAG sullo switch, probabilmente si sceglie di utilizzare SwitchIndependent.

Il parametro del valore LoadBalancingAlgorithm di Dynamic viene utilizzato perché questa modalità offre il bilanciamento del carico più uniforme tra i membri del team.

New-NetLbfoTeam -TeamMembers <NIC Names> -Name "<Desciptive Name>" -TeamingMode SwitchIndependent -LoadBalancingAlgorithm TransportPorts
Using the New-NetLbfoTeam PowerShell cmdlet

Una volta completato, vedrete ora comparire una nuova scheda di rete virtuale nell’elenco degli adattatori ottenuto da Get-NetAdapter:

New virtual NIC created

Note sul team NIC su una VM:

– È necessario utilizzare il TeamingMode ‘SwitchIndependent’.
– È necessario utilizzare uno dei tipi di hash degli indirizzi per LoadBalancingAlgorithm (TransportPorts).
– Il bilanciamento del carico dinamico viene utilizzato su un server fisico invece che su TransportPorts.*

Aggiunta di altre schede di rete o interfacce al team NIC

Una volta creato il team NIC, è possibile aggiungere schede di rete e interfacce ad esso proprio come nell’interfaccia grafica. Per aggiungere altre schede di rete al team, utilizzare il cmdlet Add-NetLbfoTeamMember.*

Add-NetLbfoTeamMember -Name NIC1 -Team Team1

È anche possibile aggiungere ulteriori interfacce di team con il cmdlet Add-NetLbfoteamNIC.

Add-NetLbfoTeamNIC -Team Team1 -VlanID 42

Riepilogo

Ora hai imparato cos’è il NIC Teaming, come è correlato alla performance/utilizzo delle VM/semplificazione della rete e come implementarlo tramite GUI o PowerShell.

Source:
https://adamtheautomator.com/nic-teaming/