Cisco ASA 5500 シリーズ コンフィギュレーション ガイド(CLI8.2 を使用)
QoS の設定
QoS の設定
発行日;2012/02/01 | 英語版ドキュメント(2012/01/04 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 21MB) | フィードバック

目次

QoS の設定

QoS の概要

サポートされる QoS 機能

トークン バケットとは

ポリシングの概要

プライオリティ キューイングの概要

トラフィック シェーピングの概要

QoS 機能の相互作用のしくみ

DSCP および DiffServ の維持

インターフェイス用の標準プライオリティキューの作成

キューと TX リング制限の決定

プライオリティキューの設定

クラスマップを使用した QoS の対象にするトラフィックの特定

QoS クラスマップの作成

QoS クラスマップの例

標準プライオリティ キューイングおよびポリシング用のポリシーの作成

トラフィック シェーピングおよび階層型プライオリティ キューイング用のポリシーの作成

QoS 統計情報の表示

QoS ポリシング統計情報の表示

QoS 標準プライオリティ統計情報の表示

QoS シェーピング統計情報の表示

QoS 標準プライオリティキュー統計情報の表示

QoS の設定

衛星接続を使用した長距離電話では、会話が、短い間ですが認識できる程度に割り込みされ、不定期に中断されることがあります。このような中断は、ネットワークで送信されるパケットが到着する間隔の時間で、遅延と呼ばれます。音声やビデオなどのネットワーク トラフィックでは、長時間の遅延は許容されません。 Quality of Service(QoS)機能を使用すると、重要なトラフィックのプライオリティを高くし、帯域幅の過剰な使用を防ぎ、ネットワーク ボトルネックを管理してパケットのドロップを防止できます。

この章では、QoS ポリシーを適用する方法について説明します。この章は、次の項で構成されています。

「QoS の概要」

「インターフェイス用の標準プライオリティキューの作成」

「クラスマップを使用した QoS の対象にするトラフィックの特定」

「標準プライオリティ キューイングおよびポリシング用のポリシーの作成」

「トラフィック シェーピングおよび階層型プライオリティ キューイング用のポリシーの作成」

「QoS 統計情報の表示」

QoS 概要

常に変化するネットワーク環境では、QoS は 1 回限りの構成ではなく、ネットワーク設計の継続的で不可欠な要素であることを考慮する必要があります。


) QoS は、シングルコンテキスト モードのでだけ使用できます。


この項では、適応型セキュリティ アプライアンスでサポートされる QoS 機能について説明します。次の項目を取り上げます。

「サポートされる QoS 機能」

「トークン バケットとは」

「ポリシングの概要」

「プライオリティ キューイングの概要」

「トラフィック シェーピングの概要」

「DSCP および DiffServ の維持」

サポートされる QoS 機能

適応型セキュリティ アプライアンスは、次の QoS の機能をサポートしています。

ポリシング:特定のフローがネットワーク帯域幅を大量に使用するのを防ぐため、フローごとの最大使用帯域幅を制限できます。詳細については、「ポリシングの概要」を参照してください。

プライオリティ キューイング:Voice over IP(VoIP)のような遅延を許されない重要なトラフィックについて、トラフィックを Low Latency Queuing(LLQ; 低遅延キューイング)に指定することで、常に他のトラフィックより先に送信できます。詳細については、「プライオリティ キューイングの概要」を参照してください。

トラフィック シェーピング:ファスト イーサネットでの適応型セキュリティ アプライアンスなどのように高速でパケットを送信するデバイスがあり、それがケーブル モデムのような低速デバイスに接続されている場合、ケーブル モデムがボトルネックになって頻繁にパケットがドロップされます。異なる速度の回線を含むネットワークを管理するには、低めの固定レートでパケットを送信するように適応型セキュリティ アプライアンスを設定できます。詳細については、「トラフィック シェーピングの概要」を参照してください。

トークン バケットとは

トークン バケットは、フロー内のデータを規制するデバイスの管理に使用されます。規制機能としては、たとえばトラフィック ポリシング機能やトラフィック シェーパーなどがあります。トークン バケット自体には、廃棄ポリシーまたはプライオリティ ポリシーはありません。むしろ、トークン バケットは、フローによって規制機能が過剰に働く場合に、トークンを廃棄し、送信キューの管理の問題はフローに任せます。

トークン バケットは、転送のレートの形式的な定義です。トークン バケットには、バースト サイズ、平均レート、時間間隔という 3 つのコンポーネントがあります。平均レートは通常 1 秒間のビット数で表されますが、次のような関係によって、任意の 2 つの値を 3 番目の値から求めることができます。

平均レート = バースト サイズ / 時間間隔

ここで、これらの用語について定義します。

平均レート:Committed Information Rate(CIR; 認定情報レート)とも呼ばれ、単位時間に送信または転送できるデータ量の平均値を指定します。

バースト サイズ:Committed Burst(Bc; 認定バースト)サイズとも呼ばれ、スケジューリングに関する問題を発生させることなく単位時間内に送信できるトラフィックの量を、バーストあたりのビット数またはバイト数で指定します (トラフィック シェーピングの場合はバーストごとのビット数を指定し、ポリシングの場合はバーストごとのバイト数を指定します)。

