IPQoS の管理

第 1 章 IPQoS の紹介 (概要)

IP サービス品質 (IPQoS) 機能を使用すると、優先順位付け、管理、およびアカウンティング統計情報の収集を行うことができます。また、ネットワークのユーザーに一定レベルのサービスを提供したり、ネットワークの輻輳が発生しないようにトラフィックを管理したりできます。

この章では、以下の内容について説明します。

IPQoS の基本

IPQoS は、Internet Engineering Task Force (IETF) の Differentiated Services Working Group によって定義されている差別化サービス (diffserv) アーキテクチャに対応しています。 Solaris 9 9/02 オペレーティング環境では、IPQoS が TCP/IP プロトコルスタックの IP レベルで実装されています。

差別化サービスとは

IPQoS を有効にすると、顧客やアプリケーションごとに、異なるレベルのネットワークサービスを提供できます。 これらの「差別化サービス」は、企業が顧客に提供するサービスレベルの構造に基づく場合もあれば、ネットワーク上のアプリケーションやユーザーに設定した優先順位に基づく場合もあります。

サービス品質の提供には、次の活動が含まれます。

IPQoS の機能

IPQoS には次の機能があります。

サービス品質の詳細情報

差別化サービスやサービス品質の詳細情報は、印刷物やオンラインで入手できます。

関連書籍

サービス品質の理論や実践については、次の関連書籍を参照してください。

RFC (Requests for Comments)

IPQoS は、次の RFC およびインターネットドラフトの仕様に準拠しています。

Web サイト

