はじめに
EtherChannel(ポートチャネル)を構成した直後、あるいは既存のチャネルで、ポートが突然 err-disable になり通信できなくなることがあります。このとき、ログには次のような channel-misconfig のメッセージが出力されます。
%PM-4-ERR_DISABLE: channel-misconfig error detected on Gi1/0/1, putting Gi1/0/1 in err-disable state本記事は、EtherChannel が STP の保護機能でブロックや err-disable になる原因と対処を解説します。主因は対向との EtherChannel 設定不一致で、EtherChannel Misconfiguration Guard が、片側だけがチャネル化しているといった不整合を STP の BPDU で検知し、ループ防止のためにポートを落とします。STP 全体の位置づけは、関連記事『スパニングツリー(STP)とは|仕組みと RSTP・MSTP の違い』も参照してください。
- EtherChannel と STP がどう関係し、なぜ err-disable になるのか
- Misconfig Guard による err-disable と、メンバー不一致による suspended の違い
- 原因を切り分ける確認コマンド
- 両端のチャネル設定を揃える対処と復旧の手順
要点を先に示すと、EtherChannel の err-disable は、多くが対向とのチャネル設定不一致に起因します。正しく組まれた EtherChannel は STP から 1 つの論理ポートとして扱われますが、片側だけがチャネル化していると STP の整合がとれず、Misconfig Guard がポートを遮断します。対処は両端のチャネル設定(モード・メンバー・VLAN)を揃えることです。
EtherChannel と STP の関係
正しく構成された EtherChannel は、STP からは 1 本の論理ポートとして扱われます。このため、複数の物理リンクを束ねていても、STP の BPDU はチャネル全体で 1 つだけ送受信されます。
ところが、片側だけがチャネルとして束ねられ、対向が個別ポートのままだと、対向は各物理リンクから別々に BPDU を送ります。束ねた側は、1 本の論理ポートのはずの場所で複数の BPDU を受信することになり、これを設定不整合と判断します。
EtherChannel Misconfiguration Guard は、この「束ねたリンクで複数の BPDU を受信する」状態を検知し、ループを防ぐためにポートを err-disable にする機能です。PVST+/Rapid-PVST+/MSTP で利用でき、多くの Catalyst では既定で有効です。動作状況は show spanning-tree summaryの EtherChannel misconfig guard is enabled で確認できます(参照: Cisco — Recover Errdisable Port State on Cisco IOS Platforms — https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/69980-errdisable-recovery.html )

