セキュリティ : Cisco PIX 500 シリーズ セキュリティ アプライアンス

PIX/ASA 7.x 以降: QoS ポリシーを使用した帯域幅管理(レート制限)

2015 年 11 月 25 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2012 年 9 月 26 日) | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

QoS(Quality of Service)は、特定タイプのインターネット トラフィックの優先順位を上げることができるネットワーク機能です。 インターネット ユーザのアクセス ポイントが、モデムから DSL やケーブルなどの高速ブロードバンド接続にアップグレードしたことにより、1 人のユーザが、すべてではないにしても、利用可能な帯域幅のほとんどを消費し、他のユーザが使用する帯域幅が不足する可能性が高まっています。 特定の 1 ユーザまたはサイトツーサイト接続が適切な割り当て分を超えて帯域幅を消費することを防ぐため、QoS はユーザが使用できる最大帯域幅を管理するポリシング機能を提供します。

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

セキュリティ アプライアンスでの QoS の主要な目的は、個別のフローまたは VPN トンネル フローの両方で、特定のネットワーク トラフィックのレートを制限し、限られた帯域幅の中ですべてのトラフィックが適切な割り当て分を得ることができるようにすることです。 フローはさまざまな方法で定義できます。 セキュリティ アプライアンスでは、送信元 IP アドレスと宛先 IP アドレスの組み合せ、送信元ポート番号と宛先ポート番号の組み合せ、および IP ヘッダーの ToS バイトに QoS を適用できます。

PIX/ASA セキュリティ アプライアンスで終端する VPN トンネルでの Voice over IP(VoIP)の QoS を設定するには、『PIX/ASA 7.x: VPN トンネルの VoIP トラフィックの QoS 設定の例』を参照してください。

注: QoS はメイン インターフェイスでのみサポートされており、サブインターフェイスではサポートされていません。 インターフェイス自体で QoS を設定すると、すべてのサブインターフェイスに QoS が反映されます。

前提条件

要件

このドキュメントに関する特別な要件はありません。

使用するコンポーネント

このドキュメントの情報は、バージョン 7.x 以降の PIX セキュリティ アプライアンスに基づくものです。

注: QoS は PIX 515 モデル以降でのみサポートされています。 これらのモデルでは Cisco PIX Firewall Software バージョン 7.x がサポートされています。 PIX 501 および 506 モデルでは QoS はサポートされていません。

注: QoS は Cisco PIX Firewall Software バージョン 7.x 以降でのみサポートされています。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

関連製品

この構成は、バージョン 7.x 以降が稼働する適応型セキュリティ アプライアンス(ASA)でも使用できます。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

QoS の概念

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

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

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

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

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

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

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

セキュリティ アプライアンスで LAN-to-LAN トンネル内の個々のユーザ トラフィックをポリシングするには、トンネルに関連付けるのではなく、最終的にトラフィックが LAN-to-LAN トンネルを通過するようなクラスマップを設定します。

その後、LAN-to-LAN トンネルの前のトラフィックは、トンネルを通過するときに個別のポリシングが可能になり、トンネルに適用される集約レートで再びポリシングされます。 セキュリティ アプライアンスは、各インターフェイスに低遅延キュー(LLQ)とデフォルト キューの 2 種類のトラフィック キューを使用して QoS を実現します。 デフォルト トラフィックだけが、レート制限の対象になります。

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

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

QoS 実装

一般的に、QoS ポリシーをプロビジョニングするために必要な手順は次のようになります。

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

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

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

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

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

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

セキュリティ アプライアンスの慣例的な QoS ポリシーの設定手順は次のようになります。

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

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

  3. ポリシーを論理インターフェイスまたは物理インターフェイスに割り当てます(service-policy コマンド)。

class-map コマンド

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 policy-map-name
	class class-map-name-1
		policy-1
		policy-n
	class class-map-name-n
		policy-m
		policy-m+1

service-policy コマンド

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

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