時間間隔:測定間隔とも呼ばれ、バーストごとの時間を秒単位で指定します。

トークン バケットの比喩では、トークンは一定のレートでバケットに入れられます。バケット自体には指定された容量があります。バケットがいっぱいになると、新しく到着するトークンは廃棄されます。各トークンは、送信元が一定の数のビットをネットワークに送信するための権限です。パケットを送信するため、規制機能はパケット サイズに等しい数のトークンをバケットから削除する必要があります。

パケットを送信するのに十分なトークンがバケット内にない場合、パケットはバケットに十分なトークンが溜まるまで待機するか(トラフィック シェーピングの場合)、または廃棄されるかダウンとマークされます(ポリシングの場合)。バケットがすでにトークンで満たされている場合、着信トークンはオーバーフローし、以降のパケットには使用できません。したがって、いつでも、送信元がネットワークに送信できる最大のバーストは、バケットのサイズにほぼ比例します。

トラフィック シェーピングに使用されるトークン バケット メカニズムは、トークン バケットとデータ バッファまたはキューの両方を持っています。データ バッファを持たない場合は、ポリシング機能になります。トラフィック シェーピングの場合、到着したパケットですぐに送信できないものは、データ バッファで遅延されます。

トラフィック シェーピングでは、トークン バケットはバースト性を許可する一方で、それを抑制します。トラフィック シェーピングは、トークン バケットの容量を時間間隔で割った値に設定されているトークン バケットへのトークンの格納レートを加えた値より速くフローが送信しないように、バースト性を抑制します。次の式を参照してください。

(ビット単位のトークン バケット容量 / 秒単位の時間間隔)+ 設定されている bps 単位のレート = bps 単位の最大フロー速度

このようなバースト性抑制方法は、長期的な送信レートが設定されているバケットへのトークン格納レートを超えないことも保証します。

ポリシングの概要

ポリシングは、設定した最大レート(ビット/秒)を超えるトラフィックが発生しないようにして、1 つのトラフィック フローまたはクラスが全体のリソースを占有しないようにする方法です。トラフィックが最大レートを超えると、適応型セキュリティ アプライアンスは超過した分のトラフィックをドロップします。また、ポリシングでは、許可されるトラフィックの最大単一バーストも設定されます。

プライオリティ キューイングの概要

LLQ プライオリティ キューイングを使用すると、特定のトラフィック フロー(音声やビデオのような遅延が問題になるトラフィックなど)を他のトラフィックより優先させることができます。

適応型セキュリティ アプライアンスは 2 種類のプライオリティ キューイングをサポートしています。

標準プライオリティ キューイング:標準プライオリティ キューイングはインターフェイスの LLQ プライオリティキューを使用しますが(「インターフェイス用の標準プライオリティキューの作成」を参照)、他のすべてのトラフィックは「ベストエフォート」キューに入れられます。キューは無限大ではないため、いっぱいになってオーバーフローすることがあります。キューがいっぱいになると、以降のパケットはキューに入ることができず、すべてドロップされます。これは テール ドロップ と呼ばれます。キューがいっぱいになることを避けるには、キューのバッファ サイズを大きくします。送信キューに入れることのできるパケットの最大数も微調整できます。これらのオプションを使用して、プライオリティ キューイングの遅延と強固さを制御できます。LLQ キュー内のパケットは、常に、ベストエフォート キュー内のパケットよりも前に送信されます。

階層型プライオリティ キューイング:階層型プライオリティ キューイングは、トラフィック シェーピング キューがイネーブルになっているインターフェイスで使用されます。シェーピングされるトラフィックのサブセットに優先順位を付けることができます。標準プライオリティキューは使用されません。階層型プライオリティ キューイングについては次のガイドラインを参照してください。

プライオリティ パケットは常にシェープ キューの先頭に格納されるので、常に他の非プライオリティキュー パケットよりも前に送信されます。

プライオリティ トラフィックの平均レートがシェープ レートを超えない限り、プライオリティ パケットがシェープ キューからドロップされることはありません。

IPSec で暗号化されたパケットの場合は、DSCP または優先設定に基づく場合に限りトラフィックを照合できます。

IPSec-over-TCP は、プライオリティ トラフィックの分類ではサポートされていません。

トラフィック シェーピングの概要

トラフィック シェーピングは、デバイスとリンクの速度を一致させることで、ジッタや遅延の原因になる可能性のあるパケット損失、可変遅延、およびリンク飽和を制御するために使用されます。

トラフィック シェーピングは、物理インターフェイスのすべての発信トラフィック、または ASA 5505 の場合は VLAN 上のすべての発信トラフィックに適用する必要があります。特定のタイプのトラフィックにはトラフィック シェーピングを設定できません。

トラフィック シェーピングはインターフェイスでパケットの送信準備が整った時点で実装されるので、レートの計算は送信されるパケットの実際のサイズに基づいて実行され、IPSec ヘッダーや L2 ヘッダーなどの可能性のあるすべてのオーバーヘッドが含まれます。

シェーピングされるトラフィックには、through-the-box トラフィックと from-the-box トラフィックの両方が含まれます。

シェープ レートの計算は、標準トークン バケット アルゴリズムに基づいて行われます。トークン バケットのサイズは、バースト サイズの値の 2 倍です。「トークン バケットとは」を参照してください。

