はじめに
このドキュメントでは、Cisco Catalystスイッチでのロードバランスと冗長性のためのEtherChannelアルゴリズムについて説明します。
前提条件
要件
このドキュメントに関する固有の要件はありません。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
表記法の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。
背景説明
Fast Ether Channel を使用すると、複数の物理ファスト イーサネット リンクを 1 つの論理チャネルに統合することができます。これにより、チャネル内の各リンクのトラフィックを負荷分散できるだけでなく、リンク内の 1 つ以上のリンクに障害が発生した場合に冗長性を確保することもできます。Fast EtherChannel を使用すると、LAN スイッチ、ルータ、サーバ、およびクライアントを、シールドなしツイストペア(UTP)配線や、シングルモードおよびマルチモードのファイバで相互接続できます。このドキュメントでは、Fast EtherChannel、Gigabit EtherChannel、ポート チャネル、チャネル グループ、およびポート グループをすべて EtherChannel という 1 つの用語で呼んでいます。このドキュメントの情報は、これらすべての EtherChannel に当てはまります。
このドキュメントでは、Cisco Catalyst スイッチにおける、EtherChannel を使用したロード バランシングおよび冗長性の概念について示します。また、Port Aggregation Protocol(PAgP)および EtherChannel を介したトランキング サポートについても説明します。Catalyst スイッチでの EtherChannel の設定方法については説明していません。Catalyst スイッチ上での EtherChannel の設定方法の詳細については、このドキュメントの「関連情報」のセクションを参照してください。
Catalyst 6500、Catalyst 2950、EtherChannel
トラフィックを送信するリンクの決定
このセクションでは、各スイッチ プラットフォームの EtherChannel グループによるパケットのロード バランスについて説明します。
Catalyst 6500/6000 シリーズ
EtherChannel は、チャネルの各リンクにフレームを分散させるために、フレーム内のアドレスが形成するバイナリ パターンの一部分を、チャネル内の 1 つのリンクを選ぶ数値に変換します。EtherChannel フレームの分散では、シスコ独自のハッシュ アルゴリズムが使用されます。このアルゴリズムは決定論的です。同じアドレスとセッション情報を使用すれば、必ずチャネル内の同じポートへハッシュされます。この方法により、パケット分散が無秩序になるのを防ぎます。
シスコ独自のハッシュ アルゴリズムでは、0 から 7 の範囲で値を計算します。この値を基準として使用し、EtherChannel 内の特定のポートが選択されます。ポート設定には、伝送用にポートで受け入れる値を示すマスクが含まれます。単一の EtherChannel での最大ポート数(8 ポート)を使用している場合、各ポートが 1 つの値だけを受け入れます。EtherChannel で 4 つのポートを使用している場合は、各ポートが 2 つの値を受け入れ、以降も同様になります。次の表に、EtherChannel のポート数に応じて、各ポートが受け入れる値の比率を示します。
EtherChannel のポート数 |
ロード バランシング |
8 |
1:1:1:1:1:1:1:1 |
7 |
2:1:1:1:1:1:1 |
6 |
2:2:1:1:1:1 |
5 |
2:2:2:1:1 |
4 |
2:2:2:2 |
3 |
3:3:2 |
2 |
4:4 |
注:この表には、ハッシュアルゴリズムが計算し、特定のポートが受け入れる値の数のみが記載されています。特定のフローで使用されるポートを制御することはできません。ロード バランスを調整するにはフレーム分散方式のみを使用できますが、これにより最大限の多様性が得られます。
注:ハッシュアルゴリズムは、EtherChannel内のポート間でトラフィックのロードバランシングを行うように設定または変更することはできません
注:Cisco IOS®ソフトウェアが稼働するCisco Catalyst 6500/6000シリーズスイッチにも、同じシスコ独自のハッシュアルゴリズムが実装されています。
したがって、ポートチャネルに2、4、または8個のポートがある場合、ランダムアドレスでも完全なロードバランシングを実現できます。
Cisco IOS
Cisco IOSシステムソフトウェアが稼働するCatalyst 6500/6000スイッチでは、最大64のEtherChannelがサポートされています。Catalyst 6500/6000 シリーズ スイッチの任意のモジュール上の(設定に互換性のある)LAN ポートを 8 つまで使用して、1 つの EtherChannel を形成できます。各 EtherChannel のすべての LAN ポートは同じ速度でなければならず、すべてのポートをレイヤ 2 またはレイヤ 3 LAN ポートとして設定する必要があります。
Cisco IOS システム ソフトウェアを実行する Catalyst 6500/6000 スイッチでは、シスコ独自のハッシュ アルゴリズムを使用します。
EtherChannel ロード バランシングでは、MAC アドレス、IP アドレス、またはレイヤ 4 ポート番号をポリシー フィーチャ カード 2(PFC2)とともに、送信元モード、宛先モード、またはその両方で使用できます。選択したモードは、スイッチ上で設定されているすべての EtherChannel に適用されます。多様性が最も大きくなるオプションを設定で使用してください。たとえば、チャネル上のトラフィックが単一の MAC アドレスのみに送信される場合、宛先 MAC アドレスを使用すると、チャネル内の同じリンクが毎回選択されます。送信元アドレスまたは IP アドレスを使用したほうが、より適切なロード バランスを実現できるでしょう。port-channel load-balance {src-mac | dst-mac | src-dst-mac | src-ip | dst-ip | src-dst-ip | src-port | dst-port | src-dst-port | mpls} グローバル コンフィギュレーション コマンドを発行することにより、ロード バランシングを設定します。
注:port-channel load-balance src-dst-mixed-ip-port コマンドにより、スーパバイザのPFC/DFC/CFCでのハードウェア転送が変更される可能性があり、新しいハッシュアルゴリズムが計算されて、それに従ってトラフィックの転送が開始されるまで、数秒から数分にわたってトラフィックが中断される可能性があります。稼働時間外にハッシュ アルゴリズムの変更を行うことが推奨されます。
フレーム分散ポリシーを確認するには show etherchannel load-balance コマンドを発行します。フレーム分散ポリシーに基づき、EtherChannel のどのインターフェイスでトラフィックを転送するかを判別できます。判別するには、remote login switch コマンドを発行して、スイッチ プロセッサ(SP)コンソールにリモート ログインします。次に、test etherchannel load-balance interface port-channelnumber{ip | l4port | mac} [source_ip_add|source_mac_add|source_l4_port] [dest_ip_add|dest_mac_add|dest_l4_port] コマンドを発行します。
次にいくつかの例を示します。
-
6509#remote login switch
Trying Switch ...
Entering CONSOLE for Switch
Type "^C^C^C" to end this session
6509-sp#test etherchannel load-balance interface port-channel 1 ip 10.10.10.2 10.10.10.1
Would select Gi6/1 of Po1
6509-sp#
-
6509#remote login switch
Trying Switch ...
Entering CONSOLE for Switch
Type "^C^C^C" to end this session
6509-sp#test etherchannel load-balance interface port-channel 1 mac 00d0.c0d7.2dd4 0002.fc26.2494
Would select Gi6/1 of Po1
6509-sp#
Catalyst 4500/4000 シリーズ
Cisco IOS
Cisco IOS ソフトウェア搭載の Catalyst 4500/4000 シリーズ スイッチ(スーパバイザ エンジン II+ 以降)では、最大 64 個の EtherChannel をサポートします。1 つのモジュール上および複数のモジュール間で(設定に互換性のある)イーサネット インターフェイスを 8 つまで使用して、1 つの EtherChannel を形成できます。各 EtherChannel のすべてのインターフェイスは同じ速度である必要があり、すべてのインターフェイスをレイヤ 2 またはレイヤ 3 インターフェイスのいずれかとして設定する必要があります。
EtherChannel は、チャネル内のリンクでトラフィックをロード バランスするために、フレーム内のアドレスから形成されるバイナリ パターンの一部分を、チャネル内の 1 つのリンクを選ぶ数値に変換します。EtherChannel ロード バランシングでは、MAC アドレス、IP アドレス、またはレイヤ 4 ポート番号を、送信元モード、宛先モード、またはその両方で使用できます。多様性が最も大きくなるオプションを設定で使用してください。たとえば、チャネル上のトラフィックが単一の MAC アドレスのみに送信される場合、宛先 MAC アドレスを使用すると、チャネル内の同じリンクが毎回選択されます。送信元または IP アドレスを使用したほうが、より適切なロード バランスを実現できる可能性があります。port-channel load-balance {src-mac | dst-mac | src-dst-mac | src-ip | dst-ip | src-dst-ip | src-port | dst-port | src-dst-port} グローバル コンフィギュレーション コマンドを発行することで、ロード バランシングを設定します。ロード バランスはグローバルに設定する必要があり、ポートごとにロード バランシング オプションを変更することはできません。
注:スイッチは、送信元MACアドレスと宛先MACアドレスの下位ビットを使用して、データの送信に使用する必要があるリンクを決定します。そのため、データが同じ送信元から受信された場合、データを転送するためにEtherChannelの同じリンクが使用されます。
Catalyst 2900XL/3500XL シリーズ
Cisco IOS ソフトウェア リリース 11.2(8)SA3 より前の Cisco IOS ソフトウェア リリースを実行している Catalyst 2900XL では、宛先 MAC アドレスが最後に検出されたリンクに基づいて、チャネル内のリンクを選択します。アドレスが学習されたリンクが他のリンクよりもビジーである場合、ソフトウェアはこのアドレスをチャネル内の別のリンクに動的に再配布します。Fast EtherChannel 経由で送信されるリンクを選択するために、Cisco IOS ソフトウェア リリース 11.2(8)SA3 以降を実行している Catalyst 2900XL および Cisco IOS ソフトウェア リリース 11.2(8)SA6 以降を実行している Catalyst 3500XL を設定することができます。スイッチは、フレームの宛先または送信元 MAC アドレスに基づいてリンクを選択します。デフォルトでは送信元 MAC アドレスが使用されます。このデフォルトは、同じ MAC 送信元アドレスを持ち、MAC アドレス宛先がチャネルの他方の側である、非 Fast EtherChannel ポートでスイッチが受信したすべてのパケットが、チャネル内の同じリンクをたどることを意味します。Catalyst 2900XL/3500XL に接続されている多数のステーションが、Fast EtherChannel の他方の側にある少数のステーション(単一のルータなど)に送信する場合には、送信元ベースの転送を使用します。このような状況で送信元ベースの転送を使用すると、チャネル内のすべてのリンクにトラフィックが均等に分散されます。また、Catalyst 2900XL/3500XL スイッチは、スパニング ツリー プロトコル(STP)、マルチキャスト、および不明なユニキャストなど、トラフィックを伝送するデフォルトポートに関する情報を保持します。
Catalyst 3750/3560
Catalyst 3750/3560 シリーズ スイッチは、EtherChannel 内で(設定に互換性のある)イーサネット インターフェイスを 8 つまでサポートできます。EtherChannel は、スイッチ間、またはスイッチとホストの間に、最大 800 Mbps(ファスト EtherChannel)または最大 8 Gbps(ギガビット EtherChannel)の全二重帯域幅を提供します。Cisco IOS ソフトウェア リリース 12.2(20)SE 以前を使用している場合、EtherChannel の数の上限は 12 です。Cisco IOS ソフトウェア リリース 12.2(25)SE 以降を使用している場合、EtherChannel の数の上限は 48 です。
EtherChannel は、フレーム内のアドレスに基づいて形成されたバイナリ パターンの一部を、チャネル内の 1 つのリンクを選ぶ数値に集約することにより、チャネル内のリンク間でトラフィックのロード バランシングを行います。EtherChannel のロード バランシングには、MAC アドレスまたは IP アドレス、送信元アドレスや宛先アドレスのどちらか一方、またはその両方のアドレスを使用できます。モードは、スイッチ上で設定されているすべての EtherChannel に適用されます。ロード バランシングおよび転送方式を設定するには port-channel load-balance {dst-ip | dst-mac | src-dst-ip | src-dst-mac | src-ip | src-mac} グローバル コンフィギュレーション コマンドを使用できます。
ロード バランシング方式に基づいて、トラフィック転送用に EtherChannel でどのインターフェイスが使用されるかを確認できます。この判別を行うためのコマンドは、test etherchannel load-balance interface port-channel numbe {ip | mac} [source_ip_add|source_mac_add] [dest_ip_add|dest_mac_add] です。
Catalyst 2950/2955/3550
Catalyst 2950/2955 シリーズ スイッチは、EtherChannel 内で(設定に互換性のある)イーサネット インターフェイスを 8 つまでサポートできます。EtherChannel は、スイッチ間、またはスイッチとホストの間に、最大 800 Mbps(ファスト EtherChannel)または最大 2 Gbps(ギガビット EtherChannel)の全二重帯域幅を提供できます。EtherChannel 数の上限は 6 個で、各 EtherChannel に 8 つのポートがあります。
Catalyst 3550 シリーズ スイッチでは、最大 8 つの互換構成されたイーサネット インターフェイスでレイヤ 2 およびレイヤ 3 の EtherChannel がサポートされています。EtherChannel は、スイッチ間、またはスイッチとホストの間に、最大 800 Mbps(ファスト EtherChannel)または最大 8 Gbps(ギガビット EtherChannel)の全二重帯域幅を提供します。EtherChannel 数の上限は、同じタイプのポートの数です。
2950/2955/3550シリーズスイッチの場合、EtherChannelは、チャネル内のいずれかのリンクに新しく学習したMACアドレスをランダムに関連付けることにより、チャネル内のリンク全体のトラフィック負荷をバランシングします。EtherChannel のロード バランシングでは、送信元 MAC または宛先 MAC アドレス転送を使用できます。
送信元 MAC アドレス転送の場合、EtherChannel に転送されたパケットは、着信パケットの送信元 MAC アドレスに基づいてチャネル ポート間で分配されます。したがって、ロード バランシングを実行するために、異なるホストからのパケットにはチャネル内の異なるポートが使用されますが、同じホストからのパケットにはチャネル内の同じポートが使用されます宛先 MAC アドレス転送の場合、EtherChannel に転送されたパケットは、着信パケットで指定されている宛先ホストの MAC アドレスに基づいてチャネル ポート間で分配されます。したがって、同じ宛先に向かうパケットは同じポートを介して転送され、異なる宛先に向かうパケットはチャネル内の異なるポートで送信されます。
3550 シリーズ スイッチで送信元 MAC アドレス転送が使用される場合、ルーティングされた IP トラフィックに対しても、送信元および宛先 IP アドレスに基づくロード分散が有効になります。ルーティングされたすべての IP トラフィックでは、送信元および宛先 IP アドレスに基づいてポートが選択されます。2 つの IP ホスト間のパケットには常にチャネル内の同じポートが使用され、他のホスト ペア間のトラフィックではチャネル内の別のポートを使用できます。
port-channel load-balance {dst-mac | src-mac} グローバル コンフィギュレーション コマンドを発行することで、ロード バランスおよび転送方式を設定します。
注:スパニングツリープロトコル(STP)、マルチキャスト、不明なユニキャストなどのトラフィックを送信するには、デフォルトポートが使用されます。デフォルトポートは、show etherchannel summaryコマンドの出力でdと表示されている部分で識別できます。
Catalyst 1900/2820
PAgP が有効な場合、リンク決定方式として、Fast EtherChannel 上のリンク間でのロード バランシング最大化および順序の保持の 2 つが可能です。PAgP の説明については、このドキュメントの「PAgP の説明と使用される場所」のセクションを参照してください。デフォルトは、ロード バランシングの最大化です。PAgP は、チャネルの反対側にあるデバイスとの間で設定済み方式をネゴシエートするために使用されます。順序の保持が設定されている場合、反対側にあるデバイスは送信元ベースの伝送を使用するように指示されるため、Catalyst 1900/2820 はチャネル内の同じリンク上で同じ送信元 MAC アドレスを持つパケットを常に受信します。これは、この MAC アドレスにトラフィックを送るために Catalyst 1900/2820 が常に使用するリンクです。ロード バランシングの最大化が設定されている場合、PAgP はトラフィックを任意に分散できることを反対側のデバイスに通知し、送信元アドレスが最後に検出されたリンクで Catalyst 1900/2820 によってユニキャスト トラフィックが送信されます。これにより、可能な最大限のロード バランシング設定が実現します。Fast EtherChannel で PAgP が無効に設定されている場合、スイッチはスイッチ学習機能についてパートナーとネゴシエートできません。スイッチがフレーム順序を保持するかどうかは、Fast EtherChannelパートナーが発信元ベースの分散を実行するかどうかによって異なります。
また、Catalyst 1900/2820 はアクティブ ポートも選択します。アクティブ ポートは、不明なユニキャスト、未登録マルチキャスト、ブロードキャスト パケットなどのフラッディングされたトラフィックに使用されます。port-channel モードがオン(PAgP が無効)の場合、アクティブ ポートは、優先順位値が最も高いリンクです。モードが desirable または auto(PAgP が有効)の場合、アクティブ ポートは、より大きい Ethernet アドレスを持つスイッチ上のリンクの優先順位に基づいて選択されます。より大きい Ethernet アドレスを持つスイッチ上の 2 つのポートの優先順位が同じである場合、ifIndex が小さい方のポートが選択されます。
Catalyst 2948G-L3/4908G-L3
あるリンクで障害が発生した場合、そのリンクを使用していたすべてのトラフィックは、その隣のリンクを使用するようになります。たとえば、バンドル内のリンク 1 で障害が発生した場合、障害前にリンク 1 を使用していたトラフィックはリンク 2 を使用するようになります。
ロード バランシング方式のマトリックス
次の表に、ロードバランシングの方法をまとめます。
Platform |
XOR で使用されるアドレス |
送信元ベース |
宛先ベース |
送信元/宛先ベース |
ロード バランシング方式が設定可能/固定のどちらであるか |
6500/6000 |
レイヤ 2、レイヤ 3 アドレス、レイヤ 4 情報、または MPLS 情報2 |
Yes |
Yes |
Yes |
設定可能 |
4500/4000 |
レイヤ 2、レイヤ 3 アドレス、またはレイヤ 4 情報 |
Yes |
Yes |
Yes |
設定可能 |
2900XL/3500XL |
レイヤ 2 アドレスのみ |
Yes |
Yes |
— |
設定可能 |
3750/3560 |
レイヤ 2 またはレイヤ 3 アドレスのみ |
Yes |
Yes |
Yes |
設定可能 |
2950/2955/3550 |
レイヤ 2 アドレスのみ1 |
Yes |
Yes |
— 1 |
設定可能 |
1900/2820 |
これらのプラットフォームは、特別なロード バランシング方式を使用します。詳細は、「Catalyst 1900/2820」セクションを参照してください。 |
1 3550 シリーズ スイッチで送信元 MAC アドレス転送が使用される場合、ルーティングされた IP トラフィックに対しても、送信元および宛先 IP アドレスに基づくロード分散が有効になります。ルーティングされたすべての IP トラフィックでは、送信元および宛先 IP アドレスに基づいてポートが選択されます。
2 Cisco IOS を実行する 6500 シリーズ スイッチでは、MPLS パケットのロード バランシングにも MPLS レイヤ 2 情報を使用できます。
PAgP の説明および PAgP を使用する場所
PAgP は、EtherChannel リンクの自動作成に役立ちます。チャネルの形成をネゴシエートするために、Fast EtherChannel をサポートするポート間で PAgP パケットが送信されます。いくつかの制約が PAgP に適用されます。制約事項は以下のとおりです。
-
PAgP は、ダイナミック VLAN 用に設定されているポートでバンドルを形成しません。PAgP では、チャネル内のすべてのポートが同じ VLAN に属しているか、またはトランク ポートとして設定されている必要があります。バンドルがすでに存在している場合、ポートの VLAN が変更されると、バンドル内のすべてのポートがその VLAN に一致するように変更されます。
-
PAgP は、異なる速度またはポート デュプレックスで動作しているポートをグループ化しません。バンドルが存在する場合に速度およびデュプレックスが変更されると、PAgP はバンドル内のすべてのポートの速度およびデュプレックスを変更します。
-
PAgP モードは、off、auto、desirable、および on です。auto-desirable、desirable-desirable、および on-on の組み合わせでのみ、チャネルの形成が可能です。チャネルの一方の側にあるデバイス(ルータなど)が PAgP をサポートしていない場合、もう一方の側にあるデバイスでは PAgP をオンに設定する必要があります。
以下のスイッチは PAgP をサポートしていません。
EtherChannel での ISL/802.1Q トランキング サポート
EtherChannel 接続は、スイッチ間リンクプロトコル(ISL)/IEEE 802.1Q トランキングあり、なしのどちらでも設定可能です。チャネルの形成後に、チャネル内のいずれかのポートがトランクとして設定されると、チャネル内のすべてのポートにその設定が適用されます。同じ設定の複数のトランク ポートを 1 つの EtherChannel として設定できます。すべてを ISL とするか、またはすべてを 802.1Q とする必要があり、この 2 つを混在させることはできません。ISL/802.1Q カプセル化が有効になっている場合、Fast EtherChannel の送信元/宛先ロード バランシング メカニズムとは独立してそれが実行されます。VLAN ID は、パケットがたどるリンクに影響しません。ISL/802.1Q は単に、トランクが複数の VLAN に属することができるようにするだけです。トランキングが無効な場合、Fast EtherChannel に関連付けられているすべてのポートが同じ VLAN に属している必要があります。
関連情報