Guest

LAN スイッチング : EtherChannel

EtherChannel の不一致検出について

ライター翻訳版 - March 1, 2002
Document ID: 20625

英語版参照
Understanding EtherChannel Inconsistency Detection

目次


概要

この文書では、EtherChannel の不一致について、および Catalyst スイッチでのその検出方法について説明します。

EtherChannel の動作原理、および設定方法については詳しく述べません。EtherChannel の解説と設定、およびさまざまな Catalyst スイッチでの設定例の詳細については、次の文書を参照してください。

背景説明

EtherChannel は、複数の物理ポートを単一の論理ポートとしてみなした物です。EtherChannel の目的は、単一のポートに比べて、より大きな帯域幅とアベイラビリティを提供することです。

Spanning-Tree Protocol(STP; スパンニング ツリー プロトコル)からは、EtherChannel は単一のポートとして見られます。このことは、チャネルの両端でチャネリング ポートに一貫性がない場合に、フォワーディング ループが発生する危険性を提起します。

次に例を示します。

スイッチ A に 2 つの独立したリンクがあり、スイッチ B はこれらをチャネルを形成する同じリンクであると見なしている場合、スイッチ B はブロードキャスト パケットまたは未知のユニキャスト パケットを送信します。図に示したとおり、そのパケットはスイッチ B にフォワーディングして戻されます。その結果、パケットの重複が発生し、スイッチ B のフォワーディング テーブルが誤った方向を示すように変更されます。

Cisco Port Aggregation Protocol(PAgP; ポート集約プロトコル)または Institute of Electrical and Electronics Engineers Link Aggregation Control Protocol(IEEE LACP; IEEE リンク集約制御プロトコル)などの特殊なプロトコルは、チャネリング近隣スイッチ間で一貫性が保たれるように設計されています。ただし、どちらかのシステムでこのようなプロトコルがどれもサポートされていないか、何らかの理由で無効になっている場合があります。シスコは、チャネルの不一致を検出および解消し、パケットの重複、ループ、およびその他の EtherChannel 間の不一致による問題を防止するための、特殊なメカニズムを開発しました。この機能は Catalyst 4000、5000、および 6000 スイッチでサポートされ、チャネル モードの設定が desirableactiveautopassive または on のどれであるかにかかわらず、デフォルトで有効になっています。

不一致検出の動作原理

前の項で述べたとおり、EtherChannel は STP からは単一のポートとして見られます。チャネル内のすべてのポートは同じ STP 状態になり、各 VLAN ごとに 1 つの STP Bridge Protocol Data Unit(BPDU; ブリッジ プロトコル データ ユニット)だけを、HELLO 間隔で送受信することができます。

ただしこのことは、あるスイッチがリンクを 1 つのチャネルと見なし、近隣スイッチがこれらのポートを別個のものと見なす場合(すなわち、不一致)にはあてはまりません。次の例で考察してみましょう。

この図で、スイッチ A はチャネリングを行っていませんが、スイッチ B はチャネリングを行っています。そのリンクの STP 指定ポートはスイッチ B の側にあるとします。そのため、スイッチ B は BPDU の送信をサポートします。チャネルが単一の STP ポートと見なされている限り、そのチャネルでは 1 つの VLAN につき 1 つの BPDU のみが送信されます。この BPDU はチャネル内の 1 つのポート経由で物理的には送信されるため、それを受信できるのはスイッチ A の 1 つのポートのみです(図の黒い矢印)。

スイッチ A の他のポートはスイッチ B からの BPDU を受信しないため、STP 指定ポートになります。指定ポートであるため、そのポートは BPDU を送信します(図の赤い矢印)。スイッチ B は、スイッチ A のそのポートから BPDU を受信します。

チャネル不一致検出メカニズムは、各 VLAN でチャネルの 1 つのポートのみが BPDU を送信または受信する必要があるという点に基づいています。Catalyst スイッチの各ポートの MAC アドレスはそれぞれ固有であり、BPDU の送信時にそれが使用されます。この MAC アドレスは、バージョン 7.1 では sh port mac-address <mod/port> コマンドを発行することで確認でき、それ以降のバージョンでは sh module <mod> コマンドを発行して確認します。出力例を下記に示します。

