メインコンテンツまでスキップ

6.5. Routing Locator Hashing (ルーティングロケータハッシング)

6.5. Routing Locator Hashing (ルーティングロケータハッシング)

ETR が Map-Reply で要求元の ITR に EID-to-RLOC マッピングを提供する場合, その EID-Prefix の Locator-Set 内の各 locator アドレスは異なる Priority 値を持つことができます。最適な Priority を持つ複数の Locator が存在する場合, ITR はこれらの Locator 間でトラフィックの負荷分散をどのように行うかを決定できます。

ITR は, EID に送信されるパケットの EID-to-RLOC マッピング内の Locator を選択するために, 次のハッシュアルゴリズムを使用できます:

  1. 送信元アドレスと宛先アドレスのハッシュ, または従来の 5 タプルハッシュを使用できます。従来の 5 タプルハッシュには, 送信元アドレスと宛先アドレス, 送信元と宛先の TCP, UDP, または Stream Control Transmission Protocol (ストリーム制御伝送プロトコル, SCTP) ポート番号, および LISP サイト内のホストによって開始されたパケットの IP プロトコル番号フィールドまたは IPv6 次ヘッダフィールドが含まれます。パケットが TCP, UDP, または SCTP パケットでない場合, ヘッダ内の送信元アドレスと宛先アドレスのみを使用してハッシュを計算します。

  2. ハッシュ値を EID-to-RLOC マッピングの Locator-Set に格納されている Locator の数で除算します。

  3. 余りは 0 から「Locator 数マイナス 1」の範囲に収まります。この余りを使用して Locator-Set から Locator を選択します。

LISP カプセル化では, 外部 UDP ヘッダの送信元ポート番号を設定する必要があることに注意してください。ハッシュ値を選択すると, Link Aggregation Groups (リンク集約グループ, LAG) に接続されたコアルータが, カプセル化されたパケットを LAG メンバーリンク間で負荷分散できます。そうしないと, コアルータは単一のフローを見ることになります。パケットの送信元アドレスが ITR であり, 送信元サイトの異なる EID によって開始されたパケットは区別されるべきだからです。ITR は, 上記の 5 タプルハッシュ関数を使用して内部ヘッダで計算した結果に送信元ポート番号を設定することが推奨されます。

多くのコアルータ実装は, 5 タプルハッシュを使用して LAG メンバー間でパケット負荷を分散します。5 タプルハッシュには, パケットの送信元アドレスと宛先アドレス, およびプロトコル番号が TCP または UDP の場合の送信元ポートと宛先ポートが含まれます。したがって, LISP カプセル化は UDP エンコーディングを使用します。