はじめに
このドキュメントでは、EtherChannel の不一致と、Cisco Catalyst スイッチで不一致を検出する方法について説明します。
前提条件
要件
このドキュメントに関する固有の要件はありません。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
表記法の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。
背景説明
EtherChannel の動作原理、および設定方法については詳しく述べません。EtherChannel の理解と設定方法の詳細、および異なる Catalyst スイッチ間での設定例については、EtherChannel のテクニカルサポートのページを参照してください。
EtherChannel は、複数の物理ポートを単一の論理ポートとしてみなした物です。EtherChannel の目的は、単一のポートに比べて、より大きな帯域幅とアベイラビリティを提供することです。
Spanning-Tree Protocol(STP; スパンニング ツリー プロトコル)からは、EtherChannel は単一のポートとして見られます。 チャネリングされたポートがチャネルの両側で一貫していない場合、転送ループが作成される可能性があります。
次の図に例を示します。
ブロードキャスト パケット
スイッチ A に、チャネルに参加していない 2 つの独立した物理リンクがあり、スイッチ B はこれらをチャネルを形成する同じリンクであると見なしている場合、スイッチ B はブロードキャスト パケットまたは未知のユニキャスト パケットをスイッチ A に送信します。スイッチ A ではこれらのリンクはチャネルとしてバンドルされていないため、図に示したとおり、そのパケットはスイッチ B にフォワーディングして戻されます。その結果、パケットの重複が発生し、スイッチ B のフォワーディング テーブルが誤った方向を示すように変更されます。
Cisco Port Aggregation Protocol(PAgP; ポート集約プロトコル)または Institute of Electrical and Electronics Engineers Link Aggregation Control Protocol(IEEE LACP; IEEE リンク集約制御プロトコル)などの特殊なプロトコルは、チャネリング近隣スイッチ間で一貫性が保たれるように設計されています。ただし、どちらかのシステムでこのようなプロトコルがいずれもサポートされていないか、何らかの理由で無効になっている場合があります。シスコは、チャネルの不一致を検出および解消し、パケットの重複、ループ、およびその他の EtherChannel 間の不一致による問題を防止するための、特殊なメカニズムを開発しました。この機能は Catalyst 4500/4000、5500/6000、および 6500/6000 スイッチでサポートされ、チャネル モードの設定が desirable、active、auto、passive または on のいずれであるかにかかわらず、デフォルトで有効になっています。
不一致検出の動作原理
EtherChannel は、STP によって単一のポートとして認識されます。チャネル内のすべてのポートは同じ STP 状態になり、各 VLAN ごとに 1 つの STP Bridge Protocol Data Unit(BPDU; ブリッジ プロトコル データ ユニット)だけを、HELLO 間隔で送受信することができます。
ただしこのことは、あるスイッチが複数のリンクを 1 つのチャネルと見なし、近隣スイッチがこれらのリンクを別個のものと見なす場合、すなわち不一致が発生している場合にはあてはまりません。次の例を検討します。
STP BPDU
この図で、スイッチ A はチャネルを構成していませんが、スイッチ B はチャネルを構成しています。そのチャネルの STP 指定ポートはスイッチ B の側にあるとします。そのため、スイッチ B は BPDU の送信をサポートします。チャネルが単一の STP ポートと見なされている限り、そのチャネルでは各 VLAN ごとに 1 つの BPDU のみが送信されます。この BPDU は物理的にはチャネル内のリンクの 1 つによって送信されます。そのため、これを受信できるのはスイッチ A の 1 つのポートのみです。図中では黒い矢印です。
スイッチ A が BPDU を受信した後、スイッチ A の他のポートは STP 指定ポートになります。これはそのポートが、BPDU を受信したポートとチャネルとしてバンドルされておらず、スイッチ B からの BPDU を直接受信しないためです。スイッチ A の STP 指定ポートとして、スイッチ A は BPDU を送信します(図の赤い矢印で示されています)。スイッチ B はスイッチ A から BPDU を受信すると、不一致が検出されます。
EtherChannel 不一致検出メカニズムは、各 VLAN でチャネルの 1 つの指定ポートのみが BPDU を送信または受信するという点に基づいています。Catalyst スイッチの各ポートの MAC アドレスはそれぞれ固有であり、BPDU の送信時にそれが使用されます。
Catalyst OS(CatOS)では、バージョン7.1(1)以降で show port mac-address mod/port コマンドを発行するか、 show module mod コマンドを発行すると、このMACアドレスが表示されます。次に、出力例を示します。
Cat6k> (enable) show port mac-address 2/7
Port Mac address
----- -----------------
2/7 00-02-fc-90-19-2c
Cat6k> (enable) show module 2 bold
Mod Slot Ports Module-Type Model Sub Status
--- ---- ----- ------------------------- ------------------- --- --------
2 2 16 10/100/1000BaseT Ethernet WS-X6516-GE-TX no ok
Mod Module-Name Serial-Num
--- -------------------- -----------
2 SAD05170009
Mod MAC-Address(es) Hw Fw Sw
--- -------------------------------------- ------ ---------- -----------------
2 00-02-fc-90-19-26 to 00-02-fc-90-19-35 0.231 6.1(3) 7.1(1)
Catalystスイッチ上のCisco IOS®ソフトウェアの場合、MACアドレスは、次の出力例に示すように show interface type mod/port コマンドを発行して確認できます。
Cat6k-CiscoIOS# show interface fastEthernet 4/1
FastEthernet4/1 is up, line protocol is down (monitoring)
Hardware is C6k 100Mb 802.3, address is 0005.7461.c838 (bia 0005.7461.c838)
Description: I,NSP49,10.101.5.96,OCCRBC7505BN1A HSSI 1/0/0
MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Full-duplex, 100Mb/s
input flow-control is off, output flow-control is off
ARP type: ARPA, ARP Timeout 04:00:00
Last input never, output never, output hang never
Last clearing of "show interface" counters never
Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 262140
Queueing strategy: fifo
Output queue :0/40 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
119374 packets input, 8353326 bytes, 0 no buffer
Received 118782 broadcasts, 299 runts, 0 giants, 0 throttles
748 input errors, 14 CRC, 0 frame, 0 overrun, 0 ignored
0 input packets with dribble condition detected
9225693 packets output, 591962436 bytes, 0 underruns
0 output errors, 0 collisions, 1 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier
0 output buffer failures, 0 output buffers swapped out
Cat6k-CiscoIOS#
受信または送信 BPDU の発信元 MAC アドレスが 1 つのチャネル ポート上で常に変化している場合、複数の STP ポートが BPDU を送信していることになります。STPの観点ではチャネルは単一のポートであるため、これは明らかに不一致を示す兆候です。
BPDU が異なる MAC アドレスから届く可能性があるため、このメカニズムにはある程度の許容範囲があることに注意してください。たとえば、STP がコンバージしている場合、STP 指定ポートがチャネルの異なる側に切り替わることがあります。ただし、このプロセスは短時間で処理される必要があります。
送信および受信 BPDU の両方が検出メカニズムによってチェックされます。数字的には、チャネルで 30 秒未満の間に異なる MAC アドレスから 75 を超える BPDU が「見られた」場合、そのチャネルは不一致と判断されます。ただし、同じ MAC アドレスから 5 つの BPDU が連続して見られた場合は、検出カウンタがリセットされます。将来のソフトウェア リリースでは、これらの数字が変更される場合があります。
注:このメカニズムの一般的な性質により、チャネルが一貫して設定されていても、不一致検出がトリガーされることがあります。
たとえば、ネットワーク内のスイッチのハードウェアまたはソフトウェアの問題が原因で、チャネルで接続された 2 台のスイッチがどちら側を STP 指定ポートにするかについて合意できず、両者が BPDU を送信したとします。このような症状がある EtherChannel は、不一致検出メカニズムによって無効にすることができます。この変更によって分割ネットワークをコンバージすることが可能になるため、有害な副作用と考えるべきではありません。
STP が無効になっていても、ハードウェアによって BPDU が大量発生することはありません。STP はまだ BPDU を処理する必要があり、これには BPDU の MAC アドレスから BPDU を送信するポートの MAC アドレスへの送信元の変更が含まれます。そのため、STP が無効になっていても、不一致検出はそのチャネルに対して動作します。
EtherChannel 不一致検出のトラブルシューティング
デフォルトでは、CatOS と Cisco IOS ソフトウェアの両方で検出が有効になっています。
この機能の動作を監視することもできます。これを行うには、CatOSで show spantree statistics mod/port [vlan] コマンドを発行します。次の例を検討します。
Cat6k> (enable) show spantree statistics 2/5 199
Port 2/5 VLAN 199
!--- Output suppressed.
channel_src_mac 00-d0-5a-eb-67-5a
channel src count 73
channel OK count 1
Cat6k> (enable) show spantree statistics 2/5 199
Port 2/5 VLAN 199
!--- Output suppressed.
channel_src_mac 00-50-14-bb-63-a9
channel src count 76
channel OK count 1
次のリストは、サンプル出力の show spantree statistics mod/port [vlan] パラメータの説明です。
-
channel_src_mac:そのチャネルで送信または受信した最後の BPDU の発信元 MAC アドレスが示されます。
-
channel src count:異なる発信元 MAC アドレスで送信または受信された BPDU のカウント数です。
-
channel OK count:同じ MAC アドレスで連続して送信された BPDU のカウント数です。
注:channel src count パラメータは増加します。この値が 75 を超えると、そのチャネルのすべてのリンクが error-disabled 状態になり、Syslog メッセージが発行されます。2 つの出力例で示された MAC アドレスが異なっていることにも注目してください。
EtherChannel の誤設定の問題がある場合、次のエラー メッセージが CatOS の Syslog 出力にも表示されます。
%SPANTREE-2-CHNMISCFG: STP loop - channel 2/5-12 is disabled in vlan/instance 199
このメッセージは、EtherChannel タイプの設定(auto/desirable/on)が誤っている可能性があることを示しています。誤った設定のチャネルが形成されると、スパニング ツリー ループが発生します。メッセージの各部分は次のとおりです。
-
[dec] はモジュール番号
-
[chars] はポート番号
-
vlan [dec] は VLAN 番号
CatOSリリース8.1以降では、エラーメッセージに%SPANTREE-2-CHNMISCFG2: BPDUが付随しています。MAC アドレスが Syslog に記録されるようになり、トラブルシューティングの際に簡単に確認できるため、このメッセージはトラブルシューティングに役に立ちます。
%SPANTREE-2-CHNMISCFG2: BPDU source mac addresses: [chars], [chars]
このメッセージは、SPANTREE-2-CHNMISCFG メッセージが表示された後に表示されます。このメッセージには、チャネルが無効になるエラーを発生させた STP BPDU の送信元 MAC アドレスが含まれています。このメッセージでは、[chars], [chars] が BPDU の送信元 MAC アドレスです。
Cisco IOS ソフトウェアでは、標準の STP トラブルシューティング手順を使用して、EtherChannel の不一致を検出する必要があります。Syslog 出力にこのエラー メッセージが含まれている場合は、EtherChannel の誤設定の問題の可能性があります。
SPANTREE-2-CHNL_MISCFG: Detected loop due to etherchannel misconfiguration of [chars]
[chars]
このメッセージは、チャネル グループの誤設定が検出されたことを示しています。たとえば、EtherChannel の片側のポートがチャネルに含まれるように設定されていない状態、つまりバンドルできなかったにもかかわらず、反対側のポートは正常にバンドルされている場合などです。このメッセージで、[chars] はチャネル グループ ID です。
show interfaces status err-disabled コマンドを使用して、誤設定のローカルポートを特定します。リモートデバイスで show etherchannel summary コマンドを使用して、リモートデバイス上のEtherChannel設定を確認します。設定を修正したら、関連するポートチャネルインターフェイスで、 shutdown コマンドを発行し、次に no shutdown コマンドを発行します。
STP debug コマンドとトラブルシューティング方法の詳細は、『CatalystスイッチでのSTP問題のトラブルシューティング』を参照してください。
関連情報