IPQoS には次のモジュールがあります。これらのモジュールは、RFC 2475 に定義されている「差別化サービス (diffserv)」アーキテクチャーの一部です。
クラシファイア
メーター
マーカー
IPQoS では、次の拡張機能が Diffserv モデルに追加されています。
フローアカウンティングモジュール
802.1D データグラムマーカー
この節では、IPQoS で使用する Diffserv モジュールについて簡単に説明します。QoS ポリシーを設定するには、これらのモジュール、その名前、およびその使用目的を認識しておく必要があります。各モジュールの詳細は、「IPQoS アーキテクチャーと Diffserv モデル」を参照してください。
Diffserv モデルでは、「クラシファイア」がネットワークトラフィックフローからパケットを選択します。「トラフィックフロー」は、次の IP ヘッダーフィールド内に同一の情報を持つパケットのグループで構成されます。
IPQoS では、これらのフィールドを「5 タプル」と呼びます。
IPQoS のクラシファイアモジュールの名前は ipgpc です。ipgpcクラシファイアは、トラフィックフローを、IPQoS 構成ファイルに設定されている特性に基づいたクラスに分類します。
ipgpc の詳細については、「クラシファイアモジュール」を参照してください。
「クラス」とは、似たような特性を共有するネットワークフローのグループのことです。たとえば、ISP は、顧客に提供するさまざまなサービスレベルを表すクラスを定義できます。一方、ASP は、アプリケーションごとに異なるサービスレベルを提供する SLA を定義できます。ASP の QoS ポリシーでは、特定の着信先 IP アドレス宛ての発信 FTP トラフィックを 1 つのクラスにまとめることができます。ある企業の外部 Web サイトからの発信トラフィックも、1 つのクラスとして定義できます。
トラフィックをいくつかのクラスに分類することは、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 は、IPQoS の追加機能として IETF によって設計されたものであり、Diffserv モデルの一部ではありません。
QoS ポリシーのマーカー戦略の実装については、「転送動作を計画する方法」を参照してください。
IPQoS では、flowacct アカウンティングモジュールが Diffserv モデルに追加されています。flowacct を使用すると、トラフィックフローに関する統計情報を取得し、SLA に合わせて顧客に課金できます。フローアカウンティングは、容量計画やシステムの監視にも役立ちます。
flowacct モジュールを acctadm コマンドと組み合わせて、アカウンティングログファイルを作成できます。基本的なログには、次に示すように、IPQoS 5 タプルのほかに 2 つの属性が記録されます。
発信元アドレス
発信元ポート
着信先アドレス
着信先ポート
プロトコル番号
パケット数
バイト数
「トラフィックフローに関する情報の記録」および flowacct(7ipp) や acctadm(1M) のマニュアルページに説明されているとおり、その他の属性の統計を集めることもできます。
フローアカウンティング戦略の計画については、「フローアカウンティングを計画する方法」を参照してください。
次の図は、着信トラフィックが IPQoS モジュールのいくつかを通過するときに取りうる経路を示しています。
この図は、IPQoS 対応マシンにおける一般的なトラフィックフローシーケンスを示しています。
クラシファイアが、システムの QoS ポリシーのフィルタリング条件に適合するすべてのパケットをパケットストリームから選択します。
選択したパケットが評価されて、次に実行されるアクションが決められます。
クラシファイアが、フロー制御を必要としないトラフィックをマーカーに送信します。
フロー制御が必要なトラフィックは、メーターに送信されます。
メーターは、設定速度を実施します。次に、トラフィックの適合値をフロー制御されているパケットに割り当てます。
フロー制御されるパケットが評価されて、アカウンティングが必要であるかどうかが判断されます。
メーターが、フローアカウンティングを必要としないトラフィックをマーカーに送信します。
フローアカウンティングモジュールが、受信したパケットに関する統計情報を収集します。次に、それらのパケットをマーカーに送信します。
マーカーが DS コードポイントをパケットヘッダーに割り当てます。この DSCP は、Diffserv 対応システムがパケットに適用するべきホップ単位動作 (PHB) を示します。