Cisco Security Appliance コマンド ライン コンフィギュレーション ガイド Version 7.0(4)
QoS ポリシーの適用
QoS ポリシーの適用
発行日;2012/01/08 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 5MB) | フィードバック

目次

QoS ポリシーの適用

概要

QoS の概念

QoS の対象にするトラフィックの特定

QoS 用のトラフィックの分類

QoS ポリシーマップの定義

レート制限の適用

トラフィックポリシング コンフィギュレーションの確認

QoS 統計情報の確認

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

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

サービス ポリシーのアクティブ化

低遅延キューイングの適用

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

プライオリティキューのサイズの変更

キュー遅延の低減

QoS 統計情報の表示

インターフェイスのプライオリティキュー コンフィギュレーションの表示

概要

衛星接続を使用した長距離電話では、会話が、短い間ですが認識できる程度に途切れて、不定期に中断されることがあります。このような中断は、ネットワークで送信されるパケットが到着する間隔の時間で、 遅延 と呼ばれます。音声やストリーミング ビデオなどのネットワーク トラフィックでは、長時間の遅延は許容されません。 Quality of Service QoS )は、このようなトラフィックの優先順位を上げることができるネットワーク機能です。

ユーザのインターネット コミュニティのアクセス ポイントが、モデムから DSL やケーブルなどの高速ブロードバンド接続にアップグレードしたことにより、1 人のユーザが、すべてではないにしても、利用可能な帯域幅のほとんどを消費し、他のユーザが使用する帯域幅が欠乏する可能性が高まっています。ユーザまたはサイトツーサイトの接続が適切な割り当て分を超えて帯域幅を消費しないように、QoS は、ユーザが使用できる最大帯域幅を管理するポリシング機能を提供します。

QoS は、基盤となるテクノロジーの限られた帯域幅で全体的に最良のサービスを実現するさまざまなテクノロジーを通じて、特定のネットワーク トラフィックに、より良いサービスを提供するネットワークの機能を指します。

セキュリティ アプライアンスでの QoS の主要目的は、個別のフローまたは VPN トンネル フローの両方で、特定のネットワーク トラフィックのレートを制限し、限られた帯域幅の中ですべてのトラフィックが適切な割り当て分を得ることができるようにすることです。


) フローは、多くの方法で定義できます。セキュリティ アプライアンスでは、送信元 IP アドレスと宛先 IP アドレスの組み合せ、送信元ポート番号と宛先ポート番号の組み合せ、および IP ヘッダーの TOS バイトに QoS を適用できます。


QoS の概念

QoS は、ネットワーク トラフィックの種類とそのトラフィックに割り当てた優先順位に基づいて、ミッションクリティカルなデータと通常のデータの両方にネットワーク リソースを割り当てることができるトラフィック管理戦略です。簡単に言えば、QoS はプライオリティ トラフィックの円滑さを保証し、デフォルト トラフィックのレート制限(ポリシング)機能を提供します。

たとえば、転送メカニズムとしてインターネットというインフラストラクチャを使用している地理的に離れたサイト間でのオフィス間通信にとって、Video および Voice over IP(VoIP)はますます重要になっています。ファイアウォールはアクセスを制御することによってネットワークを安全にする鍵であり、VoIP プロトコルの検査も行います。QoS は、デバイスを通過するその他のすべてのトラフィックに対して基本レベルのサービスを提供しながら、明瞭で中断されない音声およびビデオ通信を提供することに焦点を置いています。

セキュアで信頼性が高く、費用効果の高い方法で音声およびビデオが IP ネットワークを通過できるように、ネットワークのすべてのポイントで QoS をイネーブルにする必要があります。QoS を実装すると、次のことができるようになります。

ネットワーク オペレーションの単純化。 類似のテクノロジーを使用して、すべてのデータ、音声、およびビデオのネットワーク トラフィックを 1 つのバックボーンにまとめることができます。

新しいネットワーク アプリケーションのイネーブル化。 統合コール センタ アプリケーションやビデオベースのトレーニングなどによって、それぞれの市場で企業価値を高め、生産性を上げることができます。

