ASDM を使用した Cisco セキュリティ アプライアン ス コンフィギュレーション ガイド
QoS の設定
QoS の設定
発行日;2012/02/01 | 英語版ドキュメント(2011/03/03 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 19MB) | フィードバック

目次

QoS の設定

QoS の概要

サポートされる QoS の機能

トークン バケットとは

ポリシングの概要

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

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

QoS 機能の対話方法

DSCP と DiffServ の保持

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

標準プライオリティ キューイングまたはポリシング(あるいはその両方)のポリシーの作成

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

QoS の設定

これまでに、衛星回線を経由する長距離電話を利用した経験がありますか。そこでは、ほんのわずかな時間ですが知覚できる程度に会話が途切れるような、おかしな間隔でギャップが生じる場合があります。これらのギャップは、ネットワーク越しに送信されるパケットが到達する間の遅延と呼ばれる時間が原因です。ネットワーク トラフィックの中には、音声やビデオなど、長い遅延時間が許容されないものがあります。 Quality of Service (QoS)とは、重要なトラフィックを優先し、帯域幅の占有を防ぎ、パケット ドロップを防ぐためにネットワークのボトルネックを管理できる機能です。

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

「QoS の概要」

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

「標準プライオリティ キューイングまたはポリシング(あるいはその両方)のポリシーの作成」

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

QoS の概要

常に変化するネットワーク環境では、QoS は 1 回限り導入されるものではなく、ネットワーク設計の継続的で必要不可欠な要素です。


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


この項では、セキュリティ アプライアンスがサポートする QoS の機能を説明します。説明する内容は次のとおりです。

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

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

「ポリシングの概要」

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

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

「DSCP と DiffServ の保持」

サポートされる QoS の機能

セキュリティ アプライアンスでは、次の QoS 機能がサポートされます。

ポリシング:個別のフローがネットワーク帯域幅を占有しないように、フローごとに使用される最大帯域幅を制限できます。詳細については、「ポリシングの概要」を参照してください。

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

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

トークン バケットとは

トークン バケットは、フロー内のデータを調整するデバイスを管理するのに使用されます。たとえば、トラフィック ポリサーかトラフィック シェーパーがトラフィック調整機能を果たす場合があります。トークン バケット自体は廃棄ポリシーまたは優先順位ポリシーを持っていません。正確には、フローがトラフィック調整機能をオーバードライブさせた場合、トークン バケットによってトークンが破棄され、送信キューを管理する問題はフローに委ねられます。

トークン バケットとは、転送速度の公式定義の 1 つです。トークン バケットには、バースト サイズ、平均速度、および時間間隔という 3 つの構成要素があります。平均速度は、一般的に bps で表されますが、次に示す関係によって、3 番目の値からその他の 2 つの値が取得できます。

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

これらの用語は、次のように定義されます。

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

バースト サイズ:Committed Burst(Bc; 認定バースト)とも呼ばれ、スケジュールに不安を与えることなく特定の単位時間当たりに送信できるトラフィックの量を、バーストごとのビットまたはバイトで指定します (トラフィック シェーピングではビット/バーストを、トラフィック ポリシングではバイト/バーストを指定します)。

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

トークン バケットのメタファーでは、トークンはある一定のレートでバケットに補充されます。バケット自体には指定された容量があります。バケットの容量がいっぱいになると、新しく到達したトークンは廃棄されます。各トークンは、ある数のビットを送信するための発信元に対する権限に相当します。パケットを送信するには、トラフィック調整機能によって、パケット サイズと表現上等しい数のトークンをバケットから削除できる必要があります。

パケットを送信できるだけの十分なトークンがバケット内に存在しない場合、パケットは、バケットに十分な量のトークンが蓄積されるまで送信待ちの状態になるか(トラフィック シェーピングの場合)、廃棄またはマークダウンされます(ポリシングの場合)。バケットがすでにトークンでいっぱいの場合は、受信するトークンにはオーバーフローが発生し、以後のパケットはそれらのトークンを使用できません。したがって、発信元がネットワークに送信できる最大のバーストは常にバケットのサイズにほぼ比例します。

トラフィック シェーピングに使用されるトークン バケットのメカニズムには、トークン バケットとデータ バッファ(またはキュー、データ バッファがない場合はポリサー)の両方が含まれることに注意してください。トラフィック シェーピングでは、到達してもすぐに送信できないパケットは、データ バッファ内に滞ります。

トラフィック シェーピングでは、トークン バケットによりバースト性が許可されますが、それが抑制されます。バースト性が抑制されるので、トークン バケットの容量を時間間隔で割ったものに、トークン バケットにトークンが配置される確立速度を足した値よりも高速にフローが送信することはありません。次の式を参照してください。

