EtherChannel
Blog post description.
CCNA
Gli end-host non mandano continuamente traffico nella rete, ma passano la maggior parte del loro tempo in attesa.
A causa di ciò, è possibile utilizzare meno uplink verso un livello superiore ed avere comunque performance accettabili nella rete.
La raccomandazione generale per l'oversubscription è 20:1 dal livello d'accesso al livello distribuzione, ossia se abbiamo 20 PC connessi con una NIC da 1Gbps al livello d'accesso, avremmo bisogno di una singola NIC in upstrink verso il layer distribuzione.
La raccomandazione è di 4:1 per i collegamenti distribuzione-centrale.
Questi, tuttavia, non sono valori mandatori: bisogna ricordarsi di analizzare il traffico sulla rete per verificare che non ci siano collegamenti congestionati.
Gli switch hanno spesso delle porte di uplink dedicate con una larghezza di banda più alta rispetto alle loro porte d'accesso.
Esempio.
Abbiamo uno switch con 48 porte da 1Gbps con un paio di uplink da 10Gbps ciascuno.
Otteniamo 48 Gbps per i client e 20 Gbps per gli uplink.
Il rateo tra la larghezza di banda totale dei client e quella totale di uplink è 2.5 perché 48 / 20 = 2.4
Ora, però, sorge un problema: Spanning Tree.


STP fornisce ridondanza, ma non il bilanciamento del carico.
Se uno switch ha più percorsi dallo stesso costo lungo lo stesso switch vicino verso il Root Bridge, seleziona la porta con l'ID Porta minore.
Nel nostro esempio, Acc1 seleziona un solo percorso verso il Root Bridge (Dist1) e seleziona T0/1 come porta di root, visto che ha l'ID porta minore.
T0/2 si trova in uno stato di blocco, quindi alla fine otteniamo solo 10Gbps effettivi per gli uplink.
Possiamo risolvere questo problema tramite EtherChannel che raggruppa più interfacce fisiche in un'unica interfaccia logica.
STP vede l'EthernChannel come una singola interfaccia, quindi non blocca nessuna porta.
Otteniamo così i nostri 20 Gbps negli uplink.
Viene eseguito il bilanciamento del traffico su tutti i collegamenti dell'EtherChannel e se un'interfaccia va offline, il traffico verrà spostato sui collegamenti rimanenti.
E' possibile una cosa simile anche sui server: il NIC Teaming combina più NIC in una singola interfaccia logica.
L'EtherChannel è anche conosciuto come:
Port Channel
Link Aggregation (LAG)
Link bundle
Il NIC Teaming viene anche definito:
Bonding
NIC balancing
Link aggregation
Bilanciamento del carico in EtherChannel


