2. IPv6フローラベル仕様 (IPv6 Flow Label Specification)
IPv6ヘッダー [RFC2460] の20ビットフローラベルフィールドは、ノードがフローのパケットにラベルを付けるために使用されます。フローラベルがゼロの場合は、ラベル付けされていないパケットを示すために使用されます。パケット分類器は、フローラベル、送信元アドレス、および宛先アドレスフィールドの3つ組を使用して、特定のパケットが属するフローを識別できます。パケットは、ステートレスな方法でそれを実行できるノード、またはフロー固有の状態で設定されているノードによって、フロー固有の方法で処理されます。特定の処理の性質とフロー状態確立の方法は、この仕様の範囲外です。
フローラベル値は、そのビットが高度な可変性を示すように選択する必要があり、負荷分散スキームで使用されるハッシュ関数への入力の一部として使用するのに適しています。同時に、第三者がフローラベルのソースが選択する次の値を推測できる可能性は低いはずです。
統計学では、離散一様分布 (discrete uniform distribution) は、等間隔の値の所定の範囲 (整数のシーケンスなど) の各値が次の値として選択される可能性が等しい確率分布として定義されます。このような分布の値は、可変性と推測不可能性の両方を示します。したがって、セクション3で指定されているように、離散一様分布の近似がフローラベル値のソースとして望ましいです。意図的に、分布またはそのような分布を達成するために使用される方法に正確な数学的要件は課されていません。
ゼロ以外の値に設定されると、フローラベルは宛先ノードに変更されずに配信されることが期待されます。転送ノードは、ゼロ以外のフローラベル値を変更せずに残すか、セクション6.1で説明されているような説得力のある運用セキュリティ上の理由でのみ変更する必要があります (MUST)。
フローラベルが途中で変更されたか、一様分布に属しているかを確認する方法はありません。したがって、インターネット全体のメカニズムは、変更されていない均一に分布したフローラベルに数学的に依存することはできません。それらは「ベストエフォート」の品質を持っています。実装者は、フローラベルが途中で偶発的または意図的に変更された可能性がある保護されていないフィールドであることに注意する必要があります (セクション6を参照)。
フローラベリング要件 (Flow Labeling Requirements)
フローラベルを実際に使用できるようにするには、その使用に次の要件が適用されます:
-
フローラベルフィールドは、ソースノードによって設定される必要があります (MUST)。転送ノードは、セクション6.1で述べられている場合を除き、フローラベル値を変更してはなりません (MUST NOT)。
-
同じフローに属するすべてのパケットは、同じフローラベル値で送信される必要があります (MUST)。ノードがフロー固有の処理を提供しない場合は、フローラベルをゼロに設定する必要があります (MUST)。
-
フローラベルフィールドをサポートしていないノードは、パケットを発信するときにゼロに設定し、パケットを転送するときに変更せずに渡し、パケットを受信するときに無視する必要があります (MUST)。
フローラベルは、パケットのフロー固有の処理を実行するノードによって使用されるように設計されています。このようなノードには、以下が含まれますが、これらに限定されません:
- 負荷分散を実行するルーター
- レイヤー3/4負荷分散を実行するスイッチ
- ファイアウォールおよびその他のセキュリティデバイス
- Quality of Service (QoS) メカニズム
- ネットワーク監視および測定システム