Pozn.: Nevím jaký termín optimálně použít pro spojování portů. Cisco dříve používalo termín EtherChannel, který se však bral spíše jako Cisco záležitost. Obecnější a možná optimální je PortChannel (na Nexusu je nahrazen příkaz show etherchannel za show port-channel). Cisco i v nové dokumentaci různě míchá oba termíny. A na mnoha místech se používají další termíny jako Link Aggregation, Port Bundle, Port Group, NIC Teaming, NIC Bonding a další.
Výhod agregace linek je celá řada, získáme tak vyšší dostupnost (fault tolerance), vyšší rychlost (load balancing) za určitých podmínek, nemusíme řešit Spanning Tree proti smyčkám, protože jsou tyto linky brány jako jedna a ne různé cesty. To, že můžeme využít více přepínačů, ještě zvyšuje dostupnost (obdobnou výhodu má použití stacku).
Virtual Port Channel (vPC) umožní, aby se linky, které jsou fyzicky připojené ke dvěma různým Cisco Nexus přepínačům, tvářily jako jeden PortChannel pro třetí zařízení (switch, server či jiné síťové zařízení). Na Nexusech vytvoříme lokální EtherChannel (PortChannel), který můře být nastaven buď ručně (bez protokolu) nebo s vyjednáním pomocí Link Aggregation Control Protocol (LACP) což je doporučeno. Každý switch může mít až 8 aktivních linek v PortChannelu.
Pozn.: U Cisca jsem ještě četl o podobné technologii Multichassis EtherChannel (MCEC) spolu s Multichassis LACP (mLACP), které mají fungovat na Cisco IOS. V praxi jsme se s tím ale nikdy nesetkal a ani jsem nepochopil na jakých přepínačích to má být podporováno.
Switche, které konfigurujeme pomocí vPC, se označují jako vPC peer device. Tyto zařízení musíme mezi sebou propojit a vytvořit vPC peer keepalive link a vPC peer link.
Pro vytvoření vPC peer link musíme spojit minimálně dva ethernetové porty na každém přepínači a nastavit je jako PortChannel. Doporučuje se nastavit vPC peer link PortChannel jako trunk. Tato linka se používá pro synchronizaci stavu mezi zařízeními.
vPC peer keepalive link se využívá pouze pro monitorování zdraví jednotlivých vPC peer device. Posílají se zde pravidelné keepalive zprávy. Je vyžadována L3 konektivita a můžeme využít management VRF a jeho IP adresu (mgmt 0 interface).
Na obou vPC peer device konfigurujeme vPC domain se stejným ID, která může být pouze jedna na zařízení. Doména spojuje obě vPC peer device, vPC peer keepalive link, vPC peer link a všechny PortChannely používající vPC. V doméně definujeme globální parametry.

