IPQoS には 2 つのマーカーモジュール、すなわち dscpmk および dlcosmk が含まれます。ここでは、両方のマーカーの使用方法を説明します。dlcosmk は VLAN デバイスを使用する IPQoS システムでだけ利用可能であるため、通常は dscpmk を使用する必要があります。
dscpmk の技術情報については、dscpmk(7ipp) のマニュアルページを参照してください。dlcosmk の技術情報については、dlcosmk(7ipp) のマニュアルページを参照してください。
マーカーは、クラシファイアモジュールまたはメータリングモジュールによって処理されたあとのトラフィックフローを受け取ります。マーカーは、トラフィックに転送動作のマークを付けます。転送動作は、フローが IPQoS システムを離れたあとに実行されます。トラフィッククラスに対して実行される転送動作は、ホップ単位動作 (PHB) に定義されます。PHB はトラフィッククラスに優先順位を割り当てます。これは、そのクラスのフローに割り当てられる、ほかのトラフィッククラスに対する相対的な優先度です。PHB は、IPQoS システムの隣接するネットワーク上での転送動作だけを制御します。PHB の詳細については、ホップ単位動作を参照してください。
パケット転送とは、特定クラスのトラフィックを、ネットワーク上の次の宛先へ送信するプロセスを指します。IPQoS システムなどのホストの場合、パケットはホストからローカルネットワークストリームへ転送されます。diffserv ルーターの場合、パケットはローカルネットワークからルーターの次のホップへ転送されます。
マーカーは、パケットヘッダー内の DS フィールドに、IPQoS 構成ファイル内で定義された既知の転送動作のマークを付けます。以後、IPQoS システムおよびあとに続く diffserv 対応システムは、マークが変更されないかぎり、DS フィールド内の指示に従ってトラフィックを転送します。PHB を割り当てるときには、IPQoS システムはパケットヘッダーの DS フィールドに、差別化サービス (DS) コードポイントすなわち DSCP と呼ばれる値を付けます。diffserv アーキテクチャは、2 種類の転送動作、すなわち EF および AF を定義しており、各転送動作はそれぞれ異なる DS コードポイントを使用します。DS コードポイントの概要については、DS コードポイント (DSCP)を参照してください。
IPQoS システムは、トラフィックフローの DS コードポイントを読み取り、ほかの送信トラフィックフローに対する相対的な優先度を評価します。次に IPQoS システムは、並行するトラフィックフローすべての優先順位を定め、各フローを優先順位に従ってネットワーク上に送出します。
diffserv ルーターは、送信トラフィックフローを受け取り、パケットヘッダー内の DS フィールドを読み取ります。ルーターは、DS コードポイントを使用して、並行するトラフィックフロー間の優先順位付けおよびスケジューリングを行い、PHB で指示された優先順位に従って各フローを転送します。あとに続くホップ上の diffserv 対応システムも同じ PHB を認識する場合を除いて、ネットワークの境界ルーターを越えて PHB を適用することはできません。
完全優先転送 (EF) は、推奨される EF コードポイント 46 (101110) の付いたパケットが、ネットワークに送出される時に、可能なかぎり最良の扱いを受けることを保証します。 EF 転送は、しばしば専用回線に例えられます。コードポイント 46 (101110) を持つパケットには、宛先に向かう途中、すべての diffserv ルーターによる優先待遇が保証されます。EF の技術情報については、RFC 2598 (An Expedited Forwarding PHB) を参照してください。
相対的優先転送 (AF) では、4 つのクラスの転送動作をマーカーに指示できます。次の表に、クラス、各クラスに指定できる 3 つのドロップ優先度、および各優先度に対応する推奨 DSCP を示します。各 DSCP は、AF 値 (10 進数値およびバイナリ値) で表されます。
表 6–2 相対的優先転送のコードポイント
|
クラス 1 |
クラス 2 |
クラス 3 |
クラス 4 |
---|---|---|---|---|
低ドロップ優先度 |
AF11 = 10 (001010) |
AF21 = 18 (010010) |
AF31 = 26 (011010) |
AF41 = 34 (100010) |
中ドロップ優先度 |
AF12 = 12 (001100) |
AF22 = 20 (010100) |
AF32 = 28 (011100) |
AF42 = 36 (100100) |
高ドロップ優先度 |
AF13 = 14 (001110) |
AF23 = 22 (010110) |
AF33 = 30 (011110) |
AF43 = 38 (100110) |
AF コードポイントは、各トラフィッククラスに差別化転送動作を提供する際のガイドとして、すべての diffserv 対応システム上で使用できます。
たとえば、QoS ポリシーにより 2 つのトラフィッククラスに対してそれぞれ AF31 と AF13 の DSCP を割り当てるとします。AF31 (011010) の付いたパケットは、IPQoS システムからの送信時に、AF13 (001110) の付いたパケットよりも低い転送優先順位が与えられます。
これらのパケットが diffserv ルーターに達すると、ルーターはパケットのコードポイントを、キュー内のほかのトラフィックの DS コードポイントとともに評価します。次にルーターは、利用可能な帯域幅、およびパケットの DS コードポイントにより割り当てられた優先順位に応じて、パケットを転送またはドロップします。EF PHB の付いたパケットは、どの AF PHB の付いたパケットよりも広い帯域幅の使用が保証されます。
ネットワーク上の IPQoS システムと diffserv ルーターとの間でパケットのマーキングを合致させて、パケットが意図したとおりに転送されるようにしてください。たとえば、ネットワーク上の IPQoS システムがパケットにコードポイント AF21 (010010)、AF13 (001110)、AF43 (100110)、および EF (101110) を付けるとします。この場合、AF21、AF13、AF43、および EF DS コードポイントを、diffserv ルーターの適切なファイルに追加する必要があります。
AF コードポイント表に関する技術情報については、RFC 2597 を参照してください。ルーター製造元の Cisco Systems 社および Juniper Networks 社は、それぞれ自社の Web サイトで AF PHB の設定に関する詳細な情報を提供しています。この情報を使用して、IPQoS システムおよびルーター用の AF PHB を定義できます。また、ルーター製造元のマニュアルには、自社製品での DS コードポイントの設定方法が記載されています。
DS コードポイントの長さは 6 ビットです。DS フィールドの長さは 1 バイトです。IPQoS 構成ファイルで DS コードポイントを定義すると、マーカーはパケットヘッダーの最初の 6 ビットに DS コードポイントをマークします。残りの 2 ビットは、使用されません。
DS コードポイントを定義するには、マーカーアクション文の中で次のパラメータを使用します。
dscp_map{0-63:DS_codepoint} |
dscp_map パラメータは、「DS コードポイント (DSCP)」値を使用して生成する 64 要素の配列です。dscp_map は、dscpmk マーカーによって着信 DSCP を発信 DSCP にマップするために使用されます。
DSCP 値は、10 進表記で dscp_map に指定する必要があります。たとえば、EF コードポイント 101110 は 10 進数値 46 に変換する必要があり、その結果 dscp_map{0-63:46} になります。AF コードポイントの場合、表 6–2 に示したコードポイントを、10 進数値に変換する必要があります。
dlcosmk マーカーモジュールは、データグラムの MAC ヘッダー内に転送動作をマークします。VLAN インタフェースを持つ IPQoS システムでだけ、dlcosmk を使用できます。
dlcosmk は、「VLAN タグ」と呼ばれる 4 バイトを MAC ヘッダーに追加します。VLAN タグには、IEEE 801.D 標準に定義されている 3 ビットのユーザー優先順位値が含まれます。VLAN を認識する Diffserv 対応スイッチは、データグラム内のユーザー優先順位フィールドを読み取ることができます。801.D ユーザー優先順位値は、サービスクラス (CoS) マークを実装します。CoS マークは、商用スイッチで一般的に使われています。
次の表に示すサービスクラスマークを定義することにより、dlcosmk マーカーアクション内でユーザー優先順位値を使用できます。
表 6–3 801.D ユーザー優先順位値
サービスクラス |
定義 |
---|---|
0 |
ベストエフォート |
1 |
バックグラウンド |
2 |
スペア |
3 |
エクセレントエフォート |
4 |
制御された負荷 |
5 |
応答時間 100ms 未満のビデオ |
6 |
応答時間 10ms 未満のビデオ |
7 |
ネットワーク制御 |
dlcosmk の詳細は、dlcosmk(7ipp) のマニュアルページを参照してください。
ここでは、VLAN デバイスを持つシステムでの IPQoS の実装方法を示す、単純なネットワークのシナリオを紹介します。このシナリオには、スイッチで接続された 2 つの IPQoS システム、すなわち machine1 および machine2 が含まれます。machine1 上の VLAN デバイスの IP アドレスは 10.10.8.1、machine2 上の VLAN デバイスの IP アドレスは 10.10.8.3 です。
次に示す machine1 用 IPQoS 構成ファイルは、machine2 へのスイッチを介してトラフィックをマークするための簡単なソリューションを表します。
fmt_version 1.0 action { module ipgpc name ipgpc.classify filter { name myfilter2 daddr 10.10.8.3 class myclass } class { name myclass next_action mark4 } } action { name mark4 module dlcosmk params { cos 4 next_action continue global_stats true } }
この構成では、machine2 上の VLAN デバイスを着信先とする machine1 からのすべてのトラフィックが、dlcosmk マーカーに渡されます。マーカーアクション mark4 は、dlcosmk に対し、myclass クラスのデータグラムに CoS 4 の VLAN マークを追加するよう指示します。ユーザー優先順位置 4 は、2 つのマシン間のスイッチが、 machine1 からの myclass トラフィックフローに対して制御された負荷転送を与えることを示します。