この節では、組織内外の顧客に多数の主要アプリケーションを提供するアプリケーションサーバー用の、構成ファイルを作成する方法について説明します。次の手順では、図 2–4 に示した BigAPPS サーバーを例として使用します。
次の構成ファイルは、顧客の FTP、電子メール (SMTP)、およびネットワークニュース (NNTP) のホストとして機能する BigAPPS サーバーの、IPQoS アクティビティを定義します。
fmt_version 1.0 action { module ipgpc name ipgpc.classify params { global_stats TRUE } class { name smtp enable_stats FALSE next_action markAF13 } class { name news next_action markAF21 } class { name ftp next_action meterftp } filter { name smtpout sport smtp class smtp } filter { name newsout sport nntp class news } filter { name ftpout sport ftp class ftp } filter { name ftpdata sport ftp-data class ftp } } action { module dscpmk name markAF13 params { global_stats FALSE dscp_map{0-63:14} next_action continue } } action { module dscpmk name markAF21 params { global_stats FALSE dscp_map{0-63:18} next_action continue } } action { module tokenmt name meterftp params { committed_rate 50000000 committed_burst 50000000 red_action_name markAF31 green_action_name markAF22 global_stats TRUE } } action { module dscpmk name markAF31 params { global_stats TRUE dscp_map{0-63:26} next_action continue } } action { module dscpmk name markAF22 params { global_stats TRUE dscp_map{0-63:20} next_action continue } }
IPQoS 対応アプリケーションサーバーにログインし、新規 IPQoS 構成ファイルを拡張子 .qos を付けて作成します。
たとえば、アプリケーションサーバー用に /var/ipqos/BigAPPS.qos ファイルを作成します。アクション文の最初に、ipgpc クラシファイアを呼び出す以下の記述を配置します。これらは必ず記述する必要があります。
fmt_version 1.0 action { module ipgpc name ipgpc.classify params { global_stats TRUE } |
冒頭のアクション文については、IPQoS 構成ファイルの開始方法およびトラフィッククラスの定義方法を参照してください。
BigAPPS サーバー上の 3 つのアプリケーションからのトラフィックをそれぞれ選択するクラスを作成します。
冒頭のアクション文のあとに、クラス定義を追加します。
class { name smtp enable_stats FALSE next_action markAF13 } class { name news next_action markAF21 } class { name ftp enable_stats TRUE next_action meterftp } |
エントリ |
説明 |
---|---|
name smtp |
smtp という名前のクラスを作成する。 このクラスには、SMTP アプリケーションが扱う電子メールのトラフィックフローが含まれる |
enable_stats FALSE |
smtp クラスの統計取得を可能にする。ただし、enable_stats の値が FALSE であるため、このクラスの統計取得は有効にはならない |
next_action markAF13 |
ipgpc モジュールに対し、ipgpc による処理が完了した smtp クラスのパケットを、アクション文 markAF13 に渡すよう指示する |
name news |
news という名前のクラスを作成する。 このクラスには、NNTP アプリケーションが扱うネットワークニュースのトラフィックフローが含まれる |
next_action markAF21 |
ipgpc モジュールに対し、ipgpc による処理が完了した news クラスのパケットを、アクション文 markAF21 に渡すよう指示する |
name ftp |
ftp という名前のクラスを作成する。 このクラスには、FTP アプリケーションが扱う発信トラフィックが含まれる |
enable_stats TRUE |
ftp クラスの統計取得を有効にする |
next_action meterftp |
ipgpc モジュールに対し、ipgpc による処理が完了した ftp クラスのパケットを、アクション文 meterftp に渡すよう指示する |
クラス定義の詳細については、IPQoS 構成ファイルの開始方法およびトラフィッククラスの定義方法を参照してください。
定義済みのクラスのトラフィックを選択するフィルタ句を定義します。
filter { name smtpout sport smtp class smtp } filter { name newsout sport nntp class news } filter { name ftpout sport ftp class ftp } filter { name ftpdata sport ftp-data class ftp } } |
エントリ |
説明 |
---|---|
name smtpout |
フィルタに smtpout という名前を付ける |
sport smtp |
ソースポート 25 のトラフィックを選択する。これは、既知の sendmail (SMTP) アプリケーション用ポート |
class smtp |
フィルタが所属するクラス (このインスタンスでは smtp クラス) を特定する |
name newsout |
フィルタに newsout という名前を付ける |
sport nntp |
ソースポート名 nntp のトラフィックを選択する。これは、既知のネットワークニュースアプリケーション用ポート |
class news |
フィルタが所属するクラス (このインスタンスでは news クラス) を特定する |
name ftpout |
フィルタに ftpout という名前を付ける |
sport ftp |
ソースポート 21 の制御データを選択する。これは、既知の FTP トラフィック用ポート番号 |
name ftpdata |
フィルタに ftpdata という名前を付ける |
sport ftp-data |
ソースポート 20 のトラフィックを選択する。これは、既知の FTP データトラフィック用ポート番号 |
class ftp |
ftpout および ftpdata フィルタが所属するクラス (このインスタンスでは ftp) を特定する |
フィルタ定義の詳細については、IPQoS 構成ファイル内でフィルタを定義する方法を参照してください。
作業 |
参照先 |
---|---|
フィルタを定義する | |
アプリケーショントラフィックの転送動作を定義する | |
メータリングモジュールを使用してフロー制御を設定する | |
フローアカウンティングを構成する |
次の手順では、アプリケーショントラフィックの転送を構成する方法を示します。次の手順では、アプリケーショントラフィッククラスのホップ単位動作を定義します。これらのクラスは、ネットワーク上の他のトラフィックよりも優先度を低くする場合があります。次の手順の前に、既存の IPQoS 構成ファイルに、マークを付けるアプリケーション用のクラスおよびフィルタを定義してあるものとします。ここでは、例 3–3 に示した /var/ipqos/BigAPPS.qos ファイルの構築を続けます。
アプリケーションサーバー用に作成した IPQoS 構成ファイルを開きます。
最後のフィルタ句の末尾を探します。/var/ipqos/BigAPPS.qos ファイルでは、最後のフィルタは次のとおりです。
filter { name ftpdata sport ftp-data class ftp } } |
action { module dscpmk name markAF13 |
エントリ |
説明 |
---|---|
module dscpmk |
dscpmk マーカーモジュールを呼び出す |
name markAF13 |
アクション文に markAF13 という名前を付ける |
電子メールのトラフィックフローにマークされるホップ単位動作を定義します。
params { global_stats FALSE dscp_map{0-63:14} next_action continue } } |
エントリ |
説明 |
---|---|
global_stats FALSE |
マーカーアクション文 markAF13 の統計取得を可能にする。ただし、global_stats の値が FALSE であるため、統計取得は有効にはならない |
dscp_map{0–63:14} |
DS コードポイント 14 を、マーカーにより処理中の smtp クラスのパケットヘッダーに割り当てる |
next_action continue |
smtp クラスのパケットに対しこれ以上処理を行う必要がないことを示す。よって、これらのパケットはネットワークストリームに戻すことができる |
DS コードポイント 14 は、マーカーに対し、dscp マップ内のすべてのエントリを 10 進数値の 14 (バイナリ値 001110) に設定するよう指示します。この値により、AF13 ホップ単位動作 (PHB) が設定され、smtp トラフィッククラスのパケットの DS フィールドに DS コードポイント 14 が指定されます。
AF13 は、DS コードポイント 14 を持つすべてのパケットに高いドロップ優先度を割り当てますが、それと同時に Class 1 の優先順位も保証するため、ルーターは電子メールの発信トラフィックに対し、キューの中で高い優先順位を与えます。利用可能な AF コードポイントについては、表 6–2 を参照してください。
マーカーアクション文を追加して、ネットワークニュースのトラフィック用のホップ単位動作を定義します。
action { module dscpmk name markAF21 params { global_stats FALSE dscp_map{0-63:18} next_action continue } } |
次の表に、これまでの手順で説明の済んでいないパラメータだけを示します。
エントリ |
説明 |
---|---|
name markAF21 |
アクション文に markAF21 という名前を付ける |
dscp_map{0–63:18} |
DS コードポイント 18 を、マーカーにより処理中のトラフィッククラス nntp のパケットヘッダーに割り当てる |
DS コードポイント 18 は、マーカーに対し、dscp マップ内のすべてのエントリを 10 進数値の 18 (バイナリ値 010010) に設定するよう指示します。 この値により、AF21 ホップ単位動作 (PHB) が設定され、news トラフィッククラスのパケットの DS フィールドに DS コードポイント 18 が指定されます。
AF21 は DS コードポイント 18 を持つすべてのパケットに低いドロップ優先度を保証しますが、優先順位は Class 2 にとどまります。このため、ネットワークニュースのトラフィックがドロップされる可能性は低くなりますが、ルーターは Class 1 のトラフィッククラスの転送を優先します。
作業 |
参照先 |
---|---|
Web サーバーの構成情報を追加する | |
メータリングモジュールを使用してフロー制御を構成する | |
フローアカウンティングを構成する | |
ルーターの転送動作を構成する | |
IPQoS 構成ファイルを有効にする |
特定のトラフィックフローがネットワークに送出される速度を制御するには、メーターのパラメータを定義する必要があります。IPQoS 構成ファイル内で、2 つのメータリングモジュール tokenmt と tswtclmt とのどちらかを使用できます。
ここでは、例 3–3 に示したアプリケーションサーバー用 IPQoS 構成ファイルの構築を続けます。次の手順では、メーターを構成するだけではなく、メーターアクション文の内部で呼び出される 2 つのマーカーアクションも構成します。
アプリケーションサーバー用に作成した IPQoS 構成ファイルを開きます。
残りの手順の前に、フローを制御するアプリケーション用のクラスおよびフィルタを定義してあるものとします。/var/ipqos/BigAPPS.qos ファイルで、次のマーカーアクションのあとから作業を開始します。
action { module dscpmk name markAF21 params { global_stats FALSE dscp_map{0-63:18} next_action continue } } |
ftp クラスのトラフィックをフロー制御するメーターアクション文を作成します。
action { module tokenmt name meterftp |
エントリ |
定義 |
---|---|
module tokenmt |
tokenmt メーターを呼び出す |
name meterftp |
アクション文に meterftp という名前を付ける |
params { committed_rate 50000000 committed_burst 50000000 |
エントリ |
説明 |
---|---|
committed_rate 50000000 |
ftp クラスのトラフィックに 50,000,000 bps の転送速度を割り当てる |
committed_burst 50000000 |
ftp クラスのトラフィックに 50,000,000 ビットのバーストサイズを割り当てる |
tokenmt パラメータの詳細については、tokenmt をツーレートメーターとして構成するを参照してください。
トラフィック適合度ごとの優先度を設定するパラメータを追加します。
red_action_name markAF31 green_action_name markAF22 global_stats TRUE } } |
エントリ |
説明 |
---|---|
red_action_name markAF31 |
ftp クラスのトラフィックフローが不適合になった (認定速度を超過した) 場合、パケットがマーカーアクション文 markAF31 に送られることを示す |
green_action_name markAF22 |
ftp クラスのトラフィックフローが認定速度に適合する場合、パケットがアクション文 markAF22 に送られることを示す |
global_stats TRUE |
ftp クラスのメータリング統計取得を有効にする |
トラフィック適合の詳細については、メーターモジュールを参照してください。
ホップ単位動作を ftp クラスの不適合トラフィックフローに割り当てるマーカーアクション文を追加します。
action { module dscpmk name markAF31 params { global_stats TRUE dscp_map{0-63:26} next_action continue } } |
エントリ |
説明 |
---|---|
module dscpmk |
dscpmk マーカーモジュールを呼び出す |
name markAF31 |
アクション文に markAF31 という名前を付ける |
global_stats TRUE |
ftp クラスの統計取得を有効にする |
dscp_map{0–63:26} |
ftp クラスのトラフィックが認定速度を超過した場合は常に、DS コードポイント 26 を ftp クラスのパケットヘッダーに割り当てる |
next_action continue |
ftp クラスのパケットに対しこれ以上処理を行う必要がないことを示す。よって、これらのパケットはネットワークストリームに戻すことができる |
DS コードポイント 26 は、マーカーに対し、dscp マップ内のすべてのエントリを 10 進数値の 26 (バイナリ値 011010) に設定するよう指示します。 この値により、AF31 ホップ単位動作 (PHB) が設定され、ftp トラフィッククラスのパケットの DS フィールドに DS コードポイント 26 が指定されます。
AF31 は、DS コードポイント 26 を持つすべてのパケットに低いドロップ優先度を保証しますが、優先順位は Class 3 にとどまります。このため、速度不適合の FTP トラフィックがドロップされる可能性は低くなりますが、ルーターは、Class 1 のトラフィッククラス、または Class 2 で低いドロップ優先度以上を持つトラフィッククラスの転送を優先します。利用可能な AF コードポイントについては、表 6–2 を参照してください。
認定速度に適合する ftp クラスのトラフィックフローにホップ単位動作を割り当てるマーカーアクション文を追加します。
action { module dscpmk name markAF22 params { global_stats TRUE dscp_map{0-63:20} next_action continue } } |
次の表に、これまでの手順で説明の済んでいないパラメータだけを示します。
エントリ |
説明 |
---|---|
name markAF22 |
marker アクションに markAF22 という名前を付ける |
dscp_map{0–63:20} |
ftp クラスのトラフィックが認定速度に適合する場合は常に、DS コードポイント 20 をパケットヘッダーに割り当てる |
DS コードポイント 20 は、マーカーに対し、dscp マップ内のすべてのエントリを 10 進数値の 20 (バイナリ値 010100) に設定するよう指示します。 この値により、AF22 ホップ単位動作 (PHB) が設定され、ftp トラフィッククラスのパケットの DS フィールドに DS コードポイント 20 が指定されます。
AF22 は、DS コードポイント 20 を持つすべてのパケットに中程度のドロップ優先度と Class 2 の優先順位を保証します。このため、速度適合の FTP トラフィックは、IPQoS システムから同時に送出されるフロー内で中程度のドロップ優先度を保証されます。ただし、ルーターは、Class 1 で中程度のドロップ優先度以上を持つトラフィッククラスの転送を優先します。利用可能な AF コードポイントについては、表 6–2 を参照してください。
アプリケーションサーバー用に作成した DS コードポイントを、diffserv ルーターの適切なファイルに追加します。詳細については、IPQoS 対応ネットワーク上でルーターを構成する方法を参照してください。
作業 |
参照先 |
---|---|
IPQoS 構成ファイルを有効にする | |
Web サーバーの構成情報を追加する | |
フローアカウンティングを構成する | |
ルーターの転送動作を構成する |