バースト性のトラフィックが指定されたシェープ レートを超えると、パケットはキューに入れられて、後で送信されます。次に、シェープ キューに関するいくつかの特性を示します(階層型プライオリティ キューイングについては、「プライオリティ キューイングの概要」を参照してください)。

キューのサイズは、シェープ レートに基づいて計算されます。キューは、1500 バイトのパケットとして 200 ミリ秒に相当するシェープ レート トラフィックを保持できます。最小キュー サイズは 64 です。

キューの制限に達すると、パケットはキューの末尾からドロップされます。

OSPF Hello パケットなどの一部の重要なキープアライブ パケットは、ドロップされません。

時間間隔は、 time_interval = burst_size / average_rate によって求められます。時間間隔が長くなるほど、シェープ トラフィックのバースト性は高くなり、リンクのアイドル状態が長くなる可能性があります。この効果は、次のような誇張した例を使うとよく理解できます。

平均レート = 1000000

バースト サイズ = 1000000

この例では、時間間隔は 1 秒であり、これは、100 Mbps の FE リンクでは 1 Mbps のトラフィックを 時間間隔 1 秒の最初の 10 ミリ秒内にバースト送信できることを意味し、残りの 990 ミリ秒間はアイドル状態になって、次の時間間隔になるまでパケットを送信できません。したがって、音声トラフィックのように遅延が問題になるトラフィックがある場合は、バースト サイズを平均レートと比較して小さくし、時間間隔を短くする必要があります。

QoS 機能の相互作用のしくみ

適応型セキュリティ アプライアンスで必要な場合は、個々の QoS 機能を単独で設定できます。ただし、普通は、たとえば一部のトラフィックを優先させて、他のトラフィックによって帯域幅の問題が発生しないようにするために、複数の QoS 機能を適応型セキュリティ アプライアンスに設定します。

次に、インターフェイスごとにサポートされる機能の組み合わせを示します。

標準プライオリティ キューイング(特定のトラフィックについて)+ ポリシング(その他のトラフィックについて)

プライオリティ キューイングとポリシングは同じトラフィックの集合に対して設定できません。

トラフィック シェーピング(インターフェイス上のすべてのトラフィックについて)+ 階層型プライオリティ キューイング(トラフィックのサブセットについて)

トラフィック シェーピングと標準プライオリティ キューイングは同じインターフェイスに設定できません。一緒に設定できるのは階層型プライオリティ キューイングだけです。たとえば、グローバル ポリシーに対して標準プライオリティ キューイングを設定した後、特定のインターフェイスに対してトラフィック シェーピングを設定した場合、グローバル ポリシーはインターフェイス ポリシーと重なるため、最後に設定した機能は拒否されます。

通常、トラフィック シェーピングをイネーブルにした場合、同じトラフィックに対してはポリシングをイネーブルにしません。ただし、このような設定は適応型セキュリティ アプライアンスでは制限されていません。

DSCP および DiffServ の維持

DSCP のマーキングは、適応型セキュリティ アプライアンスを通過するすべてのトラフィックで維持されます。

適応型セキュリティ アプライアンスは分類済みのトラフィックをローカルにマーク付けまたは再マーク付けすることはなく、すべてのパケットの Expedited Forwarding(EF; 緊急転送)DSCP ビットを使用して、「優先的な」処理が必要かどうかを判断し、必要なパケットは LLQ に送ります。

搬送中に QoS を適用できるように(QoS トンネル事前分類)、パケットの DiffServ マーキングはサービス プロバイダーのバックボーンを通過するときに維持されます。

インターフェイス用の標準プライオリティキューの作成

物理インターフェイスでトラフィックに対する標準プライオリティ キューイングをイネーブルにする場合は、各インターフェイスでプライオリティキューを作成する必要もあります。各物理インターフェイスは、プライオリティ トラフィック用と、他のすべてのトラフィック用に、2 つのキューを使用します。他のトラフィックについては、必要に応じてポリシングを設定できます。


) トラフィック シェーピングでの階層型プライオリティ キューイングには、標準プライオリティキューは必要ありません。詳細については、「プライオリティ キューイングの概要」を参照してください。

10 ギガビット イーサネット インターフェイスには、プライオリティキューを作成できません。高帯域幅のインターフェイスには、プライオリティ キューイングは必要ありません。


この項は、次の内容で構成されています。

「キューと TX リング制限の決定」

「プライオリティキューの設定」

キューと TX リング制限の決定

プライオリティキューおよび TX リング制限を決定するには、次のワークシートを使用します。

表 55-1 は、プライオリティキューのサイズを計算する方法を示しています。キューは無限大ではないため、いっぱいになってオーバーフローすることがあります。キューがいっぱいになると、以降のパケットはキューに入ることができず、すべてドロップされます( テール ドロップ と呼ばれます)。キューがいっぱいになることを避けるには、「プライオリティキューの設定」に従ってキューのバッファ サイズを調節します。

 

表 55-1 キュー制限のワークシート

ステップ 1

__________

アウトバウンド帯域幅(Mbps または Kbps)1

Mbps

 
x

125

=

__________

バイト数/ミリ秒

Kbps

 
x

.125

=

__________

バイト数/ミリ秒

ステップ 2