(トークン バケットの容量(ビット) / 時間間隔(秒)) + 確立速度(bps) = 最大フロー速度(bps)

また、バースト性を抑制するこの方法により、長期の送信速度が、トークンがバケットに配置される確立速度を超えないことが保証されます。

ポリシングの概要

ポリシングとは、設定した最大速度(bps)をトラフィックが超えないようにすることで、1 つのトラフィック フローまたはクラスがリソース全体を占有しないようにするための方法の 1 つです。トラフィックが最大速度を超えると、セキュリティ アプライアンスは超過したトラフィックをドロップします。さらにポリシングは、トラフィックで許可される最大の単一バーストも設定します。

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

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

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

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

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

優先パケットは、常にシェープ キューの先頭に入れられるので、その他の非優先パケットよりも、常に先に送信されます。

優先パケットは、優先トラフィックの持続速度がシェープ速度を超えない限り、シェープ キューからドロップされることはありません。

IPSec 暗号化パケットでは、DSCP または優先順位設定に基づいてだけトラフィックに照合できます。

優先トラフィックの分類には、IPSec-over-TCP はサポートされていません。

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

トラフィック シェーピングは、デバイスとリンク速度を一致させることで、ジッタと遅延の原因となるパケット ロス、可変遅延、およびリンク飽和を制御できます。

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

トラフィック シェーピングは、インターフェイス上でパケットの送信準備ができている場合に、IPSec ヘッダーや L2 ヘッダーのような、考えられるすべてのオーバーヘッドを含む、送信されるパケットの実際のサイズに基づいて速度計算が実施されるように実行されます。

シェーピングされたトラフィックには、ボックスを通過するトラフィックとボックスからのトラフィックの両方が含まれます。

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

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

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

キューの制限に到達すると、パケットはテール ドロップされます。

OSPF Hello パケットなどの特定の重要なキープアライブ パケットがドロップされることはありません。

時間間隔は、 時間間隔 = バースト サイズ / 平均速度 から取得されます。時間間隔が長ければ長いほど、シェーピングされたトラフィックのバースト性は大きくなり、リンクのアイドル時間が長くなります。その効果は、次の誇張された例を使用すると最もよく理解できます。

平均速度 = 1000000

バースト サイズ = 1000000

上記の例では、時間間隔は 1 秒になります。これは、1 Mbps のトラフィックを 100 Mbps FE リンク上の 1 秒間隔の初めの 10 ミリ秒以内でバーストでき、残りの 990 ミリ秒は次の間隔が来るまでパケットを送信できないようなアイドル状態になることを意味します。そのため、たとえば音声トラフィックなどの遅延に影響されるトラフィックがある場合、時間間隔を減少させるために、平均速度と比較してバースト サイズを減少させる必要があります。

QoS 機能の対話方法

セキュリティ アプライアンス用にそれぞれの QoS 機能を独自に設定できます。ただし、たとえば特定のトラフィックを優先させたり、他のトラフィックが帯域幅に関する問題を生じないようにしたりするために、セキュリティ アプライアンスで複数の QoS 機能を設定することがよくあります。

次に挙げる、インターフェイスごとにサポートされる機能の組み合せを参照してください。

標準プライオリティ キューイング(特定のトラフィック用) + ポリシング(残りのトラフィック用)

プライオリティ キューイングとポリシングを同一のトラフィック セットに設定できません。

トラフィック シェーピング(インターフェイス上の全トラフィック用) + 階層プライオリティ キューイング(トラフィックのサブセット用)

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

一般的には、トラフィック シェーピングをイネーブルにする場合、セキュリティ アプライアンスで設定が制限されているわけではありませんが同じトラフィックに対してポリシングもイネーブルにすることはありません。

DSCP と DiffServ の保持

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

セキュリティ アプライアンスが分類されたトラフィックをローカルでマーキングまたは再マーキングすることはありませんが、全パケットの Expedited Forwarding(EF) DSCP ビットを受け取って「プライオリティ」処理が必要かを判断し、それらのパケットを LLQ に送信します。

搬送中に QoS が適用されるように、パケットがサービス プロバイダーのバックボーンを通過する際に、パケット上の DiffServ マーキングが保持されます(QoS tunnel pre-classification)。

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

物理インターフェイスでトラフィック用に標準プライオリティ キューイングをイネーブルにする場合、インターフェイスごとにプライオリティ キューを作成する必要があります。それぞれの物理インターフェイスでは、プライオリティ トラフィック用とその他のトラフィック用に 2 つのキューが使用されます。その他のトラフィックには、オプションでポリシングを設定できます。


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


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


