Solaris のシステム管理 (IP サービス)

第 34 章 IPQoS 構成ファイルの作成 (手順)

この章では、IPQoS 構成ファイルの作成方法について説明します。この章では、次の内容について説明します。

この章の説明は、完全な QoS ポリシーを定義していること、このポリシーを IPQoS 構成ファイルのベースとしてすぐに使用できることを前提としています。QoS ポリシーを計画するには、「サービス品質ポリシーの計画」を参照してください。

IPQoS 構成ファイル内での QoS ポリシーの定義 (作業マップ)

この作業マップでは、IPQoS 構成ファイルを作成するための一般的な作業の一覧と、各作業の実行手順を説明した節へのリンクを示します。

作業 

説明 

説明 

1. IPQoS 対応のネットワーク構成を計画する 

ローカルネットワーク上でどのシステムを IPQoS 対応にするかを決定する 

「IPQoS 用のネットワークを準備する方法」

2. ネットワーク上の IPQoS システム用 QoS ポリシーを計画する 

トラフィックフローを区別できるサービスクラスとして識別する。次に、トラフィック管理が必要なフローを決定する 

「サービス品質ポリシーの計画」

3. IPQoS 構成ファイルを作成し、その最初のアクションを定義する 

IPQoS ファイルを作成し、IP クラシファイアを呼び出し、処理を実行させるクラスを定義する 

「IPQoS 構成ファイルを作成し、トラフィッククラスを定義する方法」

4. クラス用のフィルタを作成する 

トラフィックの選択とクラス分けとを規定するフィルタを追加する 

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

5. IPQoS 構成ファイルにクラスおよびフィルタをさらに追加する 

IP クラシファイアに処理させるクラスおよびフィルタをさらに作成する 

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

6. メータリングモジュールを構成するパラメータを含む action 文を追加する

QoS ポリシーがフロー制御を必要とする場合、フロー制御速度および適合レベルをメーターに割り当てる 

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

7. マーカーを構成するパラメータを含む action 文を追加する

QoS ポリシーが差別化転送動作を必要とする場合、トラフィッククラスの転送方法を定義する 

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

8. フローアカウンティングモジュールを構成するパラメータを含む action 文を追加する

QoS ポリシーがトラフィックフローに関する統計の取得を必要とする場合、これらのアカウンティング統計の収集方法を定義する 

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

9. IPQoS 構成ファイルを適用する 

作成した IPQoS 構成ファイルの内容を、適切なカーネルモジュールに追加する 

「新規構成を IPQoS カーネルモジュールへ適用する方法」

10. 転送動作をルーターファイル内で構成する 

ネットワーク上のいずれかの IPQoS 構成ファイルで転送動作が定義されている場合、結果として得られる DSCP を、ルーターの適切なスケジューリングファイルに追加する 

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

QoS ポリシー作成用のツール

ネットワーク用の QoS ポリシーは、IPQoS 構成ファイル内に格納します。テキストエディタでこの構成ファイルを作成します。次に、作成したファイルを IPQoS 構成ユーティリティー ipqosconf の引数とします。ipqosconf に対し、構成ファイル内で定義されたポリシーの適用を指示すると、ポリシーがカーネル IPQoS システムに書き込まれます。ipqosconf コマンドの詳細については、ipqosconf(1M) のマニュアルページを参照してください。ipqosconf の使用方法については、「新規構成を IPQoS カーネルモジュールへ適用する方法」を参照してください。

基本 IPQoS 構成ファイル

IPQoS 構成ファイルは、Planning the Quality-of-Service Policyで定義した QoS ポリシーを実行する 「サービス品質ポリシーの計画」 文のツリーで構成されています。IPQoS 構成ファイルは、IPQoS モジュールの構成を行います。各アクション文には、アクション文の中で呼び出されるモジュールが処理する「クラス」、「フィルタ」、または「パラメータ」のセットが含まれます。

IPQoS 構成ファイルの完全な構文については、例 37–3 および ipqosconf(1M) のマニュアルページを参照してください。

