IPQoS の管理

アプリケーションサーバー用 IPQoS 構成ファイルの作成

この節では、組織内外の顧客に多数の主要アプリケーションを提供するアプリケーションサーバー用の、構成ファイルを作成する方法について説明します。次の手順では、図 2–4 に示した BigAPPS サーバーを例として使用します。

次の構成ファイルは、顧客の FTP、電子メール (SMTP)、およびネットワークニュース (NNTP) のホストとして機能する BigAPPS サーバーの、IPQoS アクティビティを定義します。


例 3–3 アプリケーションサーバー用の構成例

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 構成ファイルの作成方法

  1. IPQoS 対応アプリケーションサーバーにログインし、新規 IPQoS 構成ファイルを拡張子 .qos を付けて作成します。

    たとえば、アプリケーションサーバー用に /var/ipqos/BigAPPS.qos ファイルを作成します。アクション文の最初に、ipgpc クラシファイアを呼び出す以下の記述を配置します。これらは必ず記述する必要があります。


    fmt_version 1.0
    
    action {
        module ipgpc
        name ipgpc.classify
        params {
            global_stats TRUE
        }     
    

    冒頭のアクション文については、IPQoS 構成ファイルの開始方法およびトラフィッククラスの定義方法を参照してください。

  2. 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 構成ファイルの開始方法およびトラフィッククラスの定義方法を参照してください。

  3. 定義済みのクラスのトラフィックを選択するフィルタ句を定義します。


        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 構成ファイル内でフィルタを定義する方法

アプリケーショントラフィックの転送動作を定義する 

IPQoS 構成ファイル内でアプリケーショントラフィックの転送を構成する方法

メータリングモジュールを使用してフロー制御を設定する 

IPQoS 構成ファイル内でフロー制御を構成する方法

フローアカウンティングを構成する 

IPQoS 構成ファイル内でクラスのアカウンティングを有効にする方法

IPQoS 構成ファイル内でアプリケーショントラフィックの転送を構成する方法

次の手順では、アプリケーショントラフィックの転送を構成する方法を示します。次の手順では、アプリケーショントラフィッククラスのホップ単位動作を定義します。これらのクラスは、ネットワーク上の他のトラフィックよりも優先度を低くする場合があります。次の手順の前に、既存の IPQoS 構成ファイルに、マークを付けるアプリケーション用のクラスおよびフィルタを定義してあるものとします。ここでは、例 3–3 に示した /var/ipqos/BigAPPS.qos ファイルの構築を続けます。

  1. アプリケーションサーバー用に作成した IPQoS 構成ファイルを開きます。

    最後のフィルタ句の末尾を探します。/var/ipqos/BigAPPS.qos ファイルでは、最後のフィルタは次のとおりです。


     filter {
            name ftpdata
            sport ftp-data
            class ftp
        }
    }
  2. 次の方法でマーカーを呼び出します。


    action {
        module dscpmk
        name markAF13
        
    

    エントリ 

    説明 

    module dscpmk

    dscpmk マーカーモジュールを呼び出す

    name markAF13

    アクション文に markAF13 という名前を付ける

  3. 電子メールのトラフィックフローにマークされるホップ単位動作を定義します。


        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 を参照してください。

  4. マーカーアクション文を追加して、ネットワークニュースのトラフィック用のホップ単位動作を定義します。


    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 構成ファイル内でフロー制御を構成する方法

フローアカウンティングを構成する 

IPQoS 構成ファイル内でクラスのアカウンティングを有効にする方法

ルーターの転送動作を構成する 

IPQoS 対応ネットワーク上でルーターを構成する方法

IPQoS 構成ファイルを有効にする 

新規構成の IPQoS カーネルモジュールへの適用方法

IPQoS 構成ファイル内でフロー制御を構成する方法

特定のトラフィックフローがネットワークに送出される速度を制御するには、メーターのパラメータを定義する必要があります。IPQoS 構成ファイル内で、2 つのメータリングモジュール tokenmttswtclmt とのどちらかを使用できます。

ここでは、例 3–3 に示したアプリケーションサーバー用 IPQoS 構成ファイルの構築を続けます。次の手順では、メーターを構成するだけではなく、メーターアクション文の内部で呼び出される 2 つのマーカーアクションも構成します。

  1. アプリケーションサーバー用に作成した IPQoS 構成ファイルを開きます。

    残りの手順の前に、フローを制御するアプリケーション用のクラスおよびフィルタを定義してあるものとします。/var/ipqos/BigAPPS.qos ファイルで、次のマーカーアクションのあとから作業を開始します。


    action {
        module dscpmk
        name markAF21
        params {
            global_stats FALSE
            dscp_map{0-63:18}
            next_action continue
        }
    }
  2. ftp クラスのトラフィックをフロー制御するメーターアクション文を作成します。


    action {
        module tokenmt
        name meterftp
                
    

    エントリ 

    定義 

    module tokenmt

    tokenmt メーターを呼び出す

    name meterftp

    アクション文に meterftp という名前を付ける

  3. メーターの速度を設定するパラメータを追加します。


    params {
           committed_rate 50000000
           committed_burst 50000000
      
    

    エントリ 

    説明 

    committed_rate 50000000

    ftp クラスのトラフィックに 50,000,000 bps の転送速度を割り当てる

    committed_burst 50000000

    ftp クラスのトラフィックに 50,000,000 ビットのバーストサイズを割り当てる

    tokenmt パラメータの詳細については、tokenmt をツーレートメーターとして構成するを参照してください。

  4. トラフィック適合度ごとの優先度を設定するパラメータを追加します。


        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 クラスのメータリング統計取得を有効にする

    トラフィック適合の詳細については、メーターモジュールを参照してください。

  5. ホップ単位動作を 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 コードポイント 26ftp クラスのパケットヘッダーに割り当てる

    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 を参照してください。

  6. 認定速度に適合する 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 を参照してください。

  7. アプリケーションサーバー用に作成した DS コードポイントを、diffserv ルーターの適切なファイルに追加します。詳細については、IPQoS 対応ネットワーク上でルーターを構成する方法を参照してください。

次に進む手順

作業 

参照先  

IPQoS 構成ファイルを有効にする 

新規構成の IPQoS カーネルモジュールへの適用方法

Web サーバーの構成情報を追加する 

IPQoS 構成ファイルの開始方法およびトラフィッククラスの定義方法

フローアカウンティングを構成する 

IPQoS 構成ファイル内でクラスのアカウンティングを有効にする方法

ルーターの転送動作を構成する 

IPQoS 対応ネットワーク上でルーターを構成する方法