hostname(config)#service-policy policy-map-name interface outside

また、プライオリティ トラフィックとベストエフォート トラフィックを区別する場合は、優先されるトラフィックを伝送する名前付き物理インターフェイスごとに、低遅延キューを定義する必要があります(priority-queue コマンド)。

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

priority-queue name-interface

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

QoS のトラフィック識別

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

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

このような基準の 1 つがアクセスリストです。 たとえば次のシーケンスでは 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 Differential Services Code Point、緊急転送)。

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

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

注: この出力のコマンドの中には、スペースの関係上 2 行にわたって表記されているものがあります。

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

次の表に、使用可能で QoS に関係がある match コマンドの基準のまとめを示します。 すべての match コマンドとその構文の完全なリストについては、『Cisco セキュリティ アプライアンス コマンド リファレンス』を参照してください。

pixasa7x-traffic-mgt-1.gif

ユーザ定義のクラスに加え、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 の範囲の値で、許可される最大速度(ビット/秒)を指定します。 制限内のトラフィックと制限を超えたトラフィックに対して実行するアクション(ドロップまたは送信)も指定します。

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

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 のクラス マップを追加することで、次のように、トンネルおよび非トンネル QoS ポリシーを定義するための基盤が実現します。トンネルおよび非トンネル トラフィックに対する単純な QoS ポリシーが作成され、クラス TG1-voice のパケットが低遅延キューに割り当てられ、tcp_traffic および TG1-best-effort トラフィック フローにレート制限が設定されます。

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

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

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

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

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

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

service-policy コマンドは policy-map コマンドをすべてのインターフェイスでグローバルにアクティブにするか、または対象のインターフェイスでアクティブにします。 インターフェイスは、仮想(VLAN)インターフェイスまたは物理インターフェイスです。 グローバル ポリシーは 1 つしか適用できません。 キーワード interface とインターフェイス名を指定すると、ポリシーマップはそのインターフェイスにのみ適用されます。 インターフェイス ポリシーマップはグローバル ポリシーマップのルールを継承します。 グローバル ポリシーマップと重複するルールの場合、このインターフェイス ポリシー ルールが適用されます。 1 つのインターフェイスに適用できるインターフェイス ポリシーマップは 1 つだけです。

通常 service-policy コマンドは nameif コマンドで定義できる任意のインターフェイスに適用できます。

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

hostname(config)#service-policy qos interface outside

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

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

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

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

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

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

優先順位の高いトラフィックは、クラス モードで priority コマンドを使用して指定します。 このコマンドは、クラスマップによって選択されたトラフィックを優先順位が高いものとしてマークするように、セキュリティ アプライアンスに指示します。

プライオリティ キューイングが実行されるようにするには、優先順位の高いトラフィックを伝送する名前付き物理インターフェイスに対してプライオリティ キューを作成する必要があります。 インターフェイスのプライオリティ キューを有効にするには、グローバル コンフィギュレーション モードで priority-queue コマンドを使用します。 1 つの priority-queue コマンドを、nameif コマンドで定義された各物理インターフェイスに対して適用できます。 その他のすべてのトラフィックは、ベストエフォートに基づいて配信されます。

通常、priority-queue コマンドは、nameif コマンドで定義できるすべての物理インターフェイスに適用できます。 priority-queue コマンドは、VLAN インターフェイスには適用できません。 プライオリティのクラスマップが設定されておらず、プライオリティ キューの物理インターフェイスが設定されていない場合、プライオリティ キューイングの設定時にエラー メッセージ「ERROR: Class xyz has 'priority' set without 'priority-queue' in any interface」が表示されます。 priority-queue コマンドを使用すると、プロンプトで示されるように、プライオリティ キュー モードに移行します。このモードでは、送信キューに入れることができるパケットの最大数や、プライオリティ キューのサイズを設定できます。

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

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

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

キュー遅延の削減

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

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

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