リソースの使用率の制御。どのトラフィックがどのリソースを受け取るかを制御できます。たとえば、最も重要で時間の問題が大きいトラフィックは、必要なだけのネットワーク リソース(利用可能な帯域幅と最小の遅延)を受け取り、リンクを使用するその他のアプリケーションは、ミッションクリティカルなトラフィックを妨害せずに適正なサービスの割り当て分を使用するようにできます。

QoS は、個々のユーザ トンネルおよびサイトツーサイト トンネルごとに、トンネル トラフィックに対して最大レート制御(ポリシング)を提供します。このリリースでは、最低帯域幅の保証はありません。

セキュリティ アプライアンスで、LAN-to-LAN トンネル内の個々のユーザ トラフィックをポリシングするには、トンネルに関連付けるのではなく、最終的にトラフィックが LAN-to-LAN トンネルを通過するようなクラスマップを設定します。その後、LAN-to-LAN トンネルの前のトラフィックは、トンネルを通過するときに個別のポリシングが可能になり、トンネルに適用される集約レートで再びポリシングされます。

セキュリティ アプライアンスは、Low-Latency Queue(LLQ; 低遅延キュー)とデフォルト キューの 2 種類のトラフィック キューを使用して QoS を実現します。デフォルト トラフィックだけが、レート制限の対象になります。

QoS は大量のリソースを消費し、セキュリティ アプライアンスのパフォーマンスを低下させることがあるため、QoS はデフォルトでディセーブルになっています。


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


QoS の対象にするトラフィックの特定

セキュリティ アプライアンスでは、分類ポリシーの指定(トラフィック クラスの定義)は、分類の結果に基づいて動作するポリシーの指定とは区別されています。

一般的に、QoS ポリシーをプロビジョニングするには、次の手順が必要です。

1. トラフィック クラスを指定します。

2. アクションをトラフィック クラスに関連付けて、ポリシーを形成します。

3. ポリシーをアクティブにします。

トラフィック クラス は、パケットの内容で識別可能なトラフィックのセットです。たとえば、ポートの値が 23 の TCP トラフィックは、Telnet トラフィック クラスに分類できます。

アクション は、情報またはリソースを保護するために実行される特定の動作です。ここでは、QoS 機能が実行されます。アクションは通常、特定のトラフィック クラスに関連付けられます。

セキュリティ アプライアンスの慣例的な QoS ポリシーの設定は、次の手順で構成されます。

トラフィック クラスを定義します( class-map コマンド)。

ポリシーとアクションを各トラフィック クラスに関連付けます( policy-map コマンド)。

ポリシーを論理インターフェイスまたは物理インターフェイスに関連付けます( service-policy コマンド)。

class-map コマンドは、トラフィックのクラスを表す名前付きオブジェクトを定義し、このクラスに属するパケットを識別する基準に一致するパケットを指定します。コマンドの基本形式は次のとおりです。

class-map class-map-name-1
match match-criteria-1
class-map class-map-name-n
match match-criteria-n
 

policy-map コマンドは、トラフィック クラスのセットに適用するポリシーのセットを表す名前付きオブジェクトを定義します。このようなポリシーの例として、ある最大レートへのトラフィック クラスのポリシングがあります。コマンドの基本形式は次のとおりです。

policy-map policy-map-name
class class-map-name-1
policy-1
policy-n
class class-map-name-n
policy-m
policy-m+1
 

service-policy コマンドは、ポリシーマップとそれに関連付けられているポリシーを、対象の名前付きインターフェイスに関連付けます。


) policy-map-name の下の QoS レート ポリシーは、名前付きインターフェイスの出力トラフィックにのみ適用され、入力トラフィックには適用されません。


このコマンドでは、対象から着信するパケットにポリシーを適用するか、または対象に送信されるパケットにポリシーを適用するかについても指定します。たとえば、出力ポリシー(インターフェイスから出るパケットに適用)は、次のように適用されます。

