The problem with parallel links
Situation: one 1 Gbps link between two switches is too slow, so you add a second. Spanning Tree sees a loop and blocks one of them: you've paid for 2 Gbps and get 1.
- 1. Half the capacity idle. STP blocks the second link to prevent a loop between the two switches.
EtherChannel: many links, one logical link
EtherChannel bundles 2 to 8 (active) physical links into one logical interface, a port-channel. Spanning Tree sees a single link, so nothing is blocked. All members carry traffic, and if one fails the others carry on without any STP recalculation.
- 1. Flows are spread across members. The switch hashes each flow's addresses to choose a member link; flow A uses one link…
- 2. …and flow B the other. Each flow stays on one link so its frames arrive in order.
- 3. A member fails: the bundle stays up. Flows on the failed member move to the remaining link within moments; Spanning Tree doesn't notice anything.
💡 Load balancing is per flow, not per frame. A single large transfer between two hosts uses one member link, so one flow never gets more than one link's speed.
Negotiation: LACP, PAgP or static
| Protocol | Modes | Forms a channel when |
|---|---|---|
| LACP (IEEE 802.3ad / 802.1AX) | active, passive | active + active, or active + passive (passive + passive never starts) |
| PAgP (Cisco) | desirable, auto | desirable + desirable, or desirable + auto |
| Static | on | on + on only; no negotiation and no checks |
Use LACP: it's the standard, works with other vendors and servers, and checks the far end is really part of the same bundle. LACP can hold up to 16 ports, with 8 active and the rest in hot standby.
Members must match
Every member link must have the same:
- speed and duplex,
- switchport mode (access or trunk),
- access VLAN, or allowed VLANs and native VLAN on a trunk.
A port that doesn't match is suspended from the bundle.
Configure
interface range GigabitEthernet1/0/23 - 24
channel-group 1 mode active
interface Port-channel1
switchport mode trunk
switchport trunk allowed vlan 10,20On both switches. After the bundle forms, configure it on the Port-channel interface; changes are copied to the members.
port-channel load-balance src-dst-ipGlobal: hash on source and destination IP, which spreads traffic better than MAC-only hashing when most traffic goes to one router.
Verify
SW1#show etherchannel summary Flags: D - down P - bundled in port-channel I - stand-alone s - suspended H - Hot-standby (LACP only) R - Layer3 S - Layer2 U - in use f - failed to allocate aggregator ... Number of channel-groups in use: 1 Number of aggregators: 1 Group Port-channel Protocol Ports ------+-------------+-----------+----------------------------------------------- 1 Po1(SU) LACP Gi1/0/23(P) Gi1/0/24(P)
show etherchannel load-balanceWhich fields the hash uses.
Check yourself
Both ends of a link bundle are set to LACP passive. What happens?
One member shows (s) in show etherchannel summary. What's the likely cause?