IPQoS には、RFC 2475 に定義されている Diffserv アーキテクチャーの一部である次のモジュールがあります。
クラシファイア
メーター
マーカー
IPQoS では、次の拡張機能が Diffserv モデルに追加されています。
フローアカウンティングモジュール
802.1D データグラムマーカー
このセクションでは、IPQoS で使用する Diffserv モジュールについて簡単に説明します。各モジュールの詳細は、IPQoS アーキテクチャーと Diffserv モデルを参照してください。
Diffserv モデルでは、「クラシファイア」がネットワークトラフィックフローからパケットを選択します。「トラフィックフロー」は、次の IP ヘッダーフィールド内に同一の情報を持つパケットのグループで構成されます。
発信元アドレス
着信先アドレス
発信元ポート
着信先ポート
IPQoS では、これらのフィールドを「5 タプル」と呼びます。
IPQoS クラシファイアモジュール ipgpc は、トラフィックフローを、IPQoS 構成ファイルに構成されている特性に基づいたクラスに分類します。
ipgpc の詳細については、クラシファイアモジュールを参照してください。
トラフィックをいくつかのクラスに分類することは、QoS ポリシーを計画する際に欠かせない作業の 1 つです。ipqosconf ユーティリティーを使用してクラスを作成するときは、実際にはipgpc クラシファイアを構成しています。
クラスを定義する方法については、QoS ポリシーのクラスの定義を参照してください。
「フィルタ」は、「セレクタ」と呼ばれるパラメータを含む規則のセットです。各フィルタは、必ず 1 つのクラスを指定する必要があります。IPQoS は、パケットを各フィルタのセレクタと突き合わせて、パケットがフィルタのクラスに属しているかどうかを調べます。さまざまなセレクタを使用してパケットにフィルタをかけることができます。セレクタの例として、IPQoS 5 タプルなどのよく使うパラメータを次に示します。
発信元および着信先のアドレス
発信先および着信先のポート
プロトコル番号
ユーザー ID
プロジェクト ID
差別化サービスコードポイント (DSCP)
インタフェースインデックス
たとえば、簡単なフィルタに値が 80 の宛先ポートが含まれているとします。ipgpc クラシファイアは、宛先ポート 80 (HTTP) 向けのパケットをすべて選択し、QoS ポリシーの指示どおりに選択したパケットを処理します。
フィルタの作成については、QoS ポリシーにフィルタを定義する方法を参照してください。
Diffserv モデルでは、「メーター」はトラフィックフローの転送速度をクラス単位で追跡します。メーターは、該当する結果 (outcome) を得るために、フローの実際の転送速度が構成された速度にどれだけ適合しているかを評価します。トラフィックフローの結果に基づいて、メーターは、別のアクションにパケットを送信したり、追加処理なしでネットワークにパケットを戻したりするなど、後続のアクションを選択します。
IPQoS のメーターは、ネットワークフローが、QoS ポリシーでそのクラスに定義されている転送速度に適合しているかどうかを調べます。IPQoS には、次の 2 つのメータリングモジュールがあります。
どちらのメータリングモジュールも、赤、黄、緑という 3 つの結果を識別します。結果ごとに実行させたいアクションは、red_action_name、yellow_action_name、および green_action_name のパラメータで定義します。
また、tokenmt をカラーアウェアとして構成することもできます。カラーアウェアとして構成されているメータリングインスタンスでは、パケットのサイズ、DSCP、トラフィックの転送速度、および構成されたパラメータを使って結果を求めます。メーターは、DSCP を使用してパケットの結果を緑、黄、赤にマッピングします。
IPQoS メーターのパラメータの定義については、フロー制御を計画する方法を参照してください。
Diffserv モデルでは、「マーカー」は転送動作を表す値をパケットに付けます。「マーキング」とは、パケットをネットワークに転送する方法を示す値を、そのパケットのヘッダーに付加するプロセスのことです。
IPQoS には、次の 2 つのマーカーモジュールが含まれています。
dscpmk – IP パケットヘッダーの DS フィールドに差別化サービスコードポイント (DSCP) と呼ばれる数値を付けます。Diffserv 対応ルーターは、この DS コードポイントを使って、適切な転送動作をパケットに適用できます。
dlcosmk – Ethernet フレームヘッダーの仮想ローカルエリアネットワーク (VLAN) タグにユーザー優先順位と呼ばれる数値を付けます。ユーザー優先順位は、データグラムに適用される適切な転送動作を定義する「サービスクラス (CoS)」のことです。
dlcosmk は、IETF Diffserv モデルの一部ではない IPQoS の追加機能です。
QoS ポリシーのマーカー戦略の実装については、転送動作の計画を参照してください。
IPQoS では、flowacct アカウンティングモジュールが Diffserv モデルに追加されます。flowacct を使用すると、トラフィックフローに関する統計情報を取得し、SLA に合わせて顧客に課金できます。フローアカウンティングは、容量計画やシステムのモニタリングにも役立ちます。
flowacct モジュールを acctadm コマンドと組み合わせて、アカウンティングログファイルを作成します。基本的なログには、IPQoS 5 タプルのほかに 2 つの属性が記録されます。
発信元アドレス
発信元ポート
着信先アドレス
着信先ポート
プロトコル番号
パケット数
バイト数
トラフィックフローに関する情報の記録および flowacct(7ipp) や acctadm(1M) のマニュアルページに説明されているとおり、その他の属性の統計を集めることもできます。
フローアカウンティング戦略の計画については、フローアカウンティングの計画を参照してください。
次の図は、着信トラフィックが IPQoS モジュールのいくつかを通過するときに取りうる経路を示しています。
図 1 diffserv モデルの IPQoS 実装を通過するトラフィックフロー
この図は、IPQoS 対応マシンにおける一般的なトラフィックフローシーケンスを示しています。
クラシファイアが、システムの QoS ポリシーのフィルタリング条件に適合するすべてのパケットをパケットストリームから選択します。
選択したパケットが評価されて、次に実行されるアクションが決められます。
クラシファイアが、フロー制御を必要としないトラフィックをマーカーに送信します。
フロー制御が必要なトラフィックは、メーターに送信されます。
メーターは、構成速度を実施します。次に、トラフィックの適合値をフロー制御されているパケットに割り当てます。
フロー制御されるパケットが評価されて、アカウンティングが必要であるかどうかが判断されます。
メーターが、フローアカウンティングを必要としないトラフィックをマーカーに送信します。
フローアカウンティングモジュールが、受信したパケットに関する統計情報を収集します。次に、それらのパケットをマーカーに送信します。
マーカーが DS コードポイントをパケットヘッダーに割り当てます。この DSCP は、Diffserv 対応システムがパケットに適用するべきホップ単位動作 (PHB) を示します。