L2 · switching · reviewed

vPC

Virtual Port Channel

Two Nexus peers present one LACP system downstream; peer-keepalive is the split-brain detector when the peer-link fails.

Presenter modeEmbed this figure

Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §Peer-Keepalive Link and MessagesCisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §vPC Peer-Link Failure and Peer-KeepaliveCisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §Consistency Check Behavior

Why it exists

STP blocks one uplink of a dual-homed access switch. vPC lets two Nexus peers present one port channel so both uplinks forward without forming a loop. Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §vPC Overview

The peers remain two control planes with two configurations. Consistency checks synchronise what must match; they do not merge the boxes into a stack. Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §Consistency Check Behavior

One logical channel from two peers

Two Nexus switches share a vPC domain, a peer-link, and a separate peer-keepalive path. Downstream, LACP sees one system ID so both uplinks forward.

Both peers join vPC domain 1. They exchange control state over the peer-link and keep a separate Layer-3 peer-keepalive path that must not ride the peer-link. Access · LACP. NX1 · primary: Domain 1. NX2 · secondary: Domain 1. Fabric / core.

Access · LACPNX1 · primaryPeer-keepalive on separate pathDomain: 1NX2 · secondaryDomain: 1Fabric / core
  • Link
  • Blocking
  • Packet in flight
  • Discarded
  • Emphasis
Select a device to read its state. Arrow keys walk the topology.
Text equivalent of this diagram
Devices and links at this step
ElementKindState
Access · LACPswitch
NX1 · primaryswitchDomain: 1
NX2 · secondaryswitchDomain: 1
Fabric / corecloud
Access · LACPNX1 · primarylinkup
Access · LACPNX2 · secondarylinkup
NX1 · primaryNX2 · secondarylinkup
NX1 · primaryFabric / corelinkup
NX2 · secondaryFabric / corelinkup
1 / 3

Both peers join vPC domain 1. They exchange control state over the peer-link and keep a separate Layer-3 peer-keepalive path that must not ride the peer-link.

What changed

  • NX1 · primary: Domain → 1
  • NX2 · secondary: Domain → 1
  • Peer-keepalive on separate path
  • Emphasis on NX1 · primary ↔ NX2 · secondary

How it works

A vPC domain binds two peers. The peer-link carries control traffic and orphan-port traffic. Peer-keepalive is a separate Layer-3 path used when the peer-link fails to decide whether the peer is still alive. Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §Peer-Keepalive Link and Messages

If the peer-link fails and keepalive still reaches the peer, the secondary disables its vPC member ports. One survivor forwards. If keepalive is also gone, both peers may go dual-active. Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §vPC Peer-Link Failure and Peer-Keepalive

Type-1 consistency mismatches can suspend VLANs or members; type-2 mismatches warn. Orphan ports are single-attached and need dual-attach or orphan-port suspend to survive secondary suspension cleanly. Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §Consistency Check Behavior

On the wire

Constructed examples, encoded from the field table below them — not captured traffic.

An ordinary frame. The group bit in the first octet of the destination is clear, so a switch forwards it to one port rather than flooding it.

Physical
A preamble and start-of-frame delimiter precede this, and the hardware removes them before any capture sees the frame. IEEE 802.3-2022
MAC header
Destination address, source address, and the EtherType naming the payload. IEEE 802.3-2022
Payload and FCS
Between 46 and 1500 octets, padded to the minimum, followed by a four-octet frame check sequence. IEEE 802.3-2022

Configure it

vPC domain with peer-keepalive, peer-link, and a member port-channel.

