Mental model
Two switches connected by one cable: STP sees one path, you get one link’s worth of bandwidth, and if that cable dies you’re disconnected. Connect them with four cables instead and STP — being STP — will block three of them to prevent a loop. You paid for four cables, you can only use one.
EtherChannel is the trick that lets STP see all four cables as one logical link (a Port-Channel). Now nothing gets blocked, all four links forward traffic in parallel, and if one cable fails you lose 25% of bandwidth but stay online.
Three ways to form an EtherChannel
| Mode | Protocol | When to use |
|---|---|---|
| LACP | 802.1AX (industry standard) | Always your first choice — works with non-Cisco gear |
| PAgP | Cisco-proprietary | Legacy Cisco-only environments |
| Static (on) | None — both sides forced on | When negotiation isn’t possible / for max performance |
For LACP and PAgP, both ends negotiate before bringing the bundle up. For static, you tell both sides “you’re a Port-Channel, end of story” — risky if one side is misconfigured (creates a loop).
LACP modes (active / passive)
- active — actively sends LACP packets
- passive — answers if asked, doesn’t initiate
- At least one side must be active
PAgP modes (desirable / auto)
- desirable — actively negotiates
- auto — passive, answers only
- At least one side must be desirable
Commands
LACP — the typical case
! Both SW1 and SW2 — pick matching ports
SW1(config)# interface range GigabitEthernet0/1 - 4
SW1(config-if-range)# channel-protocol lacp
SW1(config-if-range)# channel-group 1 mode active
!
SW1(config)# interface Port-channel 1
SW1(config-if)# switchport mode trunk
SW1(config-if)# switchport trunk allowed vlan 10,20,30
Configure the Port-channel interface (the logical one), not the individual physical interfaces. Settings on Po1 propagate to all members.
Static (no negotiation)
SW1(config-if-range)# channel-group 1 mode on
Make sure both ends are on — mismatched modes create a black hole.
Choose a load-balancing method
SW1(config)# port-channel load-balance src-dst-ip
Default is src-dst-mac — good enough for switch-to-switch in a flat LAN. For router-to-switch or many-to-one flows, use src-dst-ip so different conversations actually hash to different physical links.
Verification
SW1# show etherchannel summary
SW1# show etherchannel 1 detail
SW1# show interfaces Port-channel 1
SW1# show lacp neighbor
The most useful one: show etherchannel summary. The bundle is healthy if you see Po1(SU) and (P) next to each member port — S = layer 2 / switch, U = in use, P = bundled.
Common mistakes
-
Mismatched settings on member ports. All ports in a bundle must have identical speed, duplex, native VLAN, allowed VLAN list, and switchport mode. One mismatch and the port falls out of the bundle.
-
One end LACP, other end PAgP. They don’t speak each other’s protocols. Bundle never forms. Both ends must use the same negotiation.
-
Both ends in passive / auto. Neither side initiates negotiation → bundle never forms. At least one side must be active (LACP) or desirable (PAgP).
-
Configuring physical interfaces individually after bundling. Once
channel-group 1is on a port, that port inherits everything fromPort-channel 1. Configure on Po1, not on the members. -
Static
onon one end, LACP on the other. Static sends no LACP packets — the LACP side waits for negotiation that never comes. Both ends must agree on mode. -
Default load-balancing on a router-to-switch link. Default
src-dst-machashes everything from the router to the same physical link (router’s MAC never changes). Usesrc-dst-ipfor variety.
Lab to try tonight
- Two switches connected with four physical Ethernet links.
- Verify STP behavior first:
show spanning-treeshould show three of the four links blocked. - Configure LACP EtherChannel on all four ports of both switches (one side active, other side passive).
- Run
show etherchannel summary— should show all four members bundled and in use. - Re-run
show spanning-tree— now you should see ONE Port-channel interface, no blocked links. - Unplug one cable. Verify the Port-channel stays up with 3 members. Plug it back, watch it re-bundle.
- Bonus: change load-balancing method and observe the change in
show etherchannel load-balance.
Cheat strip
| Concept | Plain English |
|---|---|
| EtherChannel / Port-Channel | 2–8 physical links bundled into one logical interface |
| LACP | Industry-standard negotiation (use this) |
| PAgP | Cisco-only negotiation (avoid unless required) |
Static on | No negotiation — both sides forced |
| Po1 | Shorthand for Port-Channel 1, the logical interface |
| Load-balancing | How traffic is distributed across member links. src-dst-ip is the safe default. |
| Failure | One member dies → bundle stays up minus that bandwidth |