Octet

What does EtherChannel misconfig guard do, and why does configuring only one side as "on" cause trouble?

Show the answer

Say this first

With on, a switch bundles its ports without asking the neighbor. If the neighbor is not bundled, one side sees one logical link and the other sees separate links, and traffic comes back up the bundle it went down. STP's EtherChannel misconfig guard, on by default on Catalyst, detects this from the BPDUs arriving on the bundle and err-disables the members with reason channel-misconfig. With LACP on one side and on on the other, the LACP side suspends its ports while the on side believes the bundle is up.

Go deeper

Case 1: on against unbundled ports

The unbundled neighbor floods a broadcast received on one link out its other link, straight back into the bundle. The bundled side relearns its own hosts' MACs on the port-channel and starts sending their traffic the wrong way. The guard catches it:

Output
%SPANTREE-2-CHNL_MISCFG: Detected loop due to etherchannel misconfiguration of Gi1/0/47
%PM-4-ERR_DISABLE: channel-misconfig (STP) error detected on Gi1/0/47, putting Gi1/0/47 in err-disable state
%PM-4-ERR_DISABLE: channel-misconfig (STP) error detected on Gi1/0/48, putting Gi1/0/48 in err-disable state

Case 2: on against LACP

The LACP side never hears a partner. On Catalyst 9000 it suspends its members:

Output
%ETC-5-L3DONTBNDL2: Gi1/0/47 suspended: LACP currently not enabled on the remote port.

The on side shows Po1(SU) with both members (P) and keeps sending flooded traffic into links the neighbor drops. Redundancy is gone and nothing on the on side says so.

Recovery

Make both ends match, ideally LACP active, then bounce the port-channel to clear the err-disable:

Cisco IOS
DSW1(config)# interface Port-channel1
DSW1(config-if)# shutdown
DSW1(config-if)# no shutdown

The guard itself is spanning-tree etherchannel guard misconfig, enabled by default.

Traps

  • Clearing the err-disable before fixing both ends. The guard trips again, or worse, it does not and the misdirected traffic returns.
How did you do?