___________

ステップ 1 からのバイト数/ミリ秒

 
÷

 

__________

平均パケット サイズ(バイト)2

x

__________

遅延(ミリ秒)3

 
=

__________

キュー制限
(パケット数)

1.たとえば、DSL のアップリンク速度は 768 Kbps などです。プロバイダーに確認してください。

2.この値はコーデックまたはサンプリング サイズから決定します。たとえば、VoIP over VPN の場合は、160 バイトなどを使用します。使用するサイズがわからない場合は、256 バイトにすることをお勧めします。

3.遅延はアプリケーションによって決まります。たとえば、VoIP の場合の推奨される最大遅延は 200 ミリ秒です。使用する遅延がわからない場合は、500 ミリ秒にすることをお勧めします。

表 55-2 は、TX リング制限を計算する方法を示しています。この制限により、イーサネット送信ドライバが受け入れるパケットの最大数が決まります。この制限に達すると、ドライバはパケットをインターフェイスのキューに差し戻し、輻輳が解消されるまでパケットをバッファに格納できるようにします。この設定により、ハードウェアベースの送信リングがプライオリティの高いパケットに対して制限以上の余分な遅延を発生させないことが保証されます。

 

表 55-2 TX リング制限のワークシート

ステップ 1

__________

アウトバウンド帯域幅(Mbps または Kbps)4

Mbps

 
x

125

 
=

__________

バイト数/ミリ秒

Kbps

 
x

0.125

 
=

__________

バイト数/ミリ秒

ステップ 2

___________

ステップ 1 からのバイト数/ミリ秒

 
÷

 

__________

最大パケット サイズ(バイト)5

 
x

__________

遅延(ミリ秒)6

=

__________

TX リング制限
(パケット数)

4.たとえば、DSL のアップリンク速度は 768 Kbps などです。プロバイダーに確認してください。

5.通常、タグ付けされたイーサネットの最大サイズは 1538 バイトまたは 1542 バイトです。ジャンボ フレームを許可する場合(プラットフォームでサポートされている場合)、パケット サイズはさらに大きくなる場合があります。

6.遅延はアプリケーションによって決まります。たとえば、VoIP のジッタを制御するには、20 ミリ秒を使用します。

プライオリティキューの設定

プライオリティキューを作成するには、次の手順に従います。


ステップ 1 プライオリティキューを作成するには、次のコマンドを入力します。

hostname(config)# priority-queue interface_name
 

interface_name 引数には、プライオリティキューをイネーブルにする物理インターフェイスの名前、または ASA 5505 の場合は VLAN インターフェイス名を指定します。


) 10 ギガビット イーサネット インターフェイスには、プライオリティキューを作成できません。高帯域幅のインターフェイスには、プライオリティ キューイングは必要ありません。


ステップ 2 (オプション)プライオリティキューのサイズを変更するには、次のコマンドを入力します。

hostname(config-priority-queue)# queue-limit number_of_packets
 

デフォルトのキューの制限は 1024 パケットです。キューは無限大ではないため、いっぱいになってオーバーフローすることがあります。キューがいっぱいになると、以降のパケットはキューに入ることができず、すべてドロップされます( テール ドロップ と呼ばれます)。キューがいっぱいになることを避けるには、 queue-limit コマンドを使用して、キューのバッファ サイズを大きくします。

number_of_packets の値を決定する方法については、「キューと TX リング制限の決定」を参照してください。

queue-limit コマンドの値の範囲の上限は、実行時に動的に決まります。この制限を表示するには、コマンドラインで queue-limit ? と入力します。主な決定要素は、キューのサポートに必要となるメモリと、デバイス上で使用可能なメモリの量です。

指定した queue-limit は、プライオリティの高い低遅延キューとベストエフォート キューの両方に適用されます。

ステップ 3 (オプション)プライオリティキューの深さを指定するには、次のコマンドを入力します。

hostname(config-priority-queue)# tx-ring-limit number_of_packets
 

デフォルトの tx-ring-limit は 128 パケットです。このコマンドは、イーサネット送信ドライバが受け入れる低遅延パケットまたは通常プライオリティ パケットの最大数を設定します。この制限に達すると、ドライバはパケットをインターフェイスのキューに差し戻し、輻輳が解消されるまでパケットをバッファに格納できるようにします。この設定により、ハードウェアベースの送信リングがプライオリティの高いパケットに対して制限以上の余分な遅延を発生させないことが保証されます。

number_of_packets の値を決定する方法については、「キューと TX リング制限の決定」を参照してください。

tx-ring-limit コマンドの値の範囲の上限は、実行時に動的に決まります。この制限を表示するには、コマンドラインで tx-ring-limit ? と入力します。主な決定要素は、キューのサポートに必要となるメモリと、デバイス上で使用可能なメモリの量です。

指定した tx-ring-limit は、プライオリティの高い低遅延キューとベストエフォート キューの両方に適用されます。


 

次の例は、デフォルトの queue-limit と tx-ring-limit を使用して、インターフェイス「outside」(GigabitEthernet0/1 インターフェイス)にプライオリティキューを構築します。

hostname(config)# priority-queue outside
 

次の例は、queue-limit を 260 パケット、tx-ring-limit を 3 に設定して、インターフェイス「outside」(GigabitEthernet0/1 インターフェイス)にプライオリティキューを構築します。