次の例は、デフォルトの queue-limittx-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(config-priority-queue)#queue-limit 2048

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

プライオリティ キューイングを有効にすると、セキュリティ アプライアンスは優先順位の低いキューのパケットを伝送する前に、優先順位の高いキューのパケットをすべて送出します。

QoS の設定

QoS ポリシング(レート制限)またはプライオリティ キューイングを実装するトラフィック クラス、ポリシーマップ、およびサービス ポリシーを設定する手順を説明します。 プライオリティ キューイングの場合は、インターフェイスのプライオリティ キューを有効にするステップも実行します。

QoS を実装するために必要なトラフィック クラス、ポリシーマップ、およびサービス ポリシーの数は、ネットワークの要件によって異なります。 ネットワークを分析して、現在設定しているセキュリティ アプライアンスに必要なトラフィック クラス、ポリシーマップ、およびサービス ポリシーの数を確認してから、QoS 構成に応じてこの手順を実行してください。

QoS ポリシングとプライオリティ キューイングを設定するには、次の手順を実行します。

  1. ポリシングするトラフィック、またはプライオリティ キューイング対象としてマークするトラフィックを特定します。 QoS トラフィックの特定に関する詳細については「QoS のトラフィック識別」を参照してください。

  2. クラス マップを作成するか、既存のクラス マップを修正して、ポリシングするトラフィックまたはプライオリティ トラフィックとして特定するトラフィックを指定します。 class-map コマンドを使用します。

    hostname(config)#class-map class_map_name
    
    hostname(config-cmap)#

    この class-map コマンドの class_map_name にはトラフィック クラスの名前を指定します。 class-map コマンドを入力すると、CLI がクラス マップ コンフィギュレーション モードに移行します。

  3. match コマンドを使用して、ステップ 1 で特定したトラフィックを指定します。 QoS トラフィックの特定に関する詳細については「QoS のトラフィック識別」を参照してください。

    連続しない複数のポートを識別する必要がある場合は、access-list extended コマンドを使用してアクセス リストを作成し、各ポートと一致する ACE を追加してから、match access-list コマンドを使用します。

    次のコマンドは、アクセス リストを使用して複数の TCP ポートを指定する方法を示しています。

    hostname(config)#access-list acl-name any any tcp eq port_number_1
    
    hostname(config)#access-list acl-name any any tcp eq port_number_2
    
    hostname(config)#class-map class_map_name
    
    hostname(config-cmap)#match access-list acl-name
    

    1 つのポートだけを指定する必要がある場合は、match port コマンドを次のように使用します。

    hostname(config-cmap)#match port {tcp | udp} eq port_number
    

    この match port コマンドの eq port_number には、セキュリティ アプライアンスでポリシングするトラフィック、またはプライオリティ キューイング対象としてマークするトラフィックの宛先ポートを指定します。 連続した複数のポートを指定する必要がある場合は、match port コマンドと range キーワードを次のように使用します。

    
    !--- This command is wrapped to a second line due to spatial reasons:
    
    hostname(config-cmap)#match port {tcp | udp} {eq port | range begin_port_number 
    end_port_number
    

    この match port コマンドの begin_port_number にはポートの範囲で最小のポート番号を指定し、end_port_number には最大のポート番号を指定します。

  4. ステップ 2 で指定したトラフィックにポリシングまたはプライオリティ キューイングを適用するために使用するポリシー マップを作成するか、既存のポリシーマップを変更します。 QoS ポリシー マップの詳細については、「QoS ポリシー マップの定義」を参照してください。

    policy-map コマンドを次の例に示すように使用します。

    hostname(config-cmap)#policy-map policy_map_name
    
    hostname(config-pmap)# 

    この policy-map コマンドの policy_map_name には、ポリシー マップの名前を指定します。 CLI はポリシー マップ コンフィギュレーション モードに移行し、プロンプトがそれに応じて変わります。

  5. ステップ 2 で作成した、ポリシングするトラフィック、またはプライオリティ キューイング対象としてマークするトラフィックを特定するクラスマップを指定します。 これを行うには、class コマンドを次のように使用します。

    hostname(config-pmap)#class class_map_name
    
    hostname(config-pmap-c)# 
  6. クラスのアクションを設定します。 トラフィック クラスをプライオリティ トラフィックとしてマークするか、またはトラフィック クラスのレート制限を指定することが可能です。 次のいずれかのアクションを実行します。

    • クラス マップによって選択されたトラフィックをプライオリティ トラフィックとしてマークする場合は、priority コマンドを入力します。

      hostname(config-pmap-c)#priority
      

      注: プライオリティとしてマークしたトラフィックに対するプライオリティ キューイングは、自動的には実行されません。 プライオリティ キューイングを有効にするには、ステップ 8 も実行する必要があります。このステップにより、プライオリティ キューが有効になります。

      プライオリティ キューイングの詳細については、このドキュメントの「低遅延キューイングの適用」および『Cisco セキュリティ アプライアンス コマンド リファレンス』の priority コマンドのページを参照してください。

    • クラス マップによって選択されたトラフィックをセキュリティ アプライアンスでポリシングする場合は、police コマンドを入力します。

      
      !--- This command is wrapped to a second line due to spatial reasons:
      
      hostname(config-pmap-c)#police [output] conform-rate [conform-burst] 
      [conform-action [drop | transmit] [exceed-action {drop | transmit}]]
      

      police コマンドの使用方法の詳細については、このドキュメントの「レート制限の適用」および『Cisco セキュリティ アプライアンス コマンド リファレンス』の police コマンドのページを参照してください。

  7. service-policy コマンドを次のように使用して、ポリシーマップをグローバルに、または特定のインターフェイスに適用します。

    注: このコマンドは、スペースの制約により 2 行にわたって表示されています。

    hostname(config-pmap-c)#service-policy policy_map_name 
    [global | interface interface_ID]
    
    hostname(config)#

    この service-policy コマンドの policy_map_name には、ステップ 4 で作成したポリシー マップを指定します。 ポリシー マップをすべてのインターフェイスのトラフィックに適用する場合は、global オプションを使用します。 ポリシー マップを特定のインターフェイスのトラフィックに適用する場合は、interface interface_ID オプションを使用します。interface_ID には、nameif コマンドでインターフェイスに割り当てた名前を指定します。

    セキュリティ アプライアンスが、指定内容に基づいて、トラフィックのポリシングとプライオリティ キューイングのためのマーク付けを開始します。

  8. ステップ 6 で priority コマンドを入力した場合は、インターフェイスのプライオリティ キューを有効にしないと、セキュリティ アプライアンスはプライオリティ キューイングを実行しません。

    セキュリティ アプライアンスがプライオリティ キューイングを実行するインターフェイスごとに、次の手順を実行します。

    1. priority-queue コマンドを入力します。

      hostname(config)#priority-queue interface
      
      hostname(config-priority-queue)#

      この priority-queue コマンドの interface には、プライオリティ キューを有効にする物理インターフェイスに割り当てられている名前を指定します。 VLAN インターフェイスは、プライオリティ キューイングをサポートしていません。 CLI はプライオリティ キュー コンフィギュレーション モードに移行し、それに応じてプロンプトが変化します。

    2. キューに入れることができる優先順位パケットのデフォルト以外の最大数を規定 したいと思う場合(オプションの)この例が示すように、queue-limit コマンドを入力して下さい:

      hostname(config-priority-queue)#queue-limit number-of-packets
      

      デフォルトのキュー サイズは 2048 パケットです。

    3. 送信キューに割り当てられるデフォルト以外のパケットの最大数が規定 したいと思う場合(オプションの)この例が示すように、tx-ring-limit コマンドを入力して下さい:

      hostname(config-priority-queue)#tx-ring-limit number-of-packets
      

      デフォルトの送信キュー サイズは 128 パケットです。

      プライオリティ キューイングを有効にしたインターフェイスで、セキュリティ アプライアンスがプライオリティ キューイングの実行を開始します。

