OSPF(Open Shortest Path First)などのダイナミック ルーティング プロトコルは、等コスト マルチパス(ECMP)によるロード シェアリングをサポートしています。ルーティング プロトコルは、そのプロトコルに設定されたメトリックに基づいて最適なルートを決定し、そのプロトコルに設定された最大数までのパスをユニキャスト
RIB に組み込みます。ユニキャスト RIB は、RIB に含まれるすべてのルーティング プロトコル パスのアドミニストレーティブ ディスタンスを比較し、ルーティング プロトコルによって組み込まれたすべてのパス セットから最適なパス セットを選択します。ユニキャスト
RIB は、この最適なパス セットを FIB に組み込み、フォワーディング プレーンで使用できるようにします。
フォワーディング プレーンは、ロード シェアリングのアルゴリズムを使用して、FIB に組み込まれたパスのいずれかを選択し、それを特定のデータ パケットに使用します。
ロード シェアリングの次の設定項目をグローバルに設定できます。
ロード シェアリングでは、特定のフローに含まれるすべてのパケットに対して s srkuyo;pame パスが使用されます。フローは、ユーザが設定したロード シェアリング方式によって定義されます。たとえば、送信元/宛先のロード シェアリングを設定すると、送信元
IP アドレスと宛先 IP アドレスのペアが同じであるすべてのパケットが同じパスをたどります。
ユニキャスト FIB のロード シェアリング アルゴリズムを設定するには、グローバル コンフィギュレーション モードで次のコマンドを使用します。
コマンド
|
目的
|
ip load-sharing address {destination port destination | source-destination [port source-destination] | source } hardware lb-keyshift value lb-2nd-heir-keyshift value [universal-id seed] [rotate rotate] [concatenation] 例:ip load-sharing address source-destination port source-destination hardware lb-keyshift 1 lb-2nd-hier-keyshift 10
|
データ トラフィックに対するユニキャスト FIB のロード シェアリング アルゴリズムを設定します。
Cisco NX-OS リリース 10.3(3)F 以降では、Cisco Nexus 9600-R/RX ライン カードでのみ、IHB_ECMP_LB_KEY_CFG テーブルの次のパラメータをサポートするために hardware キーワードが追加されています。
次のオプションは、すべての IP ロード シェアリング設定で使用できます。
-
universal-id オプションは、ハッシュ アルゴリズムのランダム シードを設定することにより、フローをあるリンクから別のリンクにシフトします。
汎用 ID を設定する必要はありません。ユーザが設定しなかった場合は、Cisco NX-OS が汎用 ID を選択します。universal-id の範囲は 1 ~ 4294967295 です。
-
rotate オプションを使用すると、ハッシュ アルゴリズムは、リンク ピッキングの選択をローテーションさせます。これは、ネットワーク内のすべてのノードが同じリンクを継続的に選択しないようにするためです。これは、ハッシュ アルゴリズムのビット パターンに影響を与えることによって機能します。このオプションは、あるリンクから別のリンクにフローをシフトし、最初の
ECMP レベルからすでにロード バランシング(極性化)されているトラフィックのロード バランシングを複数のリンク間で行います。
rotate 値を指定すると、64 ビットのストリームが、循環回転でのそのビット位置から解釈されます。rotate 値の範囲は 1 ~ 63 で、デフォルトは 32 です。
(注)
|
多層レイヤ 3 トポロジでは、極性が発生する可能性があります。極性を回避するには、トポロジの各層で異なる循環ビットを使用します。
|
(注)
|
ポート チャネルの rotation 値を設定するには、 port-channel load-balance src-dst ip-l4port rotate rotate コマンドを使用します。このコマンドの詳細については、『Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide』を参照してください。
|
-
concatenation オプションを使用すると、ECMP のハッシュ タグ値とポート チャネルのハッシュ タグ値がひとつに結合され、より強力な 64 ビットのハッシュを使用できるようになります。このオプションを使用しない場合、ECMP のロード バランシングおよびポート
チャネルのロード バランシングを個別に制御できます。デフォルトではディセーブルになっています。
|
ハッシュ オフセットの構成
多層 ECMP セッションで ECMP 極性を回避するには、各層で異なる ECMP ハッシュ オフセットを構成する必要があります。リリース 6.0(2)U5(1) 以降、ECMP ハッシュ連結の新しい CLI が導入され、16 の ECMP パスでトラフィックを均等に分散できます。更新された
CLI サポートは、Cisco Nexus 3000 シリーズ スイッチではなく、Cisco Nexus 3100 プラットフォーム スイッチに存在します。ハッシュ オフセットは、非連結モードでは <0-15> の範囲、連結モードでは <0-63>
の範囲で構成できます。
連結モードで、ハッシュオフセットが 0 に設定されていて、連結が設定されている場合、show running-config コマンドは hardware ecmp hash-offset 0 connatationation を表示します。ハッシュオフセットは値ごとにプログラムされます。ダウングレード時に、連結が構成されている場合、CAP チェックは構成を削除するように求めます。
非連結モードでは、ハッシュオフセットが 0 に構成されて連結がリセットされた場合、show running-config コマンドは hardware ecmp hash-offset 0 を表示しません。ハッシュオフセット値が 0 〜 15
の範囲にある場合、ハッシュオフセットは値に従ってプログラムされます。ハッシュオフセットでは、値が 16 ~ 63 の範囲の場合、CLI エラーが表示されます(非連結モードでは、0 ~ 15 の範囲のハッシュオフセットがサポートされます)。
show running-config のハッシュオフセットは、構成された値に従って表示されます。
ECMP ハッシュオフセットを構成するには、グローバル構成モードで以下のコマンドを使用します。
コマンド
|
目的
|
# hardware ecmp hash-offset ?
|
ECMP ハッシュ オフセットを構成します。範囲は 0 ~ 63 です。範囲 <0-15> のハッシュ オフセットは、非連結モード用です。範囲 <0-63> のハッシュ オフセットは、連結モード用です。
|
#hardware ecmp hash-offset number
例:
switch(config)# hardware ecmp hash-offset 5
|
非連結モードで ECMP ハッシュオフセットを構成します。範囲は 0 ~ 15 です。デフォルト値は 0 です。
|
#hardware ecmp hash-offset <0-63> concatenation
例:
switch(config)# hardware ecmp hash-offset 63 concatenation
|
連結モードで ECMP ハッシュオフセットを構成します。
(注)
|
連結サポートは、Cisco Nexus 3000 シリーズ スイッチではなく、Cisco Nexus 3100 プラットフォーム スイッチにあります。この CLI は Cisco Nexus 3000 シリーズ スイッチでエラーを生成します。
|
|
hardware ecmp hash-offset コマンドを使用して設定された ECMP ハッシュ オフセットを、ip load-sharing address コマンドを使用して設定されたさまざまなユニバーサル ID とともに使用して、負荷分散アルゴリズムでさまざまなハッシュ結果を生成できます。
ハッシュ多項式の構成
リリース 6.0(2)U5(1) 以降、CRC 構成に新しい CLI が追加されました。
コマンド
|
目的
|
switch# config t
|
コンフィギュレーション モードを開始します。
|
switch(config)# hardware ecmp ? hash-offset Configure hash offsethash-polynomial Configure hash polynomial
|
ハードウェア ECMP の構成オプションとしてハッシュ オフセットとハッシュ多数項を表示します。
|
switch config)# hardware ecmp hash-polynomial ? CRC16 Hash polynomial CRC16CRC32HI Hash polynomial CRC32 HI
|
ハッシュ多項式の構成オプションとして CRC16 および CRC32HI を表示します。
|
switch config)#show running-config
|
実行設定を表示します。
|
ユニキャスト FIB のロード シェアリング アルゴリズムを表示するには、任意のモードで次のコマンドを使用します。
コマンド
|
目的
|
show ip load-sharing
例:
switch(config)# show ip load-sharing
|
データ トラフィックに対するユニキャスト FIB のロード シェアリング アルゴリズムを表示します。
|
次に、show ip load-sharing コマンドの出力例を示します。 hardware lb-keyshift 1 lb-2nd-hier-keyshift 10
switch(config)# ip load-sharing address source-destination port source-destination
switch(config)# show ip load-sharing
IPv4/IPv6 ECMP load sharing:
Universal-id (Random Seed): 251533739
Load-share mode : address source-destination port source-destination
GRE-Outer hash is disabled
Concatenation is disabled
Rotate: 32
Lbkeyshift: 1
2ndHeirLbkeyshift: 10
switch(config)#
ユニキャスト RIB および FIB が特定の送信元アドレス/宛先アドレスに使用するルートを表示するには、任意のモードで次のコマンドを使用します。
コマンド
|
目的
|
show routing hash source-addr dest-addr [ ip-proto ip-protocol ] [ source-l4-port dest-l4-port ] [ vrf vrf-name]
例:
switch# show routing hash 1.1.1.6.5.5 5.3 ip-proto 0x11 10 234
|
ユニキャスト RIB および FIB が特定の送信元/宛先アドレス ペアに使用するルートを表示します。送信元アドレスと宛先アドレスの形式は x.x.x.x です。送信元ポートと宛先ポートの範囲は 1 ~ 65535 です。VRF 名には最大 64
文字の英数字文字列を指定します。大文字と小文字は区別されます。ip-proto オプションは、IP ヘッダーのプロトコル フィールドに対応します。
|
次に、送信元/宛先ペアのために選択されたルートを表示する例を示します。
switch# show routing hash 1.1.1.6.5.5.5.3 ip-proto 0x11 10 234
Load-share parameters used for software forwarding:
load-share mode: address source-destination port source-destination
Universal-id seed: 0xe05e2e85
Invoking pc_ic_ecmp_resolution
Hash for VRF "default"
Hashing to path *Eth1/29%
For route:
5.5.5.0/24 ubest/mbest: 3/0
*via 2.2.2.1, Eth1/18, [1/0], 00:14:14, static
*via 3.3.3.1, Eth1/29, [1/0], 00:14:14, static
*via 4.4.4.1, Eth1/34, [1/0], 00:14:14, static