hostname(config)# priority-queue outside
hostname(config-priority-queue)# queue-limit 260
hostname(config-priority-queue)# tx-ring-limit 3

クラスマップを使用した QoS の対象にするトラフィックの特定

QoS はモジュラ ポリシー フレームワークの一部です。詳細については、「モジュラ ポリシー フレームワークの使用」を参照してください。モジュラ ポリシー フレームワークでは、QoS をイネーブルにするトラフィックをクラスマップで指定します。この項は、次の内容で構成されています。

「QoS クラスマップの作成」

「QoS クラスマップの例」

QoS クラスマップの作成

プライオリティ トラフィックの場合は、遅延が問題になるトラフィックだけを指定します。ポリシング トラフィックの場合は、他のすべてのトラフィックをポリシングすることも、トラフィックを特定のタイプに制限することもできます。トラフィック シェーピングの場合は、インターフェイスのすべてのトラフィックをシェーピングする必要があります。

QoS トラフィック用のクラスマップを作成する方法については、「トラフィックの特定(レイヤ 3/4 クラスマップ)」 class-map コマンドを参照してください。

トラフィックの照合は、アクセスリスト、トンネル グループ、DSCP、優先設定など、さまざまな特性に基づいて行うことができます。QoS 用のクラスマップの設定については、次のガイドラインを参照してください。

トラフィック シェーピングの場合は、 class-default クラスマップだけを使用できます。このクラスマップは適応型セキュリティ アプライアンスによって自動的に作成され、すべてのトラフィックを照合します。

プライオリティ トラフィックに対しては、 class-default クラスマップは使用できません。

階層型プライオリティ キューイングの場合、IPSec で暗号化されたパケットについては、DSCP または優先設定に基づく場合に限りトラフィックを照合できます。

階層型プライオリティ キューイングの場合、IPSec-over-TCP トラフィックはサポートされません。

QoS クラスマップの例

たとえば、次のシーケンスで、 class-map コマンドは tcp_traffic というアクセスリストを使用して、すべての非トンネル TCP トラフィックを分類します。

hostname(config)# access-list tcp_traffic permit tcp any any
hostname(config)# class-map tcp_traffic
hostname(config-cmap)# match access-list tcp_traffic
 

次の例では、より限定的な一致基準を使用して、特定のセキュリティ関連のトンネル グループにトラフィックを分類します。これらの特定の一致基準では、トラフィックが特定のトンネルに分類されるために、最初の一致特性としてトンネルグループ(この例では、すでに定義されている Tunnel-Group-1)に一致する必要があります。次に、別の照合行でトラフィックを分類できます(IP DiffServ コード ポイント、緊急転送)。

hostname(config)# class-map TG1-voice
hostname(config-cmap)# match tunnel-group tunnel-grp1
hostname(config-cmap)# match dscp ef
 

次の例では、 class-map コマンドはトンネル トラフィックと非トンネル トラフィックの両方をトラフィック タイプに従って分類します。

hostname(config)# access-list tunneled extended permit ip 10.10.34.0 255.255.255.0 20.20.10.0 255.255.255.0
hostname(config)# access-list non-tunneled extended permit tcp any any
hostname(config)# tunnel-group tunnel-grp1 type IPSec_L2L
 
hostname(config)# class-map browse
hostname(config-cmap)# description "This class-map matches all non-tunneled tcp traffic."
hostname(config-cmap)# match access-list non-tunneled
 
hostname(config-cmap)# class-map TG1-voice
hostname(config-cmap)# description "This class-map matches all dscp ef traffic for tunnel-grp 1."
hostname(config-cmap)# match dscp ef
hostname(config-cmap)# match tunnel-group tunnel-grp1
 
hostname(config-cmap)# class-map TG1-BestEffort
hostname(config-cmap)# description "This class-map matches all best-effort traffic for tunnel-grp1."
hostname(config-cmap)# match tunnel-group tunnel-grp1
hostname(config-cmap)# match flow ip destination-address
 

次の例は、クラス トラフィックがトンネルとして指定されておらず、トンネルを 通過する 場合に、トンネル内のフローをポリシングする方法を示します。この例では、192.168.10.10 がリモート トンネルのプライベート側のホスト マシンのアドレスで、アクセスリストの名前は「host-over-l2l」です。クラスマップ(名前は「host-specific」)を作成することによって、LAN-to-LAN 接続でトンネルを制御する前に、「host-specific」クラスをポリシングできます。この例では、トンネルの前で「host-specific」トラフィックのレートが制限され、次にトンネルのレートが制限されます。

hostname(config)# access-list host-over-l2l extended permit ip any host 192.168.10.10
hostname(config)# class-map host-specific
hostname(config-cmap)# match access-list host-over-l2l
 

次の例は、前の項で作成したコンフィギュレーションで構築されています。前の例と同様に、tcp_traffic と TG1-voice という 2 つのクラスマップがあります。

hostname(config)# class-map TG1-best-effort
hostname(config-cmap)# match tunnel-group Tunnel-Group-1
hostname(config-cmap)# match flow ip destination-address
 

