前言
Nexus和Catalyst有很多不同,我觉得目前在Nexus环境下,应用最普遍的可能就是vPC技术了,通过使用vPC技术能够改善STP环境下很多问题,诸如带宽浪费、收敛慢等问题。
vPC概述
vPC全称Virtual Port-Channel,是一种支持跨设备进行链路捆绑的协议,旨在消除STP环路,实现网络的快速收敛,提高链路利用率。在vPC环境下,HSRP/VRRP协议实现了双活,即无论Active/Standby设备,均能够转发流量,这也是一个比较大的进步。
vPC对远端设备并没有要求,只要远端设备支持802.3ad/LACP,本端设备均可以使用vPC与其互联。
传统意义上的VSS实际上也能够进行跨设备链路捆绑,但是由于VSS把两台设备的Control-plane集中到了一起,一旦Control-plane出现问题,两台设备均会出现问题。而vPC可视为在两台设备上独立运行协议,其中一台出现问题,也不会影响另一台。
vPC术语
- vPC Domain —包含vpc peer,peer-link,keepalive-link, 下联port-channel等
- vPC peer – vpc交换机,成对出现
- vPC member port – 组成vpc的一组端口(port-channel)
- vPC – 连接下联交换机与两个vpc peer之间的port-channel链路
- vPC peer-link –vpc peer之间的链路,状态和信息同步,必须为10GE
- vPC peer-keepalive link vpc peer之间的心跳线,作为peer-link的备份
- vPC VLAN –通过 vpc链路和peer-link承载的vlan.
- non-vPC VLAN –不通过vpc承载的vlan
- CFS – Cisco Fabric Services 协议,用于vpc peer之间状态同步,配置验证
vPC Domain
两台vPC peer设备需要定义一致的vPC Domain ID,且该ID尽量全网唯一,因为vPC Domain ID 会用于产生一个唯一vPC system-MAC,用于LACP协议,如果两台vPC设备vPC domain ID与另外两台vPC的domain
ID重复,将会导致LACP flapping。
在vPC domain模式下,可以定义vPC的全局参数,包括Role priority、keepalive等。
vPC Peer-link
用途
vPC peer-link执行标准的802.1Q Trunk协议,承载vPC vlan和非vPC vlan的流量。CFS协议、FHRP第一跳泛洪报文、STP BPDUs、HSRP Hellos,IGMP updates等流量均通过peer-link进行转发。
建议
Peer-link作为vPC中比较重要的通道,建议使用两个10GE的端口,并且分布在不同板卡上,避免板卡故障导致vPC出现问题。
如果peer-link配置在M1卡上,需要将接口设置为shared mode。
Cisco Fabric Service(CFS协议)
CFS协议主要有以下几个用途:
- 配置验证/比较
- STP管理,STP BPDU抑制
- MAC同步
- vPC成员端口状态
- IGMP Snooping同步
- HSRP双活
vPC配置一致性检查
当你建立一个vPC Domain后,两端的vPC就开始进行vPC配置一致性检查。
有两种一致性检查:
- Type 1 - 重要的检查项目,如果两端设备或接口不一致,Secondary设备会进入suspended状态,避免出现异常。
-Type 2 - 不是很重要,但是可能会导致流量异常。
Peer Keepalive
Peer-keepalive用于vPC peer之间的心跳,默认心跳消息间隔为2s,Hold timer为3s。
建议使用一个单独的三层链路用于vPC peer-keepalive,千兆口即可,通过单独的VRF建立,不能够通过peer-link传输。为了节约接口,也可以使用管理科mgmt0(N5K较常见)。
VPC成员端口与孤立端口(Orphan Port)
vPC成员端口一般指的是在接口上允许了vPC的端口,用于终结port-channel。流量可以在两条链路上进行负载分担,支持802.1d/LACP协议。
Orphan port指的是不通过vpc连接,但承载vpc vlan的端口。
这要和非vPC端口进行区分,如果一个vlan不被允许通过peer-link传输,那么这个vlan就不是vPC vlan,因此属于这个vlan的接口既不是vPC成员端口,也不是vPC Orphan端口。这一点很容易被混淆。
vPC 防环机制
首先说明,vPC放环机制是硬件实现的,不能够通过软件修改或关闭。
防环规则:vpc peer通过peer link发送过来的帧不会从vpc成员端口转发出去,而发给非vpc vlan,orphan port或者上联链路的流量会正常转发。
vPC简单配置
N7K(config)# feature vpc !开启vPC功能
N7K(config)# vpc domain 1 !定义vPC Domain
N7K(config-vpc-domain)# peer-keepalive destination x.x.x.x source y.y.y.y !定义Peer-keepalive
N7K(conifg)# int port-channel 10 !定义port-channel 10
N7K(config-int)# vpc peer-link !将这个portchannel定义为peer-link
N7K(config)# int port-channel 20 !定义port-channel 20
N7K(config-int)# vpc 20 !启用vPC
N7K(config-int)#show vpc consistency-parameters !检查vPC参数一致性