vPC 简介
vPC (Virtual Port Channel)
vPC 是一种实现跨设备链路聚合的机制,基于 LACP(单台设备链路聚合的标准) 进行了扩展,能够实现多台设备间的链路聚合,从而把链路可靠性从单板级提高到了设备级。
如上图所示,在传统的网络拓扑中要实现网络的冗余,一般都会使用双链路上联的方式,但这种方式明显有一个环路,在这种拓扑下都会开启 STP,这时就会有一条链路是处于 Block 状态的,所以这种方式可以实现冗余,但不能增加网络带宽。想通过链路聚合的方式做双链路上联到两台不同的设备,但是 Port-Channel 不支持跨设备聚合,所以在这种背景下就出现了 vPC 的概念。和传统跨设备方案的区别是:既增强网络冗余又能增加带宽。
vPC 网络优势
vPC 为第二层网络提供大量重要优势,并借助第二层功能提供的优势,对第三层互联进行一系列改进。
在第二层网络中,能够实现以下优势:
此外,还支持以下重要的三层特性:
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