interface GigabitEthernet0/3
service-policy output policy-map-name
 

また、プライオリティ トラフィックとベストエフォート トラフィックを区別する場合は、低遅延キューを定義する必要があります( priority-queue コマンド)。

次の例は、デフォルトのプライオリティキューをデフォルトの queue-limit と tx-ring-limit でイネーブルにします。

priority-queue name-interface
 

次の項で、これらの使用方法を詳しく説明します。

QoS 用のトラフィックの分類

class-map コマンドは、QoS アクションが関連付けられているトラフィックのセットを分類します。さまざまな種類の一致基準を使用して、トラフィックを分類できます。 match コマンドで、クラスマップのトラフィック クラスに含まれるトラフィックを指定します。これらのコマンドは、クラスマップに含まれるトラフィックを定義するためのさまざまな基準を保持しています。トラフィック クラスは、モジュラ ポリシー フレームワークを使用したセキュリティ機能を設定するときに、その一環として class-map グローバル コンフィギュレーション コマンドを使用して定義します。クラスマップ コンフィギュレーション モードから、 match コマンドを使用して、クラスに含めるトラフィックを定義できます。

トラフィック クラスをインターフェイスに適用すると、そのインターフェイス上で受信したパケットは、クラスマップの match 文で定義した基準と比較されます。指定した基準にパケットが一致すると、パケットはトラフィック クラスに包含され、そのトラフィック クラスに関連付けられているアクションの対象になります。どのトラフィック クラスのどの基準にも一致しないパケットは、デフォルトのトラフィック クラスに割り当てられます。

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

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

パケットをクラスマップと照合したとき、結果は一致または不一致です。

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

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

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

hostname# access-list tunneled extended permit ip 10.10.34.0 255.255.255.0 20.20.10.0 255.255.255.0
hostname# access-list non-tunneled extended permit tcp any any
hostname# tunnel-group tunnel-grp1 type IPSec_L2L
 
hostname# 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
hostname(config-cmap)# exit
hostname(config)#
 

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

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

次の表に、使用可能で QoS に関係がある match コマンドの基準をまとめます。すべての match コマンドとそのシンタックスの完全なリストについては、『 Cisco Security Appliance Command Reference 』を参照してください。

 

コマンド
説明

match access-list

名前または番号によって、クラスマップ内のアクセスリスト トラフィックと照合します。

match any

クラスマップ中の任意の基準に一致するトラフィックを識別します。

match dscp

クラスマップ中の IETF 定義の DSCP 値(IP ヘッダー内)を照合します。最大 64 の異なる dscp 値を指定し、指定した値のいずれかと一致するパケットで構成されたクラスを定義できます。

match flow ip destination-address

フローベースのポリシー アクションをイネーブルにします。フローを定義する基準は、宛先 IP アドレスです。一意の IP 宛先アドレスに向かうトラフィックは、すべてフローと見なされます。ポリシーのアクションは、トラフィック クラス全体ではなく各フローに適用されます。このコマンドは常に、 match tunnel group を伴います。リモートアクセス VPN の場合、このコマンドは、各リモートアクセス ホスト フローに適用されます。LAN-to-LAN VPN の場合、このコマンドは、ローカルとリモートのトンネル アドレスのペアで識別される 1 つの集約 VPN フローに適用されます。

match port

このインターフェイスで受信したパケットの比較基準として、TCP/UDP ポートを指定します。

match precedence

IP ヘッダーの TOS バイトで表された優先値を照合します。最大 8 の異なる優先値を指定し、指定した値のいずれかと一致するパケットで構成されたクラスを定義できます。

match rtp

指定された範囲内の特定の RTP ポートを使用するトラフィックが一致します。許可される範囲は、RTP を使用すると考えられるアプリケーションの取得の対象です。パケットは、UDP ポートが指定された範囲内にあり(両端の値を含む)、ポート番号が偶数の場合にのみ、定義されたクラスに一致します。

match tunnel group

指定されたトンネルグループ内のすべてのトンネルが一致します。

