概要
このドキュメントでは、EtherChannelの不一致に関する情報と、Cisco CatalystスイッチでのEtherChannelの不一致の検出方法について説明します。
前提条件
要件
このドキュメントに特有の要件はありません。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
ドキュメント表記の詳細については、『シスコテクニカルティップスの表記法』を参照してください。
背景説明
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指定ポートは、図の赤い矢印で示されるBPDUをスイッチBに送信するようになっています。スイッチBはスイッチAからBPDUを受信し、不一致が検出されます。
EtherChannel 不一致検出メカニズムは、各 VLAN でチャネルの 1 つの指定ポートのみが BPDU を送信または受信するという点に基づいています。Catalyst スイッチの各ポートの MAC アドレスはそれぞれ固有であり、BPDU の送信時にそれが使用されます。
Catalyst OS(CatOS)の場合は、 show port mac-address mod/port
コマンドを発行します。 show module mod
コマンドが表示されない場合もあります。次に、出力例を示します。
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®ソフトウェアの場合は、 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 ソフトウェアの両方で検出が有効になっています。
この機能の動作を監視することもできます。これを行うには、 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 です。
Cisco IOSソフトウェアリリース12.1Tで誤って設定された show interfaces status err-disabled
コマンドが表示されない場合もあります。次のコマンドを使用して、リモートデバイスのEtherChannel設定をチェックします。 show etherchannel summary
コマンドをリモートデバイスで発行します。設定を修正したら、 shutdown
コマンドを入力し、 no shutdown
コマンドを発行します。
STPの詳細については、 debug
コマンドとトラブルシューティング方法については、『CatalystスイッチのSTP問題のトラブルシューティング』を参照してください。
関連情報