vPC 簡介
vPC (Virtual Port Channel)
vPC 是一種實作跨裝置鍊路聚合的機制,基于 LACP(單台裝置鍊路聚合的标準) 進行了擴充,能夠實作多台裝置間的鍊路聚合,進而把鍊路可靠性從單闆級提高到了裝置級。
如上圖所示,在傳統的網絡拓撲中要實作網絡的備援,一般都會使用雙鍊路上聯的方式,但這種方式明顯有一個環路,在這種拓撲下都會開啟 STP,這時就會有一條鍊路是處于 Block 狀态的,是以這種方式可以實作備援,但不能增加網絡帶寬。想通過鍊路聚合的方式做雙鍊路上聯到兩台不同的裝置,但是 Port-Channel 不支援跨裝置聚合,是以在這種背景下就出現了 vPC 的概念。和傳統跨裝置方案的差別是:既增強網絡備援又能增加帶寬。
vPC 網絡優勢
vPC 為第二層網絡提供大量重要優勢,并借助第二層功能提供的優勢,對第三層互聯進行一系列改進。
在第二層網絡中,能夠實作以下優勢:
- 通過備援系統提高系統可靠性
- 無需使用生成樹協定,即能進行環路管理。
- 始終提供完全系統帶寬可用性
- 迅速恢複鍊路故障
- 為任意支援 IEEE 802.3ad 的邊緣裝置提供端口信道連接配接
此外,還支援以下重要的三層特性:
- 通過 HSRP 配置進行主用-主用第三層轉發
- 通過主用-主用 HSRP 進行完全第三層帶寬通路
- 通過主用-主用 PIM 指定路由器進行第三層迅速多點傳播融合
Cisco Nexus 5K 以上型号的交換機都可以使用該功能。
vPC 配置
【配置示例】
Nexus 1
Nexus1# configure terminal
Nexus1(config)# feature vpc //全局開啟 vpc 功能
Nexus1(config)# feature lacp //全局開啟 lacp 功能
Nexus1(config)# vpc domain 1
Nexus1(config-vpc-domain)# peer-keepalive destination 12.12.12.2 source 12.12.12.1 //指定peer源目IP
Nexus1(config)# interface range Ethernet 1/31-32 //将兩個實體端口加入channel 12
Nexus1(config-if-range)# switchport
Nexus1(config-if-range)# switch mode trunk
Nexus1(config-if-range)# channel-group 12 mode active
Nexus1(config)# interface port-channel 12
Nexus1(config-if)# vpc peer-link //指定port-channel 12 為peer鍊路
Nexus1(config)# interface Ethernet1/1 //将實體端口加入channel 100
Nexus1(config-if)# switchport mode trunk
Nexus1(config-if)# channel-group 100 mode active
Nexus1(config)# interface port-channel 100
Nexus1(config-if)# vpc 100 //channel 100加入vpc 100
Nexus1(config)# interface mgmt0
Nexus1(config-if)# ip address 12.12.12.1/30
Nexus 2
Nexus2# configure terminal
Nexus2(config)# feature vpc //全局開啟 vpc 功能
Nexus2(config)# feature lacp //全局開啟 lacp 功能
Nexus2(config)# vpc domain 1
Nexus2(config-vpc-domain)# peer-keepalive destination 12.12.12.1 source 12.12.12.2 //指定peer源目IP
Nexus2(config)# interface range Ethernet 1/31-32 //将兩個實體端口加入channel 12
Nexus2(config-if-range)# switchport
Nexus2(config-if-range)# switch mode trunk
Nexus2(config-if-range)# channel-group 12 mode active
Nexus2(config)# interface port-channel 12
Nexus2(config-if)# vpc peer-link //指定port-channel 12 為peer鍊路
Nexus2(config)# interface Ethernet1/1 //将實體端口加入channel 100
Nexus2(config-if)# switchport mode trunk
Nexus2(config-if)# channel-group 100 mode active
Nexus2(config)# interface port-channel 100
Nexus2(config-if)# vpc 100 //channel 100加入vpc 100
Nexus2(config)# interface mgmt0
Nexus2(config-if)# ip address 12.12.12.2/30