内容

概要

背景

前提条件

トポロジ

コンフィギュレーション

Traffic flow

トラブルシューティング

回避策

概要

このドキュメントでは、ポートチャネルのロードバランシングで極性が発生するシナリオについて説明し、それを防止する方法について提案します。

背景

偏光 ハッシュアルゴリズムがネットワーク内の特定のパスを選択し、冗長パスを使用しない問題です

前提条件

次の項目に関する知識があることが推奨されます。

Link Aggregation Control Protocol（LACP）

Cisco Nexusプラットフォーム

トポロジ

コンフィギュレーション

VPCおよびPo100、Po200、Po300、Po301に接続されたN7K1およびN7K2は、VPCポートチャネル内にあります。

N7K1およびN7K2は、これらのスイッチでルーティングが発生しない純粋なL2スイッチとして機能します。

すべてのスイッチが同じポートチャネルロードバランシングアルゴリズムを実行している

発信元から宛先へのトラフィックが同じVLAN内にあるか（ルーティングなし）、またはN7K3またはN7K4でルーティングが行われている異なるVLANにあるかに関係なく、N7K1およびN7K2から送信されるトラフィックに偏波問題があります。

Traffic flow

送信元は複数のストリームを宛先に送信します（複数の送信元および宛先IPアドレスがあり、L4ポート情報もパケットによって異なります）。理想的な状況では、トラフィックがポートチャネルメンバーインターフェイス間で均等に分散されるように、適切なトラフィックの組み合わせが使用されます。

送信元からのトラフィックはN7k3/N7k4に到着し、N7K1/N7K2経由で宛先に到達します。

各N7K1およびN7K2上のPo100およびPo200のメンバーリンク間の1つのリンクがトラフィックの約99 %を送信し、他のリンクはアイドル状態のままになります。（つまり、各スイッチのN7K1とN7K2では、4/2と4/3の1つのリンクが99 %ユニキャストトラフィックを伝送し、他のリンクが1 %未満を伝送し、9/2と9/3の1つのリンクが99 %トラフィックを伝送します。 N7K1、同様の出力がN7K2で確認できます）。

使用するポートチャネルのロードバランシングアルゴリズムのタイプに関係なく、N7K1/N7K2ペアとN7K3/N7K4ペアで同じポートチャネルのロードバランシングアルゴリズムが使用されている限り、この問題は発生します。ポートチャネルのロードバランシングアルゴリズムを確認するコマンドを次に示します。

N7K1# show port-channel load-balance

Warning: Per Packet Load balance configuration has higher precedence

System config:

Non-IP: src-dst mac

IP: src-dst ip-l4port-vlan rotate 0

Port Channel Load-Balancing Configuration for all modules:

Module 1:

Non-IP: src-dst mac

IP: src-dst ip rotate 0

Module 2:

Non-IP: src-dst mac

IP: src-dst ip rotate 0

Module 3:

Non-IP: src-dst mac

IP: src-dst ip rotate 0

Module 4:

Non-IP: src-dst mac

IP: src-dst ip-l4port-vlan rotate 0

Module 7:

Non-IP: src-dst mac

IP: src-dst ip-l4port-vlan rotate 0

Module 8:

Non-IP: src-dst mac

IP: src-dst ip-l4port-vlan rotate 0

Module 9:

Non-IP: src-dst mac

IP: src-dst ip-l4port-vlan rotate 0

トラブルシューティング

ポートチャネルでロードバランシングの不均一が見られる場合は、偏波特性が原因である可能性があります。

トラフィックがN7K3およびN7K4スイッチに到達すると、N7K4のPo301およびN7K3のPo300を経由してN7K1/N7K2スイッチに転送されます。ここでは、ロードバランシングアルゴリズムが開始され、N7K1に他ににK2

最初に、すべてのトラフィックはeth1/1のスイッチN7K3/N7K4に着信し、src-dest ipおよびl4ポート情報に基づいて、特定のフローはN7K1に向かうリンクでハッシュされ、他のフローはN7K2に向で計算されるrbh値ににに基基されます。簡単にするために、使用されるロードバランスアルゴリズムに基づいて、スイッチが着信トラフィックを2つのフロー（フローXとフローY）に分離すると仮定します。 1つのポートチャネルメンバーリンクから送信されるフローXと、他のポートチャネルメンバーリンクから送信されるフローY。

これで、トラフィックがN7K1/N7K2ペアに到着する場合は、2つの可能性があります。（XとYを交換可能と考える）

ケース1:

N7K3はフローXをN7K1に、フローYをN7K2に送信しました

と

N7K4はフローYをN7K1に、フローXをN7K2に送信しました

ケース2:

N7K3はフローXをN7K1に、フローYをN7K2に送信しました

と

N7K4はフローXをN7K1に、フローYをN7K2に送信しました