次の例では、「tunnel-grp1」という名前の設定済みトンネル グループ用に、優先順位の高いトラフィック(voice)のクラス マップとベストエフォート トラフィックのクラス マップを作成しています。 QoS ポリシー マップには、ベストエフォート トラフィック クラスおよびデフォルト トラフィック クラスに対する police コマンドと、voice クラスに対する priority コマンドが含まれています。 サービス ポリシーは外部インターフェイスに適用され、外部インターフェイスのプライオリティ キューが有効になります。

QoS ポリシングとプライオリティ キューイングの設定
hostname(config)#class-map TG1-voice


!--- This command is wrapped to a second line due to spatial reasons:

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


!--- This command is wrapped to a second line due to spatial reasons:

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)#policy-map qos

hostname(config-pmap)#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 interface outside

hostname(config)#priority-queue outside

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

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



!

QoS 設定の確認

このセクションには、次の項目があります。

QoS サービス ポリシー設定の確認

QoS ポリシーマップを実装するサービス ポリシーを含めて、現在のサービス ポリシーをすべて確認するには、特権 EXEC モードで show service-policy コマンドを使用します。 police キーワードまたは priority キーワードを使用すると、police コマンドまたは priority コマンドが含まれているポリシーに出力を限定できます。

注: このコマンドは、プライオリティ統計情報およびポリシング統計情報の表示に使用するコマンドと同じものです。