第 3 のクラスマップを追加することで、次のように、トンネルおよび非トンネル QoS ポリシーを定義する基本が提供されます。トンネルおよび非トンネル トラフィックに対する単純な QoS ポリシーが作成され、クラス TG1-voice のパケットが低遅延キューに割り当てられ、tcp_traffic および TG1-best-effort フローにレート制限が設定されます。

標準プライオリティ キューイングおよびポリシング用のポリシーの作成

「クラスマップを使用した QoS の対象にするトラフィックの特定」でトラフィックを指定した後は、クラスマップのトラフィックに対して QoS アクション(および他の機能のアクション)を割り当てるポリシーマップを、特定のインターフェイスまたはすべてのインターフェイスに対して作成できます (他の機能については、「モジュラ ポリシー フレームワークの使用」を参照してください。この章では、QoS についてだけ説明します)。

同じポリシーマップ内の異なるクラスマップに対し、標準プライオリティ キューイングとポリシングを設定できます。有効な QoS 設定については、「QoS 機能の相互作用のしくみ」を参照してください。

ポリシーマップを作成するには、次の手順を実行します。


ステップ 1 ポリシーマップを追加または編集するには、次のコマンドを入力します。

hostname(config)# policy-map name
 

次に例を示します。

hostname(config)# policy-map QoS_policy
 

ステップ 2 プライオリティ キューイングを設定するには、次のコマンドを入力します。

hostname(config-pmap)# class priority_map_name
hostname(config-pmap-c)# priority
 

priority_map_name は、「クラスマップを使用した QoS の対象にするトラフィックの特定」で優先トラフィックに対して作成したクラスマップです。

次に例を示します。

hostname(config)# class-map priority-class
hostname(config-cmap)# match tunnel-group Tunnel-Group-1
hostname(config-cmap)# match dscp ef
 
hostname(config-cmap)# policy-map QoS_policy
 
hostname(config-pmap)# class priority_class
hostname(config-pmap-c)# priority
 

ステップ 3 ポリシングを設定するには、次のコマンドを入力します。

hostname(config-pmap)# class policing_map_name
hostname(config-pmap-c)# police {output | input} conform-rate [conform-burst] [conform-action [drop | transmit]] [exceed-action [drop | transmit]]
 

policing_map_name は、「クラスマップを使用した QoS の対象にするトラフィックの特定」で優先トラフィックに対して作成したクラスマップです。

conform-burst 引数は、持続したバーストで許可される瞬間的な最大バイト数を指定します。これを超えると、レート値に適応するためにトラフィックが抑制されます。値の範囲は 1000 ~ 512000000 バイトです。

conform-action キーワードは、レートが conform_burst の値より小さいときに実行するアクションを設定します。

conform-rate 引数は、このトラフィック フローのレート制限を設定します。値の範囲は 8000 ~ 2000000000 ビット/秒です。

drop キーワードはパケットをドロップします。

exceed-action キーワードは、レートが conform-rate の値と conform-burst の値の間にあるときに実行するアクションを設定します。

input キーワードは、入力方向のトラフィックのポリシングをイネーブルにします。

output キーワードは、出力方向のトラフィックのポリシングをイネーブルにします。

transmit キーワードはパケットを送信します。

次に例を示します。

hostname(config)# class-map policing-class
hostname(config-cmap)# match any
 
hostname(config-cmap)# policy-map QoS_policy
 
hostname(config-pmap)# class police_class
hostname(config-pmap-c)# police output 56000 10500
 

ステップ 4 1 つ以上のインターフェイスでポリシーマップをアクティブにするには、次のコマンドを入力します。

hostname(config)# service-policy policymap_name {global | interface interface_name}
 

ここで、 global はポリシーマップをすべてのインターフェイスに適用し、 interface は 1 つのインターフェイスに適用します。グローバル ポリシーは 1 つしか適用できません。インターフェイス サービス ポリシーは、特定の機能に対するグローバル サービス ポリシーより優先されます。たとえば、検査のグローバル ポリシーと、TCP 正規化のインターフェイス ポリシーがある場合、検査と TCP 正規化の両方がインターフェイスに適用されます。これに対し、検査のグローバル ポリシーと、検査のインターフェイス ポリシーがある場合は、インターフェイス ポリシーの検査だけがインターフェイスに適用されます。


 

この例では、tcp_traffic クラスのトラフィックの最大レートは 56,000 ビット/秒で、最大バースト サイズは 10,500 バイト/秒です。TC1-BestEffort クラスの最大レートは 200,000 ビット/秒で、最大バーストは 37,500 バイト/秒です。TC1-voice クラスのトラフィックは、プライオリティ クラスに属しているため、最大速度またはバースト レートでポリシングされません。

hostname(config)# access-list tcp_traffic permit tcp any any
hostname(config)# class-map tcp_traffic
hostname(config-cmap)# match access-list tcp_traffic
 
hostname(config)# class-map TG1-voice
hostname(config-cmap)# match tunnel-group tunnel-grp1
hostname(config-cmap)# match dscp ef
 
hostname(config-cmap)# class-map TG1-BestEffort
hostname(config-cmap)# match tunnel-group tunnel-grp1
hostname(config-cmap)# match flow ip destination-address
 
hostname(config)# policy-map qos
hostname(config-pmap)# class tcp_traffic
hostname(config-pmap-c)# police output 56000 10500
 
