IPQoS の管理

Web サーバー用 IPQoS 構成ファイルの作成

この節では、まず、プレミアム Web サーバー用の構成ファイルの作成を通して、IPQoS 構成ファイルの作成方法を示します。次に、個人用 Web サイトのホストとして機能するサーバー用の構成ファイルで、まったく異なるサービスレベルを構成する方法を示します。どちらのサーバーも、図 2–4 に示したネットワーク例の一部です。

次の構成ファイルは、プレミアム SLA を購入した Goldco 社の Web サイトのホストとして機能する、Goldweb サーバーの IPQoS アクティビティを定義します。


例 3–1 プレミアム Web サーバー用 IPQoS 構成ファイルの例

fmt_version 1.0

action {
    module ipgpc
    name ipgpc.classify
    params {
        global_stats TRUE
    }
    class {
        name goldweb
        next_action markAF11
        enable_stats FALSE
    }
    class {
        name video
        next_action markEF
        enable_stats FALSE
    }
    filter {
        name webout
        sport 80
        direction LOCAL_OUT
        class goldweb
    }
    filter {
        name videoout
        sport videosrv
        direction LOCAL_OUT
        class video
    }
}
action {
    module dscpmk
    name markAF11
    params {
        global_stats FALSE
        dscp_map{0-63:10}
        next_action continue
    }
}
action {
    module dscpmk
    name markEF
    params {
        global_stats TRUE
        dscp_map{0-63:46}
        next_action acct
    }
}
action {
    module flowacct
    name acct
    params {
        enable_stats TRUE
        timer 10000
        timeout 10000
        max_limit 2048
    }
}

次の構成ファイルは、低価格のベストエフォート SLA を利用する個人ユーザー向け Web サイトのホストとして機能する、Userweb サーバーの IPQoS アクティビティを定義します。この SLA レベルでは、IPQoS システムがより高額の SLA を利用する顧客からのトラフィックを処理したあとに、できるかぎり最良のサービスをベストエフォートの顧客に保証します。


例 3–2 ベストエフォート Web サーバー用の構成例

fmt_version 1.0

action {
    module ipgpc
    name ipgpc.classify
    params {
        global_stats TRUE
    }
    class {
        name Userweb
        next_action markAF12
        enable_stats FALSE
    }
    filter {
        name webout
        sport 80
        direction LOCAL_OUT
        class Userweb
   }
}
action {
    module dscpmk
    name markAF12
    params {
        global_stats FALSE
        dscp_map{0-63:12}
        next_action continue
    }
}

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

最初の IPQoS 構成ファイルは、保守および使用しやすい任意のディレクトリに作成できます。この章では、IPQoS 構成ファイルの位置としてディレクトリ /var/ipqos を使用します。次の手順では、例 3–1 に示した IPQoS 構成ファイルの初期セグメントを構築します。


注 –