ケース1では、N7K1とN7K2は両方のタイプのフロー（フローXとフローY）を受信し、N7K3/N7K4と同じポートチャネルのロードバランシングアルゴリズムを使用しても、Po100とPo200から0に0が出力される出力フローフローは出力出力は出力は出力出力はは出力出力出力出力出力AをををAポートチャネルメンバーインターフェイス間のトラフィック分散。

ケース2では、N7K1はフローXのみを受信し、N7K2はフローYのみを受信します。これらのスイッチで使用されるポートチャネルのロードバランシングアルゴリズムがN7K3/N7K4ペアで使用されるものと同じ場合、偏波が発生します。N7K1とN7K2は同じポートチャネルのロードバランシングアルゴリズムを使用しているため、N7K1はPo100/Po200の1つのメンバーリンクでのみフローXを送信し、他のメンバーリンクはトラフィックを転送しません。同様に、N7K2はPo100/Po200の1つのメンバーリンクだけでフローYを送信し、他のメンバーリンクはトラフィックを転送しません。

スイッチN7K1とN7K2が受信するトラフィックはすでに開始分類されているため、スイッチN7K1/N7K2からすべての着信トラフィックを送信するために使用されるポートチャネルメンバーリンクは1つだけです。着信トラフィックレートが1つのポートチャネルリンクの帯域幅を超えた場合、他のポートチャネルメンバーリンクがこのトラフィックを転送しないため、追加のトラフィックをドロップできます。

ポートチャネルで2つ以上のリンクが使用されている場合も、同様の問題が発生する可能性があります。たとえば、1つのポートチャネルで4つのリンクが使用された場合、ハッシュの発生に応じて偏波は発生しません。また、4つのポートチャネルメンバーリンクのうち2つだけが着信トラフィックの転送に使用され、他の2つのリンクは転送しません

偏波は設計が原因で発生するため、偏波が発生していないことを確認するために設計を分析することが重要です。N7k1で発生するPo100およびPo200を示す出力は次のとおりです（同様の出力はN7K2でも見ることができます）。

N7K1# show port-channel summary | i 200

200   Po200(SU)   Eth      LACP      Eth9/2(P)    Eth9/3(P)

N7K1# show port-channel traffic interface port-channel 200

NOTE: Clear the port-channel member counters to get accurate statistics

ChanId      Port Rx-Ucst Tx-Ucst Rx-Mcst Tx-Mcst Rx-Bcst Tx-Bcst

------ --------- ------- ------- ------- ------- ------- -------

200    Eth9/2    0.0%  99.99%  44.44%   4.00%    0.0% 100.00%

200    Eth9/3    0.0%   0.00%  55.55%  96.00%    0.0%    0.0%

N7K1# show port-channel summary | i 100

100   Po100(SU)   Eth      LACP      Eth4/2(P)    Eth4/3(P)

N7K1# show port-channel traffic interface port-channel 100

NOTE: Clear the port-channel member counters to get accurate statistics

ChanId      Port Rx-Ucst Tx-Ucst Rx-Mcst Tx-Mcst Rx-Bcst Tx-Bcst

------ --------- ------- ------- ------- ------- ------- -------

100    Eth4/2    0.0%  99.99%  40.55%   7.00%    0.0% 100.00%

100    Eth4/3    0.0%   0.00%  54.44%  93.00%    0.0%    0.0%

CSCvq26885 外部ドキュメント用に提出されました。

回避策

偏波が発生しないようにするための回避策をいくつか示します。

1.適切な設計：偏波の主な原因は不適切な設計であるため、トポロジに偏波を出す余地がないことを確認するためにネットワーク設計を変更することをお勧めします

設計に変更が可能でない場合は、次の手順を実行できます。

2.スイッチの各レベルで異なるポートチャネルロードバランシングアルゴリズムを使用する（N7K1/N7k2ペアでは1つのアルゴリズム、N7K3/N7k4ペアでは異なるアルゴリズム）。 ロードバランシングアルゴリズムが変更されると、N7k1/N7k2スイッチはN7k3/N7k4スイッチで使用される情報以外の情報に基づいて着信トラフィックをハッシュし、発信トラフィックはすべてのポートチャネルメンバーリンクを使用します。（選択するアルゴリズムの決定は、スイッチが受信するトラフィックのタイプによって異なります）

3.顧客が同じロードバランシングアルゴリズムを使用する場合は、スイッチの各レベルで異なる回転値を使用します。Rotateコマンドは、ユーザが設定したバイトでハッシュ入力をオフセットすることによって、ハッシュアルゴリズムのランダム性を導入し、極性を回避するのに役立ちます。（N7k1/N7k2ペアには1つの回転値を、N7k3/N7k4ペアには別の回転値を使用します）