ユーザ定義のクラスに加え、class-default というシステム定義のクラスもあります。この class-default は、どのユーザ定義クラスとも一致しないすべてのパケットを表すため、このようなパケットにポリシーを定義できます。

QoS ポリシーマップの定義

policy-map コマンドは、セキュリティ ポリシーや QoS ポリシーなど、さまざまなポリシーを設定します。ポリシーは、 class コマンドで指定されたトラフィック クラスと 1 つ以上のアクションとの関連付けです。この項では、特に policy-map コマンドを使用して 1 つ以上のパケットのクラスに QoS ポリシーを定義する方法について説明します。

policy-map コマンドを入力すると、ポリシーマップ コンフィギュレーション モードに移行し、プロンプトが変化します。このモードでは、 class コマンドと description コマンドを入力できます。 policy-map コマンドでは、複数のポリシーを指定できます。ポリシーマップの最大数は 64 です。

policy-map コマンドを入力した後、 class コマンドを入力して、パケット トラフィックの分類を指定します。 class コマンドは、指定されたクラスマップで指定されているトラフィックのクラスの QoS ポリシーを設定します。トラフィック クラスは、パケットの内容で識別可能なトラフィックのセットです。たとえば、ポートの値が 23 の TCP トラフィックは、Telnet トラフィック クラスに分類できます。 class コマンドは、以前指定して構築したクラスマップ指定で区別され、関連付けるアクションが直後に付きます。

セキュリティ アプライアンスは、ポリシーマップ コンフィギュレーションで入力された順に、クラスマップを評価します。パケットは、一致した最初のクラスマップに分類されます。


) ポリシーマップの各種のアクションが実行される順序は、このマニュアルのコマンド説明で出現する順序とは無関係です。


priority コマンドは、音声など遅延が問題になるトラフィックに、低遅延キューイングを提供します。このコマンドは、関連付けられたクラス(前の例では、TG1-voice)と一致するすべてのパケットを選択し、プライオリティ処理のために低遅延キューに送信します。

レート制限の適用

各ユーザの Bandwidth Limiting Traffic ストリーム(BLT)は、最大帯域幅制限(つまり、個別のユーザのデフォルト トラフィックを一定の最大レートにレート制限する厳密なポリシング)に参加できます。これによって、あるユーザの BLT によって他のユーザが圧迫されることを防ぎます。ただし、LLQ トラフィックは、プライオリティキューのダウンストリームでマークされ、処理されます。このトラフィックは、レート制限されません。

ポリシングは、設定した最大レート(ビット/秒)を超えるトラフィックが発生しないようにして、1 つのトラフィック フローが全体のリソースを占有しないようにする方法です。 police コマンドを使用して、最大レート(このトラフィック フローのレート制限)を指定します。 この値は、8000 ~ 2000000000 の範囲で、許可される最大速度(1 秒あたりの ビット )を指定します。

制限内のトラフィックと制限を超えたトラフィックに対して実行するアクション(ドロップまたは送信)も指定します。


) ドロップ アクションは指定できますが、機能しません。レートを超えた場合を除き、アクションは常に送信です。レートを超えた場合でも、アクションは、許可される最大速度へのトラフィックの抑制です


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


) ポリシングは、出力方向にのみ適用されます。


優先順位とポリシングを、両方ともイネーブルにすることはできません。

既存の VPN クライアント トラフィック、LAN-to-LAN トラフィック、または非トンネル トラフィックが確立されているインターフェイスを対象として、サービス ポリシーを適用または削除した場合、QoS ポリシーは適用されず、トラフィック ストリームから削除されません。このような接続を対象として QoS ポリシーを適用または削除するには、接続を消去(ドロップ)して再確立する必要があります。


) デフォルト クラスマップの class-default でポリシングを指定すると、LAN-to-LAN VPN のトンネルグループに定義された police コマンドがない場合に、集約された LAN-to-LAN VPN フローに class-default のポリシング値が適用されます。つまり、class-default のポリシング値は、暗号化前に存在する LAN-to-LAN VPN の個別のフローには適用されません。


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

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

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


) 「ベストエフォート」は、信頼性の高いパケット配信を保証せず、高度な確認応答システムを使用しません。ただし、宛先にパケットを配信するために「最善の努力(ベストエフォート)」をします。


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