Konfigurace vPC v NX-OS
Níže je bodově popsána konfigurace. Nejprve nastavení, abychom mohli vPC využít a následně ukázková konfigurace jednoho vPC. Pro podrobnější informace je možno využít oficiální dokumentaci Virtual PortChannel Quick Configuration Guide či Cisco Nexus 3000 - Configuring Virtual Port Channels.
Pozn.: Konfigurace obsahuje ukázkové hodnoty, například i využití LACP protokolu (což není povinné).
Povolení vPC
Nejprve musíme povolit vlastnost vPC.
SWITCH1(config)#feature vpc SWITCH2(config)#feature vpc
vPC domain
Vytvoříme vPC domain s určitým ID, což je číslo od 1 do 1000. To musíme nastavit na obou switchích stejné. Pokud máme ve spojité síti více dvojic, kde konfigurujeme vPC, tak se doporučuje používat unikátní domain ID.
SWITCH1(config)#vpc domain 10 SWITCH2(config)#vpc domain 10
Pro vPC domain můžeme (volitelně) ručně nastavit systémovou prioritu, v tom případě ji ale musíme nastavit na obou přepínačích stejnou. Jde o hodnotu od 1 do 65535, defaultní je 32667. Nižší hodnota znamená vyšší prioritu.
SWITCH1(config-vpc-domain)#system-priority 4000 SWITCH2(config-vpc-domain)#system-priority 4000
Dále můžeme (volitelně) nastavit role priority, což je priorita switche a tak určíme, který je primární a který sekundární. Každý switch musí mít jinou hodnotu. Hodnoty jsou stejné jako u systémové priority.
SWITCH1(config-vpc-domain)#role priority 1000 SWITCH2(config-vpc-domain)#role priority 2000
Povinným nastavením je cílová IP adresa pro vPC peer keepalive link. Zadáme křížem IP adresy management VRF druhého switche.
SWITCH1(config-vpc-domain)#peer-keepalive destination 192.168.1.20 SWITCH2(config-vpc-domain)#peer-keepalive destination 192.168.1.10
vPC peer link
Vytvoříme vPC peer link, nejprve tedy musíme spojit alespoň dva porty z každého přepínače, třeba E1/49 a E1/50. Na těchto portech vytvoříme PortChannel a nastavíme, že jde o peer link.
SWITCH1(config)#interface Ethernet1/49-50 SWITCH1(config-if)#channel-group 1 mode active SWITCH1(config)#interface port-channel 1 SWITCH1(config-if)#vpc peer-link SWITCH1(config-if)#switchport mode trunk SWITCH2(config)#interface Ethernet1/49-50 SWITCH2(config-if)#channel-group 1 mode active SWITCH2(config)#interface port-channel 1 SWITCH2(config-if)#vpc peer-link SWITCH2(config-if)#switchport mode trunk
Vytvoření vPC
Nyní máme vše připravené a můžeme vytvářet PortChannel spojený pomocí vPC přes dva přepínače. Na obou přepínačích spojíme jeden nebo více portů do PortChannelu a ten nastavíme do určitého vPC. V příkladu se používá pouze jeden port na každém přepínači a všude PortChannel číslo 10 i vPC číslo 10.
SWITCH1(config)#interface Ethernet1/1 SWITCH1(config-if)#channel-group 10 mode active SWITCH1(config)#interface Po10 SWITCH1(config-if)#vpc 10 SWITCH2(config)#interface Ethernet1/1 SWITCH2(config-if)#channel-group 10 mode active SWITCH2(config)#interface Po10 SWITCH2(config-if)#vpc 10
Samozřejmě pak musíme nastavit druhou stranu (server či switch) a připojené porty do odpovídajícího PortChannelu (zde se využívá protokol LACP).
Kontrola nastavení
Jako základ vytváříme standardní EtherChannel (PortChannel), takže ten zkontrolujeme příkazy pro PortChannel, jako
SWITCH#show port-channel summary
Dále máme speciální příkazy pro kontrolu vPC
SWITCH#show vpc SWITCH#show vpc role SWITCH#show vpc peer-keepalive SWITCH#show vpc consistency-parameters vpc 10
A pokud využijeme protokol LACP, tak můžeme zobrazit údaje o něm
SWITCH#show lacp neighbor interface po10
Komentáře
Kde se tohle dá prakticky využít? :) nějak mě nic nenapadá. Jinak opět zajímavé čtení :)
odpověď na [1]Karllan: Použít se to dá všude v datacentru, kde tvořím vysoce dostupnou (redundatní) infrastrukturu. Obdobně jsem to vždy používal na Catalyst 3750, které jsem měl ve stacku a servery (nebo uplinky do dalších switchů) připojoval každou cestou do jiného přepínače. Nexusy do stacku nezapojím, takže stejného řešení dosáhnu pomocí vPC.
Nechyba nahodou v konfiguracii klasickeho portchannelu pri vybere interfejsov prikaz range ? :)
odpověď na [3]Tomique34: Na Nexusech (NX-OS) příkaz range neexistuje. Není potřeba, rovnou můžeme adresovat více portů jako u IOSu s range.