IETF の Differentiated Services Working Group は、diffserv インターネットドラフトへのリンクを含む Web サイト (http://www.ietf.org/html.charters/diffserv-charter.html) を管理しています。

Cisco Systems 社や Juniper Networks 社などのルーター製造元は、それぞれ自社の Web サイトで、差別化サービスの製品への実装状況について解説しています。

マニュアルページ

IPQoS ソフトウェアには、次のマニュアルページが含まれています。

IPQoS によるサービス品質の提供

IPQoS 機能を使用すると、インターネットサービスプロバイダ (ISP) やアプリケーションサービスプロバイダ (ASP) は、顧客ごとに異なるレベルのネットワークサービスを提供できます。 同様に、一般企業や教育機関では、この機能を使って内部組織向けのサービスや主要なアプリケーションのサービスを優先することができます。

サービスレベル契約の実装

ISP や ASP では、顧客に提示する「サービスレベル契約 (Service-Level Agreement、SLA)」に基づいて IPQoS の構成を行うことができます。 個々の SLA では、サービスプロバイダは、価格体系に基づいた一定レベルのネットワークサービスを顧客に保証します。 たとえば、プレミアム価格の SLA では、顧客はすべての種類のネットワークトラフィックに対して毎日 24 時間もっとも高い優先順位が与えられます。 これに対し、中間価格の SLA では、顧客は電子メールに対して営業時間中にのみ高い優先順位が与えられ、他のすべてのトラフィックに対しては毎日 24 時間中程度の優先順位が与えられます。

一般の組織にとってのサービス品質の保証

一般企業や法人である場合でも、ネットワークにサービス品質機能を提供することができます。 つまり、特定のグループまたは特定のアプリケーションのトラフィックに対して高レベルまたは低レベルのサービスを保証することができます。

サービス品質ポリシーの紹介

サービス品質を実装するには、「サービス品質 (Quality-of-Service、QoS) ポリシー」を定義します。QoS ポリシーでは、顧客またはアプリケーションの優先順位、さまざまなカテゴリのトラフィックを処理するアクションなど、各種のネットワーク属性を定義します。 組織の QoS ポリシーは IPQoS 構成ファイルに実装します。 このファイルは、Solaris 9 9/02 のカーネルに入っている IPQoS モジュールを構成します。 IPQoS ポリシーが適用されているホストは、「IPQoS 対応システム」とみなされます。

QoS ポリシーは、一般に次のことを定義します。

パケットがネットワークに渡されると、IPQoS 対応システムはパケットヘッダーを評価します。 IPQoS システムが行うアクションは、作成した QoS ポリシーに応じて決まります。

QoS ポリシーの作成作業については、サービス品質ポリシーの計画で説明します。

IPQoS によるネットワーク効率の向上

IPQoS には、サービス品質の実装に伴ってネットワークパフォーマンスの効率を向上させるのに役立ついくつかの機能があります。 コンピュータネットワークが拡大すると、ユーザーや高機能なプロセッサの数が増加して、生成されるネットワークトラフィックを管理する必要性も増大します。 ネットワークを過剰に使用すると、データが失われたり、トラフィックの輻輳が生じて応答時間が遅くなったりします。

従来、システム管理者は帯域幅を拡張する方法でネットワークトラフィックの問題に対処してきました。 しかし同時に、リンクごとのトラフィックのレベルには、大きなばらつきが見られがちでした。 IPQoS を使用すると、既存のネットワーク上のトラフィックを管理しながら、ネットワークの拡大が必要かどうか、またどこに必要かを評価できます。

たとえば、企業や法人の場合は、効率的なネットワークを維持して、トラフィックに関する障害の発生を防ぐ必要があります。 また、グループやアプリケーションが割り当てられた以上の帯域幅を消費しないようにする必要もあります。 それに加えて、ISP や ASP の場合は、ネットワークパフォーマンスを管理して、顧客が支払いに応じたネットワークサービスを受けられるようにする必要があります。

帯域幅がネットワークトラフィックに与える影響

IPQoS を使用すると、ネットワークの「帯域幅」、つまりネットワークリンクまたはデバイスが完全に使用された場合に転送できるデータの最大量を調整できます。サービス品質を顧客またはユーザーに提供するには、QoS ポリシーで、帯域幅の使用に優先順位を付ける必要があります。 IPQoS のメータリングモジュールを使用すると、IPQoS 対応ホスト上の各トラフィッククラスへの帯域幅の割り当て量を測定および管理することができます。

ネットワーク上のトラフィックを効果的に管理するには、帯域幅の使用量に関して、次の点を明らかにしておく必要があります。

サービスクラスを使ったトラフィックの優先順位付け

サービス品質を実装するには、まずネットワークトラフィックを解析して、トラフィックを分類するためのおおまかなグループを決めます。次に、各種グループを、それぞれ特性や優先順位を持つサービスクラス別にまとめます。これらのクラスが基本的なカテゴリとなり、それに基づいて組織の QoS ポリシーを作成します。 サービスクラスは、管理の対象となるトラフィックグループを代表します。

たとえば、プロバイダがプラチナ、ゴールド、シルバー、ブロンズの各レベルのサービスをそれぞれ異なる利用料金で提供するとします。 プラチナレベルの SLA では、プロバイダが顧客用に運営している Web サイト宛ての着信トラフィックに対して、もっとも高い優先順位を保証します。 このように、ある顧客の Web サイト宛ての着信トラフィックを 1 つのトラフィッククラスとしてまとめることができます。

企業の場合は、部署の要件に基づいて、またはネットワークトラフィックにおける特定のアプリケーションの優越に基づいてサービスクラスを作成できます。 次に、企業向けのトラフィッククラスの例をいくつか示します。

差別化サービスモデル

IPQoS には次のモジュールがあります。これらのモジュールは、RFC 2475 に定義されている「差別化サービス (diffserv)」アーキテクチャの一部です。

IPQoS では、次の拡張機能が diffserv モデルに追加されています。

この節では、IPQoS で使用する diffserv モジュールについて簡単に説明します。 QoS ポリシーを設定するには、これらのモジュール、その名前、およびその使用目的を認識しておく必要があります。 各モジュールの詳細については、IPQoS アーキテクチャと diffserv モデルを参照してください。

クラシファイア (ipgpc) の概要

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 タプルなどのよく使うパラメータを次に示します。

たとえば、単純なフィルタで 80 という値の着信先ポートを指定するとします。 ipgpc クラシファイアは、着信先ポート 80 (HTTP) 宛てのすべてのパケットを選択し、QoS ポリシーの指示に従ってそれらのパケットを処理します。

フィルタの作成については、QoS ポリシーにフィルタを定義する方法を参照してください。

メーター (tokenmt および tswtclmt) の概要

diffserv モデルでは、「メーター」はトラフィックフローの転送速度をクラス単位で追跡します。 メーターは、該当する結果 (outcome) を得るために、フローの実際の転送速度が設定された速度にどれだけ適合しているかを評価します。そして、トラフィックフローの結果に基づいて、次のアクションを選択します。 次のアクションでは、パケットを別のアクションに送信したり、それ以上処理しないでネットワークに戻したりできます。

IPQoS のメーターは、ネットワークフローが、QoS ポリシーでそのクラスに定義されている転送速度に適合しているかどうかを調べます。 IPQoS には、次の 2 つのメータリングモジュールがあります。

どちらのメータリングモジュールも、赤、黄、緑という 3 つの結果を識別します。結果ごとに実行させたいアクションは、red_action_nameyellow_action_name、および green_action_name のパラメータで定義します。

また、tokenmt をカラーアウェアとして構成することもできます。 カラーアウェアとして構成されているメータリングインスタンスでは、パケットのサイズ、DSCP、トラフィックの転送速度、および設定されたパラメータを使って結果を求めます。 メーターは、DSCP を使ってパケットを緑、黄、または赤の結果にマップします。

メーター用のパラメータの定義については、フロー制御を計画する方法を参照してください。

マーカー (dscpmk および dlcosmk) の概要

diffserv モデルでは、「マーカー」は転送動作を表す値をパケットに付けます。 「マーキング」とは、パケットをネットワークに転送する方法を示す値を、そのパケットのヘッダーに付加するプロセスのことです。 IPQoS には、次の 2 つのマーカーモジュールがあります。

QoS ポリシーのマーカー計画の実装については、転送動作を計画する方法を参照してください。

フローアカウンティング (flowacct) の概要

IPQoS では、flowacct アカウンティングモジュールが diffserv モデルに追加されています。 flowacct を使用すると、トラフィックフローに関する統計情報を取得し、SLA に合わせて顧客に課金することができます。 フローアカウンティングは、容量計画やシステムの監視にも役立ちます。

flowacctacctadm コマンドと組み合わせて、アカウンティングログファイルを作成できます。 基本的なログには、次に示すように、IPQoS 5 タプルの他に 2 つの属性が記録されます。

上記以外の属性に関する統計情報を収集することもできます。これについては、フローに関する情報の記録、および flowacct(7ipp)acctadm(1M) のマニュアルページを参照してください。

フローアカウンティング計画の実装については、フローアカウンティングを計画する方法を参照してください。

例 — トラフィックが IPQoS モジュールをどのように通過するか

次の図は、着信トラフィックが IPQoS モジュールのいくつかを通過するときに取りうる経路を示しています。

図 1–1 diffserv モデルの IPQoS 実装を通過するトラフィックフロー

このフロー図については以下で説明します。

この図は、IPQoS 対応マシンにおける一般的なトラフィックフローシーケンスを示しています。

  1. クラシファイアが、システムの QoS ポリシーのフィルタリング条件に適合するすべてのパケットをパケットストリームから選択します。

  2. 選択したパケットが評価されて、次に実行されるアクションが決められます。

  3. クラシファイアが、フロー制御を必要としないトラフィックをマーカーに送信します。

  4. フロー制御が必要なトラフィックは、メーターに送信されます。

  5. メーターが、設定された速度を強制するため、トラフィック適合度の値をフロー制御されるパケットに割り当てます。

  6. フロー制御されるパケットが評価されて、アカウンティングが必要であるかどうかが判断されます。

  7. メーターが、フローアカウンティングを必要としないトラフィックをマーカーに送信します。

  8. フローアカウンティングモジュールが、受信したパケットに関する統計情報を収集します。 次に、それらのパケットをマーカーに送信します。

  9. マーカーが DS コードポイントをパケットヘッダーに割り当てます。 この DSCP は、diffserv 対応システムがパケットに適用するべきホップ単位動作 (PHB) を示します。

IPQoS 対応ネットワークでのトラフィック転送

この節では、IPQoS 対応ネットワークでのパケット転送に関係するいくつかの要素について簡単に説明します。 IPQoS 対応システムは、着信先としてそのシステムの IP アドレスを持つ、ネットワークストリーム上のパケットを処理します。 そして、IPQoS システムの QoS ポリシーをパケットに適用して、差別化サービスを確立します。

DS コードポイント (DSCP)

DS コードポイントは、マークされたパケットに対して diffserv 対応システムが実行するアクションをパケットヘッダーに定義します。 diffserv アーキテクチャでは、IPQoS 対応のシステムおよび使用するルーターに対して、1 組の DS コードポイントと、それに対応するアクションすなわち「転送動作」を定義します。IPQoS 対応システムは、パケットヘッダーにある DS フィールドの優先度ビットに DSCP を付けます。 ルーターは、DSCP 値を持つパケットを受信すると、パケットをネットワーク上に送出するときに、その DSCP に対応付けられた転送動作をパケットに適用します。


注 –

dlcosmk マーカーは、DSCP を使用しません。 代わりに、Ethernet フレームヘッダーに CoS 値を付加します。 VLAN デバイスを使用するネットワーク上で IPQoS を構成する場合は、マーカーモジュールを参照してください。


ホップ単位動作

diffserv 用語では、DSCP に割り当てられる転送動作を「ホップ単位動作 (Per-Hop Behavior、PHB)」と呼びます。PHB は、diffserv 対応システム上で、マークされたパケットの転送が他のトラフィックに比べて優先される度合いを定義します。この優先度によって、IPQoS 対応システムまたは diffserv ルーターが、マークされたパケットを転送するかドロップするかが最終的に決まります。パケットが転送された場合、パケットがその着信先への途中で通過する各 diffserv ルーターは、同じ PHB をそのパケットに適用します。 ただし、別の diffserv システムによって DSCP が変更された場合は例外です。 PHB の詳細については、パケット転送での dscpmk マーカーの使用を参照してください。

PHB の目的は、指定された量のネットワーク資源を連続したネットワーク上のトラフィッククラスに提供することです。 QoS ポリシーでこの目的を達成するには、トラフィッククラスが IPQoS 対応システムから送出されるときに、その優先度レベルを示す DS コードポイントを定義します。 優先度は、高い優先度 (ドロップ率が低い) から低い優先度 (ドロップ率が高い) の範囲になります。

たとえば、QoS ポリシーによってあるトラフィッククラスにドロップ率が低い PHB を保証する DSCP 割り当てることができます。 このトラフィッククラスは、ドロップ率が低い優先度の PHB をすべての diffserv 対応ルーターから与えられ、このクラスのパケットの帯域幅が保証されます。 QoS ポリシーに別の DSCP を追加して、他のトラフィッククラスにさまざまなレベルの優先度を割り当てることもできます。 優先度の低いパケットには、パケットの DSCP に示された優先順位に応じた帯域幅を、diffserv システムが割り当てます。

IPQoS は、diffserv アーキテクチャに定義されている 2 種類の転送動作、完全優先転送 (EF) と相対的優先転送 (AF) をサポートしています。

完全優先転送 (Expedited Forwarding、EF)

「完全優先転送 (Expedited Forwarding、EF)」PHB は、EF 関連の DSCP を持つトラフィッククラスが一番高い優先順位を割り当てられ、キューに格納されないことを保証します。EF では、低損失、低遅延、低ジッターのサービスを提供します。EF の DS コードポイントは、101110 にすることをお勧めします。 101110 が付加されたパケットは、着信先への途中で diffserv 対応ネットワークを通過するときに、ドロップ率の低い優先度を与えられます。 EF DSCP は、プレミアム SLA を持つ顧客またはアプリケーションに優先順位を割り当てるときに使用してください。

相対的優先転送 (Assured Forwarding、AF)

「相対的優先転送 (Assured Forwarding、AF)」PHB には、パケットに割り当てられる転送クラスが 4 種類あります。各転送クラスには、3 種類のドロップ優先度があります (表 6–2 を参照)。

AF コードポイントには、顧客やアプリケーションにさまざまなレベルのサービスを割り当てる機能があります。 QoS ポリシーでは、QoS ポリシーを計画するときに、ネットワーク上のトラフィックやサービスに優先順位を付けておきます。 そうすれば、優先順位の付いたトラフィックにそれぞれ異なる AF レベルを割り当てることができます。

diffserv 環境でのパケット転送

次の図は、diffserv 対応環境を部分的に備えた企業のイントラネット部分を示しています。 このシナリオでは、ネットワーク 10.10.0.0 および 10.14.0.0 上のホストはすべて IPQoS に対応しており、ローカルルーターは diffserv に対応しています。 しかし、間にある 2 つのネットワークは diffserv に対応していません。

図 1–2 diffserv 対応ネットワークのホップ間のパケット転送

このフロー図については以下で説明します。

次の手順は、前の図に示すパケットの流れをたどっています。 この手順では、パケットがホスト ipqos1 から送出され、いくつかのホップを通って ipqos2 に進みます。

  1. ipqos1 のユーザーが ftp コマンドを実行して、3 ホップ離れたところにあるホスト ipqos2 にアクセスしようとします。

  2. ipqos1 が、発生したパケットフローに QoS ポリシーを適用し、ftp トラフィックの分類に成功します。

    システム管理者は、ローカルネットワーク 10.10.0.0 から送出されるすべての発信 ftp トラフィックに対して、あらかじめ 1 つのクラスを作成しています。この ftp クラスのトラフィックには、AF22 PHB (クラス 2、中程度のドロップ優先度) が割り当てられており、2 Mbps のトラフィックフロー速度が設定されています。

  3. ipqos1ftp フローを計測して、2 Mbps の認定速度を超えていないかどうか調べます。

  4. ipqos1 上のマーカーが、発信 ftp パケットの DS フィールドに 010100 DSCP (AF22 PHB に対応している) を付加します。

  5. ルーター diffrouter1ftp パケットを受け取り、DSCP をチェックします。 diffrouter1 に輻輳があった場合、AF22 クラスのパケットはドロップされます。

  6. diffrouter1 のファイルで AF22 に対して設定されている PHB に合わせて、ftp トラフィックが次のホップに転送されます。

  7. ftp トラフィックがネットワーク 10.12.0.0 を通って genrouter に進みます。genrouter は diffserv に対応していません。その結果、トラフィックは ベストエフォートの転送動作を与えられます。

  8. genrouterftp トラフィックをネットワーク 10.13.0.0 に渡し、diffrouter2 がそのトラフィックを受け取ります。

  9. diffrouter2 は diffserv に対応しています。 したがって、ルーターのポリシーで AF22 パケットに対して定義されている PHB に合わせて、ftp パケットをネットワークに転送します。

  10. ipqos2ftp トラフィックを受け取り、ipqos1 上のユーザーにユーザー名とパスワードの入力を求めるプロンプトを表示します。