次の例は、police キーワードを使用した show service-policy の出力を示しています。

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

次の例は、priority キーワードを使用した show service-policy の出力を示しています。

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

QoS ポリシー マップ設定の確認

police コマンドおよび priority コマンドが含まれているポリシー マップを含め、すべてのポリシー マップを確認するには、特権 EXEC モードで show running-config policy-map コマンドを使用します。

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

インターフェイスのプライオリティ キュー設定の確認

インターフェイスのプライオリティ キュー設定を確認するには、グローバル コンフィギュレーション モードで 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)#

QoS 統計情報の確認

このセクションには、次の項目があります。

QoS ポリシング統計情報の確認

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

hostname#show service-policy police

注: このコマンドは、police キーワードが含まれているポリシーの設定の表示に使用するコマンドと同じものです。

たとえば次のコマンドは、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 コマンドを実装するサービス ポリシーの統計情報を表示するには、特権 EXEC モードで show service-policy コマンドと priority キーワードを使用します。

hostname#show service-policy priority

注: このコマンドは、priority キーワードが含まれているポリシーの設定の表示に使用するコマンドと同じものです。

たとえば次のコマンドは、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 キュー統計情報の確認

インターフェイスのプライオリティ キュー統計情報を表示するには、特権 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" denotes the overall number 
!--- of packets that have been dropped in this queue. 


Packets Dropped   = 0

!--- "Packets Transmit" denotes the overall number 
!--- of packets that have been transmitted in this queue. 


Packets Transmit  = 0

!--- "Packets Enqueued" denotes the overall number 
!--- of packets that have been queued in this queue. 

Packets Enqueued  = 0

!--- "Current Q Length" denotes the current depth of this queue. 


Current Q Length  = 0

!--- "Max Q Length" denotes the maximum depth that ever 
!--- occurred in this queue. 

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#

サービス ポリシー統計情報のクリア

サービス ポリシー統計情報をクリアするには、特権 EXEC モードで clear service-policy コマンドを使用します。

hostname# clear service-policy [global | interface intf ]

デフォルトではこのコマンドは、すべての有効なサービス ポリシーのすべての統計情報をクリアします。

次の例に clear service-policy コマンドの構文を示します。

hostname# clear service-policy outside_security_map interface outside

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 91790