Cisco NX-OS 10.5 · Nexus 9300, Nexus 9500draft

  1. feature vpc
    feature lacp

    NX-OS keeps vPC and LACP off until features are enabled. Without `feature vpc`, domain configuration is rejected.

    Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §Guidelines and Limitations

  2. vpc domain 1
     peer-keepalive destination 192.0.2.2 source 192.0.2.1
     peer-switch
     peer-gateway

    Domain ID must match on both peers. Peer-keepalive needs Layer-3 reachability separate from the peer-link so split-brain can be detected when the peer-link fails.

    Common mistake: Running keepalive over the peer-link alone — when that link fails, keepalive dies with it and dual-active risk rises.

    Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §Peer-Keepalive Link and Messages

  3. interface port-channel1
     switchport mode trunk
     vpc peer-link

    The peer-link carries flooded frames and orphan traffic between peers. It is not a substitute for keepalive.

    Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §vPC Peer-Link

  4. interface port-channel10
     switchport mode trunk
     vpc 10

    Member Port-channel ID (`vpc 10`) must match on both peers so downstream LACP sees one system. Member interfaces join the Port-channel with LACP as usual.

    Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §Configuring a vPC

Verify

show vpc brief
Domain ID, peer status, peer-keepalive status, and vPC member up/down.
show vpc consistency-parameters global
Type-1/Type-2 parameters and whether peers agree.

Caveats

  • Marked draft: syntax has not been checked against Cisco documentation or a device.
  • vPC is Cisco NX-OS only. Peer-keepalive, consistency checks, and orphan-port behaviour are vendor mechanisms — no RFC.

When it breaks

Symptom first, because that is what you have when it happens.

  1. A configuration change is rejected, or a VLAN is suspended on the peer link with a consistency-check message.

    Narrow it down

    1. Read the consistency-check output and find which parameter differs.
    2. Distinguish a type-1 mismatch, which suspends VLANs, from a type-2, which warns.
    3. Compare the specific setting on both peers.

    Cause

    The two peers must agree on a defined set of parameters. Type-1 mismatches suspend VLANs on the secondary because forwarding with inconsistent state would loop or blackhole; type-2 only warn.

    Fix

    Fix the parameter rather than disabling the check. It is enumerating a real inconsistency, and the suspension is what stops it becoming an outage.

    Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §Consistency Check Behavior
  2. The peer link fails and half the network becomes unreachable, though both switches are up.

    Narrow it down

    1. Check whether the peer keepalive is on a separate path from the peer link.
    2. Confirm which switch is operational primary.
    3. Look at whether the secondary suspended its member ports.

    Cause

    When the peer link fails but keepalive still works, the secondary suspends its virtual port channel members so the primary keeps forwarding alone. That is the design; the outage is anything that was only reachable through the secondary.

    Fix

    Ensure orphan ports are not carrying anything that matters, and keep the keepalive on a genuinely independent path — if both fail together, both switches forward and it is a split brain.

    Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §vPC Peer-Link Failure and Peer-Keepalive
  3. A device attached to only one peer loses connectivity during a peer-link event.

    Narrow it down

    1. Identify which ports are orphan ports.
    2. Check whether orphan port suspension is configured.
    3. Confirm what the device depends on reaching.

    Cause

    An orphan port is attached to one peer only and is not part of a virtual port channel. When the secondary suspends its members, an orphan on the secondary is isolated unless it is suspended too so the device fails over by other means.

    Fix

    Dual-attach anything that matters. Where that is impossible, configure orphan port suspension so the device sees a link failure rather than a silent black hole.

    Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §vPC Orphan Ports
  4. Both peers keep forwarding after a peer-link failure and loops or MAC flaps appear.

    Narrow it down

    1. Check peer-keepalive reachability at the time of the event.
    2. Confirm keepalive is not routed over the peer-link or a dependent path.
    3. Inspect show vpc brief for dual-active indicators.

    Cause

    Peer-link and keepalive failed together, or keepalive was never independent. Each peer concluded it was the survivor.

    Fix

    Restore an independent keepalive path before relying on peer-link failure behaviour; clear dual-active and re-establish the domain cleanly.

    Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §Peer-Keepalive Link and Messages
  5. The vPC peer-link will not come up even though the port channel looks healthy.

    Narrow it down

    1. Verify peer-keepalive is up before expecting the peer-link.
    2. Ping between keepalive addresses in the configured VRF.
    3. Confirm source and destination IPs and VRF mapping.

    Cause

    NX-OS requires the peer-keepalive link to be up before the peer-link can form. Misplaced keepalive (wrong VRF, no L3 path) blocks domain formation.

    Fix

    Bring keepalive up on a working Layer-3 path first, then form the peer-link.

    Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide, Release 10.5(x) — Configuring vPCs §Peer-Keepalive Link and Messages

