Solaris のシステム管理 (第 3 巻)

フローラベル

IPv6 ヘッダーで 24 ビットフローラベルフィールドをソースに使用して、デフォルト以外のサービス品質やリアルタイムサービスなど、IPv6 ルーターによる特別処理を必要とするパケットにラベルを設定できます。この IPv6 の機能はまだ実験段階であり、インターネットのフローサポートの条件が確定すると変更される可能性があります。フローラベルフィールドの機能をサポートしていないホストやルーターでは、パケットの生成時にフィールドをゼロに設定し、パケットの送信時にフィールドの値を前送りし、パケットの受信時にフィールドを無視する必要があります。

フローとは

フローは特定のソースから、ソースがルーターの逆引きによる特別処理を必要とする特定の (ユニキャストまたはマルチキャスト) 宛先に送信されるパケットシーケンスです。特別な処理の特性は、リソース予約プロトコルなどの制御プロトコル、あるいはホップバイホップオプションなど、フローのパケットそのものに保存された情報によってルーターに伝達されます。

ソースから宛先までのアクティブフローは複数のフローであることもあれば、どのフローにも関連付けられていないトラフィックを含む場合もあります。フローの一意の識別はソースアドレスとゼロ以外のフローラベルの組み合わせによって行います。フローに所属しないパケットは、フローラベルゼロを運びます。

フローのソースノードでは、フローにフローラベルを割り当てます。新しいフローラベルは (疑似的な) ランダム選択で 1 から FFFFFF 16 進数の範囲から均等に選択します。このランダム割り当てにより、フローラベルフィールド内のビットセットは、フローの状態をルーターが調べるときのハッシュキーとして利用できるようになります。

同じフローに所属するパケット

同じフローに所属するパケットは、同じソースアドレス、同じ宛先アドレス、同じゼロ以外のフローラベルで送信します。これらのパケットのどれかにホップバイホップオプションヘッダーがあると、同じホップバイホップオプションヘッダーの内容で生成されます (ホップバイホップオプションヘッダーの次のヘッダーフィールドを除く)。これらのパケットのどれかにルーティングヘッダーがあると、ルーティングヘッダーまでは、すべての拡張ヘッダーが同じ内容で生成されます (ルーティングヘッダーの次のヘッダーフィールドを除く)。ルーターや宛先では、場合によってはこれらの条件が満たされているかを確認できます。条件違反がある場合、フローラベルフィールドの上位オクテットを表す ICMP パラメータ問題メッセージ、コード 0 でソースに報告します (すなわち、IPv6 パケットのオフセット 1)。

制御プロトコル、ホップバイホップオプション、その他の手段で明示的なフロー情報が与えられていなくても、ルーターでは、場合によっては、任意のフローのフロー処理状態をセットアップできます。たとえば、未知のゼロ以外のフローラベルで特定のソースからパケットを受信すると、フローラベルがゼロである場合と同様に、ルーターではその IPv6 ヘッダーと必要な拡張ヘッダーを処理できます。この処理には、次のホップインタフェースの判定と、場合によってはホップバイホップオプションの更新、ルートヘッダーのポインタとアドレスの加算、あるいはトラフィッククラスフィールドにもとづくパケットのキューイングの方法の決定など、その他の動作が含まれることがあります。ルーターでは、ソースアドレスとフローラベルをキャッシュキーとして、これらの処理手順の結果を記憶してその情報をキャッシュに保存できます。同じソースアドレスとフローラベルで後続のパケットについては、先のパラグラフの条件によれば、フローの最初のパケット以後、どのフィールドも変更されていないと考えられるため、調べなくてもキャッシュ情報を参照するだけで処理できます。