hostname# policy-map qos
hostname (config-pmap)# class tcp_traffic
hostname (config-pmap-c)# police outside 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 outside 200000 37500
hostname (config-pmap-c)# class class-default
hostname (config-pmap-c)# police outside 1000000 37500

) 最大 256 のポリシーマップを使用でき、1 つのポリシーマップで最大 256 のクラスを使用できます。すべてのポリシーマップのクラスを合計した最大数は、256 です。トンネル クラスを除き、1 つのクラスマップに関連付けることができる match 文は 1 つだけです。トンネル クラスの場合、追加の match tunnel-group 文が許可されます。



) クラス class-default は、常に存在します。宣言する必要はありません。


トラフィックポリシング コンフィギュレーションの確認

インターフェイスでトラフィックポリシング機能が設定されていることを確認するには、特権 EXEC モードで次のコマンドを実行します。

hostname# show running-config policy-map
 

このコマンドは、設定されているすべてのトラフィック ポリシーを表示します。前の例の場合、次のような結果が得られます。

hostname# show running-config policy-map
!
policy-map test
class class-default
policy-map inbound_policy
class ftp-port
inspect ftp strict inbound_ftp
policy-map qos
class browse
police 56000 10500
class TG1-voice
priority
class TG1-BestEffort
police 200000 37500

QoS 統計情報の確認

QoS 統計情報を表示するには、show service-policy コマンドと適切なキーワード(トラフィック ポリシング統計情報を表示する場合は police、QoS プライオリティキュー統計情報を表示する場合は priority)を使用します。

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

トラフィック ポリシングに関する QoS 統計情報を表示するには、特権 EXEC モードで次のコマンドを実行します。

hostname# show service-policy police
 

このコマンドは、QoS ポリシング統計情報を表示します。次に例を示します。

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 プライオリティキュー統計情報の表示

QoS プライオリティキュー統計情報を表示するには、特権 EXEC モードで次のコマンドを実行します。

hostname# show service-policy priority
 

このコマンドは、QoS プライオリティキュー統計情報を表示します。次に例を示します。

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」は、このインターフェイスで送信されたパケットの合計数を示しています。


サービス ポリシーのアクティブ化

service-policy コマンドは、 policy-map コマンドをすべてのインターフェイスでグローバルにアクティブにするか、または対象のインターフェイスでアクティブにします。インターフェイスは、仮想(vlan)インターフェイスまたは物理インターフェイスです。グローバル ポリシーマップは 1 つしか適用できません。キーワード interface とインターフェイス名を指定すると、ポリシーマップはそのインターフェイスにのみ適用されます。インターフェイス ポリシーマップはグローバル ポリシーマップを上書きします。1 つのインターフェイスに適用できるポリシーマップは 1 つだけです。通常、 service-policy コマンドは、 nameif コマンドで定義できる任意のインターフェイスに適用できます。

前の項のポリシーマップの例を使用して、次の service-policy コマンドで、前の項で外部インターフェイスのトラフィックに定義したポリシーマップ「qos」をアクティブにします。

hostname# service-policy qos interface outside

低遅延キューイングの適用

セキュリティ アプライアンスでは、2 つのクラスのトラフィックを使用できます。優先順位が高く、遅延が問題になるトラフィック(音声やビデオなど)には、低遅延キューイング(LLQ)を使用し、その他のすべてのトラフィックには、デフォルトのベストエフォートを使用します。これらの 2 つのキューは、システムに組み込まれています。セキュリティ アプライアンスは、QoS プライオリティ トラフィックを認識し、適切な QoS ポリシーを適用します。

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