ステップ 1 [Configuration] > [Device Management] > [Advanced] > [Priority Queue] に移動し、 [Add] を追加します。

[Add Priority Queue] ダイアログボックスが表示されます。

ステップ 2 [Interface] ドロップダウン リストから、プライオリティ キューをイネーブルにする物理インターフェイス名を選択します(ASA 5505 の場合は、VLAN インターフェイス名)。

ステップ 3 プライオリティ キューのサイズを変更するには、[Queue Limit] フィールドに、指定したインターフェイスが 500 ミリ秒の間隔で送信できる 256 バイトの平均パケット数を入力します。

ネットワーク ノードに 500 ミリ秒よりも長く留まるパケットは、エンドツーエンド アプリケーションでタイムアウトをトリガする可能性があります。そのようなパケットは、各ネットワーク ノードで破棄できます。

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

このオプションの範囲の上限値は実行時に動的に決まります。主な決定要素は、キューのサポートに必要となるメモリと、デバイス上で使用可能なメモリの量です。

キューの制限を指定すると、優先順位の高い低遅延のキューとベストエフォート キューの両方に影響が及びます。

ステップ 4 プライオリティ キューの深さを指定するには、[Transmission Ring Limit] フィールドに、指定したインターフェイスが 10 ミリ秒の間隔で送信できる 1550 バイトの最大パケット数を入力します。

この設定により、ハードウェア ベースの伝送リングが優先順位の高いパケットに課す余分な遅延が 10 ミリ秒を超えないことが保証されます。

このオプションは、Ethernet 伝送ドライバに送ることができる低遅延または通常プライオリティのパケットの最大数を設定します。この最大数を超えると、Ethernet 伝送ドライバがインターフェイスのキューにパケットを押し戻し、輻輳が解消されるまでパケットをキューにバッファします。

範囲の上限値は実行時に動的に決まります。主な決定要素は、キューのサポートに必要となるメモリと、デバイス上で使用可能なメモリの量です。

伝送リング制限の制限値を指定すると 優先順位の高い低遅延のキューとベストエフォート キューの両方に影響が及びます。


 

標準プライオリティ キューイングまたはポリシング(あるいはその両方)のポリシーの作成

標準プライオリティ キューイングとポリシング ルールを同一のインターフェイスに設定できます。有効な QoS 設定については、「QoS 機能の対話方法」を参照してください。

QoS サービス ポリシーを設定するには、次の手順を実行します。


ステップ 1 プライオリティ キューイングを設定するには、「サービス ポリシー ルールの設定」に従って [Configuration] > [Firewall] > [Service Policy Rules] ペインでサービス ポリシー ルールを設定します。

新しいサービス ポリシー ルールの一部として QoS を設定できます。または、既存のサービス ポリシーを編集することもできます。

プライオリティ トラフィックには、遅延に影響されるトラフィックだけを識別します。アクセス リスト、トンネル グループ、DSCP、優先順位などのさまざまな特徴に基づいてトラフィックを照合できます。プライオリティ トラフィックには、 class-default クラス マップは使用できません。いずれかのインターフェイスでトラフィック シェーピングもイネーブルにしている場合は、グローバル ポリシー用のプライオリティ キューイングの設定もできません。

ステップ 2 [Rule Actions] ダイアログボックスで、 [QoS] タブをクリックします。

ステップ 3 [Enable priority for this flow] をクリックします。

このサービス ポリシー ルールが個別のインターフェイス用の場合は、ASDM は自動的にインターフェイス用にプライオリティ キューを自動的に作成します([Configuration] > [Properties] > [Priority Queue]、詳細については、「インターフェイスの標準プライオリティ キューの作成」を参照してください)。このルールがグローバル ポリシー用の場合は、サービス ポリシー ルールを設定する に、1 つ以上のインターフェイスにプライオリティ キューを手動で追加する必要があります。

ステップ 4 [Finish] をクリックします。サービス ポリシー ルールがルール テーブルに追加されます。

ステップ 5 ポリシングを設定するには、「サービス ポリシー ルールの設定」に従って [Configuration] > [Firewall] > [Service Policy Rules] ペインで同じインターフェイスのサービス ポリシー ルールを設定します。

ポリシング トラフィックに関しては、優先していない全トラフィックをポリシングするように選択するか、トラフィックを一定の種類に制限できます。

ステップ 6 [Rule Actions] ダイアログボックスで、 [QoS] タブをクリックします。

ステップ 7 指定したタイプのトラフィック ポリシングをイネーブルにするには、 [Enable policing] をクリックして、 [Input policing] または [Output policing] (または両方の)チェックボックスをオンにします。トラフィック ポリシングのタイプごとに、次のフィールドを設定します。

