「メーター」は、フローの転送速度をパケット単位で追跡し、設定されたパラメータにパケットが適合するかどうかを調べます。メーターモジュールは、パケットサイズ、設定されたパラメータ、およびフロー速度に基づき、パケットの次のアクションをアクションセットの中から決定します。
メーターには 2 つのメータリングモジュール、すなわち tokenmt および tswtclmt があります。モジュールの構成は、IPQoS 構成ファイルで行います。モジュールのどちらか一方または両方をクラスに設定できます。
メータリングモジュールを構成する際、速度に関する 2 つのパラメータを定義できます。
認定速度 – 特定クラスのパケットに容認可能な転送速度を bps で定義する
最大速度 – 特定クラスのパケットに最大限容認可能な転送速度を bps で定義する
パケットに対するメータリングアクションの結果 (outcome) は、次の 3 つのどれかになります。
緑 – パケットの生成するフローは認定速度内である
黄 – パケットの生成するフローは認定速度を超過しているが、最大速度内である
赤 – パケットの生成するフローは最大速度を超過している
tokenmt モジュールは、「トークンバケット」を使用してフローの転送速度を測定します。tokenmt は、シングルレートメーターまたはツーレートメーターとして機能するように構成できます。tokenmt アクションインスタンスは、2 つのトークンバケットを管理します。これらのトークンバケットは、トラフィックフローが設定されたパラメータに適合するかどうかを調べます。
tokenmt(7ipp) のマニュアルページは、IPQoS がトークンメーターパラダイムを実装する方法を説明しています。トークンバケットに関する一般的な情報は、Kalevi Kilkki 著『Differentiated Services for the Internet』および多数の Web サイトで入手できます。
committed_rate – フローの認定速度を bps で指定する
committed_burst – 認定バーストサイズをビット単位で指定する。committed_burst パラメータは、認定速度でネットワークに渡すことのできる、特定クラスの発信パケット数を定義する
peak_rate – 最大速度を bps で指定する
peak_burst – 最大バーストサイズまたは超過バーストサイズをビット単位で指定する。peak_burst パラメータは、トラフィッククラスに、認定速度を超過する最大バーストサイズを付与する
color_aware – tokenmt のカラーアウェアモードを有効にする
color_map – DSCP 値を緑、黄、または赤にマッピングする整数配列を定義する
tokenmt をシングルレートメーターとして構成するには、IPQoS 構成ファイル内で tokenmt に peak_rate パラメータを指定しないでください。赤、緑、または黄の結果 (outcome) を識別するようにシングルレートの tokenmt インスタンスを構成するには、peak_burst パラメータを指定する必要があります。peak_burst パラメータを使用しないことによって、tokenmt が赤または緑の結果だけを識別するように構成することもできます。2 つの結果を識別するシングルレート tokenmt の例については、例 3–3 を参照してください。
tokenmt がシングルレートメーターとして機能する場合、 peak_burst パラメータは実質的にバーストサイズを超過します。committed_burst と peak_burst のどちらかと committed_rate は、ゼロ以外の正の整数にする必要があります。
tokenmt をツーレートメーターとして構成するには、IPQoS 構成ファイル内で tokenmt アクション用の peak_rate パラメータを指定します。 ツーレートの tokenmt は、必ず赤、黄、および緑の 3 つの結果 (outcome) を識別します。committed_rate、committed_burst、および peak_burst パラメータは、すべてゼロ以外の正の整数にする必要があります。
ツーレートの tokenmt をカラーアウェアとして構成するには、「カラーアウェアネス」を有効にするパラメータを追加する必要があります。次に、カラーアウェアの tokenmt を構成するアクション文の例を示します。
action { module tokenmt name meter1 params { committed_rate 4000000 peak_rate 8000000 committed_burst 4000000 peak_burst 8000000 global_stats true red_action_name continue yellow_action_name continue green_action_name continue color_aware true color_map {0-20,22:GREEN;21,23-42:RED;43-63:YELLOW} } }
color_aware パラメータを true に設定することによって、カラーアウェアを有効にできます。カラーアウェアにした tokenmt メーターは、以前の tokenmt アクションによってパケットが赤、黄、または緑にマーキング済みであるものと見なします。カラーアウェアの tokenmt は、ツーレートメーター用のパラメータに加え、パケットヘッダー内の DS コードポイントも使用してパケットを評価します。
color_map パラメータには、パケットヘッダー内の DSCP がマッピングされた配列が含まれます。次の color_map 配列について説明します。
color_map {0-20,22:GREEN;21,23-42:RED;43-63:YELLOW}
DSCP が 0〜20 および 22 のパケットは緑にマッピングされます。DSCP が 21 および 23〜42 のパケットは赤にマッピングされます。DSCP が 43〜63 のパケットは黄にマッピングされます。tokenmt は、デフォルトのカラーマップを持っていますが、必要に応じ color_map パラメータを使用してカラーマップを変更できます。
color_action_name パラメータでは、continue を指定するとパケットの処理を完了できます。また、たとえば yellow_action_name markAF22 のように、引数を指定してパケットをマーカーアクションに送信することもできます。
tswtclmt メータリングモジュールは、時間ベースの速度エスティメータを使用して、トラフィッククラスの平均帯域幅を見積もります。tswtclmt は必ず 3 つの結果 (outcome) を識別するメーターとして機能します。 速度エスティメータは、フローの到着速度の見積もりを提供します。この速度は、一定期間すなわち「ウィンドウ」内の、トラフィックストリームの実行帯域幅の平均を見積もります。速度概算アルゴリズムは、RFC 2859 (A Time Sliding Window Three Colour Marker) に基づいています。
tswtclmt を構成するには、次のパラメータを使用します。
committed_rate – 認定速度を bps で指定する
peak_rate – 最大速度を bps で指定する
window – タイムウィンドウをミリ秒で定義する。このタイムウィンドウに対して平均帯域幅の履歴が記録される
tswtclmt の技術的な詳細については、tswtclmt(7ipp) のマニュアルページを参照してください。tswtclmt に似た速度シェーパの一般的な情報については、RFC 2963 (A Rate Adaptive Shaper for Differentiated Services) を参照してください。