Design notes

Put peer-keepalive on a path that does not depend on the peer-link — often a dedicated VRF or management path with genuine Layer-3 reachability.

Dual-attach anything that matters. Orphans on the secondary become the hidden outage during the designed peer-link recovery.

Spanning tree still runs. vPC changes how the pair presents itself to neighbors; it does not remove the need for STP on miscabling outside the vPC members.

Misconceptions

vPC makes the two switches one switch.
They remain two control planes with two configurations, synchronised by consistency checks rather than merged. That is the difference from a stack or a chassis virtualisation, and it is why every parameter that must match is checked explicitly.
The peer link carries data traffic between the switches.
It carries control traffic and orphan-port traffic, and it is deliberately not a data path for virtual port channel members — the receiving peer will not forward a frame that arrived over the peer link out a member port. That rule is what prevents loops.
Spanning tree is not needed with vPC.
It still runs and still matters. The pair presents itself as one bridge for the purpose, but a loop introduced by miscabling outside the virtual port channels is caught by spanning tree exactly as it would be otherwise.

More walkthroughs

Peer-link down, keepalive still upfailure

The peer-link fails while keepalive remains reachable. The secondary suspends its vPC member ports so only the primary forwards — the designed single-survivor outcome.

Type-1 mismatch and an orphan portfailure

A type-1 consistency mismatch suspends unsafe VLANs or members. Separately, a single-attached orphan on the secondary goes dark when members suspend unless orphan-port suspend converts that into a visible link failure.

NX1 and NX2 disagree on a type-1 parameter (for example STP mode). Consistency check suspends the affected VLANs or members on the secondary rather than forwarding with unsafe state. Access · vPC. Orphan device. NX1 · primary: STP mode rapid-pvst. NX2 · secondary: STP mode mst.

Access · vPCOrphan deviceNX1 · primarySTP mode: rapid-pvstNX2 · secondaryType-1 → suspendSTP mode: mst
  • Link
  • Blocking
  • Packet in flight
  • Discarded
  • Emphasis
Select a device to read its state. Arrow keys walk the topology.
Text equivalent of this diagram
Devices and links at this step
ElementKindState
Access · vPCswitch
Orphan devicehost
NX1 · primaryswitchSTP mode: rapid-pvst
NX2 · secondaryswitchSTP mode: mst
Access · vPCNX1 · primarylinkup
Access · vPCNX2 · secondarylinkup
Orphan deviceNX2 · secondarylinkup
NX1 · primaryNX2 · secondarylinkup
1 / 3

NX1 and NX2 disagree on a type-1 parameter (for example STP mode). Consistency check suspends the affected VLANs or members on the secondary rather than forwarding with unsafe state.

Fix the mismatched parameter. Disabling the check keeps the symptom and the danger.

What changed

  • NX1 · primary: STP mode → rapid-pvst
  • NX2 · secondary: STP mode → mst
  • Type-1 → suspend

Terms

vPC peer-link
The Cisco MLAG link between two peers. It is not a member of the downstream vPC. If it fails while keepalive is alive, the secondary suspends member ports.

Check yourself

  • Where should peer-keepalive run relative to the peer-link?
  • The peer link fails while the keepalive still works. What happens?
  • A VLAN is suspended on the secondary peer with a consistency-check error. What should you do?
  • What is an orphan port?
  • Why will a peer not forward a frame from the peer link out a member port?
  • How many control planes does a healthy vPC pair have?
  • Does spanning tree still matter when vPC is in use?
  • What does the access switch see for LACP toward a vPC pair?