[Committed Rate]:このトラフィック フローのレート制限。これは、8000 ~ 2000000000 の範囲の値で、許容最大速度(bps)を指定します。

[Conform Action]:レートが適合バースト値未満の場合に実行するアクション。値は、transmit または drop です。

[Exceed Action]:レートが適合レート値と適合バースト値の間になっている場合に、このアクションを実行します。値は、transmit または drop です。

[Burst Rate]:1000 ~ 512000000 の範囲の値で、適合レート値までトラフィックを抑制するまでに、持続したバーストにおいて許可される瞬間的なバイト数を指定します。

ステップ 8 [Finish] をクリックします。サービス ポリシー ルールがルール テーブルに追加されます。

ステップ 9 [Apply] をクリックしてコンフィギュレーションをデバイスに送信します。


 

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

あるインターフェイス上の全トラフィック用にトラフィック シェーピングを設定したり、遅延に影響されるトラフィックのサブセット用にオプションで階層プライオリティ キューイングを設定したりできます。有効な QoS 設定については、「QoS 機能の対話方法」を参照してください。


) プライオリティ キューイングの 1 つの副作用は、パケットの並べ替えです。IPSec パケットでは、アンチ リプレイ ウィンドウ内にない異常なパケットが syslog の警告メッセージを生成します。これらの警告は、プライオリティ キューイングの場合は誤報です。誤報の可能性を避けるために、IPSec アンチ リプレイ ウィンドウのサイズを設定できます。「[Adding Crypto Maps]」の中の [Configuration] > [VPN] > [IPSec] > [IPSec Rules] > [Enable Anti-replay window size] オプションを参照してください


QoS サービス ポリシーを設定するには、次の手順を実行します。


ステップ 1 [Configuration] > [Firewall] > [Service Policy Rules] ペインで、「サービス ポリシー ルールの設定」に従ってサービス ポリシーを設定します。

新しいサービス ポリシー ルールの一部として QoS を設定できます。または、既存のサービス ポリシーを編集することもできます。

トラフィック シェーピングでは、あるインターフェイス上の全トラフィックはシェーピングされる必要があります。セキュリティ アプライアンスによって自動的に作成され、全トラフィックを照合する class-default クラス マップだけを使用できます。

プライオリティ キューイング ルールの設定対象である同じインターフェイスには、異なるトラフィック シェーピング ルールを設定できません(「標準プライオリティ キューイングまたはポリシング(あるいはその両方)のポリシーの作成」を参照)。ただし、トラフィック シェーピング ルールに従って、シェーピングされたトラフィックのサブセットのプライオリティ キューイングは設定できます。いずれかのインターフェイスでプライオリティ キューイングもイネーブルにしている場合は、グローバル ポリシー用のトラフィック シェーピングの設定もできません。

ステップ 2 [Rule Actions] ダイアログボックスで、 [QoS] タブをクリックします。

ステップ 3 [Enable traffic shaping] をクリックし、次のフィールドを設定します。

[Average Rate]:一定の期間にわたるトラフィックの平均速度を 64000 ~ 154400000 bps の間で設定します。指定する値は、8000 の倍数になるようにしてください。

[Burst Size]:一定の期間にわたって送信が可能なトラフィックの平均バースト サイズを 2048 ~ 154400000 bps の間で設定します。指定する値は、128 の倍数になるようにしてください。バースト サイズを指定しないと、デフォルト値は指定した平均速度でのトラフィックの 4 ミリ秒に相当する値になります。たとえば、平均速度が 1000000 bps の場合、4 ミリ秒に相当する値 = 1000000 * 4/1000 = 4000 となります。

ステップ 4 (オプション)シェーピングされたトラフィックのサブセットにプライオリティ キューイングを設定するには、次の手順に従います。

a. [Enforce priority to selected shape traffic] をクリックします。

b. [Configure] をクリックし、優先するトラフィックを特定します。

プライオリティ キューイングを適用するトラフィックを特定するように要求されます。

c. トラフィックを特定したら(「通過トラフィックのサービス ポリシー ルールの追加」を参照)、 [Next] をクリックします。

d. [Enable priority for this flow] をクリックします。

e. [Finish] をクリックします。

[QoS] タブに戻ります。


) この種類のプライオリティ キューイングに関しては、インターフェイスでプライオリティ キューを作成する必要はありません[Configuration] > [Properties] > [Priority Queue])。


ステップ 5 [Finish] をクリックします。サービス ポリシー ルールがルール テーブルに追加されます。

ステップ 6 [Apply] をクリックしてコンフィギュレーションをデバイスに送信します。