2. vPC核心概念与术语体系

vPC(virtual Port Channel,虚拟端口通道)是 Cisco Nexus 系列交换机上实现跨设备链路聚合与高可用转发的一项关键技术。它的核心思想是:让两台独立的物理交换机在控制平面保持独立、在数据平面协同转发,从而对下游设备呈现为一个逻辑上的“单一交换机”。要真正理解 vPC 的运行机制,必须先建立一套清晰、准确的术语体系。本节围绕 vPC domain、vPC peer-link、vPC peer-keepalive、vPC member port、vPC port-channel 以及角色选举与优先级机制这六个核心概念展开,帮助读者建立完整的认知框架。

vPC domain:逻辑协同的边界

vPC domain 是 vPC 体系中最上层的逻辑概念,它定义了两台交换机之间协同工作的“域”。一个 vPC domain 由两台交换机组成,这两台交换机被称为 vPC peer(对等体)。每台交换机上都需要配置相同的 domain ID,例如 vpc domain 10,这个 ID 是两台设备建立对等关系的身份标识。domain ID 不一致时,peer-link 无法正常建立,vPC 也就无从谈起。

在同一个 vPC domain 内,两台交换机共享一个虚拟的 MAC 地址和虚拟的 IP 地址,这个虚拟地址用于承载 vPC 相关的控制协议报文。对于下游设备而言,它看到的是一个统一的逻辑设备,而不是两台独立的交换机。vPC domain 的边界非常明确:只有属于同一 domain 的两台交换机才能形成 vPC 对等关系,不同 domain 之间不会产生 vPC 协同。

vPC peer-link:数据平面的“大动脉”

vPC peer-link 是连接两台 vPC peer 的物理链路,通常由多条高速链路捆绑成一个 port-channel 构成。它是 vPC 体系中最重要的数据通道,承担着三类关键流量:一是两台交换机之间的控制协议报文;二是单播数据流量在 peer 之间的转发;三是广播、组播以及未知单播流量在 peer 之间的同步。

peer-link 的可靠性直接决定了 vPC 的稳定性。如果 peer-link 中断,两台交换机将无法协同转发,vPC 会进入不一致状态,通常会导致部分链路被挂起。因此在实际部署中,peer-link 建议使用至少两条 10G 或 40G 以上的链路,并分布在不同的线卡或不同的物理路径上,以避免单点故障。peer-link 本身不承载终端设备的直接接入,它是一条“内部链路”,这一点与普通的 port-channel 有本质区别。

vPC peer-keepalive:控制平面的“心跳线”

vPC peer-keepalive 是一条独立于 peer-link 的带外链路,用于在两台 vPC peer 之间传递心跳报文。它的作用是检测对端交换机是否存活。当 peer-link 正常时,keepalive 链路处于“备用”状态;一旦 peer-link 中断,keepalive 链路就成为判断对端是否存活的唯一依据。

keepalive 链路通常使用管理接口或专用的三层接口,通过一条直连链路或经过管理网络连接。它不承载任何数据流量,只传递心跳消息。如果 keepalive 也中断,两台交换机将无法确认对端状态,此时会触发“双活”检测机制,通常会导致其中一台交换机的 vPC 成员端口被挂起,以防止流量黑洞。因此,keepalive 链路必须与 peer-link 完全分离,不能共用物理路径。

vPC member port 与 vPC port-channel

vPC member port 是指下游设备连接到两台 vPC peer 的物理接口。这些接口分别位于两台交换机上,但通过 vPC 机制被捆绑成一个逻辑端口。例如,服务器通过两条链路分别连接到 Switch-A 和 Switch-B,这两条链路在服务器侧被捆绑为一个 port-channel,在交换机侧则分别成为 vPC member port。

vPC port-channel 是 vPC member port 的逻辑集合,它代表了下游设备与 vPC domain 之间的聚合链路。对于下游设备而言,它看到的是一个标准的 port-channel,可以使用 LACP 或静态模式进行捆绑。vPC port-channel 的关键特性是:它跨越了两台物理交换机,但对外表现为一个逻辑接口。这意味着下游设备无需感知 vPC 的存在,只需按照常规的 port-channel 配置即可。

需要注意的是,vPC member port 必须与 vPC port-channel 的配置保持一致。如果两台交换机上的 member port 配置不一致(例如 VLAN 允许列表不同),vPC 会进入不一致状态,可能导致部分流量被丢弃。因此,在配置 vPC 时,必须确保两台交换机上的接口配置完全对称。

角色选举与优先级机制

在 vPC domain 中,两台交换机需要选举出一个“主”角色和一个“备”角色。主交换机负责处理 vPC 相关的控制协议报文,并承担部分转发决策;备交换机则协同工作,并在主交换机故障时接管其职责。角色选举基于优先级和系统 MAC 地址进行:优先级数值越小,优先级越高;如果优先级相同,则比较系统 MAC 地址,MAC 地址较小的交换机成为主设备。

优先级通过 vpc domain 下的 role priority 命令配置,默认值为 32667。在实际部署中,通常将计划作为主设备的交换机优先级设置为较低的值(例如 100),备设备保持默认或设置为较高的值(例如 200)。这样做的目的是确保角色稳定,避免因优先级相同而依赖 MAC 地址比较带来的不确定性。

角色选举的结果直接影响 vPC 的运行行为。主设备负责发送 vPC 相关的协议报文,备设备则监听并同步状态。当主设备故障时,备设备会接管主角色,继续维持 vPC 的正常运行。因此,角色选举机制是 vPC 高可用性的重要保障。

vPC Domain 10 Switch-A Role: Primary (优先级 100) Switch-B Role: Secondary (优先级 200) vPC Peer-Link Peer-Keepalive vPC Port-Channel (逻辑聚合) member port member port 下游服务器 / 交换机 LACP Port-Channel Peer-Link(数据同步) Keepalive(心跳检测) Member Port(成员端口) vPC Port-Channel(逻辑聚合链路)

术语之间的协同关系

上述六个概念并非孤立存在,而是构成了一个完整的协同体系。vPC domain 是逻辑边界,peer-link 和 peer-keepalive 是两条独立的通信通道,member port 和 port-channel 是面向下游的接入方式,角色选举则决定了控制平面的主备关系。它们之间的协同关系可以概括为:domain 定义范围,peer-link 承载数据,keepalive 保障检测,member port 提供接入,port-channel 实现聚合,角色选举维持秩序。

在实际排障中,理解这些术语的层次关系尤为重要。例如,当 vPC 出现不一致时,首先需要检查 peer-link 是否正常,其次确认 keepalive 是否可达,然后核对 member port 的配置是否对称,最后检查角色选举是否稳定。只有建立起清晰的术语体系,才能在复杂的故障场景中快速定位问题根源。

学习建议:建议在实验环境中搭建两台 Nexus 交换机,依次配置 vPC domain、peer-link、peer-keepalive 和 member port,并通过 show vpc、show vpc peer-keepalive、show vpc role 等命令观察各术语对应的实际状态。只有将术语与真实输出对应起来,才能真正掌握 vPC 的运行逻辑。