Se PC1 apre una sessione web con Server-1 e PC2 apre una sessione FTP con Server-2, abbiamo due flussi che attraversano lo switch.
Un flusso ("flow" in inglese) si ha quando si crea una comunicazione da un client al server.
Si esegue il bilanciamento del carico su di un flusso singolo in un'interfaccia dell'EtherChannel.
Ad esempio, tutti i pacchetti nel flusso tra PC1 e Server-1 andranno sempre lungo l'interfaccia G0/1 e tutti i pacchetti nel flusso da PC2 a Server-2 andranno sempre lungo l'interfaccia G0/2.
I pacchetti dello stesso flusso NON vengono, perciò, inviati su interfacce differenti: questo perché il "round robin load balancing" potrebbe causare l'arrivo fuori ordine dei pacchetti con conseguente rottura di alcuni applicazioni.
Ogni flusso singolo riceve la larghezza di banda di un singolo collegamento nell'EtherChannel come velocità massima: abbiamo quindi una bandwidth di 1Gbps per flusso nel nostro esempio, con una banda totale di 4Gbps disponibile su tutti i flussi.
Si può pensare all'EtherChannel come ad un'autostrada: le macchine rimangono in un'unica corsia, ma siccome si hanno più corsie il traffico può passare più velocemente.
EtherChannel fornisce quindi ridondanza oltre al bilanciamento del carico e se un link cade il traffico viene bilanciato sui link rimanenti.
Protocolli EtherChannel
Vediamo ora i 3 protocolli di EtherChannel:
Link Aggregation Control Protocol (LACP): Questo protocollo è open standard e gli switch (su entrambi i lati) negoziano la creazione e la gestione dell'EtherChannel. Questo è il protocollo preferito.
Port Aggregation Protocol (PAgP): Sviluppato da Cisco. Anche qui gli switch da entrambi i lati negoziano la creazione e la gestione dell'EtherChannel.
EtherChannel statico: Gli switch non negoziano la creazione e gestione ma i settaggi devono combaciare su entrambi i lati affinché l'EtherChannel venga creato. Da usare se LACP non è supportato su entrambi i lati.
Tutti e tre i protocolli vengono configurati con il comando "channel-group parola-chiave" dove la parola-chiave è il protocollo che vogliamo configurare.
I parametri che devono combaciare su entrambi i lati del collegamento sono:
Speed
Duplex
Modalità Access o Trunk
VLAN native e VLAN permesse sui trunk
VLAN d'accesso sulle porte di accesso
Configurazione LACP
Le interfacce LACP possono essere impostate come Attive o Passive.
Se le interfacce dello switch 1 sono impostate come Attive e quelle sullo switch 2 sono impostate come passive, si creerà l'EtherChannel.
Se entrambi i lati sono passivi, l'EtherChannel non si crea, mentre se entrambi i lati sono passivi avremo il nostro EtherChannel.
Si raccomanda di configurare entrambi i lati come Attivi in modo da non dover ricordare per forza quale lato sia attivo e quale sia passivo.
Creazione dell'interfaccia port-channel 1:
SW1(config)#interface range f0/23 - 24
SW1(config-if-range)#channel-group 1 mode active
Configurazione delle impostazioni dell'interfaccia nel port channel:
SW1(config)#interface port-channel 1
SW1(config-if)#switchport mode trunk
Configurazione delle impostazioni sullo switch che si trova dall'altra parte del collegamento:
SW2(config)#interface range f0/23 - 24
SW2(config-if-range)#channel-group 1 mode active
SW2(config)#interface port-channel 1
SW2(config-if)#switchport mode trunk
Configurazione PAgP
Le interfacce di PAgP possono essere impostate come Desirable o Auto.
Se un lato è Desirable e l'altro Auto, si creerà l'EtherChannel.
Se entrambi i lati sono Auto, l'EtherChannel non verrà creato.
Se entrambi i lati sono Desirable, avremo l'EtherChannel.
Di nuovo, configurando entrambi i lati come Desirable non dobbiamo ricordarci quale lato è Desirable e quale Auto.
SW1(config)#interface range f0/23 - 24
SW1(config-if-range)#channel-group 1 mode desirable
SW1(config)#interface port-channel 1
SW1(config-if)#switchport mode trunk
Le stesse impostazioni vanno configurate sullo switch che si trova dall'altra parte del collegamento.
Configurazione EtherChannel statico
SW1(config)#interface range f0/23 - 24
SW1(config-if-range)#channel-group 1 mode on
SW1(config)#interface port-channel 1
SW1(config-if)#switchport mode trunk
Verifica
Si possono controllare le configurazioni dell'EtherChannel tramite il semplice comando "show etherchannel summary" indipendentemente dal protocollo utilizzato.


Nel nostro esempio possiamo vedere due EtherChannel su Acc1: il primo collega questo a CD1 e l'altro lo collega a CD2.
Essendo CD1 il root bridge, STP vede i due EtherChannel come interfacce separate e per prevenire i loop blocca l'EtherChannel Po2.
Questo ci riporta alla situazione in cui abbiamo solo la metà della larghezza di banda totale: possiamo usare solo 2 dei 4 uplink.
Ciononostante, la configurazione dell'EtherChannel ci permette di usare anche il secondo link all'interno del Po1, mentre prima potevamo usarne solo 1.
EtherChannel Multi-Chassis
Esiste la possibilità di poter sfruttare tutti e 4 i collegamenti dell'esempio precedente, vediamo come.


Su alcuni switch Cisco sono supportate tecnologie di EtherChannel Multi-chassis.
Questi switch supportano un EtherChannel condiviso tra diversi switch, che devono essere configurati con le stesse impostazioni.
STP è ancora attivo, ma non rileva nessuno loop. Questo permette di eseguire un bilanciamento del carico e ridondanza su tutte le interfacce.
Gli switch che possono eseguire EtherChannel Multi-chassis hanno solo una delle seguenti tecnologie:
StackWise: alcuni switch Catalyst come le famiglie 3750, 3850 e 9000
Virtual Switching System (VSS): Switch Catalyst delle famiglie 4500 e 6500
Virtual Port Channel (vPC): Sugli switch della famiglia Nexus
EtherChannel di livello 3
Finora abbiamo configurato EtherChannel di livello 2, vediamo ora come configurare un EtherChannel di livello 3.
La configurazione è molto simile, ma dobbiamo rendere le porte di livello 3 con il comando "no switchport".
Switch1(config)#interface range GigabitEthernet 1/0/1 - 2
Switch1(config-if-range)#no switchport
Switch1(config-if-range)#channel-group 1 mode | active | auto | desirable | on | passive
Switch1(config)#interface port-channel 1
Switch1(config-if)#ip address 192.168.0.1 255.255.255.252
Switch1(config-if)#no shutdown