hostname(config-pmap-c)# class TG1-voice
hostname(config-pmap-c)# priority
 
hostname(config-pmap-c)# class TG1-best-effort
hostname(config-pmap-c)# police output 200000 37500
 
hostname(config-pmap-c)# class class-default
hostname(config-pmap-c)# police output 1000000 37500
 
hostname(config-pmap-c)# service-policy qos global

トラフィック シェーピングおよび階層型プライオリティ キューイング用のポリシーの作成

クラスマップのトラフィックに対して QoS アクション(および他の機能のアクション)を割り当てるポリシーマップを、特定のインターフェイスまたはすべてのインターフェイスに対して作成できます (他の機能については、「モジュラ ポリシー フレームワークの使用」を参照してください。この章では、QoS についてだけ説明します)。

インターフェイスのすべてのトラフィックにトラフィック シェーピングを設定でき、必要に応じて遅延が問題になるトラフィックのサブセットに階層型プライオリティ キューイングを設定できます。有効な QoS 設定については、「QoS 機能の相互作用のしくみ」を参照してください。

階層型プライオリティ キューイングを設定する場合は、最初に 「クラスマップを使用した QoS の対象にするトラフィックの特定」でトラフィックを指定します。トラフィック シェーピングは常に class-default クラスマップを使用し、このクラスマップは自動的に使用可能になります。


) プライオリティ キューイングには、パケットの並べ替えという副作用があります。IPSec パケットの場合、リプレイ攻撃防止ウィンドウ内にない異常なパケットに対しては、警告 syslog メッセージが生成されます。このような警告は、プライオリティ キューイングの場合は不正アラームです。不正アラームが発生しないように、IPSec のリプレイ攻撃防止ウィンドウのサイズを設定できます。『Cisco ASA 5500 Series Command Reference』の crypto ipsec security-association replay コマンドを参照してください。


ポリシーマップを作成するには、次の手順を実行します。


ステップ 1 (オプション)階層型プライオリティ キューイングの場合は、次のコマンドを入力して、クラスマップにプライオリティ キューイング アクションを適用するポリシーマップを作成します。

hostname(config)# policy-map name
hostname(config-pmap)# class priority_map_name
hostname(config-pmap-c)# priority
 

priority_map_name は、「クラスマップを使用した QoS の対象にするトラフィックの特定」で優先トラフィックに対して作成したクラスマップです。

次に例を示します。

hostname(config)# policy-map priority-sub-policy
hostname(config-pmap)# class priority-sub-map
hostname(config-pmap-c)# priority
 

ステップ 2 トラフィック シェーピング用のポリシーマップを追加または編集するには、次のコマンドを入力します。

hostname(config)# policy-map name
 

次に例を示します。

hostname(config)# policy-map shape_policy
 

ステップ 3 トラフィック シェーピングを設定するには、次のコマンドを入力します。

hostname(config-pmap)# class class-default
hostname(config-pmap-c)# shape average rate [burst_size]
 

average rate 引数は、特定の固定時間間隔に対するトラフィックの平均レートを 1 秒間のビット数で設定します。値の範囲は 64000 ~ 154400000 です。8000 の倍数の値を指定します。時間間隔を計算する方法の詳細については、「トラフィック シェーピングの概要」を参照してください。

burst_size 引数は、特定の固定時間間隔に送信できる平均バースト サイズをビット単位で指定します。値の範囲は 2048 ~ 154400000 です。128 の倍数の値を指定します。 burst_size を指定しない場合、デフォルト値は指定した平均レートでの 4 ミリ秒のトラフィックに相当する値になります。たとえば、平均レートが 1000000 ビット/秒の場合、4 ミリ秒では 1000000 * 4/1000 = 4000 になります。

指定できるのは class-default クラスマップだけです。適応型セキュリティ アプライアンスではトラフィック シェーピングの場合はすべてのトラフィックを照合する必要があるので、このクラスマップは match any と定義されています。

ステップ 4 (オプション)階層型プライオリティ キューイングを設定するには、次のコマンドを入力します。

hostname(config-pmap-c)# service-policy priority_policy_map_name
 

priority_policy_map_name は、ステップ 1で優先トラフィックに対して作成したポリシーマップです。

次に例を示します。

hostname(config)# policy-map priority-sub-policy
hostname(config-pmap)# class priority-sub-map
hostname(config-pmap-c)# priority
 
hostname(config-pmap-c)# policy-map shape_policy
hostname(config-pmap)# class class-default
hostname(config-pmap-c)# shape
hostname(config-pmap-c)# service-policy priority-sub-policy
 

ステップ 5 ポリシーマップをインターフェイスでアクティブにするには、次のコマンドを入力します。

hostname(config)# service-policy policymap_name interface interface_name
 

) グローバル ポリシーではトラフィック シェーピングを設定できません。



 

次の例では、外部インターフェイスでトラフィック シェーピングをイネーブルにし、トラフィックを 2 Mbps に制限しています。プライオリティ キューイングは、DSCP EF および AF13 でタグ付けされている VoIP トラフィックと、IKE トラフィックに対してイネーブルになっています。

hostname(config)# access-list ike permit udp any any eq 500
hostname(config)# class-map ike
hostname(config-cmap)# match access-list ike
 
