Brown Belt 25 min

Port-Channels on Switches with LACP

Bundle multiple switch links into a single logical port-channel using LACP (Link Aggregation Control Protocol). This lesson covers Cisco Catalyst (IOS XE) and Nexus (NX-OS) with 802.1Q trunking.

Why Use Port-Channels?

Port-channels allow you to:

  • Increase bandwidth between switches by bundling physical links into one logical link.
  • Provide redundancy: if one physical link fails, the others stay active.
  • Simplify spanning tree: the port-channel acts as a single entity, reducing blocking.
  • Load-balance traffic across multiple physical paths.
Tip: LACP (802.3ad) automatically negotiates which links participate in the port-channel and detects failed links. Set both sides to channel-group N mode active so they negotiate and agree.

Port-Channel on Catalyst (IOS XE) — 802.1Q Trunk

Configure a port-channel as a trunk between two Catalyst switches, bundling ports 1 and 2 into port-channel 10:

interface Port-channel10
 switchport mode trunk
 switchport trunk allowed vlan 10,20,30
 switchport trunk native vlan 999
 description Trunk-to-Switch2
 no shutdown

interface range GigabitEthernet1/0/1 - 2
 switchport mode trunk
 switchport trunk allowed vlan 10,20,30
 switchport trunk native vlan 999
 channel-group 10 mode active
 no shutdown

Why this order: Configure the logical port-channel first, then add member interfaces. Each member inherits the port-channel's switchport settings.

Verify:

show etherchannel summary

Expected output shows:

  • Group: 10, Port-channel: Po10
  • Protocol: LACP
  • Members: Gi1/0/1(P), Gi1/0/2(P) [P = Participating]

Show load-balancing:

show port-channel load-balance

By default, Catalyst uses source/destination IP for L3 traffic.

Port-Channel on Nexus (NX-OS) — 802.1Q Trunk

First, enable the LACP feature (required on Nexus):

feature lacp

interface port-channel10
 switchport mode trunk
 switchport trunk allowed vlan 10,20,30
 switchport trunk native vlan 999
 description Trunk-to-Switch2
 no shutdown

interface Ethernet 1/1
 switchport mode trunk
 switchport trunk allowed vlan 10,20,30
 switchport trunk native vlan 999
 channel-group 10 mode active
 no shutdown

interface Ethernet 1/2
 switchport mode trunk
 switchport trunk allowed vlan 10,20,30
 switchport trunk native vlan 999
 channel-group 10 mode active
 no shutdown

port-channel load-balance src-dst ip

Why feature lacp: NX-OS requires you to explicitly enable LACP before using port-channels. Catalyst (IOS XE) has it always available.

Verify:

show port-channel summary

Expected output:

  • Group: 10, Port-channel: po10
  • Protocol: LACP
  • Members: Eth1/1(P), Eth1/2(P)

Check neighbor agreement:

show lacp neighbor

Both sides should show each other with the same channel group ID and priority.

Load-Balancing Methods

Both platforms support different hashing algorithms for load-balancing traffic across the bundle:

Method Catalyst (IOS XE) Nexus (NX-OS) Best For
Source/Dest IP (L3) port-channel load-balance src-dst-ip port-channel load-balance src-dst ip Routed traffic between subnets
Source/Dest MAC (L2) port-channel load-balance src-dst-mac port-channel load-balance src-dst mac Switched traffic in same VLAN
Source Port (L4) port-channel load-balance src-port port-channel load-balance src-dst port TCP/UDP connections
Important: Load-balancing is per-flow. A single conversation between two hosts always uses the same physical link, even if other links are idle. This is by design (to preserve packet order). Only multiple simultaneous flows distribute across the bundle.

Both Sides Must Agree

For LACP to negotiate successfully:

  • Both sides must have the same channel-group number and mode active (or both mode passive on one side).
  • All member interfaces must have matching switchport mode and VLAN configuration.
  • If they disagree, LACP will put the link into "suspended" state and won't pass traffic.
  • The receiving switch will log errors like "inconsistent VLANs" if the allowed VLAN list or native VLAN differ.

Debug mismatch: Use show etherchannel summary (Catalyst) or show port-channel summary (Nexus). If a member shows (S) for Suspended, check the neighbor's VLAN settings and try to match them exactly.

Common Mistakes

1. Forgetting the port-channel interface: Always create the logical port-channel first with its switchport and VLAN settings, then add members with channel-group.
2. Mixing interface names: On Catalyst, it's GigabitEthernet; on Nexus, it's Ethernet. Don't copy commands between platforms without adapting the interface names.
3. Forgetting feature lacp on NX-OS: Without it, port-channel commands won't work.
4. Mismatched load-balance commands: Catalyst uses src-dst-ip (with hyphen); NX-OS uses src-dst ip (with space). Both are correct on their platform.

Summary

  • Create the logical port-channel interface with switchport mode trunk, VLAN settings, and description.
  • Add physical member interfaces with channel-group N mode active.
  • On Nexus, enable feature lacp first; on Catalyst, LACP is always available.
  • Set the same load-balancing method on both sides for predictable traffic distribution.
  • Verify with show etherchannel summary (IOS XE) or show port-channel summary (NX-OS).
  • If a link suspends, check that both sides have matching VLAN configurations.