低遅延(プライオリティ)キューを設定して、送信キューに入れることができるパケットの最大数を調整したり( tx-ring-limit コマンドを使用)、プライオリティキューの深さを変更したり( queue-limit コマンドを使用)できます。これによって、プライオリティキューイングの遅延と強固さを制御できます。


queue-limit コマンドと tx-ring-limit コマンドの値の範囲の上限は、実行時に動的に決まります。この上限値を表示するには、コマンドラインで help または ? と入力します。主な決定要素は、キューのサポートに必要となるメモリと、デバイス上で使用可能なメモリの量です。queue-limit 値の範囲は、0 ~ 2048 パケットです。tx-ring-limit 値の範囲は、PIX プラットフォームでは 3 ~ 128 パケット、ASA プラットフォームでは 3 ~ 256 パケットです。


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

プライオリティ キューイングを有効にするには、グローバル コンフィギュレーション モードで priority-queue コマンドを使用して、インターフェイスのプライオリティキューをあらかじめ作成しておく必要があります。1 つの priority-queue コマンドを、 nameif コマンドで定義できるすべてのインターフェイスに対して適用できます。その他のすべてのトラフィックは、ベストエフォートに基づいて配信されます。

通常、 priority-queue コマンドは、 nameif コマンドで定義できるすべてのインターフェイスに適用できます。 priority-queue コマンドを使用すると、プロンプトで示されるように、プライオリティキュー モードに移行します。このモードでは、送信キューに入れることができるパケットの最大数や、プライオリティキューのサイズを設定できます。


) プライオリティ キューイングとポリシングを、両方ともイネーブルにすることはできません。つまり、ポリシングできるのは通常の優先順位のパケットだけで、高い優先順位のパケットはポリシングされません。


プライオリティキューのサイズの変更

プライオリティキューに指定するサイズは、低遅延キューとベストエフォート キューの両方に適用されます。 queue-limit コマンドは、プライオリティキューに入れることができるパケットの最大数を指定します。この数を超えると、以後のデータはドロップされます。この制限は、0 ~ 2048 パケットにする必要があります。

キュー遅延の低減

tx-ring-limit コマンドを使用して、任意の時点で、イーサネット送信ドライバ リングのキューに入れることができるパケットの最大数(深さ)を設定できます。これによって送信キューを調整して、遅延を低減し、送信ドライバの全体的なパフォーマンスを向上させることができます。この制限の範囲は、PIX プラットフォームでは 3 ~ 128 パケット、ASA プラットフォームでは 3 ~ 256 パケットです。

デフォルトのキュー制限は 256 バイト パケットで、これは、指定されたインターフェイスが上限の 2048 パケットを 500 ms の間隔で送信できる平均値です。ネットワーク ノードに 500 ms を超えて留まるパケットは、エンドツーエンド アプリケーションでタイムアウトをトリガすることがあります。このようなパケットは、ネットワーク ノードで破棄されることがあります。

デフォルトの tx-ring-limit は、指定されたインターフェイスが 10 ms の間隔で送信できる最大値の 1550 バイト パケットです。これによって、ハードウェアベースの送信リングは、優先順位が高いパケットに対して 10 ms を超える余分な遅延を発生させないことが保証されます。

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

hostname(config)# priority-queue outside
 

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

hostname(config)# priority-queue outside
hostname(priority-queue)# queue-limit 2048
hostname(priority-queue)# tx-ring-limit 256
 

) プライオリティキューをイネーブルにすると、優先順位の低いキューのパケットに対してサービスが提供される前に、優先順位の高いキューのすべてのパケットが送出されます。


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」は、このキューで発生した最大の深さを示します。

インターフェイスのプライオリティキュー コンフィギュレーションの表示

インターフェイスのプライオリティキュー コンフィギュレーションを表示するには、グローバル コンフィギュレーション モードで show running-config priority-queue コマンドを入力します。次の例で、「test」というインターフェイスのプライオリティキュー コンフィギュレーションを示します。

hostname(config)# show running-config priority-queue test
priority-queue test
queue-limit 2048
tx-ring-limit 256
hostname(config)#