主な原因
EtherChannel に関連するブロックや遮断は、原因によって挙動が異なります。大きく 3 つに整理できます。
対向との EtherChannel 不整合(Misconfig Guard)
片側だけがチャネル化している、束ねるメンバーの対応関係が左右で食い違っている、といった対向との不整合です。STP 由来の保護で、channel-misconfig のログとともにポートが err-disable になります。本記事の中心となる原因です。
メンバーがバンドルされない設定不一致
これは対向ではなく、自スイッチ内のメンバー間で設定が一致しないために、メンバーがチャネルに参加できず suspended(保留)になるケースです。速度・デュプレックス・トランクのカプセル化・許可 VLAN・ネイティブ VLAN などが対象です。
%EC-5-CANNOT_BUNDLE2: Et0/0 is not compatible with Et0/1 and will be suspended (duplex of Et0/0 is half, Et0/1 is full)
%EC-5-CANNOT_BUNDLE2: Et0/1 is not compatible with Po1 and will be suspended (native vlan of Et0/1 is 2, Po1 id 1)このメンバー不一致は STP の Misconfig Guard とは別の仕組みで、設定を一致させれば、shutdown/no shutdownなしで自動的にバンドルへ復帰します。Misconfig Guard の err-disable(手動または errdisable recovery が必要)とは復旧方法が異なる点に注意します。
channel-group モードの不一致
両端の channel-group モード(on、LACP の active/passive、PAgP の desirable/auto)の組み合わせが不適切だと、チャネルが形成されません。特に片側が on、対向が LACP のような不一致では、片側だけがチャネル化した状態になり、結果として Misconfig Guard を誘発することがあります。
確認コマンド
ブロックや err-disable に気づいたら、まずチャネルとメンバーの状態、err-disable の理由、そして Misconfig Guard の有効状況を確認します。
show etherchannel summaryで、ポートチャネルと各メンバーの状態をフラグで確認します。正常時はポートチャネルが (SU)(Layer2・in use)、メンバーが (P)(bundled)になります。
Switch# 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
u - unsuitable for bundling
Group Port-channel Protocol Ports
------+-------------+-----------+-----------------------------
1 Po1(SU) LACP Gi1/0/1(P) Gi1/0/2(P)問題があるときは、メンバーに (s)(suspended)や (I)(stand-alone)、ポートチャネルに (SD)(down)といったフラグが現れます。例えばメンバーが suspended であれば、設定不一致でバンドルできていないことを示します。
1 Po1(SU) LACP Gi1/0/1(P) Gi1/0/2(s)続いて、err-disable の理由とガードの状態を確認します。
show interfaces status err-disabled: Reason 列がchannel-misconfigであれば、Misconfig Guard が原因です。show spanning-tree summary:EtherChannel misconfig guard is enabledでガードの有効状況を確認します。show errdisable recovery:channel-misconfigの自動復旧が有効かどうかを確認します。
対処
原因に応じて、両端の設定を揃えたうえで復旧します。
両端のチャネル設定を揃える
EtherChannel は、両端のモード・メンバー・VLAN(許可 VLAN/ネイティブ VLAN)・速度・デュプレックスが整合している必要があります。特にモードは、両端で成立する組み合わせにします。on は両端 on、LACP は active–active または active–passive、PAgP は desirable–desirable または desirable–auto が成立する組み合わせです。passive–passive や auto–auto ではチャネルは形成されません。
! 両端を同じモードでそろえる例(LACP active)
Switch_A(config)# interface range GigabitEthernet1/0/1 - 2
Switch_A(config-if-range)# channel-group 1 mode active
Switch_B(config)# interface range GigabitEthernet0/1 - 2
Switch_B(config-if-range)# channel-group 1 mode activeメンバー間の設定不一致で suspended になっている場合は、速度・デュプレックス・VLAN などを他のメンバーに合わせれば、shutdown/no shutdownなしで自動的にバンドルへ復帰します。
err-disable からの復旧
Misconfig Guard によって err-disable になったポートは、原因を解消したうえで復旧します。
参考: Cisco — Recover Errdisable Port State on Cisco IOS Platforms
“first identify and correct the root problem, and then reenable the port.”
(まず根本原因を特定して修正し、その後にポートを再有効化する)
https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/69980-errdisable-recovery.html
復旧は、手動(shutdown/no shutdown)か、errdisable recovery cause channel-misconfigによる自動復旧を設定します。
! channel-misconfig 起因の自動復旧を有効化(任意)
Switch(config)# errdisable recovery cause channel-misconfigerr-disable の確認コマンドや errdisable recovery の間隔設定の詳細は、関連記事『Cisco BPDU Guard で err-disable になる原因|復旧の手順』も参照してください。原因が残ったまま復旧しても、再び err-disable になる点は共通です。
よくある誤解と運用上の注意
EtherChannel と STP のトラブルで踏みやすい誤解を整理します。
ガードを無効化しても根本解決にはならない
channel-misconfig のログを止めるために、no spanning-tree etherchannel guard misconfigや no errdisable detect cause channel-misconfigでガードや検知を無効化する対処を見かけることがあります。これはログや err-disable を止めるだけで、設定不整合という根本原因は残ります。むしろ、片側だけがチャネル化した状態を放置することになり、ループの危険を高めます。正しい対処は、両端のチャネル設定を一致させることです。
channel-group の番号は両端で一致させる必要はない
ポートチャネルの番号(Po1 など)は各スイッチ内でローカルに有効な値で、対向と同じ番号である必要はありません。重要なのは、各スイッチ内でメンバーが正しく同じ channel-group に属していること、そして両端のモードが成立する組み合わせであることです。番号合わせに気を取られて、モードやメンバー構成の不一致を見落とさないようにします。
ポートチャネル上の PVID 不整合は別の原因
ポートチャネルで「received BPDU with inconsistent peer vlan」のようなログが出る場合は、Misconfig Guard ではなく、両端のネイティブ VLAN 不一致(PVID 不整合)が原因です。これはチャネル設定の問題ではなく、トランクのネイティブ VLAN の問題です。詳細は関連記事『Cisco PVID Inconsistent の原因|ネイティブ VLAN 不一致の対処』を参照してください。
QoS の service-policy 警告は STP とは無関係
「service policy … will cause inconsistency … in ether channel」のような警告は、EtherChannel メンバー間の QoS ポリシー整合に関するもので、STP の Misconfig Guard とは別の話です。STP のブロックや err-disable とは切り分けて扱います。

まとめ
EtherChannel の err-disable やブロックは、多くが対向とのチャネル設定不一致に起因します。正しく組まれたチャネルを STP が 1 つの論理ポートとして扱うことを踏まえると、Misconfig Guard が何を検知しているかを理解しやすくなります。本記事では、原因の切り分けから対処までを整理しました。
- EtherChannel の err-disable は多くが対向とのチャネル設定不一致が原因
- 正しく組まれたチャネルは STP から 1 論理ポートとして扱われ BPDU は 1 つ
- 片側だけのチャネル化を Misconfig Guard が複数 BPDU の受信で検知し遮断
- メンバー不一致の suspended は設定一致で自動復帰し、err-disable とは異なる
- 確認は
show etherchannel summaryのフラグと err-disabled の Reason - 対処は両端のモード・メンバー・VLAN を揃え、手動か自動で復旧
- ガードの無効化は根本解決にならず、設定の一致が本筋
以上、最後までお読みいただきありがとうございました。
