PermitANY

Cisco IOS Port-Channel / LACP

Cisco IOS / IOS-XEIntermediate

LACP EtherChannel (802.3ad) port-channel configuration for Cisco IOS/IOS-XE switches and routers. Supports L2 (trunk/access) and L3 (routed) port-channels.

↓ example.txt

What is it?

A Port-Channel (also called EtherChannel or Link Aggregation) bundles multiple physical interfaces into a single logical interface, multiplying bandwidth and providing redundancy. IEEE 802.3ad LACP (Link Aggregation Control Protocol) is the standard — both sides negotiate which links to bundle and detect failures. A 4-port GigabitEthernet port-channel gives you 4 Gbps of aggregate bandwidth (with load balancing) and if one link fails, the remaining links continue carrying traffic without any convergence delay.

✓ When to use

  • ·Uplinks between access and distribution switches that need more than 1 Gbps
  • ·Server connections where 1 Gbps is a bottleneck (use 2-4 port NIC teaming + switch port-channel)
  • ·Connections between core switches or between a switch and a router
  • ·Anywhere you need link redundancy without spanning tree blocking ports
  • ·WAN router interfaces where multiple T1/E1 or xDSL lines need to be aggregated

✗ When NOT to use

  • ·Connecting a single workstation — LACP requires a switch on both ends (or server NIC teaming)
  • ·Mixing different speed interfaces in one port-channel — all member ports must be the same speed
  • ·When spanning tree is already providing redundancy and bandwidth is sufficient

How it compares

vs Spanning Tree (STP)STP blocks redundant links to prevent loops — you pay for the cable but get no bandwidth from it. Port-channel uses ALL links simultaneously. Port-channel is always preferred over STP-blocked links for critical uplinks.
vs Cisco NX-OS vPCvPC (Virtual Port-Channel) allows a port-channel to span two physical switches — the server or downstream switch sees one port-channel but connects to two upstream switches. More resilient than standard port-channel.
vs Active/Passive bonding (Linux)Linux bonding mode 4 (LACP) is equivalent to Cisco LACP active mode. Linux bonding mode 1 (active-backup) provides failover but no bandwidth aggregation.

Prerequisites

  • Both ends of the port-channel must be configured — the switch on the other side needs the same port-channel configuration
  • All member interfaces must have the same speed, duplex, VLAN configuration, and trunk settings
  • On IOS: 'switchport trunk encapsulation dot1q' must be configured BEFORE 'switchport mode trunk' on some platforms
  • LACP 'active' mode on at least one side — never use 'on' mode with LACP (incompatible)

Config Generator

Verification commands

show etherchannel summary

Show all port-channels, member interfaces, and LACP status

Expected: Port-channel shows 'SU' (Layer 2, in use). Members show 'P' (bundled in port-channel). If 'I' (standalone), LACP not forming.

show lacp neighbor

Show LACP PDU exchange with the neighbor switch

Expected: Shows the neighbor's system ID, port priority, and state. If empty, LACP PDUs aren't being received.

show interfaces port-channel <id>

Show port-channel interface statistics and state

Expected: Line protocol up/up. Check input/output errors — these indicate physical layer issues on member links.

Debug commands

show lacp internal

Show LACP state machine for each member port

Common mistakes & fixes

Port-channel shows 'SD' or members show 'I' (individual) instead of 'P' (bundled)

Cause: LACP mode mismatch (both sides passive), or interface configuration mismatch between members

Fix: Set at least one side to 'active': 'channel-group <id> mode active'. Verify all members have identical speed, duplex, and VLAN config.

Port-channel is up but traffic imbalanced across members

Cause: Load balance algorithm not optimal for the traffic type

Fix: Change load balance method: 'port-channel load-balance src-dst-ip' for routed traffic, 'src-dst-mac' for L2 traffic. Check with 'show etherchannel load-balance'.

Cannot add interface to port-channel — 'incompatible interface removed'

Cause: Interface has different speed, duplex, VLAN, or STP configuration than existing port-channel members

Fix: Default the interface first: 'default interface <if>', then reconfigure it to match other members exactly before adding to channel-group.

Related configs