IPQoS 構成ファイルを作成する際、各アクション文および句を必ず中括弧 ({ }) で囲んでください。括弧の使用例については、例 3–1 を参照してください。


  1. プレミアム Web サーバーにログインし、新規 IPQoS 構成ファイルを拡張子 .qos を付けて作成します。

    すべての IPQoS 構成ファイルで、最初の非コメント行にバージョン番号 fmt_version 1.0 を記述する必要があります。

  2. 冒頭のパラメータに続き、初期アクション文を記述して汎用の IP クラシファイア ipgpc を構成します。

    IPQoS 構成ファイルを成すアクション文のツリーは、この初期アクションから始まります。たとえば、/var/ipqos/Goldweb.qos ファイルは、 ipgpc クラシファイアを呼び出す初期アクション文で始まります。


    fmt_version 1.0
    
    action {
        module ipgpc
        name ipgpc.classify
         
    

    エントリ 

    説明 

    fmt_version 1.0

    IPQoS 構成ファイルを開始する 

    action {

    module ipgpc

    構成ファイル内の最初のアクションとして ipgpc クラシファイアを構成する

    name ipgpc.classify

    クラシファイアのアクション文の名前を定義する。名前は常に ipgpc.classify でなければならない

    アクション文の構文情報の詳細については、アクション文および ipqosconf(1M) のマニュアルページを参照してください。

  3. 統計パラメータ global_stats を含む params 句を追加します。


    params {
              global_stats TRUE
       }
    

    ipgpc.classify アクション内でパラメータ global_stats TRUE を使用すると、このアクションに関する統計の取得が有効になります。また、global_stats TRUE を使用し、かつクラス句定義に enable_stats TRUE を指定すれば、そのクラスの統計の取得が可能になります。

    統計の取得を有効にすると、パフォーマンスが影響を受けます。新規 IPQoS 構成ファイルを作成したときには、IPQoS が適正に動作するか検証するために、統計取得を有効にしてもかまいません。あとで global_stats の引数を FALSE に変更すれば、統計取得を無効にできます。

    グローバル統計は、params 句で定義可能なパラメータの 1 種類に過ぎません。params 句の構文およびその他の詳細については、Params 句および ipqosconf(1M) のマニュアルページを参照してください。

  4. プレミアムサーバーに向かうトラフィックを特定するクラスを定義します。


    class { 
            name goldweb 
            next_action markAF11   
            enable_stats FALSE 
        }
    

    上の文は、「クラス句」と呼ばれます。クラス句には次の内容が含まれます。

    エントリ 

    説明 

    name goldweb

    goldweb クラスを作成して、Goldweb サーバーに向かうトラフィックを特定する

    next_action markAF11

    ipgpc モジュールに対し、goldweb クラスのパケットをアクション文 markAF11 に渡すよう指示する。アクション文 markAF11 は、 dscpmk マーカーを呼び出す

    enable_stats FALSE

    goldweb クラスの統計取得を可能にする。ただし、enable_stats の値が FALSE であるため、このクラスの統計取得は有効にはならない

    クラス句の構文の詳細については、クラス句および ipqosconf(1M) のマニュアルページを参照してください。

  5. もっとも高い優先順位の転送を必要とするアプリケーションを特定するクラスを定義します。


     class {
            name video
            next_action markEF
            enable_stats FALSE
        }
    

    エントリ 

    説明 

    name video

    video クラスを作成して、Goldweb から発信されるストリーミングビデオのトラフィックを特定する

    next_action markEF

    ipgpc モジュールに対し、ipgpc による処理が完了した video クラスのパケットを、アクション文 markEF に渡すよう指示する。アクション文 markEF は、dscpmk マーカーを呼び出す

    enable_stats FALSE

    video クラスの統計取得を可能にする。ただし、enable_stats の値が FALSE であるため、このクラスの統計取得は有効にはならない

次に進む手順

作業 

参照先  

作成したばかりのクラス用のフィルタを定義する 

IPQoS 構成ファイル内でフィルタを定義する方法

構成ファイル用の別のクラス句を作成する 

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

IPQoS 構成ファイル内でフィルタを定義する方法

次の手順では、IPQoS 構成ファイル内でクラス用のフィルタを定義する方法を示します。次の手順の前に、構成ファイルを開始しており、クラスを定義してあるものとします。ここでは、IPQoS 構成ファイルの開始方法およびトラフィッククラスの定義方法で紹介した /var/ipqos/Goldweb.qos ファイルの構築を続けます。


注 –

IPQoS 構成ファイルを作成する際、各クラス句およびフィルタ句を必ず中括弧 ({ }) で囲んでください。 括弧の使用例については、例 3–1 を参照してください。


  1. IPQoS 構成ファイルを開き、最後に定義したクラスの末尾を探します。

    たとえば、IPQoS 対応サーバー Goldweb 用の構成ファイル /var/ipqos/Goldweb.qos では、次のクラス句のあとから作業を始めます。


    class {
            name video
            next_action markEF
            enable_stats FALSE
        }
  2. IPQoS システムの発信トラフィックを選択するフィルタ句を定義します。


        filter {
            name webout
            sport 80
            direction LOCAL_OUT
            class goldweb
        }
    

    エントリ 

    説明 

    name webout

    フィルタに webout という名前を付ける

    sport 80

    ソースポート 80 のトラフィックを選択する。これは、既知の HTTP (Web) トラフィック用ポート 

    direction LOCAL_OUT

    ローカルシステムから発信されるトラフィックを選択する 

    class goldweb

    フィルタが所属するクラス (このインスタンスでは goldweb クラス) を特定する

    IPQoS 構成ファイル内のフィルタ句の構文および詳細情報については、フィルタ句を参照してください。

  3. IPQoS システムのストリーミングビデオトラフィックを選択するフィルタ句を定義します。


        filter {
            name videoout
            sport videosrv
            direction LOCAL_OUT
            class video
        }
    

    エントリ 

    説明 

    name videoout

    フィルタに videoout という名前を付ける

    sport videosrv

    ソースポート videosrv のトラフィックを選択する。これは、以前にこのシステムのストリーミングビデオアプリケーション用に定義したポート

    direction LOCAL_OUT

    ローカルシステムから発信されるトラフィックを選択する 

    class video

    フィルタが所属するクラス (このインスタンスでは video クラス) を特定する

次に進む手順

作業 

参照先  

マーカーモジュールの転送動作を定義する 

IPQoS 構成ファイル内でトラフィック転送を定義する方法

メータリングモジュールのフロー制御パラメータを定義する 

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

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

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

追加のフィルタを定義する 

IPQoS 構成ファイル内でフィルタを定義する方法

アプリケーションからのトラフィックフロー用のクラスを作成する 

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

IPQoS 構成ファイル内でトラフィック転送を定義する方法

次の手順では、クラスのホップ単位動作を IPQoS 構成ファイルに追加して、トラフィック転送を定義する方法を示します。次の手順の前に、既存の IPQoS 構成ファイルにクラスおよびフィルタを定義してあるものとします。ここでは、例 3–1 に示した /var/ipqos/Goldweb.qos ファイルの構築を続けます。


注 –

次の手順では、dscpmk マーカーモジュールを使用してトラフィック転送を構成する方法を示します。dlcosmk マーカーを使用した VLAN システムでのトラフィック転送については、VLAN デバイスでの dlcosmk マーカーの使用を参照してください。


  1. IPQoS 構成ファイルを開き、最後に定義したフィルタの末尾を探します。

    たとえば、IPQoS 対応サーバー Goldweb 用の構成ファイル /var/ipqos/Goldweb.qos では、次のフィルタ句のあとから作業を始めます。


    filter {
            name videoout
            sport videosrv
            direction LOCAL_OUT
            class video
        }
    }

    このフィルタは、ipgpc クラシファイアのアクション文の最後に位置します。このため、フィルタを終了させる閉じ括弧のあとに、アクション文を終了させる閉じ括弧が必要です。

  2. 次のアクション文を使用してマーカーを呼び出します。


    action {
        module dscpmk
        name markAF11
    

    エントリ 

    説明 

    module dscpmk

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

    name markAF11

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

    以前に定義した goldweb クラスには next_action markAF11 という文が含まれています。この文は、クラシファイアによる処理が完了したトラフィックフローを、アクション文 markAF11 に送信します。

  3. トラックフローに対してマーカーが取るアクションを定義します。


        params {
            global_stats FALSE
            dscp_map{0-63:10}
            next_action continue
        }
    }
    

    エントリ 

    説明 

    global_stats FALSE

    マーカーアクション文 markAF11 の統計取得を可能にする。ただし、global_stats の値が FALSE であるため、統計取得は有効にはならない

    dscp_map{0–63:10}

    DS コードポイント 10 を、マーカーにより処理中の goldweb クラスのパケットヘッダーに割り当てる

    next_action continue

    goldweb クラスのパケットに対しこれ以上処理を行う必要がないこと、およびこれらのパケットをネットワークストリームに戻してもよいことを示す 

    DS コードポイント 10 は、マーカーに対し、dscp マップ内のすべてのエントリを 10 進数値の 10 (バイナリ値 001010) に設定するよう指示します 。このコードポイントは、goldweb トラフィッククラスのパケットが AF11 ホップ単位動作 (PHB) に従うことを示します。AF11 は、DS コードポイント 10 を持つすべてのパケットが、低ドロップ、および高い優先順位のサービスを受けることを保証します。このため、Goldweb 上のプレミアム顧客用の発信トラフィックには、AF (相対的優先転送) PHB で指定可能なもっとも高い優先順位が与えられます。AF で利用可能な DS コードポイントについては、表 6–2 を参照してください。

  4. 別のマーカーアクション文を開始します。


    action {
        module dscpmk
        name markEF    
    

    エントリ 

    説明 

    module dscpmk

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

    name markEF

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

  5. トラフィックフローに対してマーカーが取るアクションを定義します。


        params {
            global_stats TRUE
            dscp_map{0-63:46}
            next_action acct
        }
    }
    

    エントリ 

    説明 

    global_stats TRUE

    video クラスの統計取得を有効にする。このクラスはストリーミングビデオのパケットを選択する

    dscp_map{0–63:46}

    DS コードポイント 46 を、マーカーにより処理中の video クラスのパケットヘッダーに割り当てる

    next_action acct

    dscpmk モジュールに対し、dscpmk による処理が完了した video クラスのパケットを、アクション文 acct に渡すよう指示する。アクション文 acctflowacct モジュールを呼び出す

    DS コードポイント 46 は、dscpmk モジュールに対し、dscp マップ内のすべてのエントリを DS フィールド内で 10 進数値の 46 (バイナリ値 101110) に設定するよう指示します。このコードポイントは、video トラフィッククラスのパケットが EF ホップ単位動作 (PHB) に従うことを示します。


    注 –

    EF のコードポイントは 46 (バイナリ値 101110) にすることをお勧めします。 その他の DS コードポイントは、AF PHB をパケットに割り当てるときに使用します。


    EF PHB は、DS コードポイント 46 を持つパケットが IPQoS および diffserv 対応システムによりもっとも高い優先度を与えられることを保証します。ストリーミングアプリケーションは、もっとも高い優先順位のサービスを必要とします。これが、QoS ポリシーでこれらのアプリケーションに EF PHB を割り当てる理由です。完全優先転送 PHB の詳細については、完全優先転送 (Expedited Forwarding、EF) PHBを参照してください。

  6. 作成したばかりの DS コードポイントを diffserv ルーターの適切なファイルに追加します。詳細については、IPQoS 対応ネットワーク上でルーターを構成する方法を参照してください。

次に進む手順

作業 

参照先  

トラフィックフローに関するフローアカウンティング統計の収集を開始する 

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

マーカーモジュールの転送動作を定義する 

IPQoS 構成ファイル内でトラフィック転送を定義する方法

メータリングモジュールのフロー制御パラメータを定義する 

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

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

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

追加のフィルタを定義する 

IPQoS 構成ファイル内でフィルタを定義する方法

アプリケーションからのトラフィックフロー用のクラスを作成する 

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

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

次の手順では、IPQoS 構成ファイル内でトラフィッククラスのアカウンティングを有効にする方法を示します。次の手順の前に、既存の IPQoS 構成ファイルにクラス、フィルタ、メーターのアクション (必要な場合だけ)、およびマーカーのアクション (必要な場合だけ) を定義してあるものとします。ここでは、例 3–1 に示した /var/ipqos/Goldweb.qos ファイルの構築を続けます。

次の手順では、IPQoS 構成ファイルの開始方法およびトラフィッククラスの定義方法で示した video クラス用のフローアカウンティングを定義する方法を示します。このクラスは、プレミアム SLA の一部として課金されるストリーミングビデオのトラフィックを選択します。

  1. IPQoS 構成ファイルを開き、最後に定義したアクション文の末尾を探します。

    たとえば、IPQoS 対応サーバー Goldweb 用の構成ファイル /var/ipqos/Goldweb.qos では、次のアクション文 markEF のあとから作業を始めます。


    action {
        module dscpmk
        name markEF
        params {
            global_stats TRUE
            dscp_map{0-63:46}
            next_action acct
        }
    }
  2. フローアカウンティングを呼び出すアクション文を開始します。


    action {
        module flowacct
        name acct
    

    エントリ 

    説明 

    module flowacct

    flowacct フローアカウンティングモジュールを呼び出す

    name acct

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

  3. トラフィッククラスに関するアカウンティングを制御する params 句を定義します。


    params {
            global_stats TRUE
            timer 10000
            timeout 10000
            max_limit 2048
            next_action continue
        }
    }

    エントリ 

    説明 

    global_stats TRUE

    video クラスの統計取得を有効にする。このクラスはストリーミングビデオのパケットを選択する

    timer 10000

    フローテーブル内で、タイムアウトしたフローが走査される間隔を、ミリ秒単位で指定する。このパラメータでは、間隔は 10000 ミリ秒 

    timeout 10000

    最小の間隔タイムアウト値を指定する。フローのパケットがタイムアウト値で指定された時間検出されないと、フローは「タイムアウト」する。このパラメータでは、パケットは 10000 ミリ秒後にタイムアウトする 

    max_limit 2048

    このアクションインスタンスのフローテーブル内でアクティブなフローレコードの最大数を設定する 

    next_action continue

    video クラスのパケットに対しこれ以上処理を行う必要がないこと、およびこれらのパケットをネットワークストリームに戻してもよいことを示す

    flowacct モジュールは、指定されたタイムアウト値に達するまで、特定のクラスのパケットフローに関する統計情報を収集します。

次に進む手順

作業 

参照先  

ルーターのホップ単位動作を構成する 

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

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

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

アプリケーションからのトラフィックフロー用のクラスを作成する 

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

ベストエフォート Web サーバー用の IPQoS 構成ファイルを作成する方法

ベストエフォート Web サーバー用の IPQoS 構成ファイルは、プレミアム Web サーバー用の IPQoS 構成ファイルとは若干異なります。次の手順を通して、異なるレベルの Web サービス用の構成ファイル間に見られる、類似点および相違点を知ることができます。次の手順では、例 3–2 に示した構成ファイルを使用します。

  1. ベストエフォート Web サーバーにログインします。

  2. 新規 IPQoS 構成ファイルを拡張子 .qos を付けて作成します。


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

    /var/ipqos/userweb.qos ファイルは、ipgpc クラシファイアを呼び出す部分アクション文から始める必要があります。このアクション文には、統計取得を有効にする params 句も含めています。このアクション文については、IPQoS 構成ファイルの開始方法およびトラフィッククラスの定義方法を参照してください。

  3. ベストエフォート Web サーバーに向かうトラフィックを特定するクラスを定義します。


    class {
            name userweb
            next_action markAF12
            enable_stats FALSE
        }
    

    エントリ 

    説明 

    name userweb

    userweb クラスを作成して、ユーザーから Userweb サーバーに向かうトラフィックを特定する

    next_action markAF12

    ipgpc モジュールに対し、ipgpc による処理が完了した userweb クラスのパケットを、アクション文 markAF12 に渡すよう指示する。アクション文 markAF12 は、dscpmk マーカーを呼び出す

    enable_stats FALSE

    userweb クラスの統計取得を可能にする。ただし、enable_stats の値が FALSE であるため、このクラスの統計取得は有効にはならない

    クラス句の作業については、IPQoS 構成ファイルの開始方法およびトラフィッククラスの定義方法を参照してください。

  4. userweb クラスのトラフィックフローを選択するフィルタ句を定義します。


       filter {
           name webout
           sport 80
           direction LOCAL_OUT
           class userweb
       }
    }
    

    エントリ 

    説明 

    name webout

    フィルタに webout という名前を付ける

    sport 80

    ソースポート 80 のトラフィックを選択する。これは、既知の HTTP (Web) トラフィック用ポート 

    direction LOCAL_OUT

    ローカルシステムから発信されるトラフィックを選択する 

    class userweb

    フィルタが所属するクラス (このインスタンスでは userweb クラス) を特定する

    フィルタ句の作業については、IPQoS 構成ファイル内でフィルタを定義する方法を参照してください。

  5. dscpmk マーカーを呼び出すアクション文を開始します。


    action {
        module dscpmk
        name markAF12
    

    エントリ 

    説明 

    module dscpmk

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

    name markAF12

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

    以前に定義した userweb クラスには next_action markAF12 という文が含まれています。この文は、クラシファイアによる処理が完了したトラフィックフローを、アクション文 markAF12 に送信します。

  6. トラフィックフローの処理に使用する、マーカーのパラメータを定義します。


        params {
            global_stats FALSE
            dscp_map{0-63:12}
            next_action continue
        }
    }
    

    エントリ 

    説明 

    global_stats FALSE

    マーカーアクション文 markAF12 の統計取得を可能にする。ただし、global_stats の値が FALSE であるため、統計取得は有効にはならない

    dscp_map{0–63:12}

    DS コードポイント 12 を、マーカーにより処理中の userweb クラスのパケットヘッダーに割り当てる

    next_action continue

    userweb クラスのパケットに対しこれ以上処理を行う必要がないこと、およびこれらのパケットをネットワークストリームに戻してもよいことを示す

    DS コードポイント 12 は、マーカーに対し、dscp マップ内のすべてのエントリを 10 進数値の 12 (バイナリ値 001100) に設定するよう指示します。このコードポイントは、userweb トラフィッククラスのパケットが AF12 ホップ単位動作 (PHB) に従うことを示します。AF12 は、DS フィールド内に DS コードポイント 12 を持つすべてのパケットが、中程度のドロップ、および高い優先順位のサービスを受けることを保証します。

IPQoS 構成ファイルの作成が完了したら、新規構成の IPQoS カーネルモジュールへの適用方法の記述に従って構成を適用します。

次に進む手順

作業 

参照先  

アプリケーションからのトラフィックフロー用のクラスおよび他の構成を追加する 

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

ルーターのホップ単位動作を構成する 

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

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

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