hostname(config-cmap)# class-map voice_traffic
hostname(config-cmap)# match dscp EF AF13
 
hostname(config-cmap)# policy-map qos_class_policy
hostname(config-pmap)# class voice_traffic
hostname(config-pmap-c)# priority
hostname(config-pmap-c)# class ike
hostname(config-pmap-c)# priority
 
hostname(config-pmap-c)# policy-map qos_outside_policy
hostname(config-pmap)# class class-default
hostname(config-pmap-c)# shape average 2000000 16000
hostname(config-pmap-c)# service-policy qos_class_policy
 
hostname(config-pmap-c)# service-policy qos_outside_policy interface outside
 

QoS 統計情報の表示

この項は、次の内容で構成されています。

「QoS ポリシング統計情報の表示」

「QoS 標準プライオリティ統計情報の表示」

「QoS シェーピング統計情報の表示」

「QoS 標準プライオリティキュー統計情報の表示」

QoS ポリシング統計情報の表示

トラフィック ポリシングの QoS 統計情報を表示するには、 show service-policy コマンドと police キーワードを使用します。

hostname# show service-policy police
 

次に、 show service-policy police コマンドの出力例を示します。

hostname# show service-policy police
 
Global policy:
Service-policy: global_fw_policy
 
Interface outside:
Service-policy: qos
Class-map: browse
police Interface outside:
cir 56000 bps, bc 10500 bytes
conformed 10065 packets, 12621510 bytes; actions: transmit
exceeded 499 packets, 625146 bytes; actions: drop
conformed 5600 bps, exceed 5016 bps
Class-map: cmap2
police Interface outside:
cir 200000 bps, bc 37500 bytes
conformed 17179 packets, 20614800 bytes; actions: transmit
exceeded 617 packets, 770718 bytes; actions: drop
conformed 198785 bps, exceed 2303 bps
 

QoS 標準プライオリティ統計情報の表示

priority コマンドを実装するサービス ポリシーの統計情報を表示するには、 show service-policy コマンドと priority キーワードを使用します。

hostname# show service-policy priority
 

次に、 show service-policy priority コマンドの出力例を示します。

hostname# show service-policy priority
Global policy:
Service-policy: global_fw_policy
Interface outside:
Service-policy: qos
Class-map: TG1-voice
Priority:
Interface outside: aggregate drop 0, aggregate transmit 9383
 

) 「aggregate drop」は、このインターフェイスでの合計ドロップ数を示しています。「aggregate transmit」は、このインターフェイスで送信されたパケットの合計数を示しています。


QoS シェーピング統計情報の表示

shape コマンドを実装するサービス ポリシーの統計情報を表示するには、 show service-policy コマンドと shape キーワードを使用します。

hostname# show service-policy shape
 

次に、 show service-policy shape コマンドの出力例を示します。

hostname# show service-policy shape
Interface outside
Service-policy: shape
Class-map: class-default
Queueing
queue limit 64 packets
(queue depth/total drops/no-buffer drops) 0/0/0
(pkts output/bytes output) 0/0
 
shape (average) cir 2000000, bc 8000, be 8000
 

次に、 show service policy shape コマンドの出力例を示します。この例には、階層型プライオリティ ポリシーと関連する統計情報を呼び出す shape コマンドおよび service-policy コマンドを含むサービス ポリシーが含まれます。

hostname# show service-policy shape
 
Interface outside:
Service-policy: shape
Class-map: class-default
 
Queueing
queue limit 64 packets
(queue depth/total drops/no-buffer drops) 0/0/0
(pkts output/bytes output) 0/0
 
shape (average) cir 2000000, bc 16000, be 16000
Service-policy: voip
Class-map: voip
 
Queueing
queue limit 64 packets
(queue depth/total drops/no-buffer drops) 0/0/0
(pkts output/bytes output) 0/0
Class-map: class-default
 
queue limit 64 packets
(queue depth/total drops/no-buffer drops) 0/0/0
(pkts output/bytes output) 0/0
 

QoS 標準プライオリティキュー統計情報の表示

インターフェイスのプライオリティキュー統計情報を表示するには、特権 EXEC モードで show priority-queue statistics コマンドを実行します。ベストエフォート(BE)キューと低遅延キュー(LLQ)の両方の統計情報が表示されます。次の例に、test という名前のインターフェイスに対する show priority-queue statistics コマンドの使用方法とコマンド出力を示します。

hostname# show priority-queue statistics test
 
Priority-Queue Statistics interface test
 
Queue Type = BE
Packets Dropped = 0
Packets Transmit = 0
Packets Enqueued = 0
Current Q Length = 0
Max Q Length = 0
 
Queue Type = LLQ
Packets Dropped = 0
Packets Transmit = 0
Packets Enqueued = 0
Current Q Length = 0
Max Q Length = 0
hostname#
 

この統計情報レポートの項目の意味は、次のとおりです。

「Packets Dropped」は、このキューでドロップされたパケットの合計数を示します。

「Packets Transmit」は、このキューで送信されたパケットの合計数を示します。

「Packets Enqueued」は、このキューに入れられたパケットの合計数を示します。

「Current Q Length」は、このキューの現在の深さを示します。

「Max Q Length」は、このキューで発生した最大の深さを示します。