4. vPC peer-link链路设计与工程实施
vPC peer-link 是两台 vPC 对等设备之间唯一的二层“大动脉”,它承载着 CFS 协议报文、vPC 成员端口的 MAC 学习同步、STP BPDU 转发、以及当 vPC 成员链路单侧失效时的跨设备流量转发。peer-link 一旦中断,vPC 系统会进入“双主”状态,两台设备都会认为自己是主设备,从而引发 MAC 地址漂移、网关冲突和流量黑洞。因此,peer-link 的设计与实施质量,直接决定了整个 vPC 高可用架构的稳定性。
一、链路聚合要求:为什么必须是 Port-Channel
peer-link 在逻辑上是一条链路,物理上必须由多条成员链路组成一个 Port-Channel。Cisco 明确要求 peer-link 使用标准 EtherChannel,且成员端口数量、速率、双工模式必须一致。常见做法是使用 2~4 条 10GE 或 25GE 链路,跨不同线卡或不同交换机芯片分布,避免单板故障导致整条 peer-link 失效。
需要特别注意的是,peer-link 不能使用 vPC 本身来保护,它是一条普通 Port-Channel,但必须配置为 trunk,并允许所有 vPC VLAN 以及用于 CFS 通信的 VLAN 通过。推荐将 peer-link 的 Port-Channel 编号固定为 port-channel 1,便于运维识别。以下是一个典型的 peer-link 配置示例:
interface port-channel1
description vPC-Peer-Link
switchport mode trunk
switchport trunk allowed vlan 10,20,30,99
spanning-tree port type network
mtu 9216
no shutdown
interface Ethernet1/1
description To-Nexus-B-Eth1/1
switchport mode trunk
switchport trunk allowed vlan 10,20,30,99
channel-group 1 mode active
no shutdown
interface Ethernet1/2
description To-Nexus-B-Eth1/2
switchport mode trunk
switchport trunk allowed vlan 10,20,30,99
channel-group 1 mode active
no shutdown
其中 spanning-tree port type network 将 peer-link 标记为网络端口,使其不参与 STP 收敛计算,避免因 STP 状态变化导致 peer-link 震荡。LACP 模式建议使用 active,两端都主动发起协商,便于快速检测成员链路故障。
二、MTU 与 QoS 考量
peer-link 的 MTU 必须足够大,以承载 vPC 对等设备之间转发的完整数据帧。如果 vPC 成员端口允许 jumbo frame,peer-link 也必须配置相同的 MTU,否则跨设备转发的大帧会被丢弃。推荐将 peer-link 的 MTU 设置为 9216 字节,与数据中心典型 jumbo frame 配置保持一致。
QoS 方面,peer-link 需要为 CFS 协议报文和控制流量提供足够的优先级保障。建议在 peer-link 上启用 qos trust dscp 或配置明确的分类策略,确保 CFS 报文不会被丢弃。同时,peer-link 不应承载普通用户数据流量的主要路径,它的核心职责是控制平面同步和故障时的临时转发通道。如果日常数据流量大量穿越 peer-link,说明 vPC 成员链路负载均衡或上行链路设计存在问题,需要重新审视拓扑。
三、peer-link 带宽与冗余设计
peer-link 的带宽规划需要从两个维度考虑:正常状态下的控制流量,以及故障状态下的突发转发流量。正常状态下,peer-link 主要承载 CFS 同步、MAC 表项同步和少量广播流量,带宽占用通常较低。但当某台 vPC 成员设备的上行链路全部故障时,该设备会将所有流量通过 peer-link 转发到对端设备,此时 peer-link 需要承载接近全部业务流量。
因此,peer-link 的带宽应至少等于单台 vPC 设备上行链路的总带宽。例如,若每台设备有 4 条 10GE 上行链路,则 peer-link 建议配置 4 条 10GE 或 2 条 25GE 成员链路。同时,peer-link 成员链路应分布在不同的线卡上,避免单线卡故障导致 peer-link 带宽骤降。
四、常见配置错误与验证
peer-link 配置中最常见的错误包括:两端 Port-Channel 模式不一致(一端 active 一端 passive)、成员端口 VLAN 允许列表不匹配、MTU 不一致、以及忘记配置 spanning-tree port type network。这些错误会导致 peer-link 无法正常建立,或建立后 CFS 协议无法同步。
另一个高频问题是 peer-link 的 VLAN 允许列表与 vPC 成员端口不一致。如果某个 vPC VLAN 没有在 peer-link 上放行,当该 VLAN 的流量需要跨设备转发时会被丢弃,表现为部分 VLAN 通信正常、部分 VLAN 不通。建议在配置完成后,使用以下命令逐项验证:
show vpc brief
show vpc peer-keepalive
show port-channel summary interface port-channel 1
show interface port-channel 1 trunk
show spanning-tree interface port-channel 1
show vpc consistency-parameters global
其中 show vpc brief 应显示 peer-link 状态为 up,vPC 域 ID 一致,角色为主/备;show vpc consistency-parameters global 用于检查两端全局参数是否一致,包括 STP 模式、MTU、VLAN 列表等。如果出现 “Type-1” 不一致,vPC 会挂起,必须优先解决。
关键提醒:peer-link 中断后,vPC 系统会进入双主检测状态。如果此时 peer-keepalive 链路也中断,两台设备都会保持主设备角色,导致 MAC 地址冲突和流量黑洞。因此,peer-link 和 peer-keepalive 必须使用完全独立的物理路径,peer-keepalive 建议走管理口或独立的三层链路。
最后,peer-link 的冗余设计还应考虑设备级冗余。如果两台 vPC 对等设备之间的 peer-link 全部经过同一台中间设备或同一段光纤路径,则该中间设备或路径会成为单点故障。建议 peer-link 成员链路直接互联,或经过两台独立的中间交换机,确保任何单点故障都不会同时切断所有 peer-link 成员链路。