enhanced-hash-key
構文
enhanced-hash-key { family any { incoming-interface-index; no-tunnel-payload; } family inet { gtp-tunnel-endpoint-identifier; l2tp-tunnel-session-identifier; incoming-interface-index; no-destination-port; no-source-port; type-of-service; } family inet6 { gtp-tunnel-endpoint-identifier; incoming-interface-index; no-destination-port; no-source-port; traffic-class; } family mpls { ether-pseudowire { zero-control-word; } incoming-interface-index; label-1-exp; no-ether-pseudowire; no-labels; no-payload; } family multiservice { incoming-interface-index; no-mac-addresses; no-payload; outer-priority; source-mac; no-destination-mac; } services-loadbalancing { family inet { layer-3-services { destination-address; incoming-interface-index; source-address; } } family inet6 { layer-3-services { destination-address; incoming-interface-index; source-address; src-prefix-len; } } } symmetric; }
構文(EXシリーズ)
enhanced-hash-key { ecmp-dlb { assigned-flow; per-packet; flowlet inactivity-interval; ether-type (ipv4|ipv6|mpls); } ecmp-resilient-hash; fabric-load-balance { flowlet { inactivity-interval interval; } per-packet; } hash-mode { layer2-header; layer2-payload; } family inet { no-ipv4-destination-address; no-ipv4-source-address; no-l4-destination-port; no-l4-source-port; no-protocol; vlan-id; } family inet6 { no-ipv6-destination-address; no-ipv6-source-address; no-l4-destination-port; no-l4-source-port; no-next-header; vlan-id; } layer2 { no-destination-mac-address; no-ether-type; no-source-mac-address; vlan-id; } }
構文(QFX5000シリーズスイッチ)
enhanced-hash-key { conditional-match name { offset1 { base-offset1 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); matchdata1 matchdata1; matchdata1-mask matchdata1-mask; offset1-value offset1-value; } offset2 { base-offset2 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); matchdata2 matchdata2; matchdata2-mask matchdata2-mask; offset2-value offset2-value; } offset3 { base-offset3 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); matchdata3 matchdata3; matchdata3-mask matchdata3-mask; offset3-value offset3-value; } offset4 { base-offset4 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); matchdata4 matchdata4; matchdata4-mask matchdata4-mask; offset4-value offset4-value; } } ecmp-dlb { assigned-flow; per-packet; flowlet inactivity-interval; ether-type (ipv4|ipv6|mpls); } ecmp-resilient-hash; fabric-load-balance { flowlet { inactivity-interval interval; } per-packet; } flex-hashing name { ethtype { inet { conditional-match conditional-match; hash-offset { offset1 { base-offset1 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); offset1-mask offset1-mask; offset1-value offset1-value; offset2 { base-offset2 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); offset2-mask offset2-mask; offset2-value offset2-value; } } } interface interface; } inet6 { conditional-match conditional-match; hash-offset { offset1 { base-offset1 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); offset1-mask offset1-mask; offset1-value offset1-value; offset2 { base-offset2 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); offset2-mask offset2-mask; offset2-value offset2-value; } } } interface interface; } mpls { conditional-match conditional-match; hash-offset { offset1 { base-offset1 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); offset1-mask offset1-mask; offset1-value offset1-value; offset2 { base-offset2 (start-of-L2Header | start-of-L3-InnerHeader | start-of-L3-OuterHeader | start-of-L4-Header); offset2-mask offset2-mask; offset2-value offset2-value; } } } interface interface; num-labels num-labels; } } } hash-mode { layer2-header; layer2-payload; gtp-header-offset offset-value; } hash-parameters { ecmp { function { (crc16-bisync | crc16-ccitt | crc32-hi | crc32-lo); } offset offset; preprocess; } lag { function { (crc16-bisync | crc16-ccitt | crc32-hi | crc32-lo); } offset offset; preprocess; } } family inet { gtp-tunnel-endpoint-identifier; no-incoming-port; no-ipv4-destination-address; no-ipv4-source-address; no-l4-destination-port; no-l4-source-port; no-protocol; vlan-id; } family inet6 { no-incoming-port; no-ipv6-destination-address; no-ipv6-source-address; no-l4-destination-port; no-l4-source-port; no-next-header; vlan-id; } layer2 { no-destination-mac-address; no-ether-type; no-source-mac-address; vlan-id; } symmetric-hash { inet; inet6; } } vxlan { no-inner-payload; }
構文(QFX10000シリーズスイッチ)
enhanced-hash-key { hash-seed seed-value; family inet { gtp-tunnel-endpoint-identifier; no-ipv4-destination-address; no-ipv4-source-address; no-l4-destination-port; no-l4-source-port; no-incoming-port; } family inet6 { gtp-tunnel-endpoint-identifier; ipv6-flow-label; no-ipv6-destination-address; no-ipv6-source-address; no-l4-destination-port; no-l4-source-port; no-incoming-port; } layer2 { destination-mac-address inner-vlan-id; no-ether-type; no-vlan-id; source-mac-address; } no-mpls; gre { key; protocol; } vxlan-vnid } }
構文(SRX5000シリーズルーター)
enhanced-hash-key { family inet { gtp-tunnel-endpoint-identifier; incoming-interface-index; l2tp-tunnel-session-identifier; session-id; type-of-service; } family inet6 { gtp-tunnel-endpoint-identifier; incoming-interface-index; no-flow-label; session-id; traffic-class; } layer2 { destination-mac-address inner-vlan-id; no-ether-type; no-vlan-id; source-mac-address; } no-mpls; gre { key; protocol; } vxlan-vnid } }
構文(Junos OS Evolved)
enhanced-hash-key { family any { incoming-interface-index; no-tunnel-payload; } family inet { gtp-tunnel-endpoint-identifier; no-destination-port; no-source-port; type-of-service; } family inet6 { gtp-tunnel-endpoint-identifier; no-destination-port; no-flow-label; no-source-port; traffic-class; } family mpls { label-1-exp; no-labels; no-payload; } family multiservice { no-payload; } hash-seed; } resilient-hash-seed; } }
構文 Junos OS Evolved(QFX5220およびQFX5130)
enhanced-hash-key { ecmp-resilient-hash; family inet { no-incoming-device; no-incoming-port; no-ipv6-destination-address; no-ipv6-source-address; no-l4-destination-port; no-l4-source-port; no-protocol; vlan-id; } family inet6 { no-incoming-device; no-incoming-port; no-ipv6-destination-address; no-ipv6-source-address; no-l4-destination-port; no-l4-source-port; no-nxt-hdr; vlan-id; } hash-mode { layer2-header; layer2-payload; } layer2 { no-destination-mac-address; no-ether-type; no-incoming-device; no-incoming-device; no-smac-address; vlan-id; } hash-parameters { ecmp { function { (crc16-bisync | crc16-ccitt | crc32-hi | crc32-lo); } offset offset; preprocess; } lag { function { (crc16-bisync | crc16-ccitt | crc32-hi | crc32-lo); } offset offset; preprocess; } } }
構文 Junos OS Evolved(QFX5240)
enhanced-hash-key { ecmp-dlb { flowlet { reassignment prob-threshold <value>; reassignment quality-delta <value>; } } }
階層レベル
[edit forwarding-options], [edit logical-systems logical-system-name routing-instances instance-name forwarding-options], [edit routing-instances instance-name forwarding-options]
Junos OS Evolvedは、 set
の代わりに edit
コマンドを使用します。
説明
リンクアグリゲーショングループ(LAG)や等価コストマルチパス(ECMP)トラフィックのハッシュに使用するハッシュキーを設定するか、バーチャルシャーシファブリック(VCF)でアダプティブロードバランシング(ALB)を有効にします。QFX5240デバイスでは、LAG(リンクアグリゲーショングループ)およびECMP(等価コストマルチパス)トラフィックのハッシュに使用するハッシュキーのみを設定します。
Junos OS リリース 14.1X53-D46、15.1R7、16.1R6、17.1R3、17.2R2、17.3R2、17.4R1 以降、ALB 機能は廃止されました。がVCFの設定で有効になっている場合は fabric-load-balance
、Junos OSのアップグレード時に設定項目を削除します。
ハッシュ アルゴリズムは、LAG バンドルに入るトラフィック、または ECMP が有効になっている場合にスイッチから出るトラフィックのトラフィック転送を決定するために使用されます。
LAGバンドルの場合、ハッシュアルゴリズムは、LAGバンドルに入るトラフィックがバンドルのメンバーリンクにどのように配置されるかを決定します。ハッシュアルゴリズムは、バンドル内のメンバーリンクにまたがるすべての着信トラフィックを均等にロードバランシングすることで、帯域幅を管理しようとします。
ECMP が有効になっている場合、ハッシュ アルゴリズムによって、着信トラフィックがネクストホップ デバイスにどのように転送するかが決まります。
計算されたハッシュは、ECMP パスの選択だけでなく、ロード バランシングにも使用されます。Junos OS Release 18.3R1以降、IPv6、GRE、PPPoEパケットのハッシュ計算には、デフォルトで が含まれています flow-label field
。これは、例えば、指定ルーター(DR)またはランデブーポイント(RP)として動作するMXルーターがあり、単一のレイヤー3またはレイヤー4フローに基づいてトラフィックのロードバランシングが必要な場合に役立ちます。オプションを設定すると no-flow-label
、前のハッシュ計算方法に戻すことができます。
-
GREパケットの場合、外部IPパケットが非オプションパケットで、内部パケットがIPv4またはIPv6の場合、内部パケットからの送信元および宛先IPアドレスがハッシュ計算に含まれます。
内部 IP パケットのプロトコルが TCP または UDP で、内部 IP パケットがオプション パケットでない場合、レイヤー 4 ポートもハッシュ計算に含まれます。
外部 IP パケットが非オプション パケットで、内部パケットが MPLS の場合、一番上の内側ラベルがハッシュ計算に含まれます。
-
PPPoE パケットの場合、内部パケットが IPv4 または IPv6 の場合、内部パケットからの送信元 IP アドレスと宛先 IP アドレスがハッシュ計算に含まれます。
内部 IP パケットのプロトコルが TCP または UDP で、内部 IP パケットが非オプション パケットの場合、レイヤー 4 ポートはハッシュ計算に含まれます。
MPC搭載MXシリーズルーター、Type 5 FPC搭載T4000ルーター、EX9200スイッチ、PTX10008ルーターでは、拡張IP転送エンジンのハッシュキーに使用するデータを選択します。
デフォルトでは、MPCはハッシュに以下のパラメータを使用します。
-
送信元 IP アドレス
-
宛先 IP アドレス
-
レイヤー3プロトコル
-
送信元ポート
-
宛先ポート
-
GREパケットのみの汎用ルーティングカプセル化(GRE)。
MPCおよびタイプ5 FPCのデフォルトハッシュメカニズムを変更するには、 階層レベルで [edit forwarding-options enhanced-hash-key]
ステートメントを設定します。
-
QFX10000 シリーズ スイッチでは、負荷分散用のハッシュ シードを設定できます。デフォルトでは、QFX10000 シリーズ スイッチはシステム MAC アドレスを使用してハッシュ シード値を生成します。ハッシュシード値は、[] 階層レベルの ステートメント
edit forwarding-options enhanced-hash-key
を使用してhash-seed設定できます。0 から 4294967295 までの値を設定します。ハッシュシード値を設定しない場合、システムはシステム MAC アドレスに基づいてハッシュシード値を生成します。 -
Junos OS Release 18.4R1以降、対称ハッシュはQFX10000シリーズスイッチでサポートされます。オプションは、[
no-incoming-port
転送オプション拡張ハッシュキーの編集]階層で設定します。デフォルトでは、宛先 IP(DIP)、SIP、レイヤー 4 送信元ポートと宛先ポート、および受信ポートがハッシュに使用されます。対称ハッシュはグローバル レベルでのみ設定できます。
QFX5000 シリーズ スイッチでは、 が設定に含まれている場合vlan-id
、マルチキャスト パケットがenhanced-hash-key
重複またはドロップされます。したがって、 の構成enhanced-hash-key
中は、 を構成vlan-id
せずに および layer2-header
のオプションを構成するlayer2-payload
必要があります。この動作は、マルチキャスト トラフィックでのみ発生します。
-
Junos OS Release 19.4R1以降、ECMPの動的ロードバランシング(DLB)は、QFX5120-32CおよびQFX5120-48Yスイッチでサポートされます。オプションは、[転送オプション拡張ハッシュキーの編集]階層で設定できます
ecmp-dlb
。詳細については、「 動的ロードバランシング 」を参照してください。 -
スイッチのQFX5000回線で対称ハッシュを有効にするには、 オプションを設定します
symmetric-hash
。
拡張ハッシュ鍵は、構成された設定がサービス処理カード(SPC2)とSPC3に到達するための制御パスを実装することで、SRX5000ルーターでサポートされます。オプションを構成し session-id
て、構成された設定の制御パスを有効にして、サービス処理ユニット (SPU) に到達します。
詳細については、 CLIエクスプローラを参照してください。
既定
PTXでは、MX(QFXに似ています)と比較して、ハッシュ計算の送信元と宛先のMACアドレスオプションが異なります。QFXはハッシュ計算用のデフォルトのMACアドレスフィールドを除外しますが、PTXは宛先MACを含め、送信元MACは除外します。
オプション
services-loadbalancing
- 複数のサービスPICを指すルートがインストールされている場合、送信元IPアドレスに基づいてPICにトラフィックを分散します。
symmetric
- 集合型イーサネットインターフェイス全体で対称的なロードバランシングを可能にします。このオプションは、Trio ベースの MPC でのみ必要です。
以下のデータ選択 services-loadbalancing
:
-
inet
- IPv4 アドレッシング プロトコル。 -
inet6
- IPv6 アドレッシング プロトコル。 -
layer-3-services
- ハッシュキーにレイヤー 3 IP データを含めます。 -
incoming-interface-index
- ハッシュキーに受信インターフェイスインデックスを含めます。 -
source-address
- ハッシュキーに送信元アドレスを含めます。 -
destination-address
- ハッシュキーに宛先アドレスを含めます。 -
src-prefix-len
- ハッシュキーに送信元プレフィックス長を含めます。
ファミリー any
のデータ選択 :
-
incoming-interface-index
—(PTX10008のみ)ハッシュキーに受信インターフェイスインデックスを含めます。 -
no-tunnel-payload
—(PTX10001-36MR、PTX10004、PTX10008、およびPTX10016のみ)ハッシュキーからトンネルペイロードデータを省略します。
ファミリー inet
のデータ選択 :
-
gtp-tunnel-endpoint-identifer- GPRS トンネリング プロトコル(GTP)トラフィックのハッシュ キーにトンネル エンドポイント識別子(TEID)フィールドを含めます。
メモ:このオプションは、MPCを搭載したMXシリーズルーターとMX80ルーターでのみサポートされています。
-
incoming-interface-index
- ハッシュキーに受信インターフェイスインデックスを含めます。 -
no-destination-port
- ハッシュキーの IP 宛先ポートを省略します。 -
no-source-port
- ハッシュキーの IP 送信元ポートを省略します。 -
type-of-service
- ハッシュキーにサービスタイプ(TOS)バイトを含めます。
ファミリー inet6
のデータ選択 :
-
gtp-tunnel-endpoint-identifer- GPRS トンネリング プロトコル(GTP)トラフィックのハッシュ キーにトンネル エンドポイント識別子(TEID)フィールドを含めます。
メモ:このオプションは、MPCを搭載したMXシリーズルーターとMX80ルーターでのみサポートされています。
-
incoming-interface-index
- ハッシュキーに受信インターフェイスインデックスを含めます。 -
no-destination-port
- ハッシュキーの IP 宛先ポートを省略します。 -
no-source-port
- ハッシュキーの IP 送信元ポートを省略します。 -
traffic-class
- ハッシュキーにトラフィッククラスバイトを含めます。
ファミリー mpls
のデータ選択 :
-
ether-pseudowire
- イーサネット疑似回線上の IP の負荷分散。ペイロードにゼロ制御ワードが存在する場合は、イーサネットフレームを示しています。 -
incoming-interface-index
- ハッシュキーに受信インターフェイスインデックスを含めます。 -
label-1-exp
- 最初のラベルの EXP ビットがハッシュ計算に使用されます。 -
no-ether-pseudowire
- ハッシュキーからイーサネット擬似回線ペイロードデータを除外します(MPCを搭載したMXシリーズルーターのみ)。 -
no-labels
- ハッシュキーからMPLSラベルを省略します(PTX10008のみ)。 -
no-payload
- ハッシュキーからMPLSペイロードデータを省略します。
ファミリー multiservice
のデータ選択 :
-
incoming-interface-index
- ハッシュキーに受信インターフェイスインデックスを含めます。 -
no-mac-addresses
- ハッシュキーから送信元と宛先のMACアドレスを省略します。 -
no-payload
- ハッシュキーからペイロードデータを省略します。 -
outer-priority
- ハッシュキーに外側の 802.1 プライオリティビットを含めます。 -
source-mac
- ハッシュキーに送信元MACアドレスを含む -
no-destination-mac
- ハッシュキーの宛先MACアドレスを除外します。
必要な権限レベル
interface—設定でこのステートメントを表示します。
interface-control—設定にこのステートメントを追加します。
リリース情報
Junos OSリリース10.1で導入されたステートメント。
services-loadbalancing
Junos OSリリース11.2で導入されたステートメント。
gtp-tunnel-endpoint-identifier
Junos OSリリース13.2で導入されたステートメント
fabric-load-balance
Junos OSリリース14.1X53-D10で導入されたステートメント。
このステートメントは fabric-load-balance
、Junos OSリリース14.1X53-D46、15.1R7、16.1R6、17.1R3、17.2R2、17.3R2、17.4R1以降で非推奨になりました。
Junos hash-seed
OSリリース15.1X53-D30で導入されたステートメント。
ether-pseudowire
M シリーズ、MX シリーズ、PTX シリーズ向けに Junos OS リリース 16.1 で導入されたステートメント。
l2tp-tunnel-session-identifier
Junos OSリリース17.2で導入されたステートメント
Junos OS リリース 18.3R1 以降、IPv6、GRE、および PPPoE パケットハッシュ計算のデフォルト動作は、特定のケースにおける負荷分散を改善するために flow-label フィールドを含めることです。 no-payload
このオプションを使用して、ハッシュ計算の前の方法に戻します。
ecmp-dlb
QFX5120-32CおよびQFX5120-48YスイッチのJunos OSリリース19.4R1で導入されたステートメント。
Junos OSリリース20.4R1で導入されたオプション symmetric-hash
。
Junos OS Evolvedリリース21.3R1で導入されたステートメント。
ステートメント ecmp-dlb
は、EX4400-24T、EX4400-24X、およびEX-4400-48FスイッチのJunos OSリリース23.2R1で導入されました。
ecmp-dlb
QFX5240スイッチ向けJunos Evolvedリリース22.2X100-D20で導入されたリアクティブパスリバランシングに関するステートメント。