IPQoS トポロジ例の構成

この章では、3 つの IPQoS 対応システム用の IPQoS 構成ファイルを作成する方法を示します。これらのシステムは、図 33–4 で紹介した BigISP 社のネットワークトポロジの一部です。

3 つの構成ファイルを通して、最も一般的な IPQoS 構成を示します。IPQoS を実装するために、次の節のサンプルファイルをテンプレートとして使用することもできます。

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

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

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


例 34–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
    }
}

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


例 34–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
    }
}

ProcedureIPQoS 構成ファイルを作成し、トラフィッククラスを定義する方法

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


注 –

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


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

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

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

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


    fmt_version 1.0
    
    action {
        module ipgpc
        name ipgpc.classify
    
    fmt_version 1.0

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

    action {

    action 文を開始する

    module ipgpc

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

    name ipgpc.classify

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

    action 文の詳しい構文については、action 文」および 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 
        }
    

    この文は、「class 句」と呼ばれます。class 句には次の内容が含まれます。

    name goldweb

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

    next_action markAF11

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

    enable_stats FALSE

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

    class 句の構文の詳細については、class 句」 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 であるため、このクラスの統計収集は有効にはならない

参照

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

次の手順では、IPQoS 構成ファイル内でクラスのフィルタを定義します。

始める前に

次の手順の前に、構成ファイルの作成を開始しており、クラスを定義してあるものとします。この手順は、「IPQoS 構成ファイルを作成し、トラフィッククラスを定義する方法」で作成された /var/ipqos/Goldweb.qos ファイルを引き続き構築します。


注 –

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


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

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


    class {
            name video
            next_action markEF
            enable_stats FALSE
        }
  2. filter 句を定義し、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 構成ファイル内の filter 句の構文などについては、filter 句」を参照してください。

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


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

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

    sport videosrv

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

    direction LOCAL_OUT

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

    class video

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

参照

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

次の手順では、IPQoS 構成ファイルにクラスのホップ単位の動作を追加して、トラフィック転送を定義します。

始める前に

次の手順の前に、既存の IPQoS 構成ファイルにクラスおよびフィルタを定義してあるものとします。この手順では、Example 34–1例 34–1 ファイルを引き続き構築します。


注 –

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


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

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


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

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

  2. 次の action 文でマーカーを呼び出します。


    action {
        module dscpmk
        name markAF11
    
    module dscpmk

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

    name markAF11

    action 文に markAF11 という名前を付ける

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

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


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

    マーカー actionmarkAF11 の統計収集を可能にする。ただし、global_stats の値が FALSE であるため、統計は収集されない

    dscp_map{0–63:10}

    DSCP 10 を、マーカーにより処理中の goldweb クラスのパケットヘッダーに割り当てる

    next_action continue

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

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

  4. 別のマーカー action 文を開始します。


    action {
        module dscpmk
        name markEF    
    
    module dscpmk

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

    name markEF

    action 文に markEF という名前を付ける

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


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

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

    dscp_map{0–63:46}

    DSCP 46 を、マーカーにより処理中の video クラスのパケットヘッダーに割り当てる

    next_action acct

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

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


    注 –

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


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

  6. 作成したばかりの DSCP を Diffserv ルーターの適切なファイルに追加します。

    詳細については、「IPQoS 対応ネットワーク上でルーターを構成する方法」を参照してください。

参照

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

次の手順では、IPQoS 構成ファイル内でトラフィッククラスのアカウンティングを有効にします。この手順では、How to Create the IPQoS Configuration File and Define Traffic Classesで紹介した 「IPQoS 構成ファイルを作成し、トラフィッククラスを定義する方法」 クラスのフローアカウンティングを定義します。このクラスは、プレミアム SLA の一部として課金されるストリーミングビデオのトラフィックを選択します。

始める前に

次の手順の前に、既存の IPQoS 構成ファイルにクラス、フィルタ、メーターのアクション (必要な場合だけ)、およびマーカーのアクション (必要な場合だけ) を定義してあるものとします。この手順では、Example 34–1例 34–1 ファイルを引き続き構築します。

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

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


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


    action {
        module flowacct
        name acct
    
    module flowacct

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

    name acct

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

参照

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

ベストエフォート Web サーバー用の IPQoS 構成ファイルは、プレミアム Web サーバー用の IPQoS 構成ファイルとは少し違います。この手順では、例として 例 34–2 の構成ファイルを使用します。

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

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


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

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

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


    class {
            name userweb
            next_action markAF12
            enable_stats FALSE
        }
    
    name userweb

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

    next_action markAF1

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

    enable_stats FALSE

    userweb クラスの統計収集を可能にする。ただし、enable_stats の値が FALSE であるため、このクラスの統計は収集されない

    class 句の処理については、「IPQoS 構成ファイルを作成し、トラフィッククラスを定義する方法」を参照してください。

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


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

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

    sport 80

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

    direction LOCAL_OUT

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

    class userweb

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

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

  5. dscpmk マーカーを呼び出す action 文を開始します。


    action {
        module dscpmk
        name markAF12
    
    module dscpmk

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

    name markAF12

    action 文に markAF12 という名前を付ける

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

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


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

    マーカー actionmarkAF12 の統計収集を可能にする。ただし、enable_stats の値が FALSE であるため、統計は収集されない

    dscp_map{0–63:12}

    DSCP 12 を、マーカーにより処理中の userweb クラスのパケットヘッダーに割り当てる

    next_action continue

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

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

  7. IPQoS 構成ファイルを完成したら、構成を適用します。

参照

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

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

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


例 34–3 アプリケーションサーバー用サンプル 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 AF31
        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
    }
}

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

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

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


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

    冒頭の action 文については、「IPQoS 構成ファイルを作成し、トラフィッククラスを定義する方法」を参照してください。

  2. BigAPPS サーバー上の 3 つのアプリケーションからのトラフィックをそれぞれ選択するクラスを作成します。

    冒頭の action 文のあとに、クラス定義を追加します。


        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 クラスのパケットを、actionmarkAF13 に渡すよう指示する

    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 クラスのパケットを、actionmeterftp に渡すよう指示する

    クラスの定義の詳細については、「IPQoS 構成ファイルを作成し、トラフィッククラスを定義する方法」を参照してください。

  3. 手順 2 で定義したクラスのトラフィックを選択する filter 句を定義します。


        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 のトラフィックを選択する。これは、既知のネットワークニュース (NNTP) アプリケーション用ポート

    class news

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

    name ftpout

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

    sport ftp

    ソースポート 21 の制御データを選択する。これは、既知の FTP トラフィック用ポート番号

    name ftpdata

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

    sport ftp-data

    ソースポート 20 のトラフィックを選択する。これは、既知の FTP データトラフィック用ポート番号

    class ftp

    ftpout および ftpdata フィルタが所属するクラス (このインスタンスでは ftp) を特定する

参照

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

次の手順では、アプリケーショントラフィックの転送を設定します。次の手順では、アプリケーショントラフィッククラスのホップ単位動作を定義します。これらのクラスは、ネットワーク上のほかのトラフィックよりも優先度を低くする場合があります。この手順では、例 34–3/var/ipqos/BigAPPS.qos ファイルを引き続き構築します。

始める前に

この手順では、マークしたアプリケーションに対してクラスとフィルタをすでに定義した既存の IPQoS 構成ファイルがあることを前提にしています。

  1. アプリケーションサーバー用に作成した IPQoS 構成ファイルを開き、最後の filter 句の末尾を検索します。

    /var/ipqos/BigAPPS.qos ファイルでは、最後のフィルタは次のとおりです。


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


    action {
        module dscpmk
        name markAF13
        
    
    module dscpmk

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

    name markAF13

    action 文に markAF13 という名前を付ける

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


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

    マーカー actionmarkAF13 の統計収集を可能にする。ただし、global_stats の値が FALSE であるため、統計は収集されない

    dscp_map{0–63:14}

    DSCP 14 を、マーカーにより処理中の smtp クラスのパケットヘッダーに割り当てる


    next_action continue

    smtp クラスのパケットに対しこれ以上処理を行う必要がないことを示す。よって、これらのパケットはネットワークストリームに戻すことができる

    DSCP 14 は、マーカーに対し、dscp マップ内のすべてのエントリを 10 進数値の 14 (バイナリ値 001110) に設定するよう指示します。DSCP 14 は、AF13 のホップ単位の動作を設定します。マーカーは、DS フィールドの DSCP 14smtp トラフィッククラスのパケットをマークします。

    AF13 は、DSCP 14 を持つすべてのパケットに高いドロップ優先度を割り当てますが、それと同時に Class 1 の優先順位も保証するため、ルーターは電子メールの発信トラフィックに対し、キューの中で高い優先順位を与えます。設定可能な AF コードポイントの表については、表 37–2 を参照してください。

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


    action {
        module dscpmk
        name markAF21
        params {
            global_stats FALSE
            dscp_map{0-63:18}
            next_action continue
        }
    }
    
    name markAF21

    action 文に markAF21 という名前を付ける

    dscp_map{0–63:18}

    DSCP 18 を、マーカーにより処理中の nntp クラスのパケットヘッダーに割り当てる

    DSCP 18 は、マーカーに対し、dscp マップ内のすべてのエントリを 10 進数値の 18 (バイナリ値 010010) に設定するよう指示します。DSCP 18 は、AF21 のホップ単位の動作を設定します。マーカーは、DS フィールドの DSCP 18news トラフィッククラスのパケットをマークします。

    AF21 は DSCP 18 を持つすべてのパケットに低いドロップ優先度を保証しますが、優先順位は Class 2 にとどまります。よって、ネットワークニューストラフィックが振り落とされる可能性は低くなります。

参照

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

ネットワークに送出される特定のトラフィックフローの速度を制御するには、メーターのパラメータを定義しなければなりません。IPQoS 構成ファイル内で、2 つのメーター tokenmttswtclmt とのどちらかを使用できます。

次の手順では、例 34–3 のアプリケーションサーバーの IPQoS 構成ファイルを引き続き構築します。次の手順では、メーターを構成するだけではなく、メーター action 文の内部で呼び出される 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 文を作成します。


    action {
        module tokenmt
        name meterftp
                
    
    module tokenmt

    tokenmt メーターを呼び出す

    name meterftp

    action 文に 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 markAF31
        green_action_name markAF22
        global_stats TRUE
        }
    }
    
    red_action_name markAF31

    ftp クラスのトラフィックフローが認定速度を超過した場合、パケットは、markAF31 マーカー action 文に送信されることを示す

    green_action_name markAF22

    ftp クラスのトラフィックフローが認定速度に適合する場合、パケットがアクション文 markAF22 に送られることを示す

    global_stats TRUE

    ftp クラスのメータリング統計取得を有効にする

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

  5. ホップ単位動作を ftp クラスの不適合トラフィックフローに割り当てるマーカー action 文を追加します。


    action {
        module dscpmk
        name markAF31
        params {
            global_stats TRUE
            dscp_map{0-63:26}
            next_action continue
        }
    }
    
    module dscpmk

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

    name markAF31

    action 文に markAF31 という名前を付ける

    global_stats TRUE

    ftp クラスの統計取得を有効にする

    dscp_map{0–63:26}

    ftp クラスのトラフィックが認定速度を超過した場合は常に、DSCP 26 を ftp クラスのパケットヘッダーに割り当てる

    next_action continue

    ftp クラスのパケットに対しこれ以上処理を行う必要がないことを示す。よって、これらのパケットはネットワークストリームに戻すことができる

    DSCP 26 は、マーカーに対し、dscp マップ内のすべてのエントリを 10 進数値の 26 (バイナリ値 011010) に設定するよう指示します。DSCP 26 は、AF31 のホップ単位の動作を設定します。マーカーは、DS フィールドの DSCP 26ftp トラフィッククラスのパケットをマークします。

    AF31 は DSCP 26 を持つすべてのパケットに低いドロップ優先度を保証しますが、優先順位は Class 2 にとどまります。このため、速度不適合の FTP トラフィックがドロップされる可能性は低くなりますが、設定可能な AF コードポイントの表については、表 37–2 を参照してください。

  6. 認定速度に適合する ftp トラフィックフローにホップ単位動作を割り当てるマーカー action 文を追加します。


    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 クラスのトラフィックが認定速度に適合する場合は常に、DSCP 20 をパケットヘッダーに割り当てる

    DSCP 20 は、マーカーに対し、dscp マップ内のすべてのエントリを 10 進数値の 20 (バイナリ値 010100) に設定するよう指示します。DSCP 20 は、AF22 のホップ単位の動作を設定します。マーカーは、DS フィールドの DSCP 20ftp トラフィッククラスのパケットをマークします。

    AF22 は、DSCP 20 を持つすべてのパケットに中程度のドロップ優先度と Class 2 の優先順位を保証します。このため、速度適合の FTP トラフィックは、IPQoS システムから同時に送出されるフロー内で中程度のドロップ優先度を保証されます。ただし、ルーターは、Class 1 で中程度のドロップ優先度以上を持つトラフィッククラスの転送を優先します。設定可能な AF コードポイントの表については、表 37–2 を参照してください。

  7. アプリケーションサーバー用に作成した DSCP を、Diffserv ルーターの適切なファイルに追加します。

参照

ルーター上での差別化サービスの提供

差別化サービスを提供するには、「diffserv ネットワークのハードウェア計画」の説明に従って、ネットワークトポロジに Diffserv 対応ルーターを含める必要があります。ルーター上で Diffserv を構成し、ルーターのファイルを更新する実際の手順は、このマニュアルの扱う範囲ではありません。

この節では、ネットワーク上のさまざまな IPQoS 対応システムおよび Diffserv ルーター間で、転送情報を調整する一般的な手順を説明します。

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

次の手順では、例として図 33–4 のトポロジを使用します。

始める前に

次の手順の前に、この章のこれまでの作業を実行することにより、ネットワーク上で IPQoS システムを構成してあるものとします。

  1. ネットワーク上のすべての IPQoS 対応システムの構成ファイルを確認します。

  2. さまざまな QoS ポリシーで使用される各コードポイントを特定します。

    コードポイント、およびコードポイントを適用するシステムとクラスの表を作成します。次の表から、同じコードポイントを使用した領域を知ることができます。同じコードポイントを使用したままでもかまいませんが、同じマークが付けられたクラス間の優先度を決めるには、IPQoS 構成ファイル内に precedence セレクタなどほかの条件を指定する必要があります。

    たとえば、この章の手順で使用するネットワーク例の場合、次のコードポイント表を作成できます。

    システム 

    クラス 

    PHB 

    DS コードポイント 

    Goldweb

    video

    EF 

    46 (101110) 

    Goldweb

    goldweb

    AF11 

    10 (001010) 

    Userweb

    webout

    AF12 

    12 ( 001100) 

    BigAPPS

    smtp

    AF13 

    14 ( 001110) 

    BigAPPS

    news

    AF18 

    18 ( 010010) 

    BigAPPS

    ftp 適合トラフィック

    AF22 

    20 ( 010100) 

    BigAPPS

    ftp 不適合トラフィック

    AF31 

    26 ( 011010) 

  3. ネットワークの IPQoS 構成ファイルから得たコードポイントを、Diffserv ルーターの適切なファイルに追加します。

    これらのコードポイントは、ルーターの Diffserv スケジューリング機構の設定に役立ちます。詳しくは、ルーターの製造元の文書および Web サイトを参照してください。