Cat6k> (enable) sh port Mac-address 2/7
 
 Port  Mac address
 ----- -----------------
  2/7  00-02-fc-90-19-2c
 
 Cat6k> (enable) sh mod 2
 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)
 

受信または送信 BPDU の発信元 MAC アドレスが 1 つのチャネル ポート上で常に変化している場合、複数の STP ポートが BPDU を送信していることになります。STPの観点ではチャネルは単一のポートであるため、これは明らかに不一致を示す兆候です。

BPDU が異なる MAC アドレスから届く可能性があるため、このメカニズムにはある程度の許容範囲があることに注意してください。たとえば、STP がコンバージしている場合、STP 指定ポートがチャネルの異なる側に切り替わることがあります。ただし、このプロセスは短時間で処理されます。

数字的には、チャネルで 30 秒未満の間に異なる MAC アドレスから 75 を超える BPDU が「見られた」場合、そのチャネルは不一致と判断されます。ただし、同じ MAC アドレスから 5 つの BPDU が連続して「見られた」場合は、検出カウンタがリセットされます。将来のソフトウェア リリースでは、これらの数字が変更される可能性があります。検出メカニズムでは、受信と送信の両方の BPDU が検査されます。このメカニズムの一般的な性質から、チャネルの設定が一致していても、このメカニズムがトリガされる可能性があることにも注意してください。

たとえば、ネットワーク内のスイッチのハードウェアまたはソフトウェアの問題が原因で、チャネルで接続された 2 台のスイッチがどちら側を STP 指定ポートにするかについて合意できず、両者が BPDU を送信し続けた場合、そのチャネルは不一致検出メカニズムによって無効にされます。この変更によって分割ネットワークをコンバージすることが可能になるため、有害な副作用と考えるべきではありません。

STP が無効になっていても、ハードウェアによって BPDU が大量発生することはありません。STP は、BPDU の発信元 MAC アドレスを送信ポートのものに書き換えるなど、BPDU に対してある程度の処理を行う必要があります。そのため、STP が無効になっていても、不一致検出はそのチャネルに対して動作します。

チャネル不一致検出の機能は無効にできますが、お勧めしません。本来の IOS では、次のグローバル設定モード コマンドを発行して、この機能を無効にできます。

no spanning-tree etherchannel guard misconfig

デフォルトでは、CatOS と本来の IOS の両方で検出が有効になっています。

sh spantree stat <mod/port> <vlan> コマンドを発行して、この機能の動作を監視することもできます。次の例について考えます。

Cat6k> (enable) sh spant stat 2/5 199
 Port  2/5   VLAN 199
 
 [output skipped]
 
 channel_src_mac                      00-d0-5a-eb-67-5a
 channel src count                    73
 channel OK count                     1
 
 Cat6k> (enable) sh spant stat 2/5 199
 Port  2/5   VLAN 199
 
 [output skipped]
 
 channel_src_mac                      00-50-14-bb-63-a9
 channel src count                    76
 channel OK count                     1
 
 %SPANTREE-2-CHNMISCFG: STP loop - channel 2/5-12 is disabled in vlan/instance 199
 

次のリストは、上記の出力例の syslog メッセージ パラメータの説明です。

  • channel_src_mac には、そのチャネルで送信または受信した最後の BPDU の発信元 MAC アドレスが示されます。

  • channel_src_count は、異なる発信元 MAC アドレスで送信または受信された BPDU のカウント数です。

  • channel_ok_count は、同じ MAC アドレスで連続して送信された BPDU のカウント数です。

channel_src_count パラメータが増加していることに注目してください。この値が 75 を超えると、そのチャネルのすべてのリンクが error-disabled 状態になり、上記の syslog メッセージが発行されます。上記の 2 つの例で示された MAC アドレスが異なっていることにも注目してください。


関連情報