Catalyst 3750 Metro スイッチ ソフトウェア コンフィギュレーション ガイド Cisco IOS Release 12.2(25)EY
QoSの設定
QoSの設定
発行日;2012/02/07 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 9MB) | フィードバック

目次

QoSの設定

QoSの概要

基本的なQoSモデル

標準QoSの概要

入力分類

QoS ACLに基づく入力分類

トラフィック クラスおよびトラフィック ポリシーに基づく入力分類

入力ポリシングおよびマーキング

非階層型単一レベル ポリシング

SVIでの階層型デュアルレベル ポリシング

マッピング テーブル

キューイングおよびスケジューリングの概要

WTD

SRRのシェーピングおよび共有

入力キューのキューイングおよびスケジューリング

出力キューセットのキューイングおよびスケジューリング

階層型QoSの概要

階層レベル

トラフィック クラスおよびトラフィック ポリシーに基づく階層型分類

階層型ポリシングおよびマーキング

階層型キューのキューイングおよびスケジューリング

階層型キュー

輻輳管理および輻輳回避機能

自動QoSの設定

生成される自動QoS設定

自動QoSの設定上の影響

自動QoS設定時の注意事項

以前のソフトウェア リリースからのアップグレード

VoIP用の自動QoSのイネーブル化

自動QoS設定例

自動QoS情報の表示

標準QoSの設定

標準QoSのデフォルト設定

入力キューのデフォルト設定

出力キューセットのデフォルト設定

マッピング テーブルのデフォルト設定

標準QoS設定時の注意事項

パケットの変更

QoSのグローバルなイネーブル化

ポートの信頼状態による入力分類の設定

QoSドメイン内のポートの信頼状態の設定

インターフェイスのCoS値の設定

信頼境界の設定によるポート セキュリティの確保

DSCPトランスペアレンシ モードのイネーブル化

別のQoSドメインとの境界ポートでのDSCP信頼状態の設定

入力QoSポリシーの設定

ACLによる入力トラフィックの分類

クラス マップによる入力トラフィックの分類

非階層型単一レベル ポリシー マップによる入力トラフィックの分類、ポリシング、およびマーキング

階層型デュアルレベル ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング

集約ポリサーによる入力トラフィックの分類、ポリシング、およびマーキング

DSCPマップの設定

CoS/DSCPマップの設定

IP Precedence/DSCPマップの設定

ポリシング設定DSCPマップの設定

DSCP/CoSマップの設定

DSCP/DSCP変換マップの設定

入力キューの特性の設定

入力キューへのDSCPまたはCoS値のマッピングおよびWTDスレッシュホールドの設定

各入力キューのバッファ スペースの割り当て

各入力キューの帯域幅の割り当て

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

出力キューセットの特性の設定

出力キューセットに対するバッファ スペースの割り当ておよびWTDスレッシュホールドの設定

出力キューセットおよびスレッシュホールドIDへのDSCPまたはCoS値のマッピング

出力キューセットのSRRシェーピング ウェイトの設定

出力キューセットのSRR共有ウェイトの設定

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

キューセットの出力帯域幅の制限

標準QoS情報の表示

階層型QoSの設定

階層型QoSのデフォルト設定

階層型QoS設定時の注意事項

階層型QoSポリシーの設定

階層型クラス マップによるトラフィックの分類

2つのレートを使用する階層型トラフィック ポリサーの設定

階層型トラフィック ポリシーでのクラスベース パケット マーキングの設定

CBWFQおよびテール ドロップの設定

CBWFQおよびDSCPベースWREDの設定

CBWFQおよびIP precedenceベースWREDの設定

LLQのイネーブル化

シェーピングの設定

階層型QoS情報の表示

QoSの設定

この章では、Catalyst 3750 MetroスイッチにQuality of Service(QoS;サービス品質)を設定するさまざまな方法の使い方について説明します。QoSを使用すると、特定の種類のトラフィックを他のトラフィックよりも優先的に処理できます。QoSを使用しない場合、パケットの内容やサイズに関係なく、各パケットにベストエフォート型サービスが提供され、信頼性、遅延限度、スループットが保証されずに、パケットが送信されます。

自動QoSを使用すれば、Cisco IP Phoneに接続したポート、およびCisco SoftPhoneアプリケーションを実行しているデバイスを識別できます。また、コマンドを使用すれば、信頼されたVoice over IP(VoIP)トラフィックを受信するポートも識別できます。

標準QoSを使用すると、任意のポート上で着信トラフィックの分類、ポリシング、マーキング、キューイング、スケジューリングを行ったり、発信トラフィックのキューイングやスケジューリングを行うことができます。入力側では、標準QoSは着信パケットのClass of Service(CoS;サービス クラス)、Differentiated Services Code Point(DSCP)、またはIP precedence値に基づいて、分類を行います。分類はレイヤ2 MAC(メディア アクセス制御)Access Control List(ACL;アクセス制御リスト)、IP標準ACL、またはIP拡張ACLに基づいて実行できます。また、標準QoSは、入力側で非階層型単一レベル ポリシー マップおよび階層型デュアルレベルも提供します。廃棄ポリシー アクションには、パケットを変更しないで通過させるアクション、パケットに割り当てられたDSCP値をマークダウンするアクション、またはパケットを廃棄するアクションがあります。標準QoSは、入力トラフィックのキューイングをWeighted Tail Drop(WTD)アルゴリズムに基づいて、スケジューリングをShaped Round Robin(SRR)に基づいて実行します。また、出力トラフィックのキューイングをWTDに基づいて、スケジューリングをSRRによって共有ウェイトまたはシェーピング ウェイトに基づいて行います。また、出口側プライオリティ キューも提供されます。


) Catalyst 3750、3560、2970スイッチ ソフトウェアのマニュアルでは、単一レベル ポリシー マップは非階層型ポリシー マップとされています。デュアルレベル ポリシー マップは、2つのレベルを持つ階層型ポリシー マップとされています。


階層型QoSを使用すると、Enhanced-Services(ES)ポート上で受信または発信トラフィックの分類、ポリシング、マーキング、キューイング、スケジューリングを行うことができます。階層QoSは、パケットのCoS、DSCP、IP precedence、またはMultiprotocol Label Switching(MPLS;マルチプロトコル ラベル スイッチング)のEXP(試験)ビットに基づいて分類を行います。対応するVLAN(仮想LAN)に基づいてパケットを分類することもできます。階層型QoSの場合、2つのレートによるトラフィック ポリシングを行うことができます。廃棄ポリシー アクションにはパケットを変更しないで通過させるアクション、パケット内のCoS、DSCP、IP precedence、またはMPLS EXPビットをマークダウンするアクション、またはパケットを廃棄するアクションがあります。階層型QoSは、キューイングをテール ドロップまたはWeighted Random Early Detection(WRED;重み付きランダム早期検出)に基づいて実行します。キュー スケジューリング管理機能はClass-Based Weighted Fair Queuing(CBWFQ;クラス ベース均等化キューイング)、スケジューリング輻輳管理機能はLow-Latency Queueing(LLQ)です。トラフィック シェーピングを使用すると、トラフィックのバースト性を小さくすることができます。

MPLS、Ethernet over MPLS(EoMPLS)、およびQoSの詳細については、「MPLSおよびEoMPLS QoSの設定」を参照してください。


) この章で使用するコマンドの構文および使用方法の詳細については、このリリースのコマンド リファレンスを参照してください。


この章で説明する内容は、次のとおりです。

「QoSの概要」

「基本的なQoSモデル」

「標準QoSの概要」

「階層型QoSの概要」

「自動QoSの設定」

「自動QoS情報の表示」

「標準QoSの設定」

「標準QoS情報の表示」

「階層型QoSの設定」

「階層型QoS情報の表示」

QoSの概要

ネットワークは通常、ベストエフォート型の配信方式で動作します。この場合、すべてのトラフィックはプライオリティおよび適切なタイミングで配信される可能性に関して同等です。輻輳が発生した場合に廃棄される可能性も、すべてのトラフィックで同等です。

QoS機能を設定すると、特定のネットワーク トラフィックを選択し、相対的な重要性に応じてプライオリティを指定し、輻輳管理および輻輳回避技術を使用して、優先処理を行うことができます。ネットワークにQoSを実装すると、ネットワークのパフォーマンスが予想しやすくなり、帯域利用率がより効果的になります。

QoSは新たに普及しつつあるInternet Engineering Task Force(IETF)の規格であるDifferentiated Services(DiffServ)アーキテクチャに基づいて実装されています。DiffServアーキテクチャでは、ネットワークの入口で各パケットが分類されます。

この分類はIPパケット ヘッダーに格納され、現在ほとんど使用されていないIP Type of Service(ToS;サービス タイプ)フィールドの6ビットを使用して、分類( クラス )情報が伝達されます。分類情報はレイヤ2フレームで伝達することもできます。ここでは、レイヤ2フレームまたはレイヤ3パケット内のこれらの特殊ビットについて説明します(図32-1を参照)。

レイヤ2フレームのプライオリティ ビット

レイヤ2のISL(スイッチ間リンク)フレーム ヘッダーには、下位3ビットでIEEE 802.1p CoS値を伝達する、1バイトのユーザ フィールドがあります。レイヤ2のISLトランクとして設定されたポートでは、すべてのトラフィックがISLフレームに収められます。

レイヤ2の802.1Qフレーム ヘッダーには、上位3ビット(別名ユーザ プライオリティ ビット)でCoS値を伝達する、2バイトのタグ制御情報フィールドがあります。レイヤ2の802.1Qトランクとして設定されたポートでは、ネイティブVLANのトラフィックを除き、すべてのトラフィックが802.1Qフレームに収められます。

その他のフレーム タイプでは、レイヤ2のCoS値を伝達できません。

レイヤ2 CoS値の範囲は0(ロー プライオリティ)~7(ハイ プライオリティ)です。

レイヤ3パケットのプライオリティ ビット

レイヤ3 IPパケットは、IP precedence値またはDSCP値のいずれかを伝達します。DSCP値はIP precedence値と下位互換性があるので、QoSではどちらの値も使用できます。

IP precedence値の範囲は0~7です。

DSCP値の範囲は0~63です。

図32-1 フレームおよびパケットのQoS分類レイヤ

 


) レイヤ3 IPv6パケットは非IPパケットとして処理され、スイッチによってブリッジングされます。


インターネットにアクセスするすべてのスイッチおよびルータはクラス情報を信頼し、クラス情報ごとに異なる転送処理を行います。エンド ホストやパス上のスイッチまたはルータでは、設定されたポリシーやパケットの調査結果、あるいはその両方に基づいて、パケットにクラス情報を割り当てることができます。通常は、主要なスイッチやルータが過負荷にならないように、ネットワークのエッジ付近でパケットが詳細に調査されます。

パス上のスイッチおよびルータでは、クラス情報に基づいて、トラフィック クラスごとに割り当てられるリソース量を制限することができます。DiffServアーキテクチャでトラフィックを処理するときの各デバイスの動作は、ホップ単位動作と呼ばれます。パス上にあるすべてのデバイスのホップ単位動作が一貫している場合は、エンドツーエンドのQoSソリューションを構築できます。

ネットワークにQoSを実装する作業は、インターネットワーキング デバイス、ネットワーク内のトラフィック タイプとパターン、および着信/発信トラフィックに必要な制御の細かさによって、難易度が変化します。

基本的なQoSモデル

QoSを実装するには、スイッチ上でパケットまたはフローを相互に区別(分類)し、パケットがスイッチを通過するときに所定のQoSを示すラベルを割り当て、設定されたリソース使用率制限にパケットを適合させ(ポリシングおよびマーキング)、リソース競合の発生状況に応じて異なる処理(キューイングおよびスケジューリング)を行う必要があります。また、スイッチが送信するトラフィックが特定のトラフィック プロファイルを満たすようにする必要もあります(シェーピング)。

図32-2に、ESポートを含むすべてのポートのトラフィックの基本的なQoSモデルを示します。

図32-2 基本的なQoSモデル

 

いずれかのポートにトラフィックが着信した場合の標準的なアクションは、次のとおりです。

分類は、QoSラベルを対応付けて、パケットごとに異なるパスを生成するプロセスです。スイッチはパケット内のCoSまたはDSCPをQoSラベルにマッピングして、別のスイッチからのある種類のトラフィックと区別します。生成されたQoSラベルは、このパケットでこれ以降に実行されるすべてのQoSアクションを識別します。詳細については、「入力分類」を参照してください。

ポリシングでは、着信トラフィックのレートを設定済みポリサーと比較して、パケットが適合か不適合かを判別します。ポリサーは、トラフィック フローで消費される帯域幅を制限します。この結果はマーカーに渡されます。詳細については、「入力ポリシングおよびマーキング」を参照してください。

マーキングでは、パケットが不適合な場合に実行するアクションのポリサー設定情報を評価します。マーキング アクションにはパケットを変更しないで通過させるアクション、パケット内のQoSラベルをマークダウンするアクション、またはパケットを廃棄するアクションがあります。詳細については、「入力ポリシングおよびマーキング」を参照してください。

キューイングでは、QoSラベルおよび対応するDSCPまたはCoS値を評価して、パケットを2つの入力キューのいずれかに格納するかを選択します。キューイングは、輻輳回避メカニズムであるWTDアルゴリズムによって拡張されます。スレッシュホールドを超過している場合、パケットは廃棄されます。詳細については、「キューイングおよびスケジューリングの概要」を参照してください。

スケジューリングでは、設定されているSRRのウェイトに基づいて、キューを処理します。入力キューの1つがプライオリティ キューです。SRRは設定された割合に従いプライオリティ キューを処理してから他のキューを処理します。詳細については、「SRRのシェーピングおよび共有」を参照してください。

標準ポートにトラフィックが送信された場合の標準的なアクションは、次のとおりです。

キューイングでは、QoSラベルおよび対応するDSCPまたはCoS値を評価して、パケットを格納するキューセット(ポートごとに4つのキュー)を選択します。複数の入力ポートが1つの出力ポートに同時にデータを送信すると輻輳が発生することがあるため、WTDを使用してトラフィック クラスを区別し、QoSラベルに基づいてパケットごとに異なるスレッシュホールドを適用します。スレッシュホールドを超過している場合、パケットは廃棄されます。詳細については、「キューイングおよびスケジューリングの概要」を参照してください。

スケジューリングでは、設定されているSRRの共有ウェイトまたはシェーピング ウェイトに基づいて、4つの出力キューが処理されます。キューの1つ(キュー1)をプライオリティ キューにできます。SRRは、他のキューの処理を行う前に、空になるまでプライオリティ キューを処理します。

トラフィックがESポートで受信された場合またはESポートに送信された場合の追加のアクションは、次のとおりです。

分類は、ヘッダー内のCoS、DSCP、IP precedence、MPLS EXPビットを照合するか、または内部および外部VLAN IDまたはCoS値に基づいてパケットを照合して、パケットごとに異なるパスを生成するプロセスです。階層設定により、作成されるキュー数はクラスレベル、VLANレベル、および物理インターフェイスレベルで制御されます。詳細については、「階層型QoSの概要」、および「階層レベル」を参照してください。分類の詳細については、 「トラフィック クラスおよびトラフィック ポリシーに基づく階層型分類」を参照してください。

ポリシングでは、着信または送信トラフィックのレートを設定済みポリサーと比較して、パケットが適合か不適合かを判別します。ポリサーは、トラフィック フローで消費される帯域幅を制限します。この結果はマーカーに渡されます。詳細については、 「階層型ポリシングおよびマーキング」を参照してください。

マーキングでは、ポリサーおよびパケットが不適合である場合の対処法に関する設定情報を評価します。また、パケットに関する処理内容(変更しないでパケットを通過させるか、パケットのQoSラベルをマークダウンするか、またはパケットを廃棄するか)を決定します。詳細については、 「階層型ポリシングおよびマーキング」を参照してください。

キューイングを実行するには、階層化されたキューイング フレームワークを使用します。このフレームワークでは、パケット クラス、VLAN、および物理インターフェイスに基づいてキューに各パケットが割り当てられます。輻輳回避メカニズムとして、テール ドロップまたはWREDをキュー単位で設定できます。テール ドロップを使用した場合、最大スレッシュホールドに達するまでパケットはキューイングされます。最大スレッシュホールドを超えると、すべてのパケットが廃棄されます。WREDは、ポートに輻輳の兆候が見え始めると、パケットを選択的に廃棄してテール ドロップの機会を減らします。詳細については、 「階層型キューのキューイングおよびスケジューリング」を参照してください。

スケジューリングを実行するには、CBWFQまたはLLQを使用します(完全優先キューイング)。CBWFQは、特定のトラフィック クラスの帯域幅を保証しながら、ネットワーク内の他のすべてのトラフィックを適正に処理するメカニズムです。LLQは、遅延の影響を受けやすいトラフィックを他のキュー内のトラフィックより先にキューイングして送信する、もう1つのスケジューリング メカニズムです。スケジューリングでは、平均レート シェーピングを使用してキューを処理します。詳細については、 「階層型キューのキューイングおよびスケジューリング」を参照してください。

標準QoSの概要

標準QoSには、いずれかのポートで受信されたトラフィックを分類、ポリシング、およびマーキングする標準入力ポリシーが含まれます。入力キューは、転送する前にパケットをスイッチ ファブリックに保管することで、輻輳を回避します。出力キューセットは、複数の入力ポートが同時にパケットをポートに送信したときの輻輳を回避します。キューイングおよびスケジューリング アクティビティのために、入力キューおよび出力キューセットを設定します。

ここで説明する内容は次のとおりです。

「入力分類」

「入力ポリシングおよびマーキング」

「マッピング テーブル」

「キューイングおよびスケジューリングの概要」

入力分類

入力分類は受信時にパケットのフィールドを調べて、トラフィックの種類を区別します。QoSがスイッチ上でグローバルにイネーブルになっている場合のみ、分類はイネーブルとなります。デフォルトでは、QoSはグローバルにディセーブルになっているため、分類は実行されません。

入力分類中に、スイッチは検索処理を実行し、パケットにQoSラベルを割り当てます。QoSラベルはパケットに対して実行するすべてのQoSアクション、およびパケットの送信元キューを識別します。

QoSラベルはパケット内のDSCPまたはCoS値に基づいて、パケットに実行されるキューイングおよびスケジューリング アクションを決定します。QoSラベルは信頼設定およびパケット タイプに従ってマッピングされます(入力分類のフローチャートを参照)。

着信トラフィックを分類するには、フレームまたはパケット内のどのフィールドを使用するかを指定します。非IPトラフィックの場合は、次の方法で入力分類を実行できます(図32-3を参照)。

着信フレーム内のCoS値を信頼します(CoSを信頼するようにポートを設定します)。次に、設定可能なCoS/DSCPマップを使用して、パケットのDSCP値を生成します。レイヤ2のISLフレーム ヘッダーの場合、CoS値は1バイトのユーザ フィールドの下位3ビットに格納されて伝達されます。レイヤ2の802.1Qフレーム ヘッダーの場合、CoS値はタグ制御情報フィールドの上位3ビットに格納されて伝達されます。CoS値の範囲は0(ロー プライオリティ)~7(ハイ プライオリティ)です。

着信フレームのDSCPまたはIP precedence値を信頼します。これらの設定は、非IPトラフィックの場合は無意味です。これらのいずれかの方法で設定されているポートに非IPトラフィックが着信した場合は、CoS値が割り当てられ、CoS/DSCPマップから内部DSCP値が生成されます。スイッチは、内部DSCP値を使用して、トラフィックのプライオリティを表すCoS値を生成します。

設定されたレイヤ2のMAC ACLに基づいて分類します。レイヤ2のMAC ACLでは、MAC送信元アドレス、MAC宛先アドレス、およびその他のフィールドを調べることができます。ACLが設定されていない場合、パケットにはDSCPおよびCoS値として0が割り当てられます。この割り当ては、トラフィックがベストエフォート型であることを意味します。ACLが設定されている場合は、ポリシーマップ アクションによって、着信フレームに割り当てられるDSCPまたはCoS値が指定されます。

IPトラフィックの場合は、次の方法で入力分類を実行できます(図32-3を参照)。

着信パケットのDSCP値を信頼し(DSCPを信頼するようにポートを設定し)、パケットに同じDSCP値を割り当てます。IETFでは、1バイトのToSフィールドの上位6ビットがDSCPとして定義されています。特定のDSCP値で表されるプライオリティは設定可能です。DSCP値の範囲は0~63です。

2つのQoS管理ドメインの境界上にあるポートの場合は、設定可能なDSCP/DSCP変換マップを使用し、DSCPを別の値に変更することができます。

着信パケットのIP precedence値を信頼し(IP precedenceを信頼するようにポートを設定し)、設定可能なIP precedence/DSCPマップを使用してパケットのDSCP値を生成します。IPバージョン4仕様では、1バイトのToSフィールドの上位3ビットがIP precedenceとして定義されています。IP precedence値の範囲は0(ロー プライオリティ)~7(ハイ プライオリティ)です。

着信パケットにCoS値がある場合にはこれを信頼し、CoS/DSCPマップを使用してパケットのDSCP値を生成します。CoS値が存在しない場合は、デフォルトのポートCoS値を使用します。

設定されたIP標準、またはIPヘッダーの各フィールドを調べる拡張ACLに基づいて、分類を実行します。ACLが設定されていない場合、パケットにはDSCPおよびCoS値として0が割り当てられます。この割り当ては、トラフィックがベストエフォート型であることを意味します。ACLが設定されている場合は、ポリシーマップ アクションによって、着信フレームに割り当てられるDSCPまたはCoS値が指定されます。

ここで説明されているマップの詳細については、「マッピング テーブル」を参照してください。ポートの信頼状態に関する設定の詳細については、「ポートの信頼状態による入力分類の設定」を参照してください。

分類を設定するには、ACL、トラフィック クラス、およびトラフィック ポリシーを使用します。詳細については、「QoS ACLに基づく入力分類」および「トラフィック クラスおよびトラフィック ポリシーに基づく入力分類」を参照してください。

入力分類が行われたパケットは、ポリシング、マーキング、および入力キューイングとスケジューリングの各段階に送られます。

図32-3 入力分類のフローチャート

 

QoS ACLに基づく入力分類

IP標準、IP拡張、またはレイヤ2 MAC ACLを使用すると、同じ特性(クラス)を持つパケットのグループを定義できます。QoSコンテキストでは、Access Control Entry(ACE;アクセス制御エントリ)とセキュリティACLで、許可(permit)および拒否(deny)アクションの意味が異なります。

許可アクションと一致した場合は(原則的には最初の一致)、指定されたQoS関連のアクションが実行されます。

拒否アクションと一致した場合は、処理中のACLが省略され、次のACLが処理されます。

すべてのACEを調べても許可アクションとの一致が見つからなかった場合は、パケットに関するQoS処理が行われず、ベストエフォート型サービスがパケットに対して行われます。

ポートに複数のACLが設定されている場合、許可アクションを含む最初のACLとパケットの一致が見つかるとそれ以降の検索処理は中止され、QoS処理が開始されます。


) アクセス リストを作成するときは、アクセス リストの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。


ACLを使用して定義されたトラフィック クラスには、ポリシーを付加できます。ポリシーにはアクションがそれぞれ指定された複数のクラスを含めることができます。ポリシーには、クラスを特定のグループとして分類する(たとえばDSCPを割り当てる)コマンドや、クラスの速度制限を行うコマンドが含まれます。この入力ポリシーがポートに付加されます。

IPトラフィックを分類するIP ACLを実装するには、 access-list グローバル コンフィギュレーション コマンドを使用します。非IPトラフィックを分類するレイヤ2 MAC ACLを実装するには、 mac access-list extended グローバル コンフィギュレーション コマンドを使用します。設定の詳細については、「入力QoSポリシーの設定」を参照してください。

トラフィック クラスおよびトラフィック ポリシーに基づく入力分類

トラフィックを分類する場合は、トラフィック クラスを定義します。分類されたトラフィックの処理方法を決定する場合は、トラフィック ポリシーを使用します。サービス ポリシーを作成する場合は、ポートに入力ポリシーを付加します。

特定のトラフィック フロー(またはクラス)を定義したり、このフローを他のすべてのトラフィックから隔離するには、クラス マップを使用します。クラス マップでは、特定のトラフィック フローとの比較を行い、さらにそれを分類するために使用する条件を定義します。この条件には、ACLで定義されたアクセス グループとの比較、またはDSCP値やIP precedence値の特定のリストとの比較を含めることができます。複数のタイプのトラフィックを分類する場合は、別のクラス マップを作成し、異なる名前を付けることができます。

クラス マップを作成するには、 class-map グローバル コンフィギュレーション コマンドを使用します。 class-map コマンドを入力すると、クラス マップ コンフィギュレーション モードが開始されます。このモードでは match クラス マップ コンフィギュレーション コマンドを使用し、トラフィックの一致条件を定義します。クラス マップに設定された一致条件と着信パケットを比較して、パケットがこのクラスに属するかどうかを判別します。指定された条件と一致するパケットは、クラスのメンバーとみなされ、トラフィック ポリシーに設定されたQoS指定に従って転送されます。どの一致条件とも一致しないパケットは、デフォルト トラフィック クラスが設定されている場合、そのメンバーとして分類されます。

トラフィック ポリシーを作成したり、対象となるトラフィック クラスを指定したり、そのトラフィック クラスに対応付けるQoS機能を設定するには、ポリシー マップを使用します。入力時のアクションには、受信されたトラフィック クラスのCoS、DSCP、またはIP precedence値を信頼するアクション、トラフィック クラスに特定のDSCPまたはIP precedence値を設定するアクション、またはトラフィック帯域幅の制限およびトラフィックが不適合な場合の対処方法を指定するアクションなどを指定できます。

ポリシー マップを作成して名前を付けるには、 policy-map グローバル コンフィギュレーション コマンドを使用します。このコマンドを入力すると、ポリシーマップ コンフィギュレーション モードが開始されます。このモードで、トラフィック ポリシーに対応付けられたトラフィック クラスに名前を付けるには、 class ポリシーマップ コンフィギュレーション コマンドを使用します。 class ポリシーマップ コンフィギュレーション コマンド内でクラス名として class-default を指定した場合、どの一致条件とも一致しないパケットは、デフォルト トラフィック クラスのメンバーとして分類されます。このクラスは他のトラフィック クラスと同様に処理(ポリシングやマーキングなどを実行)できますが、削除できません。 class コマンドを使用してトラフィック クラスに名前を付けると、ポリシーマップ クラス コンフィギュレーション モードが開始され、このトラフィック クラスに関する対処法を指定できるようになります。

入力ポリシー マップでは police police aggregate trust 、または set ポリシーマップ クラス コンフィギュレーション コマンドを指定できます。ポートに入力ポリシー マップを付加するには、 service-policy input インターフェイス コンフィギュレーション コマンドを使用します。

Cisco IOS Release 12.2(25)EYより前のソフトウェア リリースでは、非階層型単一レベル ポリシー マップは物理ポートのみに適用できます。Cisco IOS Release 12.2(25)EY以降のリリースでは、単一レベル ポリシー マップを物理ポート、Switch Virtual Interface(SVI)、またはESポートに適用できます。ただし、階層型デュアルレベル ポリシー マップを適用できるのは、SVIのみです。デュアルレベル ポリシー マップには、2つのレベルが含まれます。最初のレベルはVLANレベルで、SVIでのトラフィック フローに対して実行するアクションを指定します。2番目のレベルはインターフェイス レベルで、SVIに属する物理ポートでのトラフィックに対して実行するアクションを指定します。インターフェイスレベル アクションは、インターフェイスレベル ポリシー マップで指定されます。詳細については、「入力ポリシングおよびマーキング」を参照してください。設定の詳細については、「入力QoSポリシーの設定」を参照してください。

入力ポリシングおよびマーキング

パケットを分類し、DSCPまたはCoSに基づいてQoSラベルを割り当てたあとで、トラフィックのポリシングおよびマーキング プロセスを開始できます。図32-4に、単一レートの入力トラフィック ポリサーを示します。図32-5には、入力ポリシングおよびマーキング プロセスを示します。

入力トラフィック ポリシングは、ポートで受信されるトラフィックの最大レートを制御します。ポリサーはトラフィックの帯域幅制限、およびその制限を超過した場合の対処法を定義します。通常はネットワーク エッジのポートに設定されて、ネットワークを行き来するトラフィックを制限します。通常のポリシング設定では、レート パラメータに適合するトラフィックが送信されます。このパラメータを超過するトラフィックは、 不適合 とみなされ、廃棄されるか、または別のプライオリティで送信されます。


) すべてのトラフィックは、ブリッジングされるかまたはルーティングされるかに関係なく、設定されたポリサーの影響を受けます。その結果、ブリッジングされたパケットは、ポリシングまたはマーキングが行われたときに廃棄されたり、DSCPまたはCoSフィールドが変更されることがあります。


スイッチは、入力側での非階層型および階層型ポリシングをサポートします。非階層型単一レベル ポリシングは、入力標準物理ポート、入力SVI、および入力ESポートでサポートされています。単一レベル ポリシー マップには1つのレベルがあり、単一レートおよび集約ポリサーをサポートしています。詳細については、「非階層型単一レベル ポリシング」を参照してください。

階層型ポリシングは、SVIおよびESポートでのみサポートされています。スイッチは次のタイプの階層型ポリシングをサポートします。

SVIでのデュアルレベル ― これはSVIでのみサポートされ、2つのレベル(VLAN [プライマリ]およびインターフェイス[セカンダリ]があり、単一レート ポリサーをサポートします。詳細については、「SVIでの階層型デュアルレベル ポリシング」を参照してください。

ESポートでの階層型 ― これはESポートでのみサポートされ、3つのレベル(クラス、VLAN、物理)があり、2つのレートを使用するポリサーをサポートします。詳細については、「階層型ポリシングおよびマーキング」を参照してください。


) SVIでのデュアルレベル ポリシングは、ESポートでの2つのレベルを持つ階層型ポリシングとは異なります。


Cisco IOS Release 12.2(25)EYより前のソフトウェア リリースでは、非階層型単一レベル ポリシングのみを設定できます。単一レベル ポリシー マップで、信頼状態の設定、パケットの新規DSCPまたはIP precedence値の設定、または個別あるいは集約ポリサーの定義を行えます。

Cisco IOS Release 12.2(25)EY以降のリリースでは、階層型単一レベル ポリシングを入力標準物理ポート、SVI、またはESポートー マップで設定できます。また、SVIごとに階層型デュアルレベル ポリシングも設定できます。SVIでデュアルレベル ポリシングを設定するときに、デュアルレベル ポリシー マップを作成したり、セカンダリ インターフェイスレベル ポリシー マップのみで個別ポリサーを定義したりできます。

非階層型単一レベル ポリシング

物理ポートの非階層型単一レベル ポリシー マップでは、次のタイプのポリサーを作成できます。

次のタイプの入力ポリサーを作成することができます。

個別(単一レート)

一致する各トラフィック クラスに、ポリサー内で指定された帯域幅制限が個別に適用されます。ポリシー マップ内で単一レート ポリサーを設定するには、 police ポリシーマップ クラス コンフィギュレーション コマンドを使用します。

集約

一致するすべてのトラフィック フローに、集約ポリサーで指定される帯域幅制限が累積的に適用されます。このタイプのポリサーを設定するには、 police aggregate ポリシーマップ クラス コンフィギュレーション コマンドを使用し、ポリシー マップ内の集約ポリサー名を指定します。ポリサーの帯域幅制限を指定するには、 mls qos aggregate-policer グローバル コンフィギュレーション コマンドを使用します。この方法の場合、集約ポリサーはポリシー マップ内にあるトラフィックの複数のクラスで共有されます。


) Cisco IOS Release 12.2(25)EY以降のリリースでは、SVIで個別ポリサーのみを設定できます。


単一レート トラフィック ポリサーは、パケットが適合であるかまたは不適合であるかをパケットごとに判別し、パケットに対するアクションを指定します。これらのアクションはマーカーによって実行されます。パケットを変更しないで通過させるアクション、パケットを廃棄するアクション、またはパケットに割り当てられたDSCP値を変更(マークダウン)してパケットの通過を許可するアクションなどがあります。設定可能なポリシング設定DSCPマップを使用すると、パケットに新しいDSCPベースQoSラベルが設定されます。ポリシング設定DSCPマップの詳細については、「マッピング テーブル」を参照してください。マークダウンされたパケットは、元のQoSラベルと同じキューを使用して、フロー内のパケットの順番が崩れないようにします。

単一レベル ポリシングは、トークン バケット アルゴリズムを使用します。各フレームがスイッチに受信されると、バケットにトークンが追加されます。バケットは内部にホールがあり、平均トラフィック レートとしてビット/秒で指定されたレートで通過します。バケットにトークンが追加されるたびに、スイッチはバケット内に十分なスペースがあるかどうかを確認します。十分なスペースがない場合は、不適合とマークされ、指定されたポリサーの対処方法がとられます(廃棄またはマークダウン)。

バケットが満たされる速度は、バケット深度(burst-byte)、トークンが削除される速度(rate-bps)、および平均速度を上回るバースト期間の関数です。バケットのサイズにより、バースト長に上限が設定され、バックツーバックで送信できるフレーム数が決まります。バーストが短い場合、バケットはオーバーフローせず、トラフィック フローに対して何のアクションも行われません。ただし、バーストが長く速度が速い場合、バケットはオーバーフローし、そのバーストのフレームに対してポリシング アクションが取られます。

バケット深度(バケットがオーバーフローするまでに許容された最大バースト)は、 police ポリシー マップ クラス コンフィギュレーション コマンドまたは mls qos aggregate-policer グローバル コンフィギュレーション コマンドの burst-byte オプションを使用して設定します。トークンがバケットから削除される速度(平均速度)は、 police ポリシーマップ コンフィギュレーション コマンドまたは mls qos aggregate-policer グローバル コンフィギュレーション コマンドの rate-bps オプションを使用して設定します。

ポリシー マップおよびポリシング アクションを設定したあとで、 service-policy input インターフェイス コンフィギュレーション コマンドを使用して、ポートに入力ポリシーを付加します。設定の詳細については、「非階層型単一レベル ポリシー マップによる入力トラフィックの分類、ポリシング、およびマーキング」、および「集約ポリサーによる入力トラフィックの分類、ポリシング、およびマーキング」を参照してください。

図32-4に、次のタイプのポリシー マップが設定されている場合のポリシングおよびマーキング プロセスを示します。

非階層型単一レベル ポリシー マップ。

図32-4 非階層型単一レベルの入力ポリシングおよびマーキングのフローチャート

 

SVIでの階層型デュアルレベル ポリシング


) SVIで個別ポリサーを持つ階層型デュアルレベル ポリシー マップを設定する前に、SVIに属する物理ポート上でVLANベースのQoSをイネーブルにする必要があります。ポリシー マップがSVIに付加されていても、個別のポリサーは、デュアルレベル ポリシー マップのセカンダリ インターフェイス レベルで指定された物理ポート上のトラフィックにのみ影響を与えます。


デュアルレベル ポリシー マップには、2つのレベルがあります。最初のレベルはVLANレベルで、SVIでのトラフィック フローに対して実行するアクションを指定します。2番目のレベルはインターフェイス レベルで、SVIに属する物理ポートでのトラフィックに対して実行するアクションを指定し、インターフェイスレベル ポリシー マップで指定されます。

SVIでポリシングを設定するとき、次の2つのレベルを持つ階層型ポリシー マップを作成および設定できます。

VLANレベル ― このプライマリ レベルを作成するには、ポートの信頼状態を指定する、またはパケットの新規DSCPまたはIP precedence値を設定する、クラス マップおよびクラスを設定します。LVANレベル ポリシー マップは、SVIのVLANにのみ適用され、ポリサーはサポートしていません。


) デュアルレベル ポリシー マップのVLANレベルは、ESポートに適用される階層型ポリシー マップのVLANレベルとは異なります。


インターフェイス レベル ― このセカンダリ レベルを作成するには、SVIに属する物理ポートで個別ポリサーを指定するクラス マップおよびクラスを設定します。インターフェイスレベル ポリシー マップは、個別ポリサーのみをサポートし、集約ポリサーはサポートしません。

デュアルレベル ポリシー マップの例については、「階層型デュアルレベル ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング」を参照してください。

図32-5に、階層型デュアルレベル ポリシー マップがSVIに付加されている場合のポリシングおよびマーキング プロセスを示します。

図32-5 SVIでの階層型デュアルレベルの入力ポリシングおよびマーキングのフローチャート

 

マッピング テーブル

入力QoSを処理している間、すべてのトラフィック(非IPトラフィックを含む)のプライオリティは、分類段階で取得されたDSCPまたはCoS値に基づくQoSラベルで表されます。

入力分類中に、QoSは設定可能なマッピング テーブルを使用して、受信されたCoS、DSCP、またはIP precedence値から、対応するDSCPまたはCoS値を取得します。これらのマップには、CoS/DSCPマップやIP precedence/DSCPマップなどがあります。これらのマップを設定するには、 mls qos map cos-dscp および mls qos map ip-prec-dscp グローバル コンフィギュレーション コマンドを使用します。

DSCP信頼状態で設定された入力ポートのDSCP値がQoSドメイン間で異なる場合は、2つのQoSドメインの境界上にあるポートに、設定可能なDSCP/DSCP変換マップを適用することができます。このマップを設定するには、 mls qos map dscp-mutation グローバル コンフィギュレーション コマンドを使用します。

入力ポリシング中に、QoSはIPパケットまたは非IPパケットに別のDSCP値を割り当てることができます(パケットが不適合で、マークダウン値がポリサーによって指定されている場合)。この設定可能なマップをポリシング設定DSCPマップと呼びます。このマップを設定するには、 mls qos map policed-dscp グローバル コンフィギュレーション コマンドを使用します。

トラフィックがスケジューリング段階に到達する前に、QoSはQoSラベルに従って、入力および出力キューにパケットを格納します。QoSラベルは、着信パケットのDSCPまたはCoS値に基づいて設定されます。QoSラベルはDSCP入力/出力キュー スレッシュホールド マップまたはCoS入力/出力キュー スレッシュホールド マップを使用して、キューセットから入力キューおよび出力キューを選択します。これらのマップを設定するには、 mls qos srr-queue { input | output } dscp-map および mls qos srr-queue { input | output } cos-map グローバル コンフィギュレーション コマンドを使用します。

CoS/DSCP、DSCP/CoS、およびIP precedence/DSCPマップのデフォルト値は、使用しているネットワークに適する場合と適さない場合があります。

デフォルトのDSCP/DSCP変換マップおよびデフォルトのポリシング設定DSCPマップは、空のマップです。これらのマップでは、着信したDSCP値が同じDSCP値にマッピングされます。 DSCP/DSCP変換マップは、特定のポートに適用できる唯一のマップです。その他のすべてのマップはスイッチ全体に適用されます。

設定の詳細については、「DSCPマップの設定」を参照してください。

DSCPおよびCoS入力キュー スレッシュホールド マップの詳細については、「入力キューのキューイングおよびスケジューリング」を参照してください。DSCPおよびCoS出力キュー スレッシュホールド マップの詳細については、「出力キューセットのキューイングおよびスケジューリング」を参照してください。

キューイングおよびスケジューリングの概要

スイッチには特定ポイントでのキューがあり、図32-6に示すように輻輳回避に役立ちます。図32-6に、ESポートを含むすべてのポートでのトラフィックの入力および出力キューを示します。

図32-6 入力および出力キューの位置

 

すべてのポートの入力帯域幅の合計が内部リングの帯域幅を超えることがあるため、入力キューはパケットの分類、ポリシング、およびマーキングのあと、パケットがスイッチ ファブリックに転送される前の位置に配置されています。複数の入力ポートから1つの出力ポートに同時にパケットが送信されて、輻輳が発生することがあるため、出力キューセットは内部リングのあとに配置されています。

各ポートは出力キューセットに属し、出力キューセットでは、ポートごとに4つのキューの特性がすべて定義されます。ESポートでは、各パケットが物理インターフェイス、VLAN、またはクラスに基づいて階層型キューに割り当てられる階層型キューイング モデルも使用されます。ESポートから受信されたトラフィック、またはESポート宛てのトラフィックは、キューセットを通過します。階層型キューに輻輳が発生し、キューセットにバックアップされた場合は、キューセットの設定によってトラフィックの廃棄方法が制御されます。

入力キューは輻輳管理にWTDを使用します。出力キューセットにもWTDが使用されます。詳細については、次のセクションを参照してください。

入力キューでスケジューリングを行う場合は、共有モードのSRRがサポートされます。同様に、出力キューセットでスケジューリングを行う場合は、共有モードまたはシェーピング モードのSRRがサポートされます。詳細については、「SRRのシェーピングおよび共有」を参照してください。

入力キューイングおよびスケジューリングの詳細については、「入力キューのキューイングおよびスケジューリング」を参照してください。出力キューセットのキューイングおよびスケジューリングの詳細については、「出力キューセットのキューイングおよびスケジューリング」を参照してください。

ESポートの階層型キューでは、輻輳管理にテール ドロップまたはWREDを使用します。同様に、スケジューリングにはCBWFQまたはLLQを使用します。詳細については、 「階層型キューのキューイングおよびスケジューリング」を参照してください。

WTD

入力キューおよび出力キューセットには、WTDと呼ばれるテール廃棄輻輳回避メカニズムの拡張バージョンが使用されます。WTDはキューの長さを管理して、トラフィック分類ごとに異なる廃棄優先順位を設定します。

フレームが特定のキューに送信されると、WTDはフレームに割り当てられたQoSラベルを使用して、それぞれ異なるスレッシュホールドを適用します。このQoSラベルのスレッシュホールドを超えた場合( 宛先キューの空きスペースがフレーム サイズより小さくなると) 、フレームは廃棄されます。

図32-7に、サイズが1000フレームであるキューにおけるWTDの動作例を示します。40%、60%、および100%の3つの廃棄の割合が設定されています。これらの廃棄率は、40%スレッシュホールドの場合は最大400フレーム、60%スレッシュホールドの場合は最大600フレーム、100%スレッシュホールドの場合は最大1000フレームをキューイングできるという意味です。

この例では、CoS値6および7は他のCoS値よりも重要度が高く、100%廃棄スレッシュホールドに割り当てられます(キューフル ステート)。CoS値4および5は60%スレッシュホールドに、CoS値0~3は40%スレッシュホールドに割り当てられます。

600個のフレームが格納されているキューに、新しいフレームが着信したとします。このフレームのCoS値は4および5で、60%スレッシュホールドが適用されます。このフレームがキューに追加されると、スレッシュホールドを超過するため、フレームは廃棄されます。

図32-7 WTDおよびキューの動作

 

詳細については、「入力キューへのDSCPまたはCoS値のマッピングおよびWTDスレッシュホールドの設定」「出力キューセットに対するバッファ スペースの割り当ておよびWTDスレッシュホールドの設定」、および「出力キューセットおよびスレッシュホールドIDへのDSCPまたはCoS値のマッピング」を参照してください。

SRRのシェーピングおよび共有

入力キューおよび出力キューセットはSRRで処理され、SRRによってパケットの送信レートが制御されます。入力キューでは、SRRによってパケットが内部リングに送信されます。出力キューセットでは、SRRによってパケットが標準ポートに送信されます。

出力キューでは、SRRを共有またはシェーピング用に設定できます。ただし、入力キューでは共有がデフォルト モードであり、これ以外のモードはサポートされていません。

シェーピング モードでは、キューの帯域幅割合が保証され、この値にレートが制限されます。シェーピングされたトラフィックの場合は、リンクがアイドルの場合も、割り当てを超える帯域幅は使用されません。シェーピングを使用すると、トラフィック フローがより均一になり、バースト トラフィックの最大時と最小時の幅が小さくなります。シェーピングの場合は、各ウェイトの絶対値を使用して、キューで使用可能な帯域幅が計算されます。

共有モードでは、キューは設定されたウェイトに従って各キュー間の帯域幅を共有します。帯域幅はこのレベルで保証されますが、このレベルに限定されるわけではありません。たとえば、特定のキューが空であり、リンクを共有する必要がない場合、残りのキューは未使用の帯域幅を使用して、共有することができます。共有の場合、キューからパケットを取り出す頻度はウェイトの比率によって制御されます。ウェイトの絶対値には意味がありません。

詳細については、「各入力キューの帯域幅の割り当て」「出力キューセットのSRRシェーピング ウェイトの設定」、および「出力キューセットのSRR共有ウェイトの設定」を参照してください。

入力キューのキューイングおよびスケジューリング

図32-8に、入力キューイングおよびスケジューリングに関するフローチャートを示します。

図32-8 入力キューイングおよびスケジューリングのフローチャート

 


) 設定された割合に従って、SRRはプライオリティ キューを処理してから、他のキューを処理します。


スイッチは、SRRによって共有モードでのみ処理される、設定可能な入力キューを2つサポートしています。 表32-1 にこれらのキューの説明を示します。

 

表32-1 入力キューのタイプ

キュー タイプ1
説明

標準

標準プライオリティとみなされるユーザ トラフィック。各フローを区別するために、3つの異なるスレッシュホールドを設定できます。 mls qos srr-queue input
threshold
mls qos srr-queue input dscp-map 、および mls qos srr-queue input
cos-map
グローバル コンフィギュレーション コマンドを使用できます。

緊急

Differentiated Services(DF)緊急転送または音声トラフィックなどのハイプライオリティ ユーザ トラフィック。このトラフィックに必要な帯域幅は、 mls qos
srr-queue input priority-queue
グローバル コンフィギュレーション コマンドを使用して、合計トラフィックの割合として設定できます。緊急キューは帯域幅が保証されています。

1.スイッチでは、設定不可能なトラフィック用キューが2つ使用されます。これらのキューは、ネットワークを適切に動作させるために重要です。

キューおよびスレッシュホールドに、スイッチを通過する各パケットを割り当てます。特に、入力キューにはDSCPまたはCoS値、スレッシュホールドIDにはDSCPまたはCoS値をマッピングします。 mls qos srr-queue input dscp-map queue queue-id { dscp1...dscp8 | threshold threshold-id
dscp1...dscp8 } または mls qos srr-queue input cos-map queue queue-id { cos1...cos8 | threshold threshold-id
cos1...cos8
} グローバル コンフィギュレーション コマンドを使用します。DSCP入力キュー スレッシュホールド マップおよびCoS入力キュー スレッシュホールド マップを表示するには、 show mls qos maps イネーブルEXECコマンドを使用します。

WTDスレッシュホールド

キューはWTDを使用して、トラフィック クラスごとに異なる廃棄割合をサポートします。各キューには3つの廃棄スレッシュホールドがあります。そのうちの2つは設定可能( 明示的 )なWTDスレッシュホールドで、もう1つはキューフル ステートに設定済みの設定不可能( 暗黙的 )なスレッシュホールドです。入力キューに2つの明示的WTDスレッシュホールド(スレッシュホールドID 1およびID 2用)を割り当てるには、 mls qos srr-queue input threshold queue-id threshold-percentage1 threshold-percentage2 グローバル コンフィギュレーション コマンドを使用します。各スレッシュホールド値は、キューに割り当てられたバッファの合計値に対する割合です。スレッシュホールドID 3の廃棄スレッシュホールドは、キューフル ステートに設定されていて、変更できません。WTDの機能の詳細については、「WTD」を参照してください。

バッファおよび帯域幅の割り当て

2つのキューに入力バッファを分割する比率を定義する(スペース量を割り当てる)には、 mls qos srr-queue input buffers percentage1 percentage2 グローバル コンフィギュレーション コマンドを使用します。バッファ割り当てと帯域幅割り当てを組み合わせることにより、廃棄する前にバッファに格納して送信できるデータ量が制御されます。帯域幅を割合として割り当てるには、 mls qos srr-queue input bandwidth weight1 weight2 グローバル コンフィギュレーション コマンドを使用します。ウェイトの比率は、SRRスケジューラが各キューから内部リングにパケットを送信する頻度の比率です。

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

特定の入力キューをプライオリティ キューとして設定するには、 mls qos srr-queue input
priority-queue
queue-id bandwidth weight グローバル コンフィギュレーション コマンドを使用します。プライオリティ キュー は内部リングの負荷にかかわらず帯域幅の一部が保証されているため、確実な配信を必要とするトラフィック(音声など)に使用する必要があります。

SRRは mls qos srr-queue input priority-queue queue-id bandwidth weight グローバル コンフィギュレーション コマンドの bandwidth キーワードで指定された設定済みウェイトに従って、プライオリティ キューを処理します。その後、SRRは残りの帯域幅を両方の入力キューで共有し、mls qos srr-queue input bandwidth weight1 weight2 グローバル コンフィギュレーション コマンドによって設定されたウェイトに従い、入力キューを処理します。

ここに記載されたコマンドを組み合わせると、特定のDSCPまたはCoS値を持つパケットを特定のキューに格納したり、大きなキュー サイズを割り当てたり、キューの処理頻度を増やしたり、プライオリティが低いパケットが廃棄されるようにキューのスレッシュホールドを調整したりして、トラフィックのプライオリティを設定することができます。設定の詳細については、「入力キューの特性の設定」を参照してください。

出力キューセットのキューイングおよびスケジューリング

図32-9に、出力キューセットのキューイングおよびスケジューリングに関するフローチャートを示します。


) 出力プライオリティ キューがポートでイネーブルになっている場合、SRRは空になるまでプライオリティ キューを処理します。次にSRRは他のキューの処理を行います。


図32-9 出力キューセットのキューイングおよびスケジューリングのフローチャート

 

各ポートは4つの出力キューをサポートし、そのうちの1つ(キュー1)を出力プライオリティ キューにできます。これらのキューはキューセットに割り当てられます。スイッチの標準ポートから送信されるすべてのトラフィックは、パケットに割り当てられたQoSラベルに基づいて、これらの4つのキューのいずれかを通過し、スレッシュホールドの影響を受けます。ESポート宛てのトラフィックはキューセットを通過したあとに、階層型キューに到達します。階層型キューに輻輳が発生し、キューセットにバックアップされた場合は、キューセットの設定によってトラフィックの廃棄方法が制御されます。

図32-10に出力キューセットのバッファを示します。バッファ スペースは共通プールと専用プールからなります。スイッチはバッファ割り当て方式を使用して、出力キューごとに最小バッファ サイズを確保します。これにより、いずれかのキューまたはポートがすべてのバッファを消費して、その他のキューのバッファが不足することがなくなり、要求元のキューにバッファ スペースを割り当てるかどうかが制御されます。スイッチは、目的のキューが確保量(下限)を超えるバッファを消費しているかどうか、最大バッファ(上限)をすべて消費しているかどうか、および共通プールが空である(空きバッファなし)か、または空でない(空きバッファあり)かを検出します。キューが上限に達していない場合、スイッチは専用プールまたは共通プール(空でない場合)からバッファ スペースを割り当てることができます。共通プールに空きバッファがない場合、またはキューが上限に達している場合は、フレームが廃棄されます。

図32-10 出力キューセットのバッファ割り当て

 

バッファおよびメモリの割り当て

バッファのアベイラビリティの保証、廃棄スレッシュホールドの設定、およびキューセットの最大メモリ割り当ての設定を行うには、 mls qos queue-set output qset-id threshold queue-id drop-threshold1 drop-threshold2 reserved-threshold maximum-threshold グローバル コンフィギュレーション コマンドを使用します。各スレッシュホールド値はキューに割り当てられたメモリの割合です。この割合を指定するには、 mls qos queue-set output qset-id buffers allocation1 ... allocation4 グローバル コンフィギュレーション コマンドを使用します。 割り当てられたすべてのバッファの合計が専用プールになります。残りのバッファは共通プールの一部になります。

バッファ割り当てを行うと、ハイプライオリティ トラフィックを確実にバッファに格納することができます。たとえば、バッファ スペースが400の場合、バッファ スペースの70%をキュー1に割り当てて、10%をキュー2~4に割り当てることができます。キュー1には280のバッファが割り当てられ、キュー2~4にはそれぞれ40バッファが割り当てられます。

割り当てられたバッファをキューセット内の特定のキュー用に確保することができます。たとえば、キュー用として100バッファある場合、50%(50バッファ)を確保することができます。残りの50バッファは共通プールに戻されます。また、最大スレッシュホールドを設定することにより、キューが一杯になった場合でも、確保量を超えるバッファの取得を可能にすることができます。共通プールが空でない場合、必要なバッファを共通プールから割り当てることができます。

WTDスレッシュホールド

キューおよびスレッシュホールドにスイッチを通過する各パケットを割り当てることができます。特に、出力キューセットにはDSCPまたはCoS値、スレッシュホールドIDにはDSCPまたはCoS値をマッピングします。 mls qos srr-queue output dscp-map queue queue-id { dscp1...dscp8 | threshold threshold-id dscp1...dscp8 } または mls qos srr-queue output cos-map queue queue-id { cos1...cos8 | threshold threshold-id cos1...cos8 } グローバル コンフィギュレーション コマンドを使用します。DSCP出力キュー スレッシュホールド マップおよびCoS出力キュー スレッシュホールド マップを表示するには、 show mls qos maps イネーブルEXECコマンドを使用します。

キューセットはWTDを使用して、トラフィック クラスごとに異なる廃棄割合をサポートします。各キューには3つの廃棄スレッシュホールドがあります。そのうちの2つは設定可能( 明示的 )なWTDスレッシュホールドで、もう1つはキューフル ステートに設定済みの設定不可能( 暗黙的 )なスレッシュホールドです。スレッシュホールドID 1およびID 2用の2つのWTDスレッシュホールド割合を割り当てます。スレッシュホールドID 3の廃棄スレッシュホールドは、キューフル ステートに設定されていて、変更できません。WTDの機能の詳細については、「WTD」を参照してください。

シェーピング モードまたは共有モード

SRRは共有モードまたはシェーピング モードで各キューセットを処理します。ポートをキューセットにマッピングするには、 queue-set qset-id インターフェイス コンフィギュレーション コマンドを使用します。標準ポートに共有ウェイトまたはシェーピング ウェイトを割り当てるには、 srr-queue
bandwidth share
weight1 weight2 weight3 weight4 または srr-queue bandwidth shape weight1 weight2 weight3 weight4 インターフェイス コンフィギュレーション コマンドを使用します。ESポートに割り当てることができるのは、共有ウェイトのみです。シェーピングと共有の違いについては、「SRRのシェーピングおよび共有」を参照してください。

バッファ割り当てとSRRウェイト比率を組み合わせることにより、廃棄する前にバッファに格納して送信できるデータ量が制御されます。ウェイトの比率は、SRRスケジューラが各キューからパケットを送信する頻度の比率です。

出力プライオリティ キューがイネーブルになっていない限り、4つのキューすべてがSRRに参加します。この場合、最初の帯域幅ウェイトは無視され、比率計算には使用されません。SRRは、他のキューの処理を行う前に、空になるまでプライオリティ キューを処理します。プライオリティ キューをイネーブルにするには、 priority-queue out インターフェイス コンフィギュレーション コマンドを使用します。

ここに記載されたコマンドを組み合わせると、特定のDSCPまたはCoS値を持つパケットを特定のキューに格納したり、大きなキュー サイズを割り当てたり、キューの処理頻度を増やしたり、プライオリティが低いパケットが廃棄されるようにキューのスレッシュホールドを調整したりして、トラフィックのプライオリティを設定することができます。設定の詳細については、「出力キューセットの特性の設定」を参照してください。


) ほとんどの場合は、出力キューセットのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用のQoSソリューションを満たしていない場合のみです。


階層型QoSの概要

スイッチは、ESポートの入力または出力に適用される階層型QoS設定(トラフィック分類、CBWFQ、LLQ、シェーピング、および2つのレートと3つのカラーによるポリシング)をサポートします。

階層型QoS設定は、トラフィックの帯域幅制限ストリームの概念に基づいています。帯域幅制限ストリームは、送信レートがいくつかの方法で制限されるパケット ストリームです。スイッチは階層レベルごとに各パケットを分類し、パケットがこの階層レベルのどのトラフィック ストリームに属するかを選択する必要があります。ストリームが分類されている場合に、着信レートが送信レートを超えると、キューイングが輻輳することがあります。この輻輳の影響を抑えるために、ポリサー廃棄を含むポリシーを設定したり、輻輳回避技術であるテール ドロップまたはWREDを設定したり、パケットをキューイングするかどうかを制御することができます。また、スケジューリング ポリシー(CBWFQ、LLQ、およびシェーピング)を実行して、パケットをポートから送信する頻度を制御することもできます。

ここで説明する内容は次のとおりです。

「階層レベル」

「トラフィック クラスおよびトラフィック ポリシーに基づく階層型分類」

「階層型ポリシングおよびマーキング」

「階層型キューのキューイングおよびスケジューリング」

階層レベル

階層型QoS設定には、トラフィックの分類、ポリシング、キューイング、およびスケジューリングが含まれます。 階層を作成するには、クラスレベル ポリシー マップにVLANレベル ポリシー マップを、VLANレベル ポリシー マップに物理レベル ポリシー マップを対応付け、ESポートに物理レベル ポリシー マップを付加します。階層レベルは省略できますが、レベルの順序(クラス レベル、VLANレベル、そのあとに物理レベル)は保持する必要があります。

階層には、次に示す3つのQoSレベルを設定できます。

クラス レベル ― この階層レベルを設定するには、 match { cos [ inner ] cos-list | dscp dscp-list | ip precedence ip-precedence-list | mpls experimental exp-list } クラス マップ コンフィギュレーション コマンドを使用して、出力パケットのCoS、DSCP、IP precedence、またはMPLS EXPビットを比較します。クラス レベルで実行できる処理は、次のとおりです。

police cir または police cir percent ポリシーマップ クラス コンフィギュレーション コマンドを使用して、ポリサー廃棄を設定します。

queue-limit または random-detect ポリシーマップ クラス コンフィギュレーション コマンドを使用して、テール ドロップまたはWRED廃棄ポリシーを設定します。

トラフィック クラスを変更するには、 set { cos new-cos | dscp new-dscp | precedence
new-precedence
| mpls experimental exp-number } ポリシーマップ クラス コンフィギュレーション コマンドを使用して、レイヤ2およびレイヤ3のQoSフィールドを設定します。

bandwidth または priority ポリシーマップ クラス コンフィギュレーション コマンドを使用して、CBWFQまたはLLQスケジューリングを設定します。

shape ポリシーマップ クラス コンフィギュレーション コマンドを使用して、トラフィック シェーピングを設定します。

スイッチでは、このレベルのポリシー マップごとに8つのクラス(デフォルト クラスを含む)がサポートされます。デフォルト クラスは、どの一致条件も満たさないパケット専用のクラスです。

次に、クラスレベル分類およびその命名規則の例を示します。

Switch(config)# class-map match-any class-level-class-map-name
Switch(config-cmap)# match ip dscp 10 11 12
 

次に、クラスレベル ポリシー マップおよびその命名規則の例を示します。

Switch(config)# policy-map class-level-policy-map-name
Switch(config-pmap)# class class-level-class-name
Switch(config-pmap-c)# bandwidth percent 20
Switch(config-pmap-c)# shape average 20000000
 

次に、クラスレベル分類とクラスレベル ポリシー マップを組み合わせてサービス ポリシーを作成するクラスレベル設定の例を示します。

Switch(config)# class-map c1
Switch(config-cmap)# match ip precedence 4
Switch(config-cmap)# exit
Switch(config)# policy-map policy1
Switch(config-pmap)# class c1
Switch(config-pmap-c)# police cir 500000 bc 10000 pir 1000000 be 10000 conform-action transmit exceed-action set-prec-transmit 2 violate-action drop
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# service-policy input policy1
 

VLANレベル ― VLAN単位のQoS設定を開始するには、1つまたは複数のVLANに対して match vlan vlan-id クラス マップ コンフィギュレーション コマンドを使用するか、または1つまたは複数の802.1Qトンネルに対して match vlan vlan-id および match vlan inner vlan-id クラス マップ コンフィギュレーション コマンドを使用します。このレベルでは、ポリシングを行ったり、使用可能なポート帯域幅を共有してCBWFQをイネーブルにしたり、トラフィックをシェーピングするように、VLANまたは802.1Qトンネルを設定することができます。これらの機能を設定するには、 police cir police cir percent bandwidth 、および shape ポリシーマッ
プ クラス コンフィギュレーション コマンドを使用します。

より詳細な制御を行うために、 service-policy ポリシーマップ クラス コンフィギュレーション コマンドを使用して、クラス レベルで定義された子ポリシーを新しいサービス ポリシーに対応付けることができます。クラスレベルの子ポリシーでは、テール ドロップまたはWRED廃棄ポリシーを設定したり、レイヤ2およびレイヤ3 QoSフィールドを設定したり、完全優先キューをイネーブルにしたりできます。これらの機能を使用できるのは、クラス レベルのみです。子ポリシーを使用して、VLANクラスに一致するトラフィックにのみクラスレベル ポリシーを適用します。

1つのクラス マップ内でVLANレベルとクラスレベルの一致処理を混在させることはできません。

ユーザが作成したVLANレベル クラスは、2045個まで付加できます。つまり、一意のクラスを1022個作成して、それらを2つのESポートに対応付けたり(ポートを1つ残すこともできます)、一方のESポートに多くのクラスを追加して、もう一方のポートからその分を差し引くことができます。設定したすべてのクラスをシェーピングすることができます。最大4093個のクラス マップを作成できます。

次に、VLANレベル分類およびその命名規則の例を示します。

Switch(config)# class-map match-all vlan-level-class-map-name
Switch(config-cmap)# match vlan 5
Switch(config-cmap)# match vlan inner 3 - 8
 

次に、VLANレベル ポリシー マップおよびその命名規則の例を示します。

Switch(config)# policy-map vlan-level-policy-map-name
Switch(config-pmap)# class vlan-level-class-name
Switch(config-pmap-c)# police cir 500000 bc 10000 pir 1000000 be 10000 conform-action transmit exceed-action set-prec-transmit 2 violate-action drop
 

次に、定義された子ポリシーがクラス レベルで対応付けられている場合のVLANレベル ポリシー マップおよびその命名規則の例を示します。

Switch(config)# policy-map vlan-level-policy-map-name
Switch(config-pmap)# class vlan-level-class-name
Switch(config-pmap-c)# bandwidth percent 30
Switch(config-pmap-c)# service-policy class-level-policy-map-name
 

次に、VLANレベル分類とVLANレベル ポリシー マップを組み合わせた場合のVLANレベル設定の例を示します。

Switch(config)# class-map match-all vlan203
Switch(config-cmap)# match vlan 203
Switch(config-cmap)# exit
Switch(config)# policy-map vlan-policy
Switch(config-pmap)# class vlan203
Switch(config-pmap-c)# police cir 500000 bc 10000 pir 1000000 be 10000 conform-action transmit exceed-action set-prec-transmit 2 violate-action drop
 

次に、VLANレベル分類とVLANレベル ポリシー マップを組み合わせて、定義された子ポリシーをクラス レベルで対応付けるVLANレベル ポリシー マップの例を示します。

Switch(config)# class-map cls-class
Switch(config-cmap)# match mpls experimental 2
Switch(config-cmap)# exit
Switch(config)# class-map log-class
Switch(config-cmap)# match vlan 203
Switch(config-cmap)# exit
Switch(config)# policy-map cls-policy
Switch(config-pmap)# class cls-class
Switch(config-pmap-c)# set mpls experimental 5
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map log-policy
Switch(config-pmap)# class log-class
Switch(config-pmap-c)# service-policy cls-policy
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/2
Switch(config-if)# switchport trunk encapsulation isl
Switch(config-if)# switchport mode trunk
Switch(config-if)# service-policy output log-policy
 

物理レベル ― 階層の物理レベルでclass-defaultクラスのみをシェーピングまたはポリシングするには、 shape police cir 、または police cir percent ポリシーマップ クラス コンフィギュレーション コマンドを使用します。

ポリシーマップ内のclass-defaultは、親ポリシーと一致するにもかかわらず、ポリシー マップ内の明示的な一致条件と一致しないすべてのトラフィックに適用されます。親ポリシーが設定されていない場合、親ポリシーは物理ポートを表します。物理レベル ポリシー マップでは、class-default以外のクラスを設定できません。

階層型ポリシーをESポートに付加するには、 service-policy [ input | output ] policy-map-name インターフェイス コンフィギュレーション コマンドを使用します。

次に、物理レベルの設定例を示します、すべての階層レベルが存在し、順序が保持されています。クラス レベルが一番下、VLANレベルが真ん中、物理レベルが一番上になります。

Switch(config)# class-map my-class
Switch(config-cmap)# match ip precedence 1
Switch(config-cmap)# exit
Switch(config)# class-map my-logical-class
Switch(config-cmap)# match vlan 5
Switch(config-cmap)# exit
Switch(config)# policy-map my-class-policy
Switch(config-pmap)# class my-class
Switch(config-pmap-c)# set precedence 2
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map my-logical-policy
Switch(config-pmap)# class my-logical-class
Switch(config-pmap-c)# shape average 400000000
Switch(config-pmap-c)# service-policy my-class-policy
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map my-physical-policy
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# shape average 500000000
Switch(config-pmap-c)# service-policy my-logical-policy
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# service-policy output my-physical-policy
 

トラフィック クラスおよびトラフィック ポリシーに基づく階層型分類

階層型分類では、受信時または送信前にトラフィックの種類を相互に区別します。スイッチは、パケットのフィールドを調べ、 match コマンドを処理してキューを作成します。スイッチは、階層型ポリシーに設定されているQoS仕様に従って、トラフィックを転送します。

特定のトラフィック フロー(またはクラス)を定義したり、このフローを他のすべてのトラフィックから隔離するには、クラス マップを使用します。クラス マップでは、特定のトラフィック フローとの比較を行い、さらにそれを分類するために使用する条件を定義します。クラス レベルの条件では、ヘッダー内のCoS、DSCP、IP precedence、またはMPLS EXPビットを比較することができます。VLANレベルの条件では、内部および外部VLAN IDに基づいてパケットを比較することができます。複数のタイプのトラフィックを分類する場合は、別のクラス マップを作成し、異なる名前を付けることができます。

クラス マップを作成するには、 class-map グローバル コンフィギュレーション コマンドを使用します。 class-map コマンドを入力すると、クラス マップ コンフィギュレーション モードが開始されます。このモードでは match クラス マップ コンフィギュレーション コマンドを使用し、トラフィックの一致条件を定義します。パケットは、クラス マップに設定された一致条件に対して比較されます。指定された条件と一致するパケットはクラスのメンバーとみなされ、対応するキューが作成され、トラフィック ポリシーに設定されたQoS指定に従って転送されます。どの一致条件とも一致しないパケットは、デフォルト トラフィック クラスが設定されている場合、そのメンバーとして分類されます。

トラフィック ポリシーを作成したり、対象となるトラフィック クラスを指定したり、そのトラフィック クラスに対応付けるQoS機能を設定するには、ポリシー マップを使用します。アクションには、受信されたトラフィック クラスのCoS、DSCP、またはIP precedenceビットを信頼するアクション、トラフィック クラスに特定のCoS、DSCP、IP precedence値、またはMPLS EXPビットを設定するアクション、またはトラフィック帯域幅の制限およびトラフィックが不適合な場合の対処方法を指定するアクションなどを指定できます。

ポリシー マップを作成して名前を付けるには、 policy-map グローバル コンフィギュレーション コマンドを使用します。このコマンドを入力すると、ポリシーマップ コンフィギュレーション モードが開始されます。このモードで、トラフィック ポリシーに対応付けられたトラフィック クラスに名前を付けるには、 class ポリシーマップ コンフィギュレーション コマンドを使用します。 class ポリシーマップ コンフィギュレーション コマンド内でクラス名として class-default を指定した場合、どの一致条件とも一致しないパケットは、デフォルト トラフィック クラスのメンバーとして分類されます。このクラスは他のトラフィック クラスと同様に処理(ポリシングやマーキングなどを実行)できますが、削除できません。

ポリシー マップ内のclass-defaultは、親ポリシーのポリシー マップと一致するにもかかわらず、ポリシー マップ内の明示的な一致条件と一致しないすべてのトラフィックを指定します。親ポリシーが設定されていない場合、親ポリシーは物理ポートを表します。物理レベル ポリシー マップでは、class-default以外のクラスを設定できません。

class コマンドを使用してトラフィック クラスに名前を付けると、ポリシーマップ クラス コンフィギュレーション モードが開始され、このトラフィック クラスに関する対処法を指定できるようになります。

階層型ポリシー マップをESポートに付加するには、 service-policy [ input | output ] policy-map-name インターフェイス コンフィギュレーション コマンドを使用します。ポリシー マップには、
bandwidth police cir police cir percent priority queue-limit random-detect shape 、または set ポリシーマップ クラス コンフィギュレーション コマンドを含めることができます。ポリシー マップにclass-defaultクラスが含まれている場合に、設定を行うには police cir police cir percent 、および shape コマンドを使用する必要があります。

詳細については、「階層型ポリシングおよびマーキング」および「階層型キューのキューイングおよびスケジューリング」を参照してください。

階層型ポリシングおよびマーキング

階層型トラフィック ポリシングは、ESポートで送受信されるトラフィックの最大レートを制御します。ポリサーはトラフィックの帯域幅制限、およびその制限を超過した場合の対処法を定義します。通常はネットワーク エッジのポートに設定されて、ネットワークを行き来するトラフィックを制限します。通常のポリシング設定では、レート パラメータに適合するトラフィックが送信されます。このパラメータを超過するトラフィックは、 不適合 とみなされ、廃棄されるか、または別のプライオリティで送信されます。

ポリシー マップ内の2つのレートを使用するトラフィック ポリサーをクラス レベル、VLANレベル、および物理レベルで設定するには、 police cir または police cir percent ポリシーマップ クラス コンフィギュレーション コマンドを使用します。階層の物理レベルでポリシングできるのは、ESポートに付加されたポリシー内のclass-defaultクラスのみです。

トラフィック クラスの送信速度を制限して、パケットごとにアクション(conform、exceed、およびviolate)をマーキングするように、2つのレートを使用するトラフィック ポリサーを設定することができます。conform、exceed、およびviolateのカテゴリ内で、パケットの処理を決定します。通常の設定では、適合(conform)パケットは送信するように、超過(exceed)パケットはプライオリティを低下させて送信するように、違反(violate)パケットは廃棄するように設定します。パケットのCoS、DSCP、IP precedence、またはMPLS EXPビットのプライオリティを低下させることができます。

2つのレートを使用するポリサーは、トークン バケット アルゴリズムを使用してトラフィックの最大レートを管理します。このアルゴリズムでは、設定されたCommitted Information Rate(CIR;認定情報速度)およびPeak Information Rate(PIR)レート値を使用して、指定時間にポートで許可されるトラフィックの最大レートを制御します。このアルゴリズムはポートから送信されるすべてのトラフィックの影響を受け、複数の巨大パケットが同じトラフィック ストリーム内で送信された場合に、ネットワーク帯域幅を管理します。

トークン バケットはCIRおよびPIRに使用されます(図32-11を参照)。

図32-11 2つのレートを使用するポリシングおよびマーキングのフローチャート

 

CIRおよびPIRレートはビット/秒単位(またはESポートで使用可能な帯域幅の割合)で設定します。これらのレートにより、バケットにトークンが満たされる(更新される)速度が制御されます。適合バースト サイズ(bc)およびピーク バースト サイズ(be)は、CIRおよびPIRバケットの深度をバイト単位で表します。この深度により、バケットに蓄積できるトークン数が制限されます。バケットが限度一杯まで満たされている場合は、新規に着信したトークンが廃棄されます。

各トークンは、特定のビット数をネットワークに送信するように送信元に許可します。パケットを送信するには、パケット サイズに等しいトークン数をバケットから取り出す必要があります。バケットに十分な数のトークンがある場合、パケットは適合し、次の段階に渡すことができます。パケットに十分な数のトークンがない場合は、バケットに対応付けられたexceedアクションがパケットに適用されます。パケットが廃棄されたり、プライオリティ値がマークダウンされることがあります。

このトークン バケットの例では、CIRレートが2 Kbpsの場合、1秒間に2000個のトークンがバケットに追加されます(この例では、各トークンが1ビットの情報を表すとします)。1500バイトのパケットが着信した場合に、exceedアクションを起動しないでパケットを次の段階に渡すためには、12000個のトークン(1500バイト×8ビット/バイト)がバケットになければなりません。バケットに十分な数のトークンがある場合は、トークンが取り出され、パケットは適合となって、次の段階に渡されます。パケット内のトークン数が12000個に満たない場合は、exceedアクションがパケットに適用されます。バケットが深いほど、バケットが満たされる速度よりも速く、より多くのデータをバースト転送することができます。たとえば、CIRバケットに6000個のトークンが保持されている場合は、バケットを取り出さなくても(exceedアクションを起動しなくても)750バイトのトラフィックをすぐにバースト転送できます。これは、即時バーストのレートがCIRレートである2000 bpsを超えている場合も同様です。

バースト サイズがシステムのMaximum Transmission Unit(MTU;最大伝送ユニット)に近づくと、ポリサーはCIRおよびPIRを厳密に実行します。通常のトラフィック ジッタが発生すると、平均着信レートが適合しているように見える場合でも、着信トラフィックの一部に不適合フラグが設定されることがあります。逆に、バースト サイズが極端に大きい場合は、不適合なデータ レートで送信される巨大なトラフィック バーストがポリサーを通過し、適合フラグが設定されることがあります。バースト サイズの設定値が小さすぎる場合は、トラフィック量が予測した値よりも少なくなり、バースト サイズの設定値が大きすぎる場合は、トラフィック量が予測した値よりも多くなります。

CIRが100 Kbps、PIRが200 Kbpsに設定されている場合に、250 Kbpsのレートのデータ ストリームに2つのレートを使用するポリサーが適用されると、パケット マーキング アクションは次のようになります。

100 Kbpsに、レートに適合するというマークが設定されます。

100 Kbpsに、レートを超過するというマークが設定されます。

50 Kbpsに、レートに違反するというマークが設定されます。

CIRをPIRと同じに設定すると、CIRを下回るトラフィック レート、またはCIRに等しいトラフィック レートは、適合になります。CIRを超過するトラフィック レートは、違反になります。

PIRをCIRよりも大きな値に設定すると、CIRを下回るトラフィック レートは適合になります。CIRを超過し、PIR以下のトラフィック レートは超過になります。PIRを超過するトラフィック レートは、違反になります。

ポリシー マップおよびポリシング アクションを設定したあとで、 service-policy [ input | output ] policy-map-name インターフェイス コンフィギュレーション コマンドを使用して、ポリシーをESポートに付加します。設定の詳細については、「階層型QoSの設定」を参照してください。

階層型キューのキューイングおよびスケジューリング

図32-12に、階層型キューのキューイングおよびスケジューリングに関するフローチャートを示します。

図32-12 階層型キューのキューイングおよびスケジューリングに関するフローチャート

 

階層型キュー

スイッチでは、ESポートで送受信されたトラフィックに対して階層型キューイング モデルが使用されます。各パケットには、物理インターフェイス、VLAN、またはクラスに基づいてキューが割り当てられてます。

クラス レベルでは、パケットはCoS、DSCP、IP precedence、またはMPLS EXP分類に応じて4つのキューのいずれかのキューに格納されます。パケットはこれらの値の任意の組み合わせを使用して分類することができます。パケットが複数の値と一致する場合は、リストに記述された順番に従って分類されます。4つのキューの中の最後のキューは、デフォルト キュー専用です。その他の3つのキューのいずれにも分類されないパケットは、デフォルト キューに割り当てられます。デフォルト キュー内のトラフィックに輻輳回避機能およびスケジューリング輻輳管理機能を設定することができます(階層型キューのキューイングおよびスケジューリングを参照)。

VLANレベルでは、2045個のVLANクラスを2つのESポートに分割することができます。1つのキューはデフォルト キュー専用です。もう一方のVLANキューに分類されないパケットは、デフォルト キューに割り当てられます。デフォルト キュー内のトラフィックに輻輳回避機能およびスケジューリング輻輳管理機能を設定することができます(階層型キューのキューイングおよびスケジューリングを参照)。

物理レベルでは、ポートごとに1つのキューが確保されます。

スイッチはデフォルト キューを作成し、ESポートにサービス ポリシーが付加されていない場合は、このキューを使用してすべてのトラフィックを送信します。サービス ポリシーが付加されていない物理ポートのユーザ トラフィックには、QoS分類が行われないで、デフォルト キューに格納されます。デフォルト キューの最小および最大帯域幅は、ポート帯域幅と同じです。

輻輳が発生している場合、同じ送信側キューに設定されたすべてのクラスのパケットは、同じ確率で廃棄されます。キューイング機能を完全に実行するには、各送信側キューのクラス間でトラフィックを均等に分割する必要があります。

輻輳管理および輻輳回避機能

輻輳管理機能を使用すると、輻輳を制御したり、パケットに割り当てられたプライオリティに基づいて、ESポートでパケットを送受信する順番を制御することができます。輻輳を管理するには、キューを作成し、パケット分類に基づいてパケットを割り当て、キューから送信されるパケットをスケジューリングします。

トラフィック量が少ない場合(輻輳が発生していない期間)は、着信したパケットは即座に送信されます。発信または着信ポートに輻輳が発生している場合は、ポートの着信速度がポートの送信速度を超えます。輻輳管理機能を使用している場合は、送信する余裕が生じるまで、ポートに蓄積したパケットはキューに格納されます。これらのパケットは、ポートに割り当てられたプライオリティおよびキューイング メカニズムに従って送信されるようにスケジューリングされます。

テール ドロップまたはWREDのいずれかを設定できます。同じクラス ポリシーにテール ドロップとWREDを両方設定することはできませんが、同じポリシー マップ内の異なる2つのクラス ポリシーで使用することはできます。

キュー スケジューリング管理機能にはCBWFQを、スケジューリング輻輳管理機能にはLLQを、トラフィックのバースト性を小さくする場合はトラフィック シェーピングを設定することができます。

テール ドロップ

テール ドロップを使用した場合、最大スレッシュホールドを超えるまでパケットはクラス キューに格納されます。最大スレッシュホールドを超えると、そのクラス キュー宛てのパケットはすべて廃棄されます。テール ドロップをクラス レベルでイネーブルにするには、 queue-limit ポリシーマップ クラス コンフィギュレーション コマンドを使用します。設定の詳細については、「階層型QoSポリシーの設定」を参照してください。

WRED

シスコシステムズでは、他の輻輳回避技術と異なり、WREDと呼ばれるRandom Early Detection(RED;ランダム早期検出)のバージョンを実装しています。WREDは発生した輻輳を制御する代わりに、輻輳を予測して回避しようとします。WREDはTCP輻輳制御を利用します。パケット送信を一時的に停止する必要がある場合に、WREDはその旨をエンド ホストに指示することにより、平均キュー サイズを制御します。WREDは輻輳が激しくなる前にランダムにパケットを廃棄して、パケット送信元に送信速度を下げるように要求します。パケット送信元でTCPが動作している場合、WREDはすべてのパケットが宛先に到達するまで送信速度を下げるように送信元に要求することで、輻輳を解消します。キューが一杯になるまで待機しないで、早目に一部のパケットを廃棄することにより、一度に多数のパケットが廃棄されなくなります。

WREDがイネーブルの場合にパケットが着信すると、次のイベントが発生します。

直前の平均キュー サイズおよび現在のキュー サイズに基づいて、平均キュー サイズが計算されます。平均キューサイズの計算には、 random-detect exponential-weight-constant ポリシーマップ クラス コンフィギュレーション コマンド内の指数ウェイト定数設定が影響します。

平均キュー サイズが最小キュー スレッシュホールドよりも小さい場合、着信パケットはキューイングされます。最小キュー スレッシュホールドを設定するには、 random-detect { dscp | precedence } ポリシーマップ クラス コンフィギュレーション コマンド内で min-threshold オプションを使用します。

平均キュー サイズが最小キュー スレッシュホールドと最大キュー スレッシュホールドの間の値をとる場合、パケットはパケット廃棄確率に応じて廃棄またはキューイングされます。パケットの廃棄確率は、最小スレッシュホールド、最大スレッシュホールド、およびマーク確率値に基づいて決まります。最大キュー スレッシュホールドを設定するには、 max-threshold オプションを使用します。マーク確率値を設定するには、 random-detect dscp { dscp | precedence } ポリシーマップ クラス コンフィギュレーション コマンドで mark-prob-denominator オプションを使用します。

平均キュー サイズが最大キュー スレッシュホールドよりも大きい場合、パケットは自動的に廃棄されます。

WREDをイネーブルにするには、クラス レベルで random-detect ポリシーマップ クラス コンフィギュレーション コマンドを使用します。このコマンドを使用すると、それぞれ異なるIP precedenceまたはDSCP値が設定されたパケット間で優先廃棄処理を実行できます。キューに輻輳が発生すると、WREDアルゴリズムによってキュー宛てのパケットが廃棄またはマーキングされます。パケットはキューが一杯になる前に、適正に廃棄されます。IP precedence値が大きいパケットは、IP precedence値が小さいパケットよりも優先します。設定の詳細については、「階層型QoSポリシーの設定」を参照してください。

CBWFQ

CBWFQは、特定のトラフィック クラス(音声など遅延の影響を受けやすいトラフィック クラス)の帯域幅を保証しながら、ネットワーク内の他のすべてのトラフィックを適正に処理します。トラフィック クラスは一致条件に基づいて定義します。クラスの一致条件を満たすパケットが、そのクラスのトラフィックを形成します。クラスごとに1つのキューが確保され、クラスに属するトラフィックは、そのクラスのキューに送られます。

クラスに割り当てた帯域幅は、輻輳時にそのクラスに与えられる最小帯域幅になります。CBWFQは帯域幅ウェイトを使用して、このクラスのキューを適正に処理します。

CBWFQをイネーブルにし、最小帯域幅をレート(Kbps)または使用可能な帯域幅に対する割合として指定するには、クラス レベルまたはVLANレベルで bandwidth ポリシーマップ クラス コンフィギュレーション コマンドを使用します。輻輳している場合、クラスは設定された帯域幅に応じて処理されます。クラスに使用できる帯域幅は、親クラスで確保されている帯域幅によって決まります。設定の詳細については、「階層型QoSポリシーの設定」を参照してください。

LLQ

LLQはトラフィック クラスの完全優先キューイングを提供します。LLQを使用すると、遅延の影響を受けやすい音声などのデータを送信してから、他のキューのパケットを送信することができます。プライオリティ キューは、空になるまで先に処理されます。プライオリティ キューに送信できるのは、クラスレベル ポリシーごとに1つのトラフィック ストリームのみです。プライオリティ キューは同じ階層内のすべてのトラフィック ストリームを制限するため、この機能を設定する場合は注意が必要です。トラフィック クラスのプライオリティ キューをイネーブルにするには、クラス レベルで priority ポリシーマップ クラス コンフィギュレーション コマンドを使用します。設定の詳細については、「階層型QoSポリシーの設定」を参照してください。

Cisco IOS Release 12.1(14)AX2では、LLQまたは priority-queue out インターフェイス コンフィギュレーション コマンドでイネーブルにできる出力プライオリティ キューを使用すると、トラフィックのクラスにプライオリティを設定し、スイッチに輻輳が発生した場合のトラフィックの損失を回避できます。それ以前(出力プライオリティがサポートされる以前)のリリースでは、トラフィック クラスを完全優先キューに入れることはできましたが、出力キューセットでの輻輳により、そのプライオリティ トラフィックが廃棄されることがありました。 priority-queue out インターフェイス コンフィギュレーション コマンドを使用すると、出力キューセットで同じトラフィック クラスのプライオリティを設定し、プライオリティ トラフィックが確実に階層型キューに到着し、プライオリティに従って処理されるようにできます。

シェーピング

シェーピングは、キュー内の不適合パケットを遅らせて、指定されたプロファイルに適合させるプロセスを提供します。シェーピングはポリシングと異なります。ポリシングでは、設定されたスレッシュホールドを超過するパケットは廃棄されますが、シェーピングではトラフィックがスレッシュホールドを超過しないように、パケットはバッファされます。シェーピングでは、ポリシングよりもトラフィック処理を円滑に実行できます。トラフィック クラスに関して平均レートのトラフィック シェーピングをイネーブルにするには、クラス レベルまたはVLANレベルで shape ポリシーマップ クラス コンフィギュレーション コマンドを使用します。階層の物理レベルでシェーピングできるのは、class-defaultクラスのみです。そのためには、ESポートに付加されたポリシー内で shape ポリシーマップ クラス コンフィギュレーション コマンドを使用します。設定の詳細については、「階層型QoSポリシーの設定」を参照してください。

自動QoSの設定

自動QoSを使用すると、既存のQoS機能を簡単に導入できます。自動QoSはネットワーク設計に関する前提条件を設定するもので、それによってスイッチは、デフォルトのQoS動作を使用せずにトラフィック フローごとにプライオリティを設定し、入力キューおよび出力キューを適切に使用できます(デフォルトで、QoSはディセーブルです。スイッチはパケットの内容やサイズに関係なく、各パケットにベストエフォート型サービスを提供し、単一キューでパケットを送信します)。

自動QoSをイネーブルにすると、トラフィック タイプと入力パケット ラベルに基づいてトラフィックが自動的に分類されます。スイッチはこの分類結果を使って適切な出力キューを選択します。

Cisco IP Phoneに接続したポート、およびCisco SoftPhoneアプリケーションを実行しているデバイスを識別するには、自動QoSコマンドを使用します。また、このコマンドを使用すれば、アップリンクを通じて信頼されたトラフィックを受信するポートも識別できます。ここで自動QoSは次の機能を実行します。

IP Phoneの有無を検知します。

QoS分類を設定します。

出力キューを設定します。

ここでは、スイッチ上で自動QoSを設定する手順について説明します。

「生成される自動QoS設定」

「自動QoSの設定上の影響」

「自動QoS設定時の注意事項」

「以前のソフトウェア リリースからのアップグレード」

「VoIP用の自動QoSのイネーブル化」

「自動QoS設定例」

生成される自動QoS設定

デフォルトでは、自動QoSはすべてのポートでディセーブルに設定されています。

自動QoSがイネーブルの場合、トラフィックの分類、パケット ラベルの割り当て、および入力キューと出力キューセットの設定には入力パケット ラベルを使用します( 表32-2 を参照)。

 

表32-2 トラフィック タイプ、パケット ラベル、およびキュー

VoIP2データ トラフィック
VoIP制御
トラフィック
ルーティング
プロトコル
トラフィック
STP BPDU
トラフィック
リアルタイム
ビデオ
トラフィック
他のトラフィック

DSCP

46

24、26

48

56

34

-

CoS

5

3

6

7

4

-

CoS/入力キュー マップ

2、3、4、5、6、7(キュー2)

0、1(キュー1)

CoS/出力キュー マップ

5(キュー1)

3、6、7(キュー2)

4(キュー3)

2
(キュー3)

0、1
(キュー4)

2.VoIP = Voice over IP

表32-3 に、生成された入力キューの自動QoS設定を示します。

 

表32-3 入力キュー用の自動QoS設定

入力キュー
キュー番号
CoS/キュー マップ
キュー ウェイト
(帯域幅)
キュー(バッファ)
サイズ

SRR共有

1

0、1

81%

67%

プライオリティ

2

2、3、4、5、6、7

19%

33%

表32-4 に、生成された出力キューセットの自動QoS設定を示します。

 

表32-4 出力キューセット用の自動QoS設定

出力キュー
キューセットのキュー番号
CoS/キュー マップ
キュー ウェイト
(帯域幅)
キュー(バッファ)
サイズ

プライオリティ
(シェーピング)

1

5

10%

10%

SRR共有

2

3、6、7

10%

10%

SRR共有

3

2、4

60%

26%

SRR共有

4

0、1

20%

54%

最初のポートで自動QoS機能をイネーブルにすると、次の動作が自動的に発生します。

QoSがグローバルにイネーブルになり( mls qos グローバル コンフィギュレーション コマンド)、その他のグローバル コンフィギュレーション コマンドが追加されます。

Cisco IP Phoneに接続されたネットワークのエッジにあるポート上で auto qos voip cisco-phone インターフェイス コンフィギュレーション コマンドを入力すると、スイッチは信頼境界機能をイネーブルにします。スイッチはCisco Discovery Protocol(CDP)を使用して、Cisco IP Phoneの有無を検出します。Cisco IP Phoneが検出されると、パケットで受信されるQoSラベルを信頼するようにポートの入力分類が設定されます。Cisco IP Phoneがない場合、パケットで受信されるQoSラベルを信頼しないように入力分類が設定されます。スイッチは 表32-3 および 表32-4 の設定に従って、ポートに入力キューおよび出力キューを設定します。

Cisco SoftPhoneを実行しているデバイスに接続されたネットワークのエッジにあるポートに
auto qos voip cisco-softphone
インターフェイス コンフィギュレーション コマンドを入力すると、スイッチはポリシングを使用して、パケットが適合か不適合かを判別し、パケット上でのアクションを指定します。パケットのDSCP値が24、26、または46でない場合、あるいはパケットが不適合の場合、スイッチはDSCP値を0に変更します。スイッチは 表32-3 および 表32-4 にある設定に従って、ポートで入力キューおよび出力キューを設定します。

ネットワーク内部に接続されたポート上で auto qos voip trust インターフェイス コンフィギュレーション コマンドを入力すると、非ルーテッド ポートの場合は入力パケット内のCoS値、ルーテッド ポートの場合は入力パケット内のDSCP値が信頼されます(前提条件は、トラフィックがすでに他のエッジ デバイスによって分類されていることです)。スイッチは 表32-3 および 表32-4 の設定に従って、ポートに入力キューおよび出力キューセットを設定します。

信頼境界機能の詳細については、「信頼境界の設定によるポート セキュリティの確保」を参照してください。

auto qos voip cisco-phone auto qos voip cisco-softphone 、または auto qos voip trust インターフェイス コンフィギュレーション コマンドを使用して自動QoSをイネーブルにすると、スイッチはトラフィック タイプと入力パケット ラベルに基づいて自動的にQoS設定を生成し、 表32-5 に示すコマンドをポートに適用します。


) ESポートで生成されたauto qos voipコマンド リストには、srr-queue bandwidth shapeインターフェイス コンフィギュレーション コマンドは含まれません。


 

表32-5 生成される自動QoS設定

説明
自動的に生成されるコマンド

スイッチは標準QoSを自動的にイネーブルにし、CoS/DSCPマップ(着信パケット内のCoS値のDSCP値へのマッピング)を設定します。

Switch(config)# mls qos
Switch(config)# mls qos map cos-dscp 0 8 16 26 32 46 48 56

スイッチはCoS値を入力キューおよびスレッシュホールドIDに自動的にマッピングします。

Switch(config)# no mls qos srr-queue input cos-map
Switch(config)# mls qos srr-queue input cos-map queue 1 threshold 3 0
Switch(config)# mls qos srr-queue input cos-map queue 1 threshold 2 1
Switch(config)# mls qos srr-queue input cos-map queue 2 threshold 1 2
Switch(config)# mls qos srr-queue input cos-map queue 2 threshold 2 4 6 7
Switch(config)# mls qos srr-queue input cos-map queue 2 threshold 3 3 5

スイッチはCoS値をキューセット内の出力キューおよびスレッシュホールドIDに自動的にマッピングします。

Switch(config)# no mls qos srr-queue output cos-map
Switch(config)# mls qos srr-queue output cos-map queue 1 threshold 3 5
Switch(config)# mls qos srr-queue output cos-map queue 2 threshold 3 3 6 7
Switch(config)# mls qos srr-queue output cos-map queue 3 threshold 3 2 4
Switch(config)# mls qos srr-queue output cos-map queue 4 threshold 2 1
Switch(config)# mls qos srr-queue output cos-map queue 4 threshold 3 0

スイッチはDSCP値を入力キューおよびスレッシュホールドIDに自動的にマッピングします。

Switch(config)# no mls qos srr-queue input dscp-map
Switch(config)# mls qos srr-queue input dscp-map queue 1 threshold 2 9 10 11 12 13 14 15
Switch(config)# mls qos srr-queue input dscp-map queue 1 threshold 3 0 1 2 3 4 5 6 7
Switch(config)# mls qos srr-queue input dscp-map queue 1 threshold 3 32
Switch(config)# mls qos srr-queue input dscp-map queue 2 threshold 1 16 17 18 19 20 21 22 23
Switch(config)# mls qos srr-queue input dscp-map queue 2 threshold 2 33 34 35 36 37 38 39 48
Switch(config)# mls qos srr-queue input dscp-map queue 2 threshold 2 49 50 51 52 53 54 55 56
Switch(config)# mls qos srr-queue input dscp-map queue 2 threshold 2 57 58 59 60 61 62 63
Switch(config)# mls qos srr-queue input dscp-map queue 2 threshold 3 24 25 26 27 28 29 30 31
Switch(config)# mls qos srr-queue input dscp-map queue 2 threshold 3 40 41 42 43 44 45 46 47

スイッチはDSCP値をキューセット内の出力キューおよびスレッシュホールドIDに自動的にマッピングします。

Switch(config)# no mls qos srr-queue output dscp-map
Switch(config)# mls qos srr-queue output dscp-map queue 1 threshold 3 40 41 42 43 44 45 46 47
Switch(config)# mls qos srr-queue output dscp-map queue 2 threshold 3 24 25 26 27 28 29 30 31
Switch(config)# mls qos srr-queue output dscp-map queue 2 threshold 3 48 49 50 51 52 53 54 55
Switch(config)# mls qos srr-queue output dscp-map queue 2 threshold 3 56 57 58 59 60 61 62 63
Switch(config)# mls qos srr-queue output dscp-map queue 3 threshold 3 16 17 18 19 20 21 22 23
Switch(config)# mls qos srr-queue output dscp-map queue 3 threshold 3 32 33 34 35 36 37 38 39
Switch(config)# mls qos srr-queue output dscp-map queue 4 threshold 1 8
Switch(config)# mls qos srr-queue output dscp-map queue 4 threshold 2 9 10 11 12 13 14 15
Switch(config)# mls qos srr-queue output dscp-map queue 4 threshold 3 0 1 2 3 4 5 6 7

スイッチはプライオリティ キューとしてキュー2、共有モードの場合はキュー1を使用して、入力キューを自動的に設定します。入力キュー用の帯域幅およびバッファ サイズも設定します。

Switch(config)# no mls qos srr-queue input priority-queue 1
Switch(config)# no mls qos srr-queue input priority-queue 2
Switch(config)# mls qos srr-queue input bandwidth 90 10
Switch(config)# mls qos srr-queue input threshold 1 8 16
Switch(config)# mls qos srr-queue input threshold 2 34 66
Switch(config)# mls qos srr-queue input buffers 67 33

スイッチは出力キューセットのバッファ サイズを自動的に設定します。帯域幅およびSRRモード(シェーピングまたは共有)も設定します。

Switch(config)# mls qos queue-set output 1 buffers 10 10 26 54
Switch(config-if)# srr-queue bandwidth shape 10 0 0 0
Switch(config-if)# srr-queue bandwidth share 10 10 60 20

スイッチは、非ルーテッド ポートの場合はパケット内で受信されたCoSを信頼するように、ルーテッド ポートの場合はパケット内で受信されたDSCP値を信頼するように、入力分類を自動的に設定します。

Switch(config-if)# mls qos trust cos
Switch(config-if)# mls qos trust dscp

auto qos voip cisco-phone コマンドを入力すると、スイッチは自動的に信頼境界機能をイネーブルにします。この機能は、CDPを使用してCisco IP Phoneの有無を検出します。

Switch(config-if)# mls qos trust device cisco-phone

auto qos voip cisco-softphone コマンドを入力すると、スイッチはクラス マップおよびポリシー マップを自動的に作成します。

Switch(config)# mls qos map policed-dscp 24 26 46 to 0
Switch(config)# class-map match-all AutoQoS-VoIP-RTP-Trust
Switch(config-cmap)# match ip dscp ef
Switch(config)# class-map match-all AutoQoS-VoIP-Control-Trust
Switch(config-cmap)# match ip dscp cs3 af31
Switch(config)# policy-map AutoQoS-Police-SoftPhone
Switch(config-pmap)# class AutoQoS-VoIP-RTP-Trust
Switch(config-pmap-c)# set dscp ef
Switch(config-pmap-c)# police 320000 8000 exceed-action policed-dscp-transmit
Switch(config-pmap)# class AutoQoS-VoIP-Control-Trust
Switch(config-pmap-c)# set dscp cs3
Switch(config-pmap-c)# police 32000 8000 exceed-action policed-dscp-transmit

クラス マップおよびポリシー マップの作成後、スイッチは AutoQoS-Police-SoftPhone と呼ばれるポリシー マップを、Cisco SoftPhone機能を持つ自動QoSがイネーブルになっている入力インターフェイスに自動的に適用します。

Switch(config-if)# service-policy input AutoQoS-Police-SoftPhone

自動QoSの設定上の影響

自動QoSがイネーブルになっていると、 auto qos voip インターフェイス コンフィギュレーション コマンドおよび生成された設定が、実行コンフィギュレーションに追加されます。

自動QoSによって生成されたコマンドは、CLI(コマンドライン インターフェイス)から入力された場合と同様に適用されます。既存のユーザ設定により、生成されたコマンドの適用に失敗したり、生成されたコマンドでユーザ設定が上書きされることがあります。これらの動作は、警告なしに実行されます。生成されたコマンドがすべて正常に適用された場合、上書きされなかったユーザ入力の設定は、実行コンフィギュレーションに残ります。上書きされたユーザ入力の設定を元に戻すには、現在のコンフィギュレーションをメモリに保存しないでスイッチをリロードします。生成されたコマンドが適用されなかった場合は、元の実行コンフィギュレーションが復元されます。

自動QoS設定時の注意事項

自動QoSの設定を開始する前に、次の点に注意してください。

Cisco IOS Release 12.2(25)EYより前のリリースでは、自動QoSは、Cisco IP Phoneが接続されているスイッチ ポート上でのみスイッチを設定します。

Cisco IOS Release 12.2(25)EY以降のリリースでは、非ルーテッドおよびルーテッド ポート上でCisco IP Phoneが接続されているVoIPのスイッチを、自動QoSが設定します。また、自動QoSは、Cisco SoftPhoneアプリケーションを実行しているデバイスの付いたVoIPのスイッチも設定します。


) Cisco SoftPhoneを実行しているデバイスが非ルーテッドまたはルーテッド ポートに接続されている場合、スイッチはポート1つあたり1つのCisco SoftPhoneのみをサポートします。


自動QoSのデフォルト設定を利用するには、自動QoSをイネーブルにしてから、その他のQoSコマンドを設定してください。必要であれば、QoS設定をきめ細かく調整できますが、自動QoSコマンド設定が完了したあとに実行することを推奨します。詳細については、「自動QoSの設定上の影響」を参照してください。

自動QoSがイネーブルになったあとは、名前に AutoQoS を含むポリシー マップまたは集約ポリサーを変更しないでください。ポリシー マップまたは集約ポリサーを変更する必要がある場合は、そのコピーを作成し、コピーしたポリシー マップまたはポリサーを変更してください。生成されたポリシー マップの代わりにこの新規ポリシー マップを使用するには、生成されたポリシー マップをインターフェイスから削除し、新規ポリシー マップをインターフェイスに適用します。

スタティック アクセス、ダイナミック アクセス、音声VLANアクセス、およびトランク ポートで自動QoSをイネーブルにできます。

デフォルトでは、CDPはすべてのポートでイネーブルに設定されています。自動QoSを適切に機能させるには、CDPをディセーブルにしないでください。

ルーテッド ポートでCisco IP Phoneが接続されている状態で自動QoSをイネーブルにするとき、IP PhoneにスタティックIPアドレスを割り当てる必要があります。

このリリースでは、Cisco IP SoftPhoneバージョン1.3(3)以降のバージョンのみがサポートされています。

接続されたデバイスは、Cisco Call Managerバージョン4以降のバージョンを使用する必要があります。

ポリシングは手動でイネーブルにできます(入力QoSポリシーの設定を参照)。

以前のソフトウェア リリースからのアップグレード

Cisco IOS Release 12.2(25)EYでは、自動QoSの実行が以前のリリースから変更されました。生成された自動QoS設定が変更され、Cisco SoftPhone機能へのサポートが追加され、さらにルーテッド ポートでのCisco IP Phoneへのサポートも追加されました。

自動QoSがスイッチ上で設定されていて、ご使用のスイッチがCisco IOS Release 12.2(25)EYより前のリリースを実行している環境で、Cisco IOS Release 12.2(25)EY以降のリリースにアップグレードすると、コンフィギュレーション ファイルには新規設定が含まれず、自動QoSが動作しません。コンフィギュレーション ファイルの自動QoS設定をアップグレードするには、次の手順を実行します。

1. スイッチをCisco IOS Release 12.2(25)EY以降のリリースにアップグレードします。

2. 自動QoSがイネーブルになっているすべてのポートで、自動QoSをディセーブルにします。

3. no コマンドを使用して、すべてのグローバル自動QoS設定をデフォルト値に戻します。

4. ステップ2で自動QoSをディセーブルにしたポート上で、自動QoSを再度イネーブルにします。以前と同じ自動QoS設定でそのポートを設定します。

VoIP用の自動QoSのイネーブル化

VoIP用のQoSをQoSドメインでイネーブルにするには、イネーブルEXECモードで次の手順を実行します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

interface interface-id

Cisco IP Phoneに接続されているポート、またはネットワーク内部にある他のスイッチやルータに接続されているアップリンク ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 3

auto qos voip { cisco-phone | cisco-softphone | trust }

自動QoSをイネーブルにします。

キーワードの意味は次のとおりです。

cisco-phone ポートがCisco IP Phoneに接続されている場合、着信パケットのQoSラベルは電話機が検出されたときのみ信頼されます。

cisco-softphone ポートはCisco SoftPhone機能を実行しているデバイスに接続されます。

trust アップリンク ポートが信頼できるスイッチまたはルータに接続されていて、入力パケット内のVoIPトラフィック分類が信頼されます。

ステップ 4

end

イネーブルEXECモードに戻ります。

ステップ 5

show auto qos interface interface-id

設定を確認します。

このコマンドは、適用された最初の自動QoS設定を表示するもので、実行した可能性のあるユーザによる変更は反映されません。 show running-config vlan イネーブルEXECコマンドを使用すれば、自動QoSの設定およびユーザによる変更を表示できます。

自動QoSがイネーブルまたはディセーブルの場合に自動生成されるQoSコマンドを表示するには、 debug autoqos イネーブルEXECコマンドを入力して から 、自動QoSをイネーブルにします。詳細については、このリリースのコマンド リファレンスに記載された「debug autoqos」コマンドの説明を参照してください。

ポートで自動QoSをディセーブルにするには、no auto qos voipインターフェイス コンフィギュレーション コマンドを使用します。自動QoSによりこのポートに生成されたインターフェイス コンフィギュレーション コマンドのみが削除されます。自動QoSがイネーブル化されていないポートに no auto qos voip コマンドを入力すると、自動QoSにより生成されたグローバル コンフィギュレーション コマンドが残っている場合も、自動QoSはディセーブルであるとみなされます(これにより、他のポート上でグローバル設定の影響を受けるトラフィックが中断されなくなります)。 no mls qos グローバル コンフィギュレーション コマンドを使用すると、自動QoSにより生成されたグローバル コンフィギュレーション コマンドをディセーブルにすることができます。QoSがディセーブルの場合、パケット(パケットのCoS値、DSCP値、およびIP precedence値)は変更されないため、信頼できるポート、信頼できないポートの概念はありません。トラフィックはパススルー モードでスイッチングされます(パケットは書き換えられずにスイッチングされ、ポリシングを伴わないベストエフォート型として分類されます)。

次に、ポートに接続されたスイッチやルータが信頼できるデバイスの場合に、ポート上で自動QoSをイネーブルにし、着信パケット内で受信されたQoSラベルを信頼する例を示します。

Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# auto qos voip trust

自動QoS設定例

ここでは、ネットワーク内でAuto-QoSを実装する手順について説明します(図32-13を参照)。

図32-13 自動QoSを設定したネットワークの例

 

図32-13図32-13に、VoIPトラフィックを他のすべてのトラフィックよりも優先的に処理するネットワークを示します。QoSドメインのエッジにある配線クローゼット内のスイッチ上で、自動QoSはイネーブルです。


) 自動QoSコマンドを入力する前にいかなる標準QoSコマンドも設定しないでください。QoS設定をきめ細かく調整できますが、自動QoSコマンド設定が完了したあとに実行することを推奨します。


VoIPトラフィックを他のすべてのトラフィックよりも優先させるように、QoSドメインのエッジにあるスイッチを設定するには、イネーブルEXECモードで次の手順を実行します。

 

コマンド
説明

ステップ 1

debug auto qos

自動QoS用のデバッグをイネーブルにします。デバッグがイネーブルになると、スイッチは、自動QoSがイネーブルになる際に自動的に生成されるQoS設定を表示します。

ステップ 2

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

cdp enable

CDPをグローバルにイネーブルにします。デフォルトでは、CDPはイネーブルに設定されています。

ステップ 4

interface interface-id

Cisco IP Phoneに接続されたスイッチ ポートを指定して、インターフェイス コンフィギュレーション モードを開始します。

ステップ 5

auto qos voip cisco-phone

ポート上で自動QoSをイネーブルにし、ポートにCisco IP Phoneが接続されていることを指定します。

着信パケット内のQoSラベルは、Cisco IP Phoneが検出された場合のみ信頼されます。

ステップ 6

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 7

Cisco IP Phoneが接続されたポートの数だけ、ステップ4~6を繰り返します。

ステップ 8

auto qos voip cisco-phone

ポート上で自動QoSをイネーブルにし、ポートにCisco IP Phoneが接続されていることを指定します。

ステップ 9

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 10

interface interface-id

信頼できるスイッチまたはルータに接続されていると識別されたポートを指定します(図32-13を参照)。インターフェイス コンフィギュレーション モードを開始します。

ステップ 11

auto qos voip trust

ポートで自動QoSをイネーブルにし、ポートが信頼できるルータやスイッチに接続されていることを指定します。

ステップ 12

end

イネーブルEXECモードに戻ります。

ステップ 13

show auto qos

設定を確認します。

このコマンドは、最初に適用された自動QoS設定を表示するもので、実行された可能性のあるユーザによる変更は反映されません。

自動QoSによって影響を受ける可能性のあるQoS設定に関する情報については、自動QoS情報の表示を参照してください。

ステップ 14

copy running-config startup-config

auto qos voip インターフェイス コンフィギュレーション コマンドと生成された自動QoS設定をコンフィギュレーション ファイルに保存します。

自動QoS情報の表示

自動QoSの初期設定を表示するには、 show auto qos [ interface interface-id ]イネーブルEXECコマンドを使用します。 ユーザが変更した設定を表示するには、 show running-config イネーブルEXECコマンドを使用します。 show auto qos および show running-config コマンド出力を比較すると、ユーザが定義したQoS設定を特定できます。

自動QoSによって影響を受ける可能性のあるQoS設定に関する情報を表示するには、次のいずれかのコマンドを使用します。

show mls qos

show mls qos maps cos-dscp

show mls qos interface [ interface-id ] [ buffers | queueing ]

show mls qos maps [ cos-dscp | cos-input-q | cos-output-q | dscp-cos | dscp-input-q | dscp-output-q ]

show mls qos input-queue

show running-config

これらのコマンドの詳細については、このリリースのコマンド リファレンスを参照してください。

標準QoSの設定

標準QoSを設定する前に、次の内容を完全に把握してください。

使用するアプリケーションのタイプおよびネットワークのトラフィック パターン。

トラフィックの特性およびネットワークの要求。トラフィック バーストの有無。音声およびビデオ ストリーム用に帯域幅を確保する必要性。

帯域要件およびネットワーク速度。

ネットワークで輻輳が発生する場所。

ここでは、スイッチに標準QoSを設定する手順について説明します。

「標準QoSのデフォルト設定」

「標準QoS設定時の注意事項」

「パケットの変更」

「QoSのグローバルなイネーブル化」(必須)

「ポートの信頼状態による入力分類の設定」(必須)

「入力QoSポリシーの設定」(必須)

「DSCPマップの設定」(任意、DSCP/DSCP変換マップまたはポリシング設定DSCPマップを使用する必要がない場合)

「入力キューの特性の設定」(任意)

「出力キューセットの特性の設定」(任意)

ESポートに発信トラフィックを設定する必要がある場合は、「階層型QoSの設定」を参照してください。

標準QoSのデフォルト設定

QoSはディセーブルに設定されています。パケット(パケットのCoS値、DSCP値、およびIP precedence値)は変更されないため、信頼できるポート、信頼できないポートの概念はありません。トラフィックはパススルー モードでスイッチングされます(パケットは書き換えられずにスイッチングされ、ポリシングを伴わないベストエフォート型として分類されます)。

mls qos グローバル コンフィギュレーション コマンドを使用してQoSをイネーブルにし、その他のすべてのQoS設定がデフォルトである場合、トラフィックはポリシングを伴わないベストエフォート型として分類されます(DSCPおよびCoS値は0に設定されます)。ポリシー マップは設定されていません。デフォルトでは、すべてのポートは信頼できない状態になっています。入力キューおよび出力キューセットのデフォルト設定については、「入力キューのデフォルト設定」および「出力キューセットのデフォルト設定」を参照してください。ESポートの発信トラフィックの詳細については、「階層型QoSのデフォルト設定」を参照してください。

入力キューのデフォルト設定

表32-6 に、QoSがイネーブルの場合の入力キューのデフォルト設定を示します。

 

表32-6 入力キューのデフォルト設定

機能
キュー1
キュー2

バッファ割り当て

90%

10%

帯域幅割り当て3

4

4

プライオリティ キューの帯域幅4

0

10

WTD廃棄スレッシュホールド1

100%

100%

WTD廃棄スレッシュホールド2

100%

100%

3.帯域幅は各キューで均等に共有されます。SRRは共有モードの場合のみパケットを送信します。

4.キュー2はプライオリティ キューです。設定された割合に従って、SRRはプライオリティ キューを処理してから、他のキューを処理します。

表32-7 に、QoSがイネーブルの場合のデフォルトのCoS入力キュー スレッシュホールド マップを示します。

 

表32-7 デフォルトのCoS入力キュー スレッシュホールド マップ

CoS値
キューID ― スレッシュホールドID

0~4

1-1

5

2-1

6、7

1-1

表32-8 に、QoSがイネーブルの場合のデフォルトのDSCP入力キュー スレッシュホールド マップを示します。

 

表32-8 デフォルトのDSCP入力キュー スレッシュホールド マップ

DSCP値
キューID ― スレッシュホールドID

0~39

1-1

40~47

2-1

48~63

1-1

出力キューセットのデフォルト設定

表32-9 に、QoSがイネーブルの場合の出力キューセットのデフォルト設定を示します。すべてのポートはキューセット1にマッピングされます。ポートの帯域幅制限は100%に設定され、レートは制限されません。

 

表32-9 出力キューセットのデフォルト設定

機能
キュー1
キュー2
キュー3
キュー4

バッファ割り当て

25%

25%

25%

25%

WTD廃棄スレッシュホールド1

100%

50%

100%

100%

WTD廃棄スレッシュホールド2

100%

50%

100%

100%

専用スレッシュホールド

50%

100%

50%

50%

最大スレッシュホールド

400%

400%

400%

400%

SRRシェーピング ウェイト(絶対)5

25

0

0

0

SRR共有ウェイト6

25

25

25

25

5.シェーピング ウェイトが0の場合、このキューは共有モードで動作します。

6.帯域幅の4分の1が各キューに割り当てられます。

表32-10 に、QoSがイネーブルの場合のデフォルトのCoS出力キュー スレッシュホールド マップを示します。

 

表32-10 デフォルトのCoS出力キュー スレッシュホールド マップ

CoS値
キューID ― スレッシュホールドID

0、1

2-1

2、3

3-1

4

4-1

5

1-1

6、7

4-1

表32-11 に、QoSがイネーブルの場合のデフォルトのDSCP出力キュー スレッシュホールド マップを示します。

 

表32-11 デフォルトのDSCP出力キュー スレッシュホールド マップ

DSCP値
キューID ― スレッシュホールドID

0~15

2-1

16~31

3-1

32~39

4-1

40~47

1-1

48~63

4-1

マッピング テーブルのデフォルト設定

デフォルトのCoS/DSCPマップについては、表32-12を参照してください。

デフォルトのIP precedence/DSCPマップについては、表32-13を参照してください。

デフォルトのDSCP/CoSマップについては、表32-14を参照してください。

デフォルトのDSCP/DSCP変換マップは、着信したDSCP値を同じDSCP値にマッピングする空のマップです。

デフォルトのポリシング設定DSCPマップは、着信したDSCP値を同じDSCP値にマッピングする(マークダウンしない)空のマップです。

標準QoS設定時の注意事項

QoSの設定を開始する前に、次の点に注意してください。

設定されたIP拡張ACLとIPフラグメントを比較して、QoSを実行することはできません。IPフラグメントはベストエフォート型として送信されます。IPフラグメントはIPヘッダー内のフィールドで指定されます。

各クラス マップに設定できるACLは1つのみです。ACLには、フィールドとパケットの内容を照合するACEを複数指定できます。ACLを含むクラス マップは、標準ポート、SVI、またはESポートに付加された入力非階層型単一レベル ポリシーでのみサポートされます。標準ポート、SVI、またはESポートに付加された非階層型ポリシー マップでは、 match access-group
acl-index-or-name クラスマップ コンフィギュレーション コマンドでのみ使用できます。 ESポートに付加された階層型サービス ポリシーについての詳細は、「階層型QoSの設定」を参照してください。

ポートごとに、サポートされるポリシー マップは1つだけです。標準物理ポート、SVI、またはESポートごとに、1つの入力非階層型サービス ポリシーを付加できます。また、SVIごとに1つの入力階層型サービス ポリシーも付加できます。

ブリッジング、ルーティング、またはCPUへの送信のいずれを行うかに関係なく、着信トラフィックは分類、ポリシング、およびマークダウンされます(設定されている場合)。ブリッジングされたフレームを廃棄したり、DSCPおよびCoS値を変更することができます。

ポートでは、1つのパケットに入力ポリサーを1つのみ適用できます。設定できるのは平均速度および確定されたバースト パラメータのみです。

同じポリシー マップ内の複数のトラフィック クラスで共有される集約ポリサーを作成できます。ただし、集約ポリサーを複数の異なるポリシー マップに使用することはできません。

標準ポートおよびESポートの入力側では、複数の物理ポートを制御するポートApplication Specific Integrated Circuit(ASIC;特定用途向けIC)デバイスは256個の入力ポリシー(255個のポリサーと1つの ポリサー)をサポートします。各ポートでサポートされているポリサーの最大数は64です。たとえば、ギガビット イーサネット ポートに32個のポリサー、ファスト イーサネット ポートに8個のポリサーを設定したり、ギガビット イーサネット ポートに64個のポリサー、ファスト イーサネット ポートに5個のポリサーを設定することができます。ポリサーは必要に応じてソフトウェアによって割り当てられ、ハードウェアおよびASIC境界の制約を受けます。ポートごとにポリサーを予約することはできません。特定のポートを目的のポリサーに確実に割り当てることはできません。これらの制限は、ESポートに付加された階層型ポリシーで設定されたポリサーには適用されません。

QoSが設定されたポートでは、そのポートを通じて受信されるすべてのトラフィックは、ポートに付加されたポリシー マップに従って分類、ポリシング、およびマーキングが行われます。QoSが設定されたトランク ポートでは、そのポートを通じて受信される すべての VLAN内トラフィックは、ポートに付加されたポリシー マップに従って分類、ポリシング、およびマーキングが行われます。

論理インターフェイス(EtherChannelなど)にサービス ポリシーを付加することはできないため、スイッチにEtherChannelポートが設定されている場合は、EtherChannelを形成する個々の物理ポートにQoSの分類、ポリシング、マッピング、およびキューイングを設定する必要があります。

スイッチで受信された制御トラフィック(スパニングツリーBridge Protocol Data Unit [BPDU;ブリッジ プロトコル データ ユニット]やルーティング アップデート パケットなど)には、すべての入力QoS処理が行われます。

キュー設定を変更すると、データが失われることがあります。したがって、トラフィックが最小のときに設定を変更するようにしてください。

出力プライオリティ キューがポートでイネーブルになっている場合は、次の注意事項に従ってください。それ以外の場合、出力キューはSRRウェイトに基づいて処理されます。

出力プライオリティ キューがイネーブルになっている場合、キュー1のSRRシェーピングおよび共有ウェイトを上書きします。

出力プライオリティ キューがディセーブルで、SRRシェーピングおよび共有ウェイトが設定されている場合、シェーピングされたモードは、キュー1の共有モードを上書きし、SRRはシェーピング モードでこのキューを処理します。

出力プライオリティ キューがディセーブルで、SRRシェーピング ウェイトが設定されていない場合、SRRは共有モードでこのキューを処理します。

Cisco IOS Release 12.2(25)EY以降のリリースでは、物理ポートまたはSVIでポリシー マップを設定する場合、次の注意事項に従ってください。

同じポリシー マップを物理ポートとSVIに適用することはできません。

VLANベースのQoSが物理ポートに設定されている場合、スイッチはそのポート上のすべてのポートベース ポリシー マップを削除します。この物理ポート上のトラフィックは、物理ポートが属するSVIに付加されたポリシー マップから影響を受けるようになります。

SVIに付加されたデュアルレベル ポリシー マップでは、物理ポートのインターフェイス レベルで個々のポリサーだけを設定し、ポート上のトラフィックの帯域幅制限を指定できます。入力ポートは、トランクまたはスタティックアクセス ポートとして設定されている必要があります。デュアルレベル ポリシー マップのVLANレベルでは、ポリサーを設定できません。

スイッチは、デュアルレベル ポリシー マップの集約ポリサーをサポートしません。

デュアルレベル ポリシー マップがSVIに付加されたあとは、インターフェイスレベル ポリシー マップを変更したり、デュアルレベル ポリシー マップから削除したりできません。新規インターフェイスレベル ポリシー マップをデュアルレベル ポリシー マップに追加することもできません。また、デュアルレベル ポリシー マップで指定されたクラス マップを追加したり削除したりすることもできません。こういった変更を行いたい場合は、階層型ポリシー マップを最初にSVIから削除する必要があります。

ESポートの発信トラフィックの詳細については、「階層型QoS設定時の注意事項」を参照してください。

パケットの変更

QoSを設定するにはパケットの分類、ポリシング、およびキューイングを行います。このプロセス中に、パケットが次のように変更されることがあります。

IPパケットおよび非IPパケットの入力分類では、受信パケットのDSCPまたはCoSに基づいて、パケットにQoSラベルが割り当てられます。ただし、この時点ではパケットは変更されません。割り当てられたDSCPまたはCoS値の情報のみがパケットに格納されて伝達されます。これは、QoSの分類および転送検索が並行して発生するためです。パケットを元のDSCPのままCPUに転送し、CPUでソフトウェアによる再処理を行うことができます。

ESポートが出力時にトラフィックを分類するとき、この分類をCoS、DSCP、IP precedence、またはMPLS EXPビットのキューイングまたはマーキングに使用できます。入力分類によって生じたパケット変更は、パケットが出力分類処理に到達する前に適用されます。たとえば、スイッチがCoS値が2のトラフィックを受信し、入力アクションによってCoSが4にリセットされた場合、パケットが出力分類処理に移行すると、CoSは4に設定されます(CoS値2、およびCoSを4に設定する必要があることを示すインジケータの設定は解除されます)。

入力ポリシング中は、IPおよび非IPパケットに別のDSCPを割り当てることができます(これらのパケットが不適合で、ポリサーがDSCPのマークダウンを指定している場合)。この場合も、パケット内のDSCPは変更されず、マークダウンされた値に関する情報がパケットに格納されて伝達されます。IPパケットの場合は、このあとの処理でパケットが変更されます。非IPパケットの場合は、DSCPがCoSに変換され、キューイングおよびスケジューリングの決定に使用されます。

ESポートの出力ポリシング中に、マーキング アクションはCoS、DSCP、IP precedence、またはMPLS EXPビットを設定することができます。入力ポリサーによって実行されたマーキングは、パケットが出力分類処理に到達する前に適用されます。

フレームに割り当てられたQoSラベル、および選択された変換マップに応じて、フレームのDSCPおよびCoS値が書き換えられます。変換マップが設定されておらず、着信フレームのDSCPを信頼するようにポートが設定されている場合、フレーム内のDSCP値は変更されないで、DSCP/CoSマップに従ってCoSが書き換えられます。着信フレームのCoSを信頼するようにポートが設定されていて、着信フレームがIPパケットの場合、フレーム内のCoS値は変更されませんが、DSCPはCoS/DSCPマップに従って変更されることがあります。

入力変換が行われると、選択された新しいDSCP値に応じてDSCPが書き換えられます。ポリシー マップの設定アクションによって、DSCPが書き換えられることもあります。

この情報は標準ポートおよびESポートの両方に適用されます。ESポートでは、出力時に802.1Qトンネリング フレームにも信頼ポリシーが適用されます。

入力階層型ポリシーをESポートに付加する場合、標準入力アクションの前に発生するマーキング プロセスが原因で、パケットがキューイング、廃棄、変更されることがあります。

QoSのグローバルなイネーブル化

デフォルトでは、QoSはスイッチ上でディセーブルです。

QoSをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。この手順は必須です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos

QoSをグローバルにイネーブルにします。

QoSは、「標準QoSのデフォルト設定」、および「階層型QoSのデフォルト設定」で説明されているデフォルト設定から実行されます。

ステップ 3

end

イネーブルEXECモードに戻ります。

ステップ 4

show mls qos

設定を確認します。

ステップ 5

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

QoSをディセーブルにするには、 no mls qos グローバル コンフィギュレーション コマンドを使用します。

ポートの信頼状態による入力分類の設定

ここでは、ポートの信頼状態を使用して着信トラフィックを分類する方法について説明します。ネットワーク設定に応じて、次に示す作業または「入力QoSポリシーの設定」に記載されている作業を1つまたは複数実行する必要があります。

「QoSドメイン内のポートの信頼状態の設定」

「インターフェイスのCoS値の設定」

「信頼境界の設定によるポート セキュリティの確保」

「DSCPトランスペアレンシ モードのイネーブル化」

「別のQoSドメインとの境界ポートでのDSCP信頼状態の設定」

QoSドメイン内のポートの信頼状態の設定

QoSドメインに入ってくるパケットは、QoSドメインのエッジで分類されます。QoSドメイン内のスイッチごとにパケットを分類する必要がないため、QoSドメイン内のスイッチ ポートを信頼状態の1つに設定できます。図32-14に、ネットワーク トポロジーの例を示します。

図32-14 QoSドメイン内のポートの信頼状態

 

受信するトラフィックの分類を信頼するようにポートを設定するには、イネーブルEXECモードで次の手順を実行します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

interface interface-id

信頼するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

有効なインターフェイスは物理ポートなどです。

ステップ 3

mls qos trust [ cos | dscp | ip-precedence ]

ポートの信頼状態を設定します。

デフォルトでは、ポートは信頼できる状態になっていません。キーワードを指定しない場合、デフォルトは dscp です。

802.1Qトンネルの場合、スイッチはこのポートに適用される信頼設定に従って、標準ポートの着信トラフィックを処理します。ESトランク ポートを介して送信されるパケットの内部および外部タグが設定されます。

キーワードの意味は次のとおりです。

cos ― パケットのCoS値を使用して入力パケットを分類します。タグなしパケットの場合は、ポートのデフォルトのCoS値が使用されます。デフォルトのポートCoS値は0です。

802.1Qトンネルの場合は、内部CoS値が外部CoS値にコピーされ、ESポートからパケットが送信されます。

dscp ― パケットがIPパケットの場合は、パケットのDSCP値を使用して入力パケットを分類します。非IPパケットでは、パケットがタグ付きの場合、パケットのCoS値が使用されます。パケットがタグなしの場合は、デフォルトのポートCoSが使用されます。CoS/DSCPマップを使用して、CoS値がDSCP値に内部的にマッピングされます。

802.1Qトンネルでは、タグなしの非IPパケットの場合、
DSCP/CoSマップから外部CoS値が設定され、内部CoS値が変更されないまま、ESポートからパケットが送信されます。IPパケットの場合、DSCP/DSCP変換マップが標準ポートに設定されていれば、パケットのDSCP値が変更されます。変換されたDSCP値を使用して、DSCP/CoSマップから外部CoS値が設定され、ESポートからパケットが送信されます。

ip-precedence ― パケットのIP precedence値を使用して入力パケットを分類します。 非IPパケットでは、パケットがタグ付きの場合、パケットのCoS値が使用されます。パケットがタグなしの場合は、デフォルトのポートCoSが使用されます。CoS/DSCPマップを使用して、CoS値がDSCP値に内部的にマッピングされます。

802.1Qトンネルの場合、DSCP/CoSマップから生成されたDSCP値が変換され、パケットの外部CoS値として使用されます。パケットの内部CoS値が変更されないまま、ESポートからパケットが送信されます。


802.1Qトンネリングとポート信頼ポリシーが併用されている場合は、同じトンネルVLANを共有するすべてのポートに同じ信頼ポリシーを設定し、関連するポートで同じDSCP/DSCP変換マップを使用する必要があります。詳細については、「DSCP/DSCP変換マップの設定」を参照してください。


 

ステップ 4

end

イネーブルEXECモードに戻ります。

ステップ 5

show mls qos interface

設定を確認します。

ステップ 6

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

ポートを信頼できない状態に戻すには、 no mls qos trust インターフェイス コンフィギュレーション コマンドを使用します。

デフォルトのCoS値を変更する方法については、「インターフェイスのCoS値の設定」を参照してください。CoS/DSCPマップを設定する方法については、「CoS/DSCPマップの設定」を参照してください。

インターフェイスのCoS値の設定

QoSは、信頼できるポートおよび信頼できないポートで受信されたタグなしフレームに、 mls qos cos インターフェイス コンフィギュレーション コマンドによって指定されたCoS値を割り当てます。

ポートのデフォルトのCoS値を定義したり、デフォルトのCoS値をポートのすべての着信パケットに割り当てるには、イネーブルEXECモードで次の手順を実行します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

interface interface-id

設定するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

有効なインターフェイスは物理ポートなどです。

ステップ 3

mls qos cos { default-cos | override }

ポートのデフォルトのCoS値を設定します。

802.1Qトンネルの場合、スイッチはこのポートに適用される信頼設定に従って、標準ポートの着信トラフィックを処理します。ESトランク ポートを介して送信されるパケットの内部および外部タグが設定されます。

default-cos を指定する場合は、ポートに割り当てるデフォルトのCoS値を指定します。パケットがタグなしの場合、デフォルトのCoS値がパケットのCoS値になります。指定できるCoSの範囲は0~7で、デフォルトは0です。

着信パケットにすでに設定されている信頼状態を上書きし、すべての着信パケットにデフォルトのポートCoS値を適用する場合は、 override キーワードを使用します。デフォルトでは、CoSの上書きはディセーブルに設定されています。

指定されたポートのすべての着信パケットのプライオリティを他のポートから着信したパケットよりも高く、または低く設定する場合は、 override キーワードを使用します。ポートが
DSCP、CoS、またはIP precedenceを信頼するように設定されている場合も、このコマンドを実行すると設定済みの信頼状態が上書きされ、すべての着信CoS値に、このコマンドによって設定されたデフォルトのCoS値が割り当てられます。着信パケットがタグ付きの場合、パケットのCoS値は入力ポートでデフォルトのポートCoS値に変更されます。

着信パケットが802.1Qトンネルとして動作しているインターフェイス上で受信され、ESポートから送信されるとき、スイッチは外部CoS値を変更し、内部CoS値は変更しません。

ステップ 4

end

イネーブルEXECモードに戻ります。

ステップ 5

show mls qos interface

設定を確認します。

ステップ 6

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルト設定に戻すには、 no mls qos cos { default-cos | override } インターフェイス コンフィギュレーション コマンドを使用します。

信頼境界の設定によるポート セキュリティの確保

通常のネットワークでは、図32-14に示すように、Cisco IP Phoneをスイッチ ポートに接続し、電話機の背後でデータ パケットを生成するデバイスをカスケード構成にします。Cisco IP Phoneは、音声パケットのCoSレベルをハイ プライオリティ(CoS=5)に、データ パケットのCoSレベルをロー プライオリティ(CoS=0)にマーキングして、共有データ リンクを通る音声品質を保証します。通常の場合、電話機からスイッチに送信されたトラフィックは、802.1Qヘッダーを使用するタグによってマーキングされます。このヘッダーにはVLAN情報、およびパケットのプライオリティを示すCoSの3ビットフィールドが格納されます。

ほとんどのCisco IP Phone設定では、電話機からスイッチに送信されたトラフィックは信頼され、音声トラフィックのプライオリティがネットワーク内のほかのタイプのトラフィックよりも高くなります。 mls qos trust cos インターフェイス コンフィギュレーション コマンドを使用することにより、ポートで受信されたすべてのトラフィックのCoSラベルを信頼するように、電話機の接続先であるスイッチ ポートを設定することができます。

電話機をバイパスしてPCがスイッチに直接接続されている場合、信頼できる状態に設定されているポートでは、信頼境界機能を使用することにより、ハイプライオリティ キューの誤使用を防止することもできます。信頼境界を使用しない場合、スイッチはPCによって生成されたCoSラベルを信頼します(CoS設定が信頼されるため)。対照的に、信頼境界を使用する場合は、CDPを使用してスイッチ ポート上でCisco IP Phone(Cisco IP Phone 7910、7935、7940、および7960)の存在を検出します。電話機が検出されなかった場合、信頼境界機能はスイッチ ポートの信頼設定をディセーブルにし、ハイプライオリティ キューの誤使用を防止します。PCおよびCisco IP Phoneがスイッチに接続されたハブに接続されている場合、信頼境界機能は無効であることに注意してください。

場合によっては、Cisco IP Phoneに接続されたPCがハイプライオリティのデータ キューを利用しないように設定できます。そのためには、 switchport priority extend cos インターフェイス コンフィギュレーション コマンドを使用し、PCから受信したトラフィックのプライオリティよりも優先するように、スイッチCLIを通して電話機を設定します。

ポートの信頼境界をイネーブルにするには、イネーブルEXECモードで次の手順を実行します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

cdp run

CDPをグローバルにイネーブルにします。デフォルトで、CDPはイネーブルに設定されています。

ステップ 3

interface interface-id

IP Phoneに接続されたポートを指定して、インターフェイス コンフィギュレーション モードを開始します。

有効なインターフェイスは物理ポートなどです。

ステップ 4

cdp enable

ポート上でCDPをイネーブルにします。デフォルトで、CDPはイネーブルに設定されています。

ステップ 5

mls qos trust cos

Cisco IP Phoneから受信したトラフィックのCoS値を信頼するように、ポートを設定します。デフォルトでは、ポートは信頼できる状態になっていません。

ステップ 6

mls qos trust device cisco-phone

Cisco IP Phoneが信頼されたデバイスであることを指定します。

信頼境界および自動QoS( auto qos voip インターフェイス コンフィギュレーション コマンド)は相互に排他的なので、同時にイネーブルにできません。

ステップ 7

end

イネーブルEXECモードに戻ります。

ステップ 8

show mls qos interface

設定を確認します。

ステップ 9

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

信頼境界機能をディセーブルにするには、 no mls qos trust device インターフェイス コンフィギュレーション コマンドを使用します。

DSCPトランスペアレンシ モードのイネーブル化

Cisco IOS Release 12.1(14)AX2より前のリリースのソフトウェアでは、QoSがディセーブルになっている場合、着信IPパケットのDSCP値は変更されません。QoSがイネーブルで、DSCPを信頼するようにインターフェイスを設定している場合、スイッチはそのDSCP値を変更しません。CoSを信頼するようにインターフェイスを設定している場合、スイッチはCoS/DSCPマップに従ってDSCP値を変更します。

Cisco IOS Release 12.1(14)AX2以降のリリースでは、スイッチはDSCPトランスペアレンシ機能をサポートします。出力時にパケットのDSCPフィールドにのみ影響を与えます。デフォルトでは、DSCPトランスペアレンシはディセーブルになっています。スイッチは着信パケットのDSCPフィールドを変更し、発信パケットのDSCPフィールドは、ポートの信頼設定、ポリシングとマーキング、DSCP/DSCP変換マップを含むQoS設定に基づきます。

no mls qos rewrite ip dscp コマンドを使用してDSCPトランスペアレンシがイネーブルになっている場合、スイッチは着信パケットのDSCPフィールドを変更せず、発信パケットのDSCPフィールドは着信パケットのDSCPフィールドと同じになります。

DSCPトランスペアレンシ設定に関係なく、スイッチはパケットの内部DSCP値を変更し、この内部DSCP値を使用して、スイッチはトラフィックのプライオリティを表すCoS値を生成します。また、スイッチは内部DSCP値を使用して出力キューおよびスレッシュホールドを選択します。

ESポートでは、出力ポリシー マップのアクションがパケットのDSCP値を変更し、ポリシー マップがESポートに適用されると、スイッチはDSCPトランスペアレンシ設定に関係なくDSCP値を変更します。

スイッチ上でDSCP透過をイネーブルにするには、イネーブルEXECモードで次の手順を実行します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos

QoSをグローバルにイネーブルにします。

ステップ 3

no mls qos rewrite ip dscp

DSCPトランスペアレンシをイネーブルにします。スイッチは、IPパケットのDSCPフィールドを変更しないように設定されます。

ステップ 4

end

イネーブルEXECモードに戻ります。

ステップ 5

show mls qos interface [ interface-id ]

設定を確認します。

ステップ 6

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

DSCPトランスペアレンシをディセーブルにして、スイッチが信頼設定またはACLに基づき、DSCP値を変更するように設定するには、 mls qos rewrite ip dscp グローバル コンフィギュレーション コマンドを使用します。

no mls qos グローバル コンフィギュレーション コマンドを使用してQoSをディセーブルにしている場合、CoSおよびDSCP値は変更されません(デフォルトQoS設定)。

no mls qos rewrite ip dscp グローバル コンフィギュレーション コマンドを入力し、DSCPトランスペアレンシをイネーブルにしてから mls qos trust [ cos | dscp ] インターフェイス コンフィギュレーション コマンドを入力した場合、DSCPトランスペアレンシはディセーブルになります。

別のQoSドメインとの境界ポートでのDSCP信頼状態の設定

2つの異なるQoSドメインを管理していて、そのQoSドメイン間のIPトラフィックにQoS機能を実行する場合は、DSCPを信頼するようにドメインの境界に位置するスイッチ ポートを設定することができます(図32-15を参照)。それにより、受信ポートでは信頼するDSCP値をそのまま使用し、QoSの分類手順が省略されます。2つのドメインで異なるDSCP値が使用されている場合は、他のドメイン内での定義に合わせて一連のDSCP値を変換するDSCP/DSCP変換マップを設定することができます。

図32-15 別のQoSドメインとの境界ポートでのDSCP信頼状態

 

ポートにDSCP信頼状態を設定して、DSCP/DSCP変換マップを変更するには、イネーブルEXECモードで次の手順を実行します。両方のQoSドメインに共通の方法でマッピングするには、両方のドメイン内のポートに次の手順を実行する必要があります。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos map dscp-mutation dscp-mutation-name in-dscp to out-dscp

DSCP/DSCP変換マップを変更します。

デフォルトのDSCP/DSCP変換マップは、着信したDSCP値を同じDSCP値にマッピングする空のマップです。

dscp-mutation-name には、変換マップ名を入力します。新しい名前を指定することにより、複数のマップを作成することができます。

in-dscp には、最大8つのDSCP値をスペースで区切って入力します。次に to キーワードを入力します。

out-dscp には、DSCP値を1つ入力します。

DSCPの範囲は0~63です。

ステップ 3

interface interface-id

信頼するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

有効なインターフェイスは物理ポートなどです。

ステップ 4

mls qos trust dscp

DSCPを信頼する状態のポートとして、入力ポートを設定します。デフォルトでは、ポートは信頼できる状態になっていません。

ステップ 5

mls qos dscp-mutation dscp-mutation-name

DSCPを信頼する状態の指定された入力ポートにマップを適用します。

dscp-mutation-name には、ステップ2で作成した変換マップ名を指定します。

1つの入力ポートに複数のDSCP/DSCP変換マップを設定できます。

ステップ 6

end

イネーブルEXECモードに戻ります。

ステップ 7

show mls qos maps dscp-mutation

設定を確認します。

ステップ 8

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

DSCPを信頼しない状態にポートを戻すには、 no mls qos trust インターフェイス コンフィギュレーション コマンドを使用します。デフォルトのDSCP/DSCP変換マップ値に戻すには、 no mls qos map dscp-mutation dscp-mutation-name グローバル コンフィギュレーション コマンドを使用します。

次に、DSCPを信頼する状態にポートを設定して、着信したDSCP値10~13がDSCP値30にマッピングされるようにDSCP/DSCP変換マップ( gi1/1/1-mutation )を変更する例を示します。

Switch(config)# mls qos map dscp-mutation gi1/1/1-mutation 10 11 12 13 to 30
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# mls qos trust dscp
Switch(config-if)# mls qos dscp-mutation gi1/1/1-mutation
Switch(config-if)# end

入力QoSポリシーの設定

通常の場合、入力QoSポリシーを設定するには、トラフィックをクラスに分類したり、これらのトラフィック クラスに適用されるポリシーを設定したり、ポリシーをポートに付加する必要があります。

基本的な情報については、「入力分類」および「入力ポリシングおよびマーキング」を参照してください。設定時の注意事項については、「標準QoS設定時の注意事項」を参照してください。

ここでは、着信トラフィックを分類、ポリシング、マーキングする方法について説明します。ネットワーク設定に応じて、次の作業を1つまたは複数実行する必要があります。

「ACLによる入力トラフィックの分類」

「クラス マップによる入力トラフィックの分類」

「非階層型単一レベル ポリシー マップによる入力トラフィックの分類、ポリシング、およびマーキング」

「集約ポリサーによる入力トラフィックの分類、ポリシング、およびマーキング」

ESポートにポリシーを設定する方法については、「階層型QoSポリシーの設定」を参照してください。ここでは、クラス マップを使用してトラフィックを分類する方法、2つのレートを使用するトラフィック ポリサーを設定する方法、トラフィック ポリシーにクラスベース パケット マーキングを設定する方法、CBWFQ、テール ドロップ、DSCPベースWRED、およびIP precedenceベースWREDを設定する方法、LLQをイネーブルにする方法、およびシェーピングを設定する方法について説明します。

ACLによる入力トラフィックの分類

入力IPトラフィックを分類するには、IP標準またはIP拡張ACLを使用します。レイヤ2 MAC ACLを使用して、入力非IPトラフィックを分類することもできます。

着信IPトラフィック用のIP標準ACLを作成するには、イネーブルEXECモードで次の手順を実行します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

access-list access-list-number { deny | permit } source [ source-wildcard ]

IP標準ACLを作成します。必要な回数だけこのコマンドを繰り返します。

access-list-number には、アクセス リスト番号を入力します。指定できる範囲は1~99および1300~1999です。

条件が一致した場合に特定のタイプのトラフィックを許可するには、 permit キーワードを使用します。条件が一致した場合に特定のタイプのトラフィックを拒否するには、 deny キーワードを使用します。

source には、パケットの送信元であるネットワークまたはホストを入力します。 any キーワードは0.0.0.0 255.255.255.255の短縮形として使用することができます。

(任意) source-wildcard を指定する場合は、送信元に適用するワイルドカード ビットをドット付き10進表記で入力します。無視するビット位置に1を配置します。


) アクセス リストを作成するときは、アクセス リストの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。


 

ステップ 3

end

イネーブルEXECモードに戻ります。

ステップ 4

show access-lists

設定を確認します。

ステップ 5

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

アクセス リストを削除するには、 no access-list access-list-number グローバル コンフィギュレーション コマンドを使用します。

次に、指定された3つのネットワーク上のホストにのみアクセスを許可する例を示します。ワイルドカード ビットはネットワーク アドレスのホスト部分に適用されます。送信元アドレスがアクセス リストのステートメントと一致しないホストは拒否されます。

Switch(config)# access-list 1 permit 192.5.255.0 0.0.0.255
Switch(config)# access-list 1 permit 128.88.0.0 0.0.255.255
Switch(config)# access-list 1 permit 36.0.0.0 0.0.0.255
! (Note: all other access implicitly denied)
 

着信IPトラフィック用のIP拡張ACLを作成するには、イネーブルEXECモードで次の手順を実行します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

access-list access-list-number { deny | permit } protocol source source-wildcard destination destination-wildcard

IP拡張ACLを作成します。必要な回数だけこのコマンドを繰り返します。

access-list-number には、アクセス リスト番号を入力します。指定できる範囲は100~199、および2000~2699です。

条件が一致した場合に特定のタイプのトラフィックを許可するには、 permit キーワードを使用します。条件が一致した場合に特定のタイプのトラフィックを拒否するには、 deny キーワードを使用します。

protocol には、IPプロトコルの名前または番号を入力します。使用可能なプロトコル キーワードのリストを表示するには、疑問符(?)を使用します。

source には、パケットの送信元であるネットワークまたはホストを入力します。ネットワークまたはホストを指定するには、ドット付き10進表記を使用したり、 source 0.0.0.0
source-wildcard 255.255.255.255の短縮形として any キーワードを使用したり、 source 0.0.0.0を表す host キーワードを使用します。

source-wildcard には、無視するビット位置に1を指定してワイルド カード ビットを入力します。ワイルドカードを指定するには、ドット付き10進表記を使用したり、 source 0.0.0.0
source-wildcard 255.255.255.255の短縮形として any キーワードを使用したり、 source 0.0.0.0を表す host キーワードを使用します。

destination には、パケットの送信先となるネットワークまたはホストを入力します。 destinationおよびdestination-wildcard を指定するときのオプションは、 source および source-wildcard を指定する場合と同じです。


) アクセス リストを作成するときは、アクセス リストの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。


 

ステップ 3

end

イネーブルEXECモードに戻ります。

ステップ 4

show access-lists

設定を確認します。

ステップ 5

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

アクセス リストを削除するには、 no access-list access-list-number グローバル コンフィギュレーション コマンドを使用します。

次に、任意の送信元から任意の宛先へのIPトラフィック(DSCP値は32)を許可するACLの作成例を示します。

Switch(config)# access-list 100 permit ip any any dscp 32
 

次に、10.1.1.1の送信元ホストから10.1.1.2の宛先ホストへのIPトラフィック(precedence値は5)を許可するACLの作成例を示します。

Switch(config)# access-list 100 permit ip host 10.1.1.1 host 10.1.1.2 precedence 5
 

次に、任意の送信元から宛先グループ アドレス224.0.0.2へのPIMトラフィック(DSCP値は32)を許可するACLの作成例を示します。

Switch(config)# access-list 102 permit pim any 224.0.0.2 dscp 32
 

着信非IPトラフィック用のレイヤ2 MAC ACLを作成するには、イネーブルEXECモードで次の手順を実行します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mac access-list extended name

リスト名を指定し、レイヤ2 MAC ACLを作成します。

このコマンドを入力すると、拡張MAC ACLコンフィギュレーション モードに変わります。

ステップ 3

{ permit | deny } { host src-MAC-addr mask | any | host dst-MAC-addr | dst-MAC-addr mask } [ type mask ]

条件が一致した場合に許可または拒否するトラフィック タイプを指定します。必要な回数だけコマンドを入力します。

src-MAC-addr には、パケットの送信元であるホストのMACアドレスを入力します。MACアドレスを指定するには、16進表記(H.H.H)を使用したり、 source 0.0.0、 source-wildcard ffff.ffff.ffffの短縮形として any キーワードを使用したり、 source 0.0.0を表す host キーワードを使用します。

mask には、無視するビット位置に1を指定してワイルドカード ビットを入力します。

dst-MAC-addr には、パケットの送信先となるホストのMACアドレスを入力します。MACアドレスを指定するには、16進表記(H.H.H)を使用したり、 source 0.0.0、 source-wildcard ffff.ffff.ffffの短縮形として any キーワードを使用したり、 source 0.0.0を表す host キーワードを使用します。

(任意) type mask には、Ethernet IIまたはSNAPでカプセル化されたパケットのEtherType番号を指定し、パケットのプロトコルを指定します。 type の範囲は0~65535です。通常は16進数で指定します。 mask を指定する場合は、一致を調べる前にEtherTypeに適用される( 無視 )ビットを入力します。


) アクセス リストを作成するときは、アクセス リストの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。


 

ステップ 4

end

イネーブルEXECモードに戻ります。

ステップ 5

show access-lists [ access-list-number | access-list-name ]

設定を確認します。

ステップ 6

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

アクセス リストを削除するには、 no mac access-list extended access-list-name グローバル コンフィギュレーション コマンドを使用します。

次に、2つの許可ステートメントを含むレイヤ2のMAC ACLを作成する例を示します。最初のステートメントでは、MACアドレスが0001.0000.0001であるホストから、MACアドレスが0002.0000.0001であるホストへのトラフィックが許可されます。2番めのステートメントでは、MACアドレスが0001.0000.0002であるホストから、MACアドレスが0002.0000.0002であるホストへの、EtherTypeがXNS-IDPのトラフィックのみが許可されます。

Switch(config)# mac access-list extended maclist1
Switch(config-ext-macl)# permit 0001.0000.0001 0.0.0 0002.0000.0001 0.0.0
Switch(config-ext-macl)# permit 0001.0000.0002 0.0.0 0002.0000.0002 0.0.0 xns-idp
! (Note: all other access implicitly denied)

クラス マップによる入力トラフィックの分類

指定した名前を持つクラスとパケットとの照合に使用するクラス マップを作成するには、 class-map グローバル コンフィギュレーション コマンドを使用します。クラス マップは特定のフローとの照合に使用する条件を定義して、特定の入力トラフィック フロー(クラス)を他のすべてのトラフィックから隔離します。一致条件は、クラス マップ コンフィギュレーション モードで1つの一致ステートメントを入力することによって定義されます。パケットは、クラス マップに設定された一致基準に対して比較されます。指定された条件と一致するパケットは、クラスのメンバーとみなされ、トラフィック ポリシーに設定されたQoS指定に従って転送されます。


) ESポートに付加されたサービス ポリシーでは、ACLとの一致を使用できません。


ESポートでトラフィックを分類する方法については、「階層型クラス マップによるトラフィックの分類」を参照してください。

クラス マップを作成し、着信トラフィックを分類するための一致条件を定義するには、イネーブルEXECモードで次の手順を実行します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

access-list access-list-number { deny | permit } source [ source-wildcard ]

または

access-list access-list-number { deny | permit } protocol source [ source-wildcard ] destination [ destination-wildcard ]

または

mac access-list extended name

{ permit | deny } { host src-MAC-addr mask | any | host dst-MAC-addr | dst-MAC-addr mask } [ type mask ]

IPトラフィックの場合はIP標準ACLまたはIP拡張ACL、非IPトラフィックの場合はレイヤ2のMAC ACLを作成します。必要な回数だけこのコマンドを繰り返します。

詳細については、「ACLによる入力トラフィックの分類」を参照してください。


) アクセス リストを作成するときは、アクセス リストの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。


ステップ 3

class-map [ match-all | match-any ] class-map-name

クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。

デフォルトでは、クラス マップは定義されていません。

(任意)このクラス マップのすべての一致ステートメントに対して論理ANDを実行するには、 match-all キーワードを使用します。この場合は、クラス マップ内のすべての条件と一致する必要があります。

(任意)このクラス マップのすべての一致ステートメントに対して論理ORを実行するには、 match-any キーワードを使用します。この場合は、1つまたは複数の条件と一致する必要があります。

class-map-name には、クラス マップの名前を指定します。

match-all または match-any のどちらのキーワードも指定しない場合、デフォルトは match-all です。

ステップ 4

match { access-group acl-index-or-name | ip dscp dscp-list | ip precedence ip-precedence-list }

トラフィックを分類する一致条件を定義します。

デフォルトで、一致条件は定義されていません。

クラス マップごとに、サポートされるACLは1つのみです。

access-group acl-index-or-name を指定する場合は、ステップ2で作成したACLの番号または名前を指定します。

ip dscp dscp-list を指定する場合は、着信パケットと比較するIP DSCP値を8個まで入力します。各値はスペースで区切ります。指定できる範囲は0~63です。

ip precedence ip-precedence-list を指定する場合は、着信パケットと比較するIP precedence値を8個まで入力します。各値はスペースで区切ります。指定できる範囲は0~7です。

ステップ 5

end

イネーブルEXECモードに戻ります。

ステップ 6

show class-map

設定を確認します。

ステップ 7

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のクラス マップを削除するには、 no class-map [ match-all | match-any ] class-map-name グローバル コンフィギュレーション コマンドを使用します。一致条件を削除するには、 no match
{
access-group acl-index-or-name | ip dscp | ip precedence } クラス マップ コンフィギュレーション コマンドを使用します。

次に、 class1 という名前のクラス マップを設定する例を示します。 class1 にはアクセス リスト103という一致条件が1つ設定されています。このクラス マップによって、任意のホストから任意の宛先へのトラフィック(DSCP値は10)が許可されます。

Switch(config)# access-list 103 permit any any dscp 10
Switch(config)# class-map class1
Switch(config-cmap)# match access-group 103
Switch(config-cmap)# exit
 

次に、DSCP値が10、11、12である着信トラフィックとの一致を調べる、 class2 という名前のクラス マップを作成する例を示します。

Switch(config)# class-map class2
Switch(config-cmap)# match ip dscp 10 11 12
Switch(config-cmap)# exit
 

次に、IP precedence値が5、6、7である着信トラフィックとの一致を調べる、 class3 という名前のクラス マップを作成する例を示します。

Switch(config)# class-map class3
Switch(config-cmap)# match ip precedence 5 6 7
Switch(config-cmap)# exit

非階層型単一レベル ポリシー マップによる入力トラフィックの分類、ポリシング、およびマーキング

物理ポート上では、非階層型単一レベル ポリシー マップにより、動作する着信トラフィック クラスが指定されます。信頼するトラフィックのCoS、DSCP、またはIP precedence値を指定できます。設定するトラフィックのDSCP、またはIP precedence値を指定できます。また、一致した各トラフィック クラスのトラフィック帯域幅制限(ポリサー)、およびトラフィックが適合しない場合の対処法(マーキング)を指定することができます。

ポリシー マップには次の特性もあります。

ポリシー マップには、それぞれ異なる一致条件およびポリサーが指定された、複数のクラス ステートメントを追加することができます。

ポートを通じて受信されるトラフィック タイプごとに、個別のポリシーマップ クラスを設定することができます。

ポリシーマップの信頼状態とポートの信頼状態は、相互に排他的です。最後に設定された信頼状態が有効になります。

単一レベル ポリシー マップの設定を行うときは、次の注意事項に従ってください。

各入力ポートに付加できるポリシー マップは、1つに限られます。

mls qos map ip-prec-dscp dscp1...dscp8グローバル コンフィギュレーション コマンドを使用してIP precedence/DSCPマップを設定する場合、その設定は、IP precedence値を信頼するように設定された入力インターフェイス上のパケットにのみ影響を与えます。ポリシー マップでは、 set precedence new-precedence ポリシーマップ クラス コンフィギュレーション コマンドを使用してパケットIP precedence値に新規の値を設定すると、出力DSCP値はIP precedence/DSCPマップからは影響を受けません。出力DSCP値を入力値とは異なるものにしたい場合、 set dscp new-dscp ポリシーマップ クラス コンフィギュレーション コマンドを使用します。

次の手順を開始する前に、トラフィックを隔離するクラス マップを作成しておく必要があります。詳細については、「ACLによる入力トラフィックの分類」および「クラス マップによる入力トラフィックの分類」を参照してください。

ESポートにポリシー マップを設定する方法については、「2つのレートを使用する階層型トラフィック ポリサーの設定」および「階層型トラフィック ポリシーでのクラスベース パケット マーキングの設定」を参照してください。

入力単一レベル ポリシー マップを作成するには、イネーブルEXECモードで次の手順を実行します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

policy-map policy-map-name

ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。

デフォルトでは、ポリシー マップは定義されていません。

ポリシー マップのデフォルトの動作では、パケットがIPパケットの場合、DSCPは0に、パケットがタグ付きの場合、CoSは0に設定されます。ポリシングは実行されません。

ステップ 3

class class-name

トラフィック ポリシーを作成または変更するクラスの名前を指定して、ポリシーマップ クラス コンフィギュレーション モードを開始します。

デフォルトでは、トラフィック クラスは定義されていません。

ステップ 4

trust [ cos | dscp | ip-precedence ]

CoSベースまたはDSCPベースのQoSラベルを生成するためにQoSが使用する信頼状態を設定します。

デフォルトでは、ポートは信頼できる状態になっていません。このコマンドを入力するときにキーワードを指定しないと、デフォルトは dscp になります。

キーワードの意味は次のとおりです。

cos ― QoSは受信されたCoS値やデフォルトのポートCoS値、およびCoS/DSCPマップを使用して、DSCP値を取得します。

dscp ― QoSは入力パケットのDSCP値を使用して、DSCP値を取得します。タグ付きの非IPパケットの場合、QoSは受信されたCoS値を使用してDSCP値を取得します。タグなしの非IPパケットの場合、QoSはデフォルトのポートCoS値を使用してDSCP値を取得します。いずれの場合も、DSCP値はCoS/DSCPマップから取得されます。

ip-precedence ― QoSは入力パケットのIP precedence値およびIP precedence/DSCPマップを使用して、DSCP値を取得します。タグ付きの非IPパケットの場合、QoSは受信されたCoS値を使用してDSCP値を取得します。タグなしの非IPパケットの場合、QoSはデフォルトのポートCoS値を使用してDSCP値を取得します。いずれの場合も、DSCP値はCoS/DSCPマップから取得されます。

詳細については、「CoS/DSCPマップの設定」を参照してください。

ステップ 5

set { dscp new-dscp | precedence new-precedence }

パケットに新しい値を設定して、IPトラフィックにマーキングします。

dscp new-dscp を指定する場合は、分類されたトラフィックに割り当てる新しいDSCP値を入力します。指定できる範囲は0~63です。

precedence new-precedence を指定する場合は、分類されたトラフィックに割り当てる新しいIP precedence値を入力します。指定できる範囲は0~7です。


set dscp new-dscpおよびset precedence new-precedenceコマンドは、set ip dscp new-dscpおよびset ip precedence
new-precedenceコマンドと同じです。


 

ステップ 6

police rate-bps burst-byte [ exceed-action { drop | policed-dscp-transmit }]

分類されたトラフィックのポリサーを定義します。

デフォルトでは、ポリサーは定義されていません。サポートされているポリサー数については、「標準QoS設定時の注意事項」を参照してください。

rate-bps には、平均トラフィック レートをビット/秒単位で指定します。指定できる範囲は8000~1000000000です。

burst-byte には、標準バースト サイズをバイト単位で指定します。指定できる範囲は8000~1000000です。

(任意)レートを超えた場合の対処方法を指定します。パケットを廃棄するには、 exceed-action drop キーワードを使用します。(ポリシング設定DSCPマップを使用して)DSCP値をマークダウンし、パケットを送信するには、 exceed-action
policed-dscp-transmit
キーワードを使用します。詳細については、「ポリシング設定DSCPマップの設定」 を参照してください。

ステップ 7

exit

ポリシーマップ コンフィギュレーション モードに戻ります。

ステップ 8

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 9

interface interface-id

ポリシー マップに付加するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

有効なインターフェイスは物理ポートなどです。

ステップ 10

service-policy input policy-map-name

入力ポリシーマップ名を指定し、ポートに適用します。

ステップ 11

end

イネーブルEXECモードに戻ります。

ステップ 12

show policy-map [ policy-map-name [ class class-map-name ]]

設定を確認します。

ステップ 13

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のポリシー マップを削除するには、 no policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用します。既存のクラスを削除するには、 no class class-name ポリシーマップ コンフィギュレーション コマンドを使用します。信頼できない状態に戻すには、 no trust ポリシーマップ コンフィギュレーション コマンドを使用します。割り当てられたDSCPまたはIP
precedence値を削除するには、 no set { dscp new-dscp | precedence new-precedence } ポリシーマップ クラス コンフィギュレーション コマンドを使用します。既存のポリサーを削除するには、 no police
rate-bps burst-byte [ exceed-action { drop | policed-dscp-transmit }] ポリシーマップ クラス コンフィギュレーション コマンドを使用します。ポリシー マップとインターフェイスの関連付けを解除するには、 no service-policy input policy-map-name インターフェイス コンフィギュレーション コマンドを使用します。

次に、入力ポリシー マップを作成し、ポートに付加する例を示します。この設定の場合、IP標準ACLはネットワーク10.1.0.0からのトラフィックを許可します。この分類と一致するトラフィックの場合、着信パケットのDSCP値は信頼されます。一致したトラフィックが平均トラフィック レート(48000 bps)および標準バースト サイズ(8000バイト)を超えた場合、(ポリシング設定DSCPマップに基づいて)DSCPがマークダウンされて送信されます。

Switch(config)# access-list 1 permit 10.1.0.0 0.0.255.255
Switch(config)# class-map ipclass1
Switch(config-cmap)# match access-group 1
Switch(config-cmap)# exit
Switch(config)# policy-map flow1t
Switch(config-pmap)# class ipclass1
Switch(config-pmap-c)# trust dscp
Switch(config-pmap-c)# police 48000 8000 exceed-action policed-dscp-transmit
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# service-policy input flow1t
 

次に、2つの許可ステートメントを含むレイヤ2のMAC ACLを作成して、ポートに付加する例を示します。最初の許可ステートメントでは、MACアドレスが0001.0000.0001であるホストから、MACアドレスが0002.0000.0001であるホストへのトラフィックが許可されます。2番めの許可ステートメントでは、MACアドレスが0001.0000.0002であるホストから、MACアドレスが0002.0000.0002であるホストへの、EtherTypeがXNS-IDPのトラフィックのみが許可されます。

Switch(config)# mac access-list extended maclist1
Switch(config-ext-mac)# permit 0001.0000.0001 0.0.0 0002.0000.0001 0.0.0
Switch(config-ext-mac)# permit 0001.0000.0002 0.0.0 0002.0000.0002 0.0.0 xns-idp
Switch(config-ext-mac)# exit
Switch(config)# mac access-list extended maclist2
Switch(config-ext-mac)# permit 0001.0000.0003 0.0.0 0002.0000.0003 0.0.0
Switch(config-ext-mac)# permit 0001.0000.0004 0.0.0 0002.0000.0004 0.0.0 aarp
Switch(config-ext-mac)# exit
Switch(config)# class-map macclass1
Switch(config-cmap)# match access-group maclist1
Switch(config-cmap)# exit
Switch(config)# policy-map macpolicy1
Switch(config-pmap)# class macclass1
Switch(config-pmap-c)# set dscp 63
Switch(config-pmap-c)# exit
Switch(config-pmap)# class macclass2 maclist2
Switch(config-pmap-c)# set dscp 45
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# mls qos trust cos
Switch(config-if)# service-policy input macpolicy1

階層型デュアルレベル ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング

Cisco IOS Release 12.2(25)EY以降のリリースでは、SVIに階層型デュアルレベル ポリシー マップを設定できます。デュアルレベル ポリシングは、VLANレベルおよびインターフェイスレベル ポリシー マップを組み合わせて、単一ポリシー マップを作成します。詳細については、「SVIでの階層型デュアルレベル ポリシング」を参照してください。

SVIでは、VLANレベル ポリシー マップが、動作するトラフィック クラスを指定します。アクションには、CoS、DSCP、またはIP precedence値の信頼、またはトラフィック クラスでの特定DSCPまたはIP precedence値の設定が含まれます。個別のポリサーに影響を受ける物理ポートを指定するには、インターフェイスレベル ポリシー マップを使用します。

階層型デュアルレベル ポリシー マップの設定を行うときは、次の注意事項に従ってください。

デュアルレベル ポリシー マップの設定を行う前に、ポリシー マップのインターフェイス レベルで指定する物理ポート上のVLANベースQoSをイネーブルにする必要があります。

各入力ポートまたはSVIに付加できるポリシー マップは、1つに限られます。

ポリシー マップには、それぞれ異なる一致基準およびアクションが指定された、複数のクラス ステートメントを追加できます。

SVIで受信されるトラフィック タイプごとに、個別のポリシーマップ クラスを設定できます。

ポリシーマップの信頼状態とポートの信頼状態は相互に排他的であり、最後に設定されたのがどちらの信頼状態でも、それが影響を与えます。

mls qos map ip-prec-dscp dscp1...dscp8グローバル コンフィギュレーション コマンドを使用してIP precedence/DSCPマップを設定する場合、その設定は、IP precedence値を信頼するように設定された入力インターフェイス上のパケットにのみ影響を与えます。ポリシー マップでは、 set precedence new-precedence ポリシーマップ クラス コンフィギュレーション コマンドを使用してパケットIP precedence値に新規の値を設定すると、出力DSCP値はIP precedence/DSCPマップからは影響を受けません。出力DSCP値を入力値とは異なるものにしたい場合、 set dscp new-dscp ポリシーマップ クラス コンフィギュレーション コマンドを使用します。

VLANベースQoSがイネーブルになっている場合、デュアルレベル ポリシー マップは、以前に設定されたポートベース ポリシー マップに優先します。

デュアルレベル ポリシー マップがSVIに付加され、VLANに属するすべてのトラフィックに影響を与えます。インターフェイスレベル トラフィック分類の個別ポリサーは、その分類で指定された物理ポート上のトラフィックにのみ影響を与えます。VLANレベル ポリシー マップで指定されたアクションは、SVIに属するトラフィックに影響を与えます。

トランク ポートのデュアルレベル ポリシー マップを設定する場合、VLANの範囲が重複してはなりません。範囲が重複すると、ポリシー マップで指定されたアクションは、重複したVLAN上の着信および送信トラフィックに影響を与え、入力および出力時にポリシー マップが正しく適用されません。

集約ポリサーは、デュアルレベル ポリシー マップでサポートされていません。

VLANベースQoSがイネーブルになっているとき、スイッチは、VLANマップなどのVLANベース機能をサポートします。

プライベートVLANのプライマリVLANでのみ、デュアルレベル ポリシー マップを設定できます。

階層型デュアルレベル ポリシー マップを作成するには、イネーブルEXECモードで次の手順を実行します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

class-map [ match-all | match-any ] class-map-name

VLANレベル クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。クラス マップの作成の詳細については、 「クラス マップによる入力トラフィックの分類」 を参照してください。

デフォルトでは、クラス マップは定義されていません。

(任意)このクラス マップのすべての一致ステートメントに対して論理ANDを実行するには、 match-all キーワードを使用します。この場合は、クラス マップ内のすべての一致条件と一致する必要があります。

(任意)このクラス マップのすべての一致ステートメントに対して論理ORを実行するには、 match-any キーワードを使用します。この場合は、1つまたは複数の一致条件と一致する必要があります。

class-map-name には、クラス マップの名前を指定します。

match-all match-any のどちらのキーワードも指定しない場合、デフォルトは match-all です。


) クラス マップ1つにつき1つのmatchコマンドのみがサポートされているため、match-allmatch-anyキーワードの機能は同じになります。


 

ステップ 3

match { access-group acl-index-or-name | ip dscp dscp-list | ip precedence ip-precedence-list }

トラフィックを分類する一致条件を定義します。

デフォルトで、一致条件は定義されていません。

クラス マップごとに1つの一致条件のみがサポートされ、クラス マップごとに1つのACLのみがサポートされます。

access-group acl-index-or-name を指定する場合は、ACLの番号または名前を指定します。

ip dscp dscp-list を指定する場合は、着信パケットと比較するIP DSCP値を8個まで入力します。各値はスペースで区切ります。指定できる範囲は0~63です。

ip precedence ip-precedence-list を指定する場合は、着信パケットと比較するIP precedence値を8個まで入力します。各値はスペースで区切ります。指定できる範囲は0~7です。

ステップ 4

exit

クラスマップ コンフィギュレーション モードに戻ります。

ステップ 5

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 6

class-map [ match-all | match-any ] class-map-name

インターフェイスレベル クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。

デフォルトでは、クラス マップは定義されていません。

(任意)このクラス マップのすべての一致ステートメントに対して論理ANDを実行するには、 match-all キーワードを使用します。この場合は、クラス マップ内のすべての一致条件と一致する必要があります。

(任意)このクラス マップのすべての一致ステートメントに対して論理ORを実行するには、 match-any キーワードを使用します。この場合は、1つまたは複数の一致条件と一致する必要があります。

class-map-name には、クラス マップの名前を指定します。

match-all match-any のどちらのキーワードも指定しない場合、デフォルトは match-all です。


) クラス マップ1つにつき1つのmatchコマンドのみがサポートされているため、match-allmatch-anyキーワードの機能は同じになります。


 

ステップ 7

match input-interface interface-id-list

インターフェイスレベル クラス マップが動作する物理ポートを指定します。次のように、6個までのポートを指定できます。

単一ポート(1つのエントリとしてカウント)

スペースで区切られたポートのリスト(各ポートをエントリとしてカウント)

ハイフンで区切られたポートの範囲(2つのエントリとしてカウント)

ステップ 8

exit

クラスマップ コンフィギュレーション モードに戻ります。

ステップ 9

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 10

policy-map policy-map-name

ポリシーマップ名を入力してインターフェイスレベル ポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。

デフォルトでは、定義されたポリシー マップはなく、ポリシングは実行されません。

ステップ 11

class-map class-map-name

インターフェイスレベル トラフィック分類を定義し、ポリシーマップ コンフィギュレーション モードを開始します。

デフォルトでは、ポリシーマップ クラスマップは定義されていません。

class-map グローバル コンフィギュレーション コマンドを使用してすでにトラフィック クラスが定義されている場合、 class-map-name の名前をこのコマンドで指定します。

ステップ 12

police rate-bps burst-byte [ exceed-action { drop | policed-dscp-transmit }]

分類されたトラフィックの個別のポリサーを定義します。

デフォルトでは、ポリサーは定義されていません。サポートされているポリサー数については、「標準QoS設定時の注意事項」を参照してください。

rate-bps には、平均トラフィック レートをビット/秒(bps)で指定します。指定できる範囲は8000~1000000000です。

burst-byte には、標準バースト サイズをバイト単位で指定します。指定できる範囲は8000~1000000です。

(任意)レートを超えた場合の対処方法を指定します。パケットを廃棄するには、 exceed-action drop キーワードを使用します。(ポリシング設定DSCPマップを使用して)DSCP値をマークダウンし、パケットを送信するには、 exceed-action
policed-dscp-transmit
キーワードを使用します。詳細については、「ポリシング設定DSCPマップの設定」 を参照してください。

ステップ 13

exit

ポリシーマップ コンフィギュレーション モードに戻ります。

ステップ 14

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 15

policy-map policy-map-name

ポリシーマップ名を入力してVLANレベル ポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。

デフォルトでは、ポリシー マップは定義されていません。

ポリシー マップのデフォルトの動作では、パケットがIPパケットの場合、DSCPは0に、パケットがタグ付きの場合、CoSは0に設定されます。ポリシングは実行されません。

ステップ 16

class class-map-name

VLANレベル トラフィック分類を定義し、ポリシーマップ クラス コンフィギュレーション モードを開始します。

デフォルトでは、ポリシーマップ クラスマップは定義されていません。

class-map グローバル コンフィギュレーション コマンドを使用してすでにトラフィック クラスが定義されている場合、 class-map-name の名前をこのコマンドで指定します。

ステップ 17

trust [ cos | dscp | ip-precedence ]

CoSベースまたはDSCPベースのQoSラベルを生成するためにQoSが使用する信頼状態を設定します。


) このコマンドは、同一ポリシー マップ内では、setコマンドと相互に排他的です。trustコマンドを入力した場合、ステップ18は省略してください。


デフォルトでは、ポートは信頼できる状態になっていません。このコマンドを入力するときにキーワードを指定しないと、デフォルトは dscp になります。

キーワードの意味は次のとおりです。

cos ― QoSは受信されたCoS値やデフォルトのポートCoS値、およびCoS/DSCPマップを使用して、DSCP値を取得します。

dscp ― QoSは入力パケットのDSCP値を使用して、DSCP値を取得します。タグ付きの非IPパケットの場合、QoSは受信されたCoS値を使用してDSCP値を取得します。タグなしの非IPパケットの場合、QoSはデフォルトのポートCoS値を使用してDSCP値を取得します。いずれの場合も、DSCP値はCoS/DSCPマップから取得されます。

ip-precedence ― QoSは入力パケットのIP precedence値およびIP precedence/DSCPマップを使用して、DSCP値を取得します。タグ付きの非IPパケットの場合、QoSは受信されたCoS値を使用してDSCP値を取得します。タグなしの非IPパケットの場合、QoSはデフォルトのポートCoS値を使用してDSCP値を取得します。いずれの場合も、DSCP値はCoS/DSCPマップから取得されます。

詳細については、「CoS/DSCPマップの設定」を参照してください。

ステップ 18

set { dscp new-dscp | precedence new-precedence }

パケットに新しい値を設定して、IPトラフィックを分類します。

dscp new-dscp を指定する場合は、分類されたトラフィックに割り当てる新しいDSCP値を入力します。指定できる範囲は0~63です。

precedence new-precedence を指定する場合は、分類されたトラフィックに割り当てる新しいIP precedence値を入力します。指定できる範囲は0~7です。

ステップ 19

service-policy policy-map-name

インターフェイスレベル ポリシーマップ名(ステップ10を参照)を指定し、VLANレベル ポリシー マップと関連付けます。

VLANレベル ポリシー マップが2つ以上のクラスを指定している場合、すべてのクラスに同じ service-policy policy-map-name コマンドを含む必要があります。

ステップ 20

exit

ポリシーマップ コンフィギュレーション モードに戻ります。

ステップ 21

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 22

interface interface-id

デュアルレベル ポリシー マップを付加するSVIを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 23

service-policy input policy-map-name

VLANレベル ポリシーマップ名を指定し、SVIに適用します。前のステップとこのコマンドを繰り返し、ポリシー マップを他のSVIに適用します。

デュアルレベルVLANレベル ポリシー マップに2つ以上のインターフェイスレベル ポリシー マップがある場合、すべてのクラス マップが、 service-policy policy-map-name コマンドで指定された同じVLANレベル ポリシー マップに設定されている必要があります。

ステップ 24

end

イネーブルEXECモードに戻ります。

ステップ 25

show policy-map [ policy-map-name [ class class-map-name ]]

または

show mls qos vlan-based

設定を確認します。

ステップ 26

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のポリシー マップを削除するには、 no policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用します。既存のクラス マップを削除するには、 no class class-map-name ポリシーマップ コンフィギュレーション コマンドを使用します。

ポリシー マップの信頼できない状態に戻すには、 no trust ポリシーマップ コンフィギュレーション コマンドを使用します。割り当てられたDSCPまたはIP precedence値を削除するには、 no set { dscp new-dscp | ip precedence new-precedence } ポリシーマップ コンフィギュレーション コマンドを使用します。

インターフェイスレベル ポリシー マップの既存のポリサーを削除するには、 no police rate-bps burst-byte [ exceed-action { drop | policed-dscp-transmit }] ポリシーマップ コンフィギュレーション コマンドを使用します。デュアルレベル ポリシー マップとポートの関連付けを解除するには、 no service-policy input policy-map-name インターフェイス コンフィギュレーション コマンドを使用します。

次に、階層型デュアルレベル ポリシー マップを作成し、SVIに付加する例を示します。

Switch(config)# access-list 101 permit ip any any
Switch(config)# class-map match-all cm-1
Switch(config-cmap)# match access-group 101
Switch(config-cmap)# exit
Switch(config)# exit
Switch(config)# class-map match-all cm-interface-1
Switch(config-cmap)# match input-interface gigabitethernet1/0/1 gigabitethernet1/0/2
Switch(config-cmap)# exit
Switch(config)# exit
Switch(config)# policy-map port-plcmap
Switch(config-pmap)# class cm-interface-1
Switch(config-pmap-c)# police 9000000 9000 exceed-action policed-dscp-transmit
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map vlan-plcmap
Switch(config-pmap)# class cm-1
Switch(config-pmap-c)# set dscp 7
Switch(config-pmap-c)# service-policy port-plcmap
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface vlan 10
Switch(config-if)# service-policy input vlan-plcmap

集約ポリサーによる入力トラフィックの分類、ポリシング、およびマーキング

集約ポリサーを使用すると、同じポリシー マップ内の複数のトラフィック クラスで共有されるポリサーを作成することができます。ただし、集約ポリサーを複数の異なるポリシー マップまたはポートに使用することはできません。

集約ポリサーは、非階層型単一レベル ポリシー マップでのみ設定できます。

次の手順を開始する前に、トラフィックを隔離するクラス マップを作成しておく必要があります。詳細については、「ACLによる入力トラフィックの分類」および「クラス マップによる入力トラフィックの分類」を参照してください。

着信トラフィックの集約ポリサーを作成するには、イネーブルEXECモードで次の手順を実行します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos aggregate-policer aggregate-policer-name rate-bps burst-byte exceed-action { drop | policed-dscp-transmit }

同じポリシー マップ内の複数のトラフィック クラスに適用できるポリサー パラメータを定義します。

デフォルトでは、集約ポリサーは定義されていません。サポートされているポリサー数については、「標準QoS設定時の注意事項」を参照してください。

aggregate-policer-name には、集約ポリサーの名前を指定します。

rate-bps には、平均トラフィック レートをビット/秒単位で指定します。指定できる範囲は8000~1000000000です。

burst-byte には、標準バースト サイズをバイト単位で指定します。指定できる範囲は8000~1000000です。

レートを超過した場合の対処方法を指定します。パケットを廃棄するには、 exceed-action drop キーワードを使用します。(ポリシング設定DSCPマップを使用して)DSCP値をマークダウンし、パケットを送信するには、 exceed-action
policed-dscp-transmit
キーワードを使用します。詳細については、「ポリシング設定DSCPマップの設定」 を参照してください。

ステップ 3

policy-map policy-map-name

ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。

詳細については、「非階層型単一レベル ポリシー マップによる入力トラフィックの分類、ポリシング、およびマーキング」を参照してください。

ステップ 4

class class-name

トラフィック ポリシーを作成または変更するクラスの名前を指定して、ポリシーマップ クラス コンフィギュレーション モードを開始します。

デフォルトでは、トラフィック クラスは定義されていません。

ステップ 5

police aggregate aggregate-policer-name

同じポリシー マップの複数のクラスに集約ポリサーを適用します。

aggregate-policer-name には、ステップ2で指定した名前を入力します。

ステップ 6

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 7

interface interface-id

ポリシー マップに付加するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

有効なインターフェイスは物理ポートなどです。

ステップ 8

service-policy input policy-map-name

入力ポリシーマップ名を指定し、ポートに適用します。

ステップ 9

end

イネーブルEXECモードに戻ります。

ステップ 10

show mls qos aggregate-policer [ aggregate-policer-name ]

設定を確認します。

ステップ 11

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

指定した集約ポリサーをポリシー マップから削除するには、 no police aggregate
aggregate-policer-name
ポリシーマップ クラス コンフィギュレーション コマンドを使用します。集約ポリサーおよびそのパラメータを削除するには、 no mls qos aggregate-policer
aggregate-policer-name
グローバル コンフィギュレーション コマンドを使用します。

次に、集約ポリサーを作成し、ポリシー マップ内の複数のクラスに付加する例を示します。この設定で、IP ACLはネットワーク10.1.0.0およびホスト11.3.1.1からのトラフィックを許可します。ネットワーク10.1.0.0からのトラフィックの場合、着信パケットのDSCPは信頼されます。ホスト11.3.1.1からのトラフィックの場合、パケットのDSCPは56に変更されます。ネットワーク10.1.0.0およびホスト11.3.1.1からのトラフィック レートには、ポリシーが設定されます。トラフィックが平均 レート(48000 bps)および標準バースト サイズ(8000バイト)を超えた場合、(ポリシング設定DSCPマップに基づいて)DSCPがマークダウンされて転送されます。この入力ポリシー マップがポートに付加されます。

Switch(config)# access-list 1 permit 10.1.0.0 0.0.255.255
Switch(config)# access-list 2 permit 11.3.1.1
Switch(config)# mls qos aggregate-police transmit1 48000 8000 exceed-action policed-dscp-transmit
Switch(config)# class-map ipclass1
Switch(config-cmap)# match access-group 1
Switch(config-cmap)# exit
Switch(config)# class-map ipclass2
Switch(config-cmap)# match access-group 2
Switch(config-cmap)# exit
Switch(config)# policy-map aggflow1
Switch(config-pmap)# class ipclass1
Switch(config-pmap-c)# trust dscp
Switch(config-pmap-c)# police aggregate transmit1
Switch(config-pmap-c)# exit
Switch(config-pmap)# class ipclass2
Switch(config-pmap-c)# set dscp 56
Switch(config-pmap-c)# police aggregate transmit1
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# service-policy input aggflow1
Switch(config-if)# exit

DSCPマップの設定

ここでは、DSCPマップを設定する手順について説明します。

「CoS/DSCPマップの設定」(任意)

「IP Precedence/DSCPマップの設定」(任意)

「ポリシング設定DSCPマップの設定」(任意、マップの空の設定が不適切でない場合)

「DSCP/CoSマップの設定」(任意)

「DSCP/DSCP変換マップの設定」(任意、マップの空の設定が不適切でない場合)

DSCP/DSCP変換マップを除くすべてのマップはグローバルに定義され、すべてのポートに適用されます。

CoS/DSCPマップの設定

着信パケットのCoS値を、トラフィックのプライオリティを表すためにQoSで内部的に使用されるDSCP値にマッピングするには、CoS/DSCPマップを使用します。

表32-12 にデフォルトのCoS/DSCPマップを示します。

 

表32-12 デフォルトのCoS/DSCPマップ

CoS値
DSCP値

0

0

1

8

2

16

3

24

4

32

5

40

6

48

7

56

これらの値がネットワークに適さない場合は、変更する必要があります。

CoS/DSCPマップを変更するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos map cos-dscp dscp1...dscp8

CoS/DSCPマップを変更します。

dscp1...dscp8 には、CoS値0~7に対応する8つのDSCP値を入力します。各DSCP値はスペースで区切ります。

DSCPの範囲は0~63です。

ステップ 3

end

イネーブルEXECモードに戻ります。

ステップ 4

show mls qos maps cos-dscp

設定を確認します。

ステップ 5

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのマップに戻すには、 no mls qos cos-dscp グローバル コンフィギュレーション コマンドを使用します。

次に、CoS/DSCPマップを変更して表示する例を示します。

Switch(config)# mls qos map cos-dscp 10 15 20 25 30 35 40 45
Switch(config)# end
Switch# show mls qos maps cos-dscp
 
Cos-dscp map:
cos: 0 1 2 3 4 5 6 7
--------------------------------
dscp: 10 15 20 25 30 35 40 45

IP Precedence/DSCPマップの設定

着信パケットのIP precedence値を、トラフィックのプライオリティを表すためにQoSで内部的に使用されるDSCP値にマッピングするには、IP precedence/DSCPマップを使用します。

表32-13 に、デフォルトのIP precedence/DSCPマップを示します。

 

表32-13 デフォルトのIP Precedence/DSCPマップ

IP precedence値
DSCP値

0

0

1

8

2

16

3

24

4

32

5

40

6

48

7

56

これらの値がネットワークに適さない場合は、変更する必要があります。

IP precedence/DSCPマップを変更するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos map ip-prec-dscp dscp1...dscp8

IP precedence/DSCPマップを変更します。

dscp1...dscp8 には、IP precedence値0~7に対応する8つのDSCP値を入力します。各DSCP値はスペースで区切ります。

DSCPの範囲は0~63です。

ステップ 3

end

イネーブルEXECモードに戻ります。

ステップ 4

show mls qos maps ip-prec-dscp

設定を確認します。

ステップ 5

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのマップに戻すには、 no mls qos ip-prec-dscp グローバル コンフィギュレーション コマンドを使用します。

次に、IP precedence/DSCPマップを変更して表示する例を示します。

Switch(config)# mls qos map ip-prec-dscp 10 15 20 25 30 35 40 45
Switch(config)# end
Switch# show mls qos maps ip-prec-dscp
 
IpPrecedence-dscp map:
ipprec: 0 1 2 3 4 5 6 7
--------------------------------
dscp: 10 15 20 25 30 35 40 45

ポリシング設定DSCPマップの設定

入力ポリシングおよびマーキング アクションによって得られる新しい値にDSCP値をマークダウンするには、ポリシング設定DSCPマップを使用します。

デフォルトのポリシング設定DSCPマップは、着信したDSCP値を同じDSCP値にマッピングする空のマップです。

ポリシング設定DSCPマップを変更するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos map policed-dscp dscp-list to mark-down-dscp

ポリシング設定DSCPマップを変更します。

dscp-list には、最大8個のDSCP値をスペースで区切って入力します。次に to キーワードを入力します。

mark-down-dscp には、対応するポリシング設定(マークダウンされる)DSCP値を入力します。

ステップ 3

end

イネーブルEXECモードに戻ります。

ステップ 4

show mls qos maps policed-dscp

設定を確認します。

ステップ 5

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルト マップに戻すには、 no mls qos policed-dscp グローバル コンフィギュレーション コマンドを使用します。

次に、DSCP 50~57を、マークダウンされるDSCP値0にマッピングする例を示します。

Switch(config)# mls qos map policed-dscp 50 51 52 53 54 55 56 57 to 0
Switch(config)# end
Switch# show mls qos maps policed-dscp
Policed-dscp map:
d1 : d2 0 1 2 3 4 5 6 7 8 9
---------------------------------------
0 : 00 01 02 03 04 05 06 07 08 09
1 : 10 11 12 13 14 15 16 17 18 19
2 : 20 21 22 23 24 25 26 27 28 29
3 : 30 31 32 33 34 35 36 37 38 39
4 : 40 41 42 43 44 45 46 47 48 49
5 : 00 00 00 00 00 00 00 00 58 59
6 : 60 61 62 63

) このポリシング設定DSCPマップでは、マークダウンされるDSCP値が表形式で示されています。d1列は元のDSCPの最上位桁、d2行は元のDSCPの最下位桁を示します。d1とd2の交点にある値が、マークダウンされる値です。たとえば、元のDSCP値が53の場合、マークダウンされるDSCP値は0です。


DSCP/CoSマップの設定

出力キューセット内の4つのキューの1つを選択するために使用されるCoS値を生成するには、DSCP/CoSマップを使用します。

表32-14 にデフォルトのDSCP/CoSマップを示します。

 

表32-14 デフォルトのDSCP/CoSマップ

DSCP値
CoS値

0~7

0

8~15

1

16~23

2

24~31

3

32~39

4

40~47

5

48~55

6

56~63

7

これらの値がネットワークに適さない場合は、変更する必要があります。

DSCP/CoSマップを変更するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos map dscp-cos dscp-list to cos

DSCP/CoSマップを変更します。

dscp-list には、最大8個のDSCP値をスペースで区切って入力します。次に to キーワードを入力します。

cos には、DSCP値に対応するCoS値を入力します。

DSCPの範囲は0~63、CoSの範囲は0~7です。

ステップ 3

end

イネーブルEXECモードに戻ります。

ステップ 4

show mls qos maps dscp-to-cos

設定を確認します。

ステップ 5

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのマップに戻すには、 no mls qos dscp-cos グローバル コンフィギュレーション コマンドを使用します。

次にDSCP値0、8、16、24、32、40、48、および50をCoS値0にマッピングして、マップを表示する例を示します。

Switch(config)# mls qos map dscp-cos 0 8 16 24 32 40 48 50 to 0
Switch(config)# end
Switch# show mls qos maps dscp-cos
Dscp-cos map:
d1 : d2 0 1 2 3 4 5 6 7 8 9
---------------------------------------
0 : 00 00 00 00 00 00 00 00 00 01
1 : 01 01 01 01 01 01 00 02 02 02
2 : 02 02 02 02 00 03 03 03 03 03
3 : 03 03 00 04 04 04 04 04 04 04
4 : 00 05 05 05 05 05 05 05 00 06
5 : 00 06 06 06 06 06 07 07 07 07
6 : 07 07 07 07

) 上記のDSCP/CoSマップでは、CoS値が表形式で示されています。d1列はDSCPの最上位桁、d2行はDSCPの最下位桁を示します。d1とd2の交点にある値がCoS値です。たとえば、このDSCP/CoSマップでは、DSCP値が8の場合、対応するCoS値は0です。


DSCP/DSCP変換マップの設定

2つのQoSドメインで異なるDSCP定義が使用されている場合は、他のドメイン内での定義に合わせて一連のDSCP値を変換するDSCP/DSCP変換マップを使用します。DSCP/DSCP変換マップは、QoS管理ドメインの境界にある受信ポートに適用されます(入力変換)。

入力変換により、パケットのDSCP値が新しいDSCP値で上書きされ、QoSはこの新しい値を使用してパケットを処理します。スイッチは新しいDSCP値を使用して、ポートからパケットを送信します。

複数のDSCP/DSCP変換マップを設定し、それらを1つのポートで受信されるトラフィックに適用することができます。デフォルトのDSCP/DSCP変換マップは、着信したDSCP値を同じDSCP値にマッピングする空のマップです。

DSCP/DSCP変換マップを変更するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos map dscp-mutation dscp-mutation-name in-dscp to out-dscp

DSCP/DSCP変換マップを変更します。

dscp-mutation-name には、変換マップ名を入力します。新しい名前を指定することにより、複数のマップを作成することができます。

in-dscp には、最大8つのDSCP値をスペースで区切って入力します。次に to キーワードを入力します。

out-dscp には、DSCP値を1つ入力します。

DSCPの範囲は0~63です。

ステップ 3

interface interface-id

マップを付加するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

有効なインターフェイスは物理ポートなどです。

ステップ 4

mls qos trust dscp

DSCPを信頼する状態のポートとして、入力ポートを設定します。デフォルトでは、ポートは信頼できる状態になっていません。

ステップ 5

mls qos dscp-mutation dscp-mutation-name

DSCPを信頼する状態の指定された入力ポートにマップを適用します。

dscp-mutation-name には、ステップ2で指定された変換マップ名を入力します。

ステップ 6

end

イネーブルEXECモードに戻ります。

ステップ 7

show mls qos maps dscp-mutation

設定を確認します。

ステップ 8

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのマップに戻すには、 no mls qos dscp-mutation dscp-mutation-name グローバル コンフィギュレーション コマンドを使用します。

次に、DSCP/DSCP変換マップを定義する例を示します。明示的に設定されていないすべてのエントリは変更されません(空のマップで指定された値のままです)。

Switch(config)# mls qos map dscp-mutation mutation1 1 2 3 4 5 6 7 to 0
Switch(config)# mls qos map dscp-mutation mutation1 8 9 10 11 12 13 to 10
Switch(config)# mls qos map dscp-mutation mutation1 20 21 22 to 20
Switch(config)# mls qos map dscp-mutation mutation1 30 31 32 33 34 to 30
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# mls qos trust dscp
Switch(config-if)# mls qos dscp-mutation mutation1
Switch(config-if)# end
Switch# show mls qos maps dscp-mutation mutation1
Dscp-dscp mutation map:
mutation1:
d1 : d2 0 1 2 3 4 5 6 7 8 9
---------------------------------------
0 : 00 00 00 00 00 00 00 00 10 10
1 : 10 10 10 10 14 15 16 17 18 19
2 : 20 20 20 23 24 25 26 27 28 29
3 : 30 30 30 30 30 35 36 37 38 39
4 : 40 41 42 43 44 45 46 47 48 49
5 : 50 51 52 53 54 55 56 57 58 59
6 : 60 61 62 63

) 上記のDSCP/DSCP変換マップでは、変換される値が表形式で示されています。d1列は元のDSCPの最上位桁、d2行は元のDSCPの最下位桁を示します。d1とd2の交点の値が、変換値です。たとえば、DSCP値が12の場合、対応する変換値は10です。


入力キューの特性の設定

ネットワークおよびQoSソリューションが複雑な場合は、次に示す作業をすべて実行しなければならない場合があり、次の特性を決定する必要があります。

各キューに割り当てるパケット(DSCPまたはCoS値を使用)

各キューに適用する廃棄スレッシュホールドの割合、および各スレッシュホールドにマッピングするCoSまたはDSCP値

各キュー間に割り当てる使用可能なバッファ スペース

各キュー間に割り当てる使用可能な帯域幅

ハイ プライオリティを設定する必要があるトラフィックの有無(音声など)

ここでは、入力キューの特性の設定方法について説明します。

「入力キューへのDSCPまたはCoS値のマッピングおよびWTDスレッシュホールドの設定」(任意)

「各入力キューのバッファ スペースの割り当て」(任意)

「各入力キューの帯域幅の割り当て」(任意)

「入力プライオリティ キューの設定」(任意)

入力キューへのDSCPまたはCoS値のマッピングおよびWTDスレッシュホールドの設定

着信トラフィックにプライオリティを設定するには、特定のDSCPまたはCoSを持つパケットを特定のキューに格納し、より低いプライオリティを持つパケットが廃棄されるようにキューのスレッシュホールドを調整します。

DSCPまたはCoS値を入力キューにマッピングして、WTDスレッシュホールドを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos srr-queue input dscp-map queue queue-id threshold threshold-id dscp1...dscp8

または

mls qos srr-queue input cos-map queue queue-id threshold threshold-id cos1...cos8

DSCPまたはCoS値を入力キューおよびスレッシュホールドIDにマッピングします。

デフォルトでは、DSCP値0~39および48~63はキュー1およびスレッシュホールド1にマッピングされます。DSCP値40~47はキュー2およびスレッシュホールド1にマッピングされます。

デフォルトでは、CoS値0~4、6、および7はキュー1およびスレッシュホールド1にマッピングされます。CoS値5はキュー2およびスレッシュホールド1にマッピングされます。

queue-id には、1~2を使用します。

threshold-id には、1~3を使用します。スレッシュホールド3の廃棄スレッシュホールドは定義済みであり、キューフル ステートに設定されます。

dscp1...dscp8 には、8つまでの値を、それぞれスペースで区切って入力します。指定できる範囲は0~63です。

cos1...cos8 には、8つまでの値を、それぞれスペースで区切って入力します。指定できる範囲は0~7です。

ステップ 3

mls qos srr-queue input threshold queue-id threshold-percentage1 threshold-percentage2

入力キューに2つのWTDスレッシュホールド(スレッシュホールド1および2用)を割り当てます。デフォルトでは、両方のスレッシュホールドが100%に設定されます。

queue-id には、1~2を使用します。

threshold-percentage1 threshold-percentage2 には、1~100を使用します。各値はスペースで区切ります。

各スレッシュホールド値は、キューに割り当てられたキュー記述子の総数の割合です。

ステップ 4

end

イネーブルEXECモードに戻ります。

ステップ 5

show mls qos maps

設定を確認します。

DSCP入力キュー スレッシュホールド マップは、表形式で表示されます。d1列はDSCP値の最上位桁、d2行はDSCP値の最下位桁を示します。d1およびd2値の交点がキューIDおよびスレッシュホールドIDです。たとえば、キュー2およびスレッシュホールド1(02-01)のようになります。

CoS入力キュー スレッシュホールド マップでは、先頭行にCoS値、および2番めの行に対応するキューIDおよびスレッシュホールドIDが示されます。たとえば、キュー2およびスレッシュホールド2(2-2)のようになります。

ステップ 6

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのCoS入力キュー スレッシュホールド マップまたはデフォルトのDSCP入力キュー スレッシュホールド マップに戻すには、 no mls qos srr-queue input cos-map または no mls qos srr-queue
input dscp-map
グローバル コンフィギュレーション コマンドを使用します。デフォルトのWTDスレッシュホールドに戻すには、 no mls qos srr-queue input threshold queue-id グローバル コンフィギュレーション コマンドを使用します。

次に、DSCP値0~6を入力キュー1およびスレッシュホールド1(廃棄スレッシュホールドが50%)にマッピングする例を示します。DSCP値20~26は、入力キュー1およびスレッシュホールド2(廃棄スレッシュホールドが70%)にマッピングされます。

Switch(config)# mls qos srr-queue input dscp-map queue 1 threshold 1 0 1 2 3 4 5 6
Switch(config)# mls qos srr-queue input dscp-map queue 1 threshold 2 20 21 22 23 24 25 26
Switch(config)# mls qos srr-queue input threshold 1 50 70
 

この例では、50%のWTDスレッシュホールドにDSCP値(0~6)を割り当てて、70%のWTDスレッシュホールドに割り当てられたDSCP値(20~26)よりも先に廃棄されるように設定されます。

各入力キューのバッファ スペースの割り当て

2つのキューで入力バッファを分割する比率を定義します(バッファ スペース量を割り当てます)。バッファ割り当てと帯域幅割り当てにより、パケットを廃棄する前にバッファに格納できるデータ量が制御されます。

各入力キューにバッファを割り当てるには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos srr-queue input buffers percentage1 percentage2

各入力キューにバッファを割り当てます。

デフォルトでは、バッファの90%がキュー1に、残りの10%がキュー2に割り当てられます。

percentage1 percentage2 の範囲は、0~100です。各値はスペースで区切ります。

キューが着信バースト トラフィックをすべて処理できるように、バッファを割り当てる必要があります。

ステップ 3

end

イネーブルEXECモードに戻ります。

ステップ 4

show mls qos interface buffer

または

show mls qos input-queue

設定を確認します。

ステップ 5

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルト設定に戻すには、 no mls qos srr-queue input buffers グローバル コンフィギュレーション コマンドを使用します。

次に、バッファ スペースの60%を入力キュー1に、40%を入力キュー2に割り当てる例を示します。

Switch(config)# mls qos srr-queue input buffers 60 40

各入力キューの帯域幅の割り当て

各入力キューに割り当てる使用可能な帯域幅の比率を指定する必要があります。ウェイトの比率は、SRRスケジューラが各キューから内部リングにパケットを送信する頻度の比率です。帯域幅割り当てとバッファ割り当てにより、パケットを廃棄する前にバッファに格納できるデータ量が制御されます。入力キューでSRRが動作するのは、共有モードの場合のみです。

各入力キューに帯域幅を割り当てるには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos srr-queue input bandwidth weight1 weight2

入力キューに共有ラウンド ロビン ウェイトを割り当てます。

weight1およびweight2 のデフォルト設定は4です(帯域幅の1/2が2つのキューで均等に共有されます)。

weight1 および weight2 の範囲は、1~100です。各値はスペースで区切ります。

SRRは mls qos srr-queue input priority-queue queue-id bandwidth weight グローバル コンフィギュレーション コマンドの bandwidth キーワードで指定された設定済みウェイトに従って、プライオリティ キューを処理します。その後、SRRは残りの帯域幅を両方の入力キューで共有し、mls qos srr-queue input bandwidth weight1 weight2 グローバル コンフィギュレーション コマンドによって設定されたウェイトに従い、入力キューを処理します。詳細については、「入力プライオリティ キューの設定」を参照してください。

ステップ 3

end

イネーブルEXECモードに戻ります。

ステップ 4

show mls qos interface queueing

または

show mls qos input-queue

設定を確認します。

ステップ 5

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルト設定に戻すには、 no mls qos srr-queue input bandwidth グローバル コンフィギュレーション コマンドを使用します。

次に、キューに入力帯域幅を割り当てる例を示します。プライオリティ キューはディセーブルです。キュー1に割り当てられた共有帯域幅の比率は25/(25+75)、キュー2の比率は75/(25+75)です。

Switch(config)# mls qos srr-queue input priority-queue 2 bandwidth 0
Switch(config)# mls qos srr-queue input bandwidth 25 75

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

入力プライオリティ キューは、迅速な処理が必要なトラフィック(遅延およびジッタを最小にしなければならない音声トラフィックなど)にのみ使用する必要があります。

プライオリティ キューは、オーバーサブスクライブ リングに激しいネットワーク トラフィックが発生している状況で(バックプレーンが伝達できるトラフィックよりも多くのトラフィックが発生し、キューが一杯になって、フレームが廃棄されている場合)、遅延およびジッタを軽減するために保証されている帯域幅の一部です。

SRRは mls qos srr-queue input priority-queue queue-id bandwidth weight グローバル コンフィギュレーション コマンドの bandwidth キーワードで指定された設定済みウェイトに従って、プライオリティ キューを処理します。その後、SRRは残りの帯域幅を両方の入力キューで共有し、mls qos srr-queue input bandwidth weight1 weight2 グローバル コンフィギュレーション コマンドによって設定されたウェイトに従い、入力キューを処理します。

入力プライオリティ キューを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos srr-queue input priority-queue queue-id bandwidth weight

キューをプライオリティ キューとして割り当て、内部リングが輻輳している場合にリングの帯域幅を保証します。

デフォルトでは、プライオリティ キューはキュー2です。このキューには帯域幅の10%が割り当てられています。

queue-id には、1~2を使用します。

bandwidth weight には、内部リングの帯域幅に対する割合を割り当てます。指定できる範囲は0~40です。値が大きい場合はリング全体に影響が及び、パフォーマンスが低下することがあるため、保証できる帯域幅は制限されています。

ステップ 3

end

イネーブルEXECモードに戻ります。

ステップ 4

show mls qos interface queueing

または

show mls qos input-queue

設定を確認します。

ステップ 5

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルト設定に戻すには、 no mls qos srr-queue input priority-queue queue-id グローバル コンフィギュレーション コマンドを使用します。プライオリティ キューイングをディセーブルにするには、帯域幅のウェイトを0に設定します。たとえば、 mls qos srr-queue input priority-queue queue-id bandwidth 0 を入力します。

次に、キューに入力帯域幅を割り当てる例を示します。キュー1は、帯域幅の10%が割り当てられているプライオリティ キューです。キュー1および2に割り当てられている帯域幅比率は4/(4+4)です。SRRは10%の帯域幅が設定されたキュー1(プライオリティ キュー)を最初に処理します。次に、SRRは残りの90%の帯域幅をキュー1と2にそれぞれ45%ずつ割り当てて、各キューで均等に共有します。

Switch(config)# mls qos srr-queue input priority-queue 1 bandwidth 10
Switch(config)# mls qos srr-queue input bandwidth 4 4

出力キューセットの特性の設定

ネットワークおよびQoSソリューションが複雑な場合は、次に示す作業をすべて実行しなければならない場合があり、次の特性を決定する必要があります。

各キューおよびスレッシュホールドIDにマッピングされるパケット(DSCPまたはCoS値を使用)

キューセット(ポートごとの4つの出力キュー)に適用される廃棄スレッシュホールドの割合、およびトラフィック タイプに必要なメモリの確保量および最大メモリ

キューセットに割り当てる固定バッファ スペース

ポートの帯域幅に関するレート制限の必要性

ハイ プライオリティを設定する必要があるトラフィックの有無(音声など)

出力キューセットの処理頻度、および使用する技術(シェーピング、共有、または両方)

ここでは、出力キューセットの特性の設定方法について説明します。

「出力キューセットに対するバッファ スペースの割り当ておよびWTDスレッシュホールドの設定」(任意)

「出力キューセットおよびスレッシュホールドIDへのDSCPまたはCoS値のマッピング」(任意)

「出力キューセットのSRRシェーピング ウェイトの設定」(任意)

「出力キューセットのSRR共有ウェイトの設定」(任意)

「出力プライオリティ キューの設定」(任意)

「キューセットの出力帯域幅の制限」(任意)

出力キューセットに対するバッファ スペースの割り当ておよびWTDスレッシュホールドの設定

バッファのアベイラビリティの保証、WTDスレッシュホールドの設定、およびキューセットの最大メモリ割り当ての設定を行うには、 mls qos queue-set output qset-id threshold queue-id
drop-threshold1 drop-threshold2 reserved-threshold maximum-threshold グローバル コンフィギュレーション コマンドを使用します。

各スレッシュホールド値はキューに割り当てられたメモリの割合です。この値を指定するには、 mls qos queue-set output qset-id buffers allocation1 ... allocation4 グローバル コンフィギュレーション コマンドを使用します。キューはWTDを使用して、トラフィック クラスごとに異なる廃棄割合をサポートします。


) ほとんどの場合は、出力キューセットのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用のQoSソリューションを満たしていない場合のみです。


キューセットのメモリ割り当ておよび廃棄スレッシュホールドを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos queue-set output qset-id buffers allocation1 ... allocation4

キューセットにバッファを割り当てます。

デフォルトでは、すべての割り当て値は4つのキューに均等にマッピングされます(25、25、25、25)。各キューにはバッファ スペースの1/4が割り当てられます。

qset-id には、キューセットのIDを入力します。指定できる範囲は1~2です。各ポートはキューセットに属し、キューセットでは、ポートごとに4つの出力キューの特性がすべて定義されます。

allocation1 allocation3 、および allocation4 に指定できる範囲は0~99です。 allocation2 に指定できる範囲は1~100(CPUバッファを含む)です。

トラフィックの重要性に応じてバッファを割り当てます。たとえば、プライオリティが高いトラフィックを格納するキューには、より多くのバッファを割り当てます。

ステップ 3

mls qos queue-set output qset-id threshold queue-id drop-threshold1 drop-threshold2 reserved-threshold maximum-threshold

WTDスレッシュホールドを設定し、バッファのアベイラビリティを保証し、キューセット(ポートごとに4つの出力キュー)の最大メモリ割り当てを設定します。

デフォルトでは、キュー1、3、および4のWTDスレッシュホールドは100%に設定されています。キュー2のWTDスレッシュホールドは50%に設定されています。キュー1、3、および4の専用スレッシュホールドは50%に設定されています。キュー2の専用スレッシュホールドは100%に設定されています。すべてのキューの最大スレッシュホールドは400%に設定されています。

qset-id には、ステップ2で指定したキューセットのIDを入力します。指定できる範囲は1~2です。

queue-id には、コマンドの実行対象となるキューセット内の特定のキューを入力します。指定できる範囲は1~4です。

drop-threshold1 drop-threshold2 には、キューに割り当てられたメモリの割合として表される2つのWTDスレッシュホールドを指定します。指定できる範囲は1~400%です。

reserved-threshold には、割り当てメモリの割合として表されるキューの保証(専用)メモリ サイズを入力します。指定できる範囲は1~100%です。

maximum-threshold を指定すると、キューが一杯になった場合でも、確保量を超えるバッファを取得することができます。この値は、共通プールが空でない場合に、パケットが廃棄されるまでキューが使用できるメモリの最大値です。指定できる範囲は1~400%です。

ステップ 4

interface interface-id

ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 5

queue-set qset-id

キューセットにポートをマッピングします。

qset-id には、ステップ2で指定したキューセットのIDを入力します。指定できる範囲は1~2です。デフォルトは1です。

ステップ 6

end

イネーブルEXECモードに戻ります。

ステップ 7

show mls qos interface [ interface-id ] buffers

設定を確認します。

ステップ 8

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルト設定に戻すには、 no mls qos queue-set output qset-id buffers グローバル コンフィギュレーション コマンドを使用します。デフォルトのWTDスレッシュホールドの割合に戻すには、 no mls qos queue-set output qset-id threshold [ queue-id ] グローバル コンフィギュレーション コマンドを使用します。

次に、キューセット2にポートをマッピングする例を示します。出力キュー1にはバッファ スペースの40%、出力キュー2、3、および4には20%が割り当てられます。キュー2の廃棄スレッシュホールドは割り当てメモリの40および60%に設定され、割り当てメモリの100%が保証(確保)され、パケットが廃棄されるまでにこのキューが使用できる最大メモリが200%に設定されます。

Switch(config)# mls qos queue-set output 2 buffers 40 20 20 20
Switch(config)# mls qos queue-set output 2 threshold 2 40 60 100 200
Switch(config)# interface fastethernet1/0/1
Switch(config-if)# queue-set 2

出力キューセットおよびスレッシュホールドIDへのDSCPまたはCoS値のマッピング

トラフィックにプライオリティを設定するには、特定のDSCPまたはCoSを持つパケットを特定のキューに格納し、より低いプライオリティを持つパケットが廃棄されるようにキューのスレッシュホールドを調整します。


) ほとんどの場合は、出力キューセットのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用のQoSソリューションを満たしていない場合のみです。


DSCPまたはCoS値を出力キューおよびスレッシュホールドIDにマッピングするには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

mls qos srr-queue output dscp-map queue queue-id threshold threshold-id dscp1...dscp8

または

mls qos srr-queue output cos-map queue queue-id threshold threshold-id cos1...cos8

DSCPまたはCoS値をポートの出力キューおよびスレッシュホールドIDにマッピングします。

デフォルトでは、DSCP値0~15はキュー2およびスレッシュホールド1に、DSCP値16~31はキュー3およびスレッシュホールド1に、DSCP値32~39および48~63はキュー4およびスレッシュホールド1に、DSCP値40~47はキュー1およびスレッシュホールド1にマッピングされます。

デフォルトでは、CoS値0および1はキュー2およびスレッシュホールド1に、CoS値2および3はキュー3およびスレッシュホールド1に、CoS値4、6、および7はキュー4およびスレッシュホールド1に、CoS値5はキュー1およびスレッシュホールド1にマッピングされます。

queue-id には、1~4を使用します。

threshold-id には、1~3を使用します。スレッシュホールド3の廃棄スレッシュホールドは定義済みであり、キューフル ステートに設定されます。

dscp1...dscp 8 には、8つまでの値を、それぞれスペースで区切って入力します。指定できる範囲は0~63です。

cos1...cos8 には、8つまでの値を、それぞれスペースで区切って入力します。指定できる範囲は0~7です。

ステップ 3

end

イネーブルEXECモードに戻ります。

ステップ 4

show mls qos maps

設定を確認します。

DSCP出力キュー スレッシュホールド マップは、表形式で表示されます。d1列はDSCP値の最上位桁、d2行はDSCP値の最下位桁を示します。d1およびd2値の交点がキューIDおよびスレッシュホールドIDです。たとえば、キュー2およびスレッシュホールド1(02-01)のようになります。

CoS出力キュー スレッシュホールド マップでは、先頭行にCoS値、および2番めの行に対応するキューIDおよびスレッシュホールドIDが示されます。たとえば、キュー2およびスレッシュホールド2(2-2)のようになります。

ステップ 5

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトのDSCP出力キュー スレッシュホールド マップまたはデフォルトのCoS出力キュー スレッシュホールド マップに戻すには、 no mls qos srr-queue output dscp-map または no mls qos
srr-queue output cos-map
グローバル コンフィギュレーション コマンドを使用します。

次に、DSCP値10および11を出力キュー1およびスレッシュホールド2にマッピングする例を示します。

Switch(config)# mls qos srr-queue output dscp-map queue 1 threshold 2 10 11

出力キューセットのSRRシェーピング ウェイトの設定

キューセット内の各キューに割り当てる使用可能な帯域幅の比率を指定することができます。ウェイトの比率は、SRRスケジューラが標準ポートからパケットを送信する頻度の比率です。


) ESポートではSRRシェーピングがサポートされませんが、平均レートのシェーピングを設定することができます。詳細については、「シェーピングの設定」を参照してください。


出力キューには、シェーピング ウェイト、共有ウェイト、またはその両方を設定できます。バースト トラフィックを平滑化したり、出力をより滑らかにするには、シェーピングを使用します。概念の詳細については、 「SRRのシェーピングおよび共有」を参照してください。設定の詳細については、「出力キューセットのSRR共有ウェイトの設定」を参照してください。


) ほとんどの場合は、出力キューセットのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用のQoSソリューションを満たしていない場合のみです。


4つの出力キューにマッピングされた標準ポートにシェーピング ウェイトを割り当てて、帯域幅のシェーピングをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

interface interface-id

標準ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 3

srr-queue bandwidth shape weight1 weight2 weight3 weight4

出力キューにSRRウェイトを割り当てます。このコマンドは、ESポートではサポートされません。

デフォルトでは、weight1は25、weight2、weight3、およびweight4は0に設定されています。これらのキューは共有モードです。

weight1 weight2 weight3 weight4 には、シェーピングされるポートの割合を制御するウェイトを入力します。このキューのシェーピング帯域幅は、比率の逆数(1/ weight )によって制御されます。各値はスペースで区切ります。指定できる範囲は0~65535です。

ウェイト0を設定した場合は、対応するキューが共有モードで動作します。 srr-queue bandwidth shape コマンドで指定されたウェイトは無視され、 srr-queue bandwidth share インターフェイス コンフィギュレーション コマンドで各キューに指定されたウェイトが有効になります。同じキューセットのキューにシェーピングおよび共有を両方設定する場合は、シェーピングに番号が最小のキューを設定してください。

シェーピング モードは共有モードよりも優先します。

ステップ 4

end

イネーブルEXECモードに戻ります。

ステップ 5

show mls qos interface interface-id queueing

設定を確認します。

ステップ 6

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトの設定に戻すには、 no srr-queue bandwidth shape インターフェイス コンフィギュレーション コマンドを使用します。

次に、キュー1に帯域幅のシェーピングを設定する例を示します。キュー2、3、および4のウェイト比率は0に設定されているため、これらのキューは共有モードで動作します。キュー1の帯域幅のウェイトは1/8(12.5%)です。

Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# srr-queue bandwidth shape 8 0 0 0

出力キューセットのSRR共有ウェイトの設定

共有モードでは、キューセット内のキューは設定されたウェイトに従って各キュー間の帯域幅を共有します。帯域幅はこのレベルで保証されますが、このレベルに限定されるわけではありません。たとえば、特定のキューが空であり、リンクを共有する必要がない場合、残りのキューは未使用の帯域幅を使用して、各キュー間で共有することができます。共有の場合、キューからパケットを取り出す頻度はウェイトの比率によって制御されます。ウェイトの絶対値には意味がありません。


) ほとんどの場合は、出力キューセットのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用のQoSソリューションを満たしていない場合のみです。


4つの出力キューにマッピングされたポートに共有ウェイトを割り当てて、帯域幅の共有をイネーブルにするには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

interface interface-id

ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 3

srr-queue bandwidth share weight1 weight2 weight3 weight4

出力キューにSRRウェイトを割り当てます。

デフォルトでは、4つのウェイトがすべて25です(各キューに帯域幅の1/4が割り当てられています)。

weight1 weight2 weight3 weight4 には、SRRスケジューラがパケットを送信する頻度の比率を制御するウェイトを入力します。各値はスペースで区切ります。指定できる範囲は1~255です。

ステップ 4

end

イネーブルEXECモードに戻ります。

ステップ 5

show mls qos interface interface-id queueing

設定を確認します。

ステップ 6

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトの設定に戻すには、 no srr-queue bandwidth share インターフェイス コンフィギュレーション コマンドを使用します。

次に、出力ポートで動作するSRRスケジューラのウェイト比を設定する例を示します。4つのキューが使用され、共有モードで各キューに割り当てられる帯域幅の比率は、キュー1、2、3、および4に対して1/(1+2+3+4)、2/(1+2+3+4)、3/(1+2+3+4)、および4/(1+2+3+4)になります(それぞれ、10、20、30、および40%)。つまり、キュー4の帯域幅はキュー1の4倍、キュー2の2倍、キュー3の1.3倍です。

Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# srr-queue bandwidth share 1 2 3 4

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

Cisco IOS Release 12.1(14)AX2以降では、ポート上の出力プライオリティ キューにある特定パケットにキューイングを行い、他のすべてのパケットに対するプライオリティを持っているかを確認できます。SRRは、他のキューの処理を行う前に、空になるまでプライオリティ キューを処理します。

出力プライオリティ キューにマッピングされたトラフィック クラスにESポートを通過させたい場合は、「LLQのイネーブル化」に記載されているように、完全優先キューイングにこれらのクラスをマッピングします。

出力プライオリティ キューをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド3
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

interface interface-id

ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 3

priority-queue out

デフォルトではディセーブルに設定されている出力プライオリティ キューをイネーブルにします。

このコマンドを設定する場合、SRRに参加するキューは1つ少なくなるため、SRRウェイトおよびキュー サイズの比率が影響を受けます。つまり、 srr-queue bandwidth shape または srr-queue bandwidth share コマンドの weight1 が比率計算に使用されません。

ステップ 4

end

イネーブルEXECモードに戻ります。

ステップ 5

show running-config

設定を確認します。

ステップ 6

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

プライオリティ キューをディセーブルにするには、 no priority-queue out インターフェイス コンフィギュレーション コマンドを使用します。

次に、SRRウェイトが設定されている場合に出力プライオリティ キューをイネーブルにする例を示します。出力緊急キューは、設定されたSRRウェイトを上書きします。

Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# srr-queue bandwidth shape 25 0 0 0
Switch(config-if)# srr-queue bandwidth share 30 20 25 25
Switch(config-if)# priority-queue out
Switch(config-if)# end

キューセットの出力帯域幅の制限

キューセットにマッピングされた標準ポートの出力帯域幅を制限することができます。たとえば、カスタマー高速リンクの一部しか費用を負担しない場合は、帯域幅をその値に制限することができます。


) ほとんどの場合は、出力キューセットのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用のQoSソリューションを満たしていない場合のみです。


標準ポートの出力帯域幅を制限するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

interface interface-id

レートを制限する標準ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 3

srr-queue bandwidth limit weight1

ポートの上限となるポート速度の割合を指定します。指定できる範囲は10~90%です。このコマンドは、ESポートではサポートされません。

デフォルトでは、ポートのレートは制限されず、100%に設定されています。

ステップ 4

end

イネーブルEXECモードに戻ります。

ステップ 5

show mls qos interface [ interface-id ] queueing

設定を確認します。

ステップ 6

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

デフォルトの設定に戻すには、 no srr-queue bandwidth limit インターフェイス コンフィギュレーション コマンドを使用します。

次に、標準ポートの帯域幅を80%に制限する例を示します。

Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# srr-queue bandwidth limit 80
 

このコマンドを80%に設定すると、ポートは期間の20%の間アイドル状態です。回線レートは接続速度の80%(800 Mbps)に低下します。ハードウェアによる回線レートの調整では6ずつ増分されるため、これらの値は正確ではありません。

標準QoS情報の表示

標準QoS情報を表示するには、 表32-15 に示すイネーブルEXECコマンドを1つまたは複数組み合わせて使用します。

 

表32-15 標準QoS情報を表示するためのコマンド

コマンド
説明

show class-map [ class-map-name ]

トラフィックを分類するための一致条件を定義するQoSクラス マップを表示します。

show mls qos

グローバルQoSコンフィギュレーション情報を表示します。

show mls qos aggregate-policer [ aggregate-policer-name ]

集約ポリサーの設定を表示します。

show mls qos input-queue

入力キューのQoS設定を表示します。

show mls qos interface [ interface-id ] [ buffers | policers | queueing | statistics ]

バッファ割り当て、ポリサーが設定されるポート、キューイング方式、入出力統計情報など、ポート レベルのQoS情報を表示します。

show mls qos maps [ cos-dscp | cos-input-q | cos-output-q | dscp-cos | dscp-input-q | dscp-mutation dscp-mutation-name | dscp-output-q | ip-prec-dscp | policed-dscp ]

QoSマッピング情報を表示します。

show mls qos queue-set [ qset-id ]

出力キューセットの設定を表示します。

show mls qos vlan vlan-id

SVIに付加されたポリシー マップを表示します。

show policy-map [ policy-map-name [ class class-map-name ]]

show policy-map interface interface-id [ input ]

トラフィック クラスのトラフィック ポリシーを定義するQoSポリシー マップを表示します。

指定されたポートに適用される入力ポリシーマップ名を表示します。

階層型QoSの設定

階層型QoS(トラフィック分類、CBWFQ、LLQ、シェーピング、および2つのレートと3つのカラーによるポリシング)を設定し、ESポートの着信および発信トラフィックに適用することができます。

階層型QoSを設定する前に、次の内容を完全に把握してください。

使用するアプリケーションのタイプおよびネットワークのトラフィック パターン。

トラフィックの特性およびネットワークの要求。トラフィック バーストの有無。音声およびビデオ ストリーム用に帯域幅を確保する必要性。

帯域要件およびネットワーク速度。

ネットワークで輻輳が発生する場所。

ここでは、スイッチに階層型QoSを設定する手順について説明します。ここに記載された内容は、トラフィックが標準ポートまたはESポートからESポートに送信されている場合に参照してください。

「階層型QoSのデフォルト設定」

「階層型QoS設定時の注意事項」

「階層型QoSポリシーの設定」(必須)

階層型QoSのデフォルト設定

QoSはディセーブルに設定されています。

トラフィック クラス、クラス マップ、ポリシー マップ、またはポリサーは定義されていません。

LLQはディセーブルです。

CBWFQはディセーブルです。

テール ドロップはイネーブルです。

WREDはディセーブルです。

平均レート トラフィック シェーピングはディセーブルです。

階層型QoS設定時の注意事項

これらの階層型QoS設定時の注意事項は、ESポートの入力および出力サービスポリシーに適用されます。

階層型設定を有効にするには、 mls qos グローバル コンフィギュレーション コマンドを使用してQoSをイネーブルにする必要があります。QoSがイネーブルの場合は、「標準QoSのデフォルト設定」、および「階層型QoSのデフォルト設定」に記載されたデフォルト設定が使用されます。手順の詳細については、「QoSのグローバルなイネーブル化」を参照してください。

論理インターフェイス(EtherChannelなど)にサービス ポリシーを付加することはできないため、スイッチにEtherChannelポートが設定されている場合は、EtherChannelを形成する個々の物理ポートにQoSの分類、ポリシング、マッピング、およびキューイングを設定する必要があります。

ESポートに付加された出力ポリシーまたは階層型入力ポリシーのいずれかでは、ACLを含むクラス マップはサポートされません。階層型ポリシー マップでは、 match access-group
acl-index-or-name クラスマップ コンフィギュレーション コマンドを設定できません。

(単一のVLANを照合する代わりに)802.1Qトンネリング ペアを照合するクラス マップを設定するには、 class-map グローバル コンフィギュレーション コマンドに match-all キーワードを指定して設定する必要があります。 match vlan コマンドを入力してから、 match vlan inner コマンドを入力する必要があります。

同じクラス マップに match vlan { vlan-id | inner vlan-id } およびmatch { cos [ inner ] cos-list | ip dscp dscp-list | ip precedence ip-precedence-list | mpls experimental exp-list }クラス マップ コンフィギュレーション コマンドを設定することはできません。

match vlan または match vlan inner コマンドを入力した場合、 class-map match-any コマンドはサポートされません。

1つのクラス マップ内でVLANレベルとクラスレベルの一致処理を混在させることはできません。

802.1Qトンネリングとポート信頼ポリシーが併用されている場合は、同じトンネルVLANを共有するすべてのポートに同じ信頼ポリシーを設定する必要があります。

ポートごとにサポートされるポリシー マップは1つのみです。ESポートごとに、1つの入力階層型サービス ポリシーと1つの出力階層型サービス ポリシーを付加できます。

入力ESポートに、レベルを1つしか持たない階層型ポリシー マップを適用することはできません。

信頼ポリシーと階層型入力ポリシーの両方がESポートに設定されている場合、サービス ポリシーで指定されたアクションは、信頼ポリシーが適用される前に処理されます。

入力階層型ポリシー マップに set ポリシーマップ クラス コンフィギュレーション コマンドが含まれる場合、スイッチは自動的にポートの信頼状態をESポートに適用します。また、スイッチは、トラフィック クラスに一致しないトラフィックを含め、ESポート上のすべての着信トラフィックにポートの信頼状態を適用します。たとえば、 set cos new-cos コマンドを入力した場合、スイッチは自動的にインターフェイスがCoSを信頼するように設定します。

入力ポリシー マップでは、ポートが信頼できる着信パケットの値は1つのみなので、レイヤ2およびレイヤ3 set アクションを組み合わせることはできません。たとえば、スイッチは次のポリシー マップをサポートしません。

policy-map p1
class cos1
police cir per 10 conform-action set-cos-transmit 3
set dscp af22
 

ESポートでは、階層型サービスポリシーで設定されるポリサー数の唯一の制限は、設定可能なクラスの有限数です。詳細については、「階層レベル」を参照してください。

2つのレートを使用する入力ポリサーで、 conform-action exceed-action violate-action を設定し、 set-cos-transmit new-cos set-dscp-transmit new-dscp 、または set-prec-transmit new-prec オプションを使用してパケットのCoS、DSCP、またはIP precedence値を設定した場合、スイッチはポートの信頼状態を、2つのレートを使用するポリサーを持つトラフィック クラスに一致しないトラフィックも含め、ESポートで受信されるすべてのトラフィックに自動的に適用します。

ポートが信頼できるのは着信パケットの1つの値(CoS、DSCP、またはIP precedence)のみであるため、2つのレートを使用する入力ポリサーのレイヤ2( set-cos-transmit new-cos )アクションとレイヤ3( set-dscp-transmit new-dscp または set-prec-transmit new-prec )アクションを組み合わせることはできません。たとえば、 police cir percent 10 conform-action set-cos-transmit 3 exceed-action set dscp-transmit af22 コマンドは設定できません。 conform-action はCoS値に3を設定するのに対して、 exceed-action はDSCP値にaf22を設定します。

階層型複数レベル ポリシーをESポートに設定するには、ここに記載されている設定手順を使用します。ESポートに付加された単一レベル ポリシー マップでは、多くの設定オプションがサポートされません。

階層型入力単一レベル サービスポリシー(たとえば、ESポートで2つのレートを使用する入力ポリサー)を使用する場合、ポリシー マップでクラスデフォルトのみを持つ階層に、2番めのレベルを作成する必要があります。たとえばポリシー マップでは、 class ポリシーマップ コンフィギュレーション コマンドでクラス名として class-default を指定します。

テール ドロップを使用するクラス ポリシーを定義するには、 queue-limit ポリシーマップ クラス コンフィギュレーション コマンドを使用します。WREDパケット廃棄を使用するクラス ポリシーを定義するには、 random-detect ポリシーマップ クラス コンフィギュレーション コマンドを使用します。 queue-limit および random-detect コマンドを同じクラス ポリシー内で使用することはできませんが、同じポリシー マップ内の2つのクラス ポリシーで使用することはできます。

同じポリシー マップ内の同じクラスで、 bandwidth queue-limit random-detect 、および shape ポリシーマップ クラス コンフィギュレーション コマンドと、 priority ポリシーマップ クラス コンフィギュレーション コマンドと併用することはできません。ただし、これらのコマンドを同じポリシー マップ内の異なるクラスで使用することはできます。ポリシー マップ内でプライオリティ ステータスを設定できるのは、1つのクラスのみです。

1つのクラス ポリシー内で bandwidth または shape ポリシーマップ クラス コンフィギュレーション コマンドを設定してから、 queue-limit または random-detect ポリシーマップ クラス コンフィギュレーション コマンドを設定する必要があります。ポリシーにデフォルト トラフィック クラスが使用されていない場合は、 queue-limit または random-detect コマンドと同じポリシー マップ内で、 bandwidth または shape コマンドを設定する必要があります。ポリシーにデフォルト トラフィック クラスが使用されている場合は、ポリシー マップ内で bandwidth および shape コマンドを指定する必要はありません。

1つのポリシー マップ内では、すべてのクラス帯域幅をKbpsまたはパーセント単位で指定できますが、これらを混在させることはできません。( service-policy ポリシーマップ クラス コンフィギュレーション コマンドを使用して設定された)子ポリシーでは、帯域幅をKbps単位で指定できません。親ポリシーに対する割合として帯域幅を指定します。

子ポリシー マップでは、各クラス マップの最小帯域幅は、親ポリシー マップの総帯域幅の0.01%以上となっている必要があります。子ポリシー マップで class-default クラスが設定されていない場合、この最小帯域幅マップは class-default クラスに予約されます。

子ポリシー マップで設定された総帯域幅が、親ポリシー マップの総帯域幅を超えることはできません。

階層型QoSポリシーの設定

ここでは、階層型QoSポリシーを設定して、ESポートに付加するサービス ポリシーを作成する方法を示します。

基本的な情報については、「階層レベル」「トラフィック クラスおよびトラフィック ポリシーに基づく階層型分類」「階層型ポリシングおよびマーキング」、および「階層型キューのキューイングおよびスケジューリング」を参照してください。設定時の注意事項については、「階層型QoS設定時の注意事項」を参照してください。

トラフィックの分類、ポリシング、マーキング、キューイング、またはスケジューリングを行う場合は、ご使用のネットワーク設定およびQoSソリューションに応じて、次の作業を1つまたは複数実行する必要があります。

「階層型クラス マップによるトラフィックの分類」(必須)

「2つのレートを使用する階層型トラフィック ポリサーの設定」(任意)

「階層型トラフィック ポリシーでのクラスベース パケット マーキングの設定」(任意)

「CBWFQおよびテール ドロップの設定」(任意)

「CBWFQおよびDSCPベースWREDの設定」(任意)

「CBWFQおよびIP precedenceベースWREDの設定」(任意)

「LLQのイネーブル化」(任意)

「シェーピングの設定」(任意)

階層型クラス マップによるトラフィックの分類

指定した名前を持つクラスとパケットとの照合に使用するクラス マップを作成するには、 class-map グローバル コンフィギュレーション コマンドを使用します。クラス マップは特定のフローとの照合に使用する条件を定義して、特定のトラフィック フロー(クラス)を他のすべてのトラフィックから隔離します。一致条件は、クラス マップ コンフィギュレーション モードで1つの一致ステートメントを入力することによって定義されます。パケットは、クラス マップに設定された一致条件に対して比較されます。指定された条件と一致するパケットは、クラスのメンバーとみなされ、トラフィック ポリシーに設定されたQoS指定に従って転送されます。

クラスレベルのクラス マップを作成し、トラフィックを分類するための一致条件を定義するには、イネーブルEXECモードで次の手順を実行します。この手順は必須です。次に、クラスレベルおよびVLANレベルのクラス マップを作成する例を示します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

class-map [ match-all | match-any ] class-map-name

クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。

デフォルトでは、クラス マップは定義されていません。

(任意)このクラス マップのすべての一致ステートメントに対して論理ANDを実行するには、 match-all キーワードを使用します。この場合は、クラス マップ内のすべての条件と一致する必要があります。

(任意)このクラス マップのすべての一致ステートメントに対して論理ORを実行するには、 match-any キーワードを使用します。この場合は、1つまたは複数の条件と一致する必要があります。

class-map-name には、クラス マップの名前を指定します。

match-all または match-any のどちらのキーワードも指定しない場合、デフォルトは match-all です。(単一のVLANを照合する代わりに)802.1Qトンネリング ペアを照合する場合は、 match-all キーワードを使用する必要があります。

ステップ 3

match { cos [ inner ] cos-list | ip dscp dscp-list | ip precedence ip-precedence-list | mpls experimental exp-list | vlan { vlan-id | inner vlan-id }}

トラフィックを分類する一致条件を定義します。

デフォルトで、一致条件は定義されていません。

cos [ inner ] cos-list を指定する場合は、 パケットと比較するレイヤ2 CoS値を4つまで入力します。各値はスペースで区切ります。指定できる範囲は0~7です。802.1Qトンネリング トラフィックの(外部CoS値の代わりに)内部CoS値を一致させるには、 inner キーワードを使用します。

ip dscp dscp-list を指定する場合は、パケットと比較するIP DSCP値を8個まで入力します。各値はスペースで区切ります。指定できる範囲は0~63です。

ip precedence ip-precedence-list を指定する場合は、パケットと比較するIP precedence値を8個まで入力します。各値はスペースで区切ります。指定できる範囲は0~7です。

mpls experimental exp-list を指定する場合は、パケットと比較するMPLS EXP値を8個まで入力します。各値はスペースで区切ります。指定できる範囲は0~7です。

vlan { vlan-id | inner vlan-id } では、VLAN IDに基づいてパケットを比較するように指定します。

vlan vlan-id の場合は、 VLAN IDに基づいて、または(802.1Qトンネリングが設定されている場合は)外部VLAN IDに基づいて、パケットを比較します。VLAN番号で識別される単一のVLAN、またはハイフンで区切られたVLAN範囲を指定できます。指定できる範囲は1~4094です。

vlan inner vlan-id の場合は、 802.1Qトンネルの内部VLAN IDに基づいてパケットを比較します。VLAN番号で識別される単一のVLAN、またはハイフンで区切られたVLAN範囲を指定できます。指定できる範囲は1~4094です。

(単一VLANを比較する代わりに)802.1Qトンネリング ペアを比較する場合は、 match vlan コマンドを入力してから、 match
vlan inner
コマンドを入力する必要があります。


) 1つのクラス マップ内でVLANレベルとクラスレベルの一致処理を混在させることはできません。


 

ステップ 4

end

イネーブルEXECモードに戻ります。

ステップ 5

show class-map

設定を確認します。

ステップ 6

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のクラス マップを削除するには、 no class-map [ match-all | match-any ] class-map-name グローバル コンフィギュレーション コマンドを使用します。一致条件を削除するには、 no match { cos [ inner ] cos-list | ip dscp dscp-list | ip precedence ip-precedence-list | mpls experimental exp-list | vlan { vlan-id | inner vlan-id }} クラスマップ コンフィギュレーション コマンドを使用します。

次に、IP precedence値が5、6、7であるトラフィックとの一致を調べる、 class3 という名前のクラスレベル クラスマップを作成する例を示します。

Switch(config)# class-map class3
Switch(config-cmap)# match ip precedence 5 6 7
 

次に、外部VLAN IDが5、内部VLAN IDが3~8のすべてのトラフィックと照合する、 dot1q という名前の802.1Qトンネリング用VLANレベル クラスマップを作成する例を示します。

Switch(config)# class-map match-all dot1q
Switch(config-cmap)# match vlan 5
Switch(config-cmap)# match vlan inner 3 - 8
 

次に、VLAN 203内のトラフィックと照合する、 vlan203 という名前のVLANレベル クラスマップを作成する例を示します。

Switch(config)# class-map match-all vlan203
Switch(config-cmap)# match vlan 203

2つのレートを使用する階層型トラフィック ポリサーの設定

ポリシー マップ内に2つのレートを使用するトラフィック ポリサーをクラス レベル、VLANレベル、および物理レベルで設定するには、 police cir または police cir percent ポリシーマップ クラス コンフィギュレーション コマンドを使用します。階層の物理レベルでポリシングできるのは、ESポートに付加されたポリシー内のclass-defaultクラスのみです。

ポリサーはトラフィック クラスの送信レートを制限し、パケットごとにアクション(conform、exceed、およびviolate)をマーキングします。conform、exceed、およびviolateのカテゴリ内で、パケットの処理を決定します。通常の設定では、適合(conform)パケットは送信するように、超過(exceed)パケットはプライオリティを低下させて送信するように、違反(violate)パケットは廃棄するように設定します。パケットのCoS、DSCP、IP precedence、またはMPLS EXPビットのプライオリティを低下させることができます。 police cir ポリシーマップ クラス コンフィギュレーション コマンドを使用して、ポリサーを設定します。

police cir percent ポリシーマップ クラス コンフィギュレーション コマンドを使用すると、2つのレート(CIRおよびPIR)を使用するトラフィック ポリサーを設定することもできます。CIRおよびPIRは、親クラスに割り当てられた最大帯域幅の割合に基づいて計算されます。最大帯域幅が設定されている場合は、 shape ポリシーマップ クラス コンフィギュレーション コマンドを使用してこの値を制御します。最大帯域幅が設定されていない場合は、物理ポートの帯域幅(1 Gbps)になります。 police cir percent コマンドと shape コマンドの相互作用については、このリリースに対応するコマンド リファレンスの police cir percent コマンドを参照してください。

次の手順を開始する前に、トラフィックを隔離するクラス マップを作成しておく必要があります。詳細については、「階層型クラス マップによるトラフィックの分類」を参照してください。

サービス ポリシーに2つのレートを使用するクラスレベル トラフィック ポリサーを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。次に、クラスレベル、VLANレベル、および物理レベルのポリサーを設定する例を示します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

policy-map policy-map-name

ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。

デフォルトでは、ポリシー マップは定義されていません。

ステップ 3

class class-name

トラフィック ポリシーを作成または変更するクラスの名前を指定して、ポリシーマップ クラス コンフィギュレーション モードを開始します。

デフォルトでは、トラフィック クラスは定義されていません。

ステップ 4

police cir cir [ bc conform-burst ] pir pir [ be peak-burst ] [ conform-action action [ exceed-action action [ violate-action action ]]]

または

police cir percent percent [ bc conform-burst ms ] | pir percent percent [ be peak-burst ms ] [ conform-action action [ exceed-action action [ violate-action action ]]]


police cir percentコマンドの構文の説明については、このリリースに対応するコマンド リファレンスを参照してください。


2つのレート(CIRおよびPIR)を使用するトラフィック ポリサーを設定します。デフォルトでは、ポリサーは定義されていません。

cir cir には、 最初のトークン バケットが更新されるCIRを指定します。指定できる範囲は 64000~990000000 bpsです。

(任意) bc conform-burst には、ポリシング用の最初のトークン バケットで使用される適合バースト サイズを指定します。指定できる範囲は 1536~16776960 バイトです。デフォルト値は8192です。

pir pir には 、ポリシング用の2番めのトークン バケットが更新されるPIRを指定します。指定できる範囲は64000~ 990000000 bpsです。

(任意) be peak-burst には 、2番めのトークン バケットで使用されるピーク バースト サイズを指定します。指定できる範囲は 1536~16776960 バイトです。デフォルト値は8192です。

(任意) conform-action には 、CIRおよびPIRに適合するパケットに対して実行されるアクションを指定します。

(任意) exceed-action には 、PIRに適合し、CIRに適合しないパケットに対して実行されるアクションを指定します。

(任意) violate-action には 、PIRを超過するパケットに対して実行されるアクションを指定します。


) アクションを指定しない場合のデフォルト設定は、
conform-actionは送信、exceed-actionは廃棄、violate-actionは廃棄です。


(任意) action には、 パケットに対して実行されるアクションを指定します。

drop ― パケットを廃棄します。

set-cos-transmit new-cos CoS値を新しい値に設定し、パケットを送信します。指定できる範囲は0~7です。

set-dscp-transmit new-dscp ― IP DSCP値を新しい値に設定し、パケットを送信します。指定できる範囲は0~63です。通常使用される値にはニーモニック名を使用することもできます。

set-mpls-exp-transmit new-exp ― MPLS EXPビットを設定し、パケットを送信します。指定できる範囲は0~7です。

set-prec-transmit new-prec ― IP precedence値を新しい値に設定し、パケットを送信します。指定できる範囲は0~7です。

transmit ― パケットを変更しないで送信します。

CIRをPIRと同じに設定すると、CIRを下回るトラフィック レート、またはCIRに等しいトラフィック レートは、適合になります。CIRを超過するトラフィック レートは、違反になります。

PIRをCIRよりも大きな値に設定すると、CIRを下回るトラフィック レートは適合になります。CIRを超過し、PIR以下のトラフィック レートは超過になります。PIRを超過するトラフィック レートは、違反になります。

バースト サイズの設定値が小さすぎる場合は、トラフィック量が予測した値よりも少なくなり、バースト サイズの設定値が大きすぎる場合は、トラフィック量が予測した値よりも多くなります。

ステップ 5

exit

ポリシーマップ コンフィギュレーション モードに戻ります。

ステップ 6

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 7

interface interface-id

ポリシー マップに付加するESポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 8

service-policy [ input | output] policy-map-name

ポリシーマップ名を指定し、ESポートに適用します。

ステップ 9

end

イネーブルEXECモードに戻ります。

ステップ 10

show policy-map policy-map-name

または

show policy-map interface interface-id

設定を確認します。

ステップ 11

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のポリシー マップを削除するには、 no policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用します。既存のクラスを削除するには、 no class class-name ポリシーマップ コンフィギュレーション コマンドを使用します。2つのレートを使用するポリサーを削除するには、 no police cir cir [ bc conform-burst ] pir pir [ be peak-burst ] [ conform-action action [ exceed-action action [ violate-action action ]]]ポリシーマップ クラス コンフィギュレーション コマンドを使用します。 ポリシー マップとインターフェイスの関連付けを解除するには、 no service-policy output
policy-map-name インターフェイス コンフィギュレーション コマンドを使用します。

次に、発信トラフィックを平均認定速度500 Kbpsおよびピーク レート1 Mbpsに制限するように、2つのレートを使用するクラスレベル トラフィック ポリサーを設定する例を示します。平均認定速度(500 Kbps)に適合するとしてマーキングされたトラフィックは、そのまま送信されます。500 Kbpsを超過し、1 Mbpsを超過しないとしてマーキングされたトラフィックは、IP precedence 2がマーキングされて、送信されます。1 Mbpsを超過するとしてマーキングされたすべてのトラフィックは、廃棄されます。バースト パラメータは10000バイトに設定されています。

Switch(config)# class-map c1
Switch(config-cmap)# match ip precedence 4
Switch(config-cmap)# exit
Switch(config)# policy-map policy1
Switch(config-pmap)# class c1
Switch(config-pmap-c)# police cir 500000 bc 10000 pir 1000000 be 10000 conform-action transmit exceed-action set-prec-transmit 2 violate-action drop
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# service-policy output policy1
 

次に、帯域幅の割合に基づいて、2つのレート(CIRおよびPIR)を使用するクラスレベル トラフィック ポリサーを設定する例を示します。CIRには20%、PIRには40%が指定されています。任意の bc および be 値(それぞれ300ミリ秒および400ミリ秒)が指定されています。

Switch(config)# class-map c1
Switch(config-cmap)# match ip precedence 4
Switch(config-cmap)# exit
Switch(config)# policy-map policy1
Switch(config-pmap)# class class1
Switch(config-pmap-c)# police cir percent 20 bc 300 ms pir percent 40 be 400 ms
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# service-policy input policy1
 

次に、発信トラフィックを平均認定速度500 Kbpsおよびピーク レート1 Mbpsに制限するように、2つのレートを使用するVLANレベル トラフィック ポリサーを設定する例を示します。平均認定速度(500 Kbps)に適合するとしてマーキングされたトラフィックは、そのまま送信されます。500 Kbpsを超過し、1 Mbpsを超過しないとしてマーキングされたトラフィックは、IP precedence 2がマーキングされて、送信されます。1 Mbpsを超過するとしてマーキングされたすべてのトラフィックは、廃棄されます。バースト パラメータは10000バイトに設定されています。

Switch(config)# class-map match-all vlan203
Switch(config-cmap)# match vlan 203
Switch(config-cmap)# match vlan inner 206
Switch(config-cmap)# exit
Switch(config)# policy-map vlan-policy
Switch(config-pmap)# class vlan203
Switch(config-pmap-c)# police cir 500000 bc 10000 pir 1000000 be 10000 conform-action transmit exceed-action set-prec-transmit 2 violate-action drop
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/2
Switch(config-if)# switchport trunk encapsulation dot1q
Switch(config-if)# switchport mode trunk
Switch(config-if)# service-policy output vlan-policy
 

次に、すべてのレベルが存在する階層型サービスポリシーを作成する例を示します。この設定は、クラスレベル ポリシー マップにVLANレベル ポリシー マップを、VLANレベル ポリシー マップに物理レベル ポリシー マップを対応付け、物理ポートに物理レベル ポリシー マップを付加します。

ポリシーマップ内のclass-defaultは、親ポリシーと一致するにもかかわらず、ポリシー マップ内の明示的な一致条件と一致しないすべてのトラフィックに適用されます。親ポリシーが設定されていない場合、親ポリシーは物理ポートを表します。物理レベル ポリシー マップでは、class-default以外のクラスを設定できません。

Switch(config)# class-map my-class
Switch(config-cmap)# match ip precedence 1
Switch(config-cmap)# exit
Switch(config)# class-map my-logical-class
Switch(config-cmap)# match vlan 5
Switch(config-cmap)# exit
Switch(config)# policy-map my-class-policy
Switch(config-pmap)# class my-class
Switch(config-pmap-c)# set precedence 2
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map my-logical-policy
Switch(config-pmap)# class my-logical-class
Switch(config-pmap-c)# service-policy my-class-policy
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map my-physical-policy
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# police cir 500000 bc 10000 pir 1000000 be 10000 conform-action transmit exceed-action set-prec-transmit 2 violate-action drop
Switch(config-pmap-c)# service-policy my-logical-policy
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config)# service-policy input my-physical-policy
 

次に、帯域幅の割合に基づいて、2つのレート(CIR)を使用するクラスレベル トラフィック ポリサーを設定する例を示します。5%のCIRが指定されています。スイッチは、CIRに適合するパケットのDSCP値を16に設定します。ポートの信頼状態は、自動的にCoSを信頼するように設定されます。

Switch(config)# class-map c1
Switch(config-cmap)# match 1p dscp 8 9 10 11
Switch(config-cmap)# exit
Switch(config)# policy-map policy1
Switch(config-pmap)# class class1
Switch(config-pmap-c)# police cir percent 5 conform action set-dscp-transmit 16
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# service-policy input policy1

階層型トラフィック ポリシーでのクラスベース パケット マーキングの設定

階層型トラフィック ポリシーでクラスベース パケットのマーキングを実行するには、ESポートに付加されたポリシー マップにset { cos new-cos | dscp new-dscp | precedence new-precedence | mpls experimental exp-number }ポリシーマップ クラス コンフィギュレーション コマンドを設定します。

次の手順を開始する前に、トラフィックを隔離するクラス マップを作成しておく必要があります。詳細については、「階層型クラス マップによるトラフィックの分類」を参照してください。

サービス ポリシーにクラスレベルのクラスベース パケット マーキングを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。次に、クラスレベルおよびVLANレベルのクラスベース パケット マーキングを設定する例を示します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

policy-map policy-map-name

ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。

デフォルトでは、ポリシー マップは定義されていません。

ステップ 3

class class-name

トラフィック ポリシーを作成または変更するクラスの名前を指定して、ポリシーマップ クラス コンフィギュレーション モードを開始します。

デフォルトでは、トラフィック クラスは定義されていません。

ステップ 4

set { cos new-cos | dscp new-dscp | set precedence new-precedence | mpls experimental exp-number }

パケットが条件と一致する場合にトラフィック クラスに設定する値を指定します。

cos new-cos を指定する場合は、 分類されたトラフィックに割り当てる新しいCoS値を入力します。指定できる範囲は0~7です。

dscp new-dscp を指定する場合は、分類されたトラフィックに割り当てる新しいDSCP値を入力します。指定できる範囲は0~63です。指定された値によって、パケット ヘッダーにToSバイトが設定されます。

precedence new-precedence を指定する場合は、分類されたトラフィックに割り当てる新しいIP precedence値を入力します。指定できる範囲は0~7です。指定された値によって、IPヘッダーにIP precedence値が設定されます。

mpls experimental exp-number を指定する場合は、分類されたトラフィックに割り当てる新しいMPLS EXP値を入力します。指定できる範囲は0~7です。指定された値によって、パケット ヘッダーにMPLS EXPの3ビット フィールドが設定されます。

ステップ 5

exit

ポリシーマップ コンフィギュレーション モードに戻ります。

ステップ 6

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 7

interface interface-id

ポリシー マップに付加するESポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 8

service-policy [ input | output ] policy-map-name

ポリシーマップ名を指定し、ESポートに適用します。

ステップ 9

end

イネーブルEXECモードに戻ります。

ステップ 10

show policy-map [ policy-map-name [ class class-map-name ]]

または

show policy-map interface interface-id

設定を確認します。

ステップ 11

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のポリシー マップを削除するには、 no policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用します。既存のクラスを削除するには、 no class class-name ポリシーマップ コンフィギュレーション コマンドを使用します。割り当てられた値を削除するには、 no set { cos
new-cos | dscp new-dscp | precedence new-precedence | mpls experimental exp-number } ポリシーマップ クラス コンフィギュレーション コマンドを使用します。ポリシー マップとインターフェイスの関連付けを解除するには、 no service-policy output policy-map-name インターフェイス コンフィギュレーション コマンドを使用します。

次に、 out_pmap という名前のクラスレベル ポリシー マップを作成する例を示します。このポリシーマップがESポートに付加されている場合は、MPLS EXPフィールドが2に設定されたパケットと一致し、このフィールドが3にリセットされます。

Switch(config)# class-map mpls_2
Switch(config-cmap)# match mpls experimental 2
Switch(config-cmap)# exit
Switch(config)# policy-map out-pmap
Switch(config-pmap)# class mpls_2
Switch(config-pmap-c)# set mpls experimental 3
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# service-policy output out-pmap
 

次に、 log-policy という名前のVLANレベル ポリシー マップを作成する例を示します。 VLAN 203が設定されたパケットと一致し、 cls-policy という名前のクラスレベル子ポリシーが対応付けられます。子ポリシーはMPLS EXP 2が設定されたパケットと一致し、この値を5にリセットします。

Switch(config)# class-map cls-class
Switch(config-cmap)# match mpls experimental 2
Switch(config-cmap)# exit
Switch(config)# class-map log-class
Switch(config-cmap)# match vlan 203
Switch(config-cmap)# exit
Switch(config)# policy-map cls-policy
Switch(config-pmap)# class cls-class
Switch(config-pmap-c)# set mpls experimental 5
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map log-policy
Switch(config-pmap)# class log-class
Switch(config-pmap-c)# service-policy cls-policy
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/2
Switch(config-if)# switchport trunk encapsulation isl
Switch(config-if)# switchport mode trunk
Switch(config-if)# service-policy input log-policy
 

次に、 p-set という名前のクラスレベル ポリシー マップを作成する例を示します。 このポリシー マップがESポートに付加されている場合は、CoSフィールドが4に設定されたパケットと一致し、このフィールドが3にリセットされます。 ポートの信頼状態は、自動的にCoSを信頼するように設定されます。

Switch(config)# class-map c2
Switch(config-cmap)# match cos inner 4
Switch(config-cmap)# exit
Switch(config)# policy-map p-set
Switch(config-pmap)# class c2
Switch(config-pmap-c)# set cos 3
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# service-policy output p-set

CBWFQおよびテール ドロップの設定

CBWFQは、クラス マップが定義されたクラスごとに、キューを1つ作成します。クラスの一致条件を満たすパケットは、送信されるまで、このクラス専用のキューに蓄積されます。この処理は、均等化キューイング プロセスによってキューが処理される場合に発生します。このクラスに定義した最大パケット スレッシュホールドに到達すると、このクラス キュー宛ての超過パケットは、テール ドロップまたはWREDメカニズムに従って廃棄されます。

テール ドロップを設定するには、ESポートに付加されたポリシー マップ内で queue-limit ポリシーマップ クラス コンフィギュレーション コマンドを使用します。このコマンドにより、テール ドロップの最大スレッシュホールドが設定されます。パケットは最大スレッシュホールドに達するまでキューイングされます。最大スレッシュホールドを超えると、すべてのパケットが廃棄されます。

次の手順を開始する前に、設定時の注意事項を確認し、トラフィックを隔離するクラス マップを作成しておく必要があります。詳細については、「階層型QoS設定時の注意事項」および「階層型クラス マップによるトラフィックの分類」を参照してください。WREDの設定方法については、「CBWFQおよびDSCPベースWREDの設定」を参照してください。

階層型サービス ポリシーにクラスレベルのCBWFQおよびテール ドロップを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。次に、クラスレベルおよびVLANレベルのCBWFQおよびテール ドロップを設定する例を示します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

policy-map policy-map-name

ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。

デフォルトでは、ポリシー マップは定義されていません。

ステップ 3

class class-name

トラフィック ポリシーを作成または変更するクラスの名前を指定して、ポリシーマップ クラス コンフィギュレーション モードを開始します。

デフォルトでは、トラフィック クラスは定義されていません。

ステップ 4

bandwidth { bandwidth-kbps | percent percent }

スイッチにトラフィック輻輳が発生している場合に、ポリシー マップに属するクラスに設定される最小帯域幅を指定します。スイッチに輻輳が発生していない場合は、 bandwidth コマンドで指定された帯域幅よりも多くの帯域幅がクラスに割り当てられます。

CBWFQはクラスに割り当てられた帯域幅から、クラスに属するパケットのウェイトを取得します。次に、CBWFQはこのウェイトを使用して、このクラスのキューを適正に処理します。

デフォルトでは、帯域幅は指定されていません。

帯域幅はKbps単位または割合で指定できます。

bandwidth-kbps には 、クラスに割り当てる帯域幅をKbps単位で指定します。指定できる範囲は200~2000000です。帯域幅は100 Kbpsの増分値で割り当てます。この増分値に従わない値を割り当てると、100 Kbpsの増分値に最も近い値に帯域幅が切り捨てられます。

percent percent には 、クラスに割り当てることができる帯域幅の割合を指定します。指定できる範囲は1~100です。1つのポリシー マップ内のクラス帯域幅の割合の合計が99%を超えることはできません。割合は、親クラス(クラスが親である場合は物理レベル)で使用可能な帯域幅に基づいて計算されます。

すべてのクラス帯域幅をKbpsまたはパーセント単位で指定します。これらを混在させることはできません。帯域幅は、レイヤ2オーバーヘッドを収容できる大きさに設定する必要があります。

ステップ 5

queue-limit limit

テール ドロップの最大スレッシュホールドを設定します。

limit に指定できる範囲は1~32768パケットです。デフォルト値は128です。

ステップ 6

exit

ポリシーマップ コンフィギュレーション モードに戻ります。

ステップ 7

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 8

interface interface-id

ポリシー マップに付加するESポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 9

service-policy [ input | output ] policy-map-name

ポリシーマップ名を指定し、ESポートに適用します。

ステップ 10

end

イネーブルEXECモードに戻ります。

ステップ 11

show policy-map [ policy-map-name [ class class-map-name ]]

または

show policy-map interface interface-id

設定を確認します。

ステップ 12

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のポリシー マップを削除するには、 no policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用します。既存のクラスを削除するには、 no class class-name ポリシーマップ コンフィギュレーション コマンドを使用します。デフォルト帯域幅に戻すには、 no bandwidth ポリシーマップ クラス コンフィギュレーション コマンドを使用します。デフォルト最大スレッシュホールドに戻すには、 no queue-limit ポリシーマップ クラス コンフィギュレーション コマンドを使用します。

次に、3つのクラス( prec1 prec2 、および prec3 )に対応する policy11 という名前のクラスレベル ポリシー マップを作成する例を示します。このポリシーでは、キューに割り当てられた使用可能帯域幅の30%が最初のクラスのキューに、20%が2番めのクラスのキューに、10%が3番めのクラスのキューに割り当てられます。各クラス キューでテール ドロップがイネーブルです。最大スレッシュホールド(2000パケット)に達するまでパケットはキューイングされます。最大スレッシュホールドを超えると、すべてのパケットが廃棄されます。

Switch(config)# class-map prec1
Switch(config-cmap)# match ip precedence 1
Switch(config-cmap)# exit
Switch(config)# class-map prec2
Switch(config-cmap)# match ip precedence 2
Switch(config-cmap)# exit
Switch(config)# class-map prec3
Switch(config-cmap)# match ip precedence 3
Switch(config-cmap)# exit
Switch(config)# policy-map policy11
Switch(config-pmap)# class prec1
Switch(config-pmap-c)# bandwidth percent 30
Switch(config-pmap-c)# queue-limit 2000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class prec2
Switch(config-pmap-c)# bandwidth percent 20
Switch(config-pmap-c)# queue-limit 2000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class prec3
Switch(config-pmap-c)# bandwidth percent 10
Switch(config-pmap-c)# queue-limit 2000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# service-policy input policy11
 

次に2つのクラス( vlan203 および vlan202 )に対応する vlan-policy という名前のVLANレベル ポリシー マップを作成する例を示します。これらのクラスに対するポリシーでは、最小帯域幅は2000 Kbpsに設定されます。

Switch(config)# class-map match-all vlan203
Switch(config-cmap)# match vlan 203
Switch(config-cmap)# match vlan inner 206
Switch(config-cmap)# exit
Switch(config)# class-map match-all vlan202
Switch(config-cmap)# match vlan 202
Switch(config-cmap)# match vlan inner 204
Switch(config-cmap)# exit
Switch(config)# policy-map vlan-policy
Switch(config-pmap)# class vlan203
Switch(config-pmap-c)# bandwidth 2000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class vlan202
Switch(config-pmap-c)# bandwidth 2000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/2
Switch(config-if)# switchport trunk encapsulation dot1q
Switch(config-if)# switchport mode trunk
Switch(config-if)# service-policy output vlan-policy
 

次に、 log-policy という名前のVLANレベル ポリシー マップを作成する例を示します。 VLAN 203が設定されたパケットと一致し、 cls-policy という名前のクラスレベル子ポリシーが対応付けられます。子ポリシーはCoS値が2のパケットと一致します。このクラスには、使用可能帯域幅として50%が、テール ドロップの最大スレッシュホールドとして2000パケットが設定されます。パケットは最大スレッシュホールドに達するまでキューイングされます。最大スレッシュホールドを超えると、すべてのパケットが廃棄されます。クラス ポリシー内で bandwidth コマンドを設定する場合は、親VLANレベル ポリシー内でも bandwidth または shape ポリシーマップ クラス コンフィギュレーション コマンドを設定する必要があります。

Switch(config)# class-map cls-class
Switch(config-cmap)# match cos 2
Switch(config-cmap)# exit
Switch(config)# class-map log-class
Switch(config-cmalp)# match vlan 203
Switch(config-cmap)# exit
Switch(config)# policy-map cls-policy
Switch(config-pmap)# class cls-class
Switch(config-pmap-c)# bandwidth percent 50
Switch(config-pmap-c)# queue-limit 2000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map log-policy
Switch(config-pmap)# class log-class
Switch(config-pmap-c)# bandwidth percent 50
Switch(config-pmap-c)# service-policy cls-policy
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/2
Switch(config-if)# switchport trunk encapsulation isl
Switch(config-if)# switchport mode trunk
Switch(config-if)# service-policy output log-policy

CBWFQおよびDSCPベースWREDの設定

CBWFQは、クラス マップが定義されたクラスごとに、キューを1つ作成します。クラスの一致条件を満たすパケットは、送信されるまで、このクラス専用のキューに蓄積されます。この処理は、均等化キューイング プロセスによってキューが処理される場合に発生します。このクラスに定義した最大パケット スレッシュホールドに到達すると、このクラス キュー宛ての超過パケットは、テール ドロップまたはWREDメカニズムに従って廃棄されます。

WREDは、ポートに輻輳の兆候が見え始めると、パケットを選択的に廃棄してテール ドロップの機会を減らします。キューが一杯になるまで待機しないで、早目に一部のパケットを廃棄することにより、一度に多数のパケットが廃棄されなくなります。

WREDがイネーブルの場合にパケットが着信すると、次のイベントが発生します。

直前の平均キュー サイズおよび現在のキュー サイズに基づいて、平均キュー サイズが計算されます。平均キューサイズの計算には、 random-detect exponential-weight-constant ポリシーマップ クラス コンフィギュレーション コマンド内の指数ウェイト定数設定が影響します。

平均キュー サイズが最小キュー スレッシュホールドよりも小さい場合、着信パケットはキューイングされます。最小キュー スレッシュホールドを設定するには、 random-detect dscp ポリシーマップ クラス コンフィギュレーション コマンド内で min-threshold オプションを使用します。

平均キュー サイズが最小キュー スレッシュホールドと最大キュー スレッシュホールドの間の値をとる場合、パケットはパケット廃棄確率に応じて廃棄またはキューイングされます。パケットの廃棄確率は、最小スレッシュホールド、最大スレッシュホールド、およびマーク確率値に基づいて決まります。最大キュー スレッシュホールドを設定するには、 max-threshold オプションを使用します。マーク確率値を設定するには、 random-detect dscp ポリシーマップ クラス コンフィギュレーション コマンドで mark-prob-denominator オプションを使用します。

平均キュー サイズが最大キュー スレッシュホールドよりも大きい場合、パケットは自動的に廃棄されます。

DSCPベースWREDをイネーブルにするには、ESポートに付加されたポリシー マップ内で
random-detect dscp-based ポリシーマップ クラス コンフィギュレーション コマンドを使用します。このコマンドを使用すると、異なるDSCP値が設定されたパケット間で優先廃棄処理を実行できます。キューに輻輳が発生すると、WREDアルゴリズムによってキュー宛てのパケットが廃棄またはマーキングされます。パケットはキューが一杯になる前に、適正に廃棄されます。DSCPベースWREDでなくIP precedenceベースWREDをイネーブルにする場合は、「CBWFQおよびIP precedenceベースWREDの設定」を参照してください。

次の手順を開始する前に、設定時の注意事項を確認し、トラフィックを隔離するクラス マップを作成しておく必要があります。詳細については、「階層型QoS設定時の注意事項」および「階層型クラス マップによるトラフィックの分類」を参照してください。テール ドロップの設定方法については、「CBWFQおよびテール ドロップの設定」を参照してください。

階層型サービス ポリシーにクラスレベルのCBWFQおよびDSCPベースのWREDを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。次に、クラスレベルおよびVLANレベルのCBWFQおよびDSCPベースWREDを設定する例を示します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

policy-map policy-map-name

ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。

デフォルトでは、ポリシー マップは定義されていません。

ステップ 3

class class-name

トラフィック ポリシーを作成または変更するクラスの名前を指定して、ポリシーマップ クラス コンフィギュレーション モードを開始します。

デフォルトでは、トラフィック クラスは定義されていません。

ステップ 4

bandwidth { bandwidth-kbps | percent percent }

スイッチにトラフィック輻輳が発生している場合に、ポリシー マップに属するクラスに設定される最小帯域幅を指定します。スイッチに輻輳が発生していない場合は、 bandwidth コマンドで指定された帯域幅よりも多くの帯域幅がクラスに割り当てられます。

CBWFQはクラスに割り当てられた帯域幅から、クラスに属するパケットのウェイトを取得します。次に、CBWFQはこのウェイトを使用して、このクラスのキューを適正に処理します。

デフォルトでは、帯域幅は指定されていません。

帯域幅はKbps単位または割合で指定できます。

bandwidth-kbps には 、クラスに割り当てる帯域幅をKbps単位で指定します。指定できる範囲は200~2000000です。帯域幅は100 Kbpsの増分値で割り当てます。この増分値に従わない値を割り当てると、100 Kbpsの増分値に最も近い値に帯域幅が切り捨てられます。

percent percent には 、クラスに割り当てることができる帯域幅の割合を指定します。指定できる範囲は1~100です。1つのポリシー マップ内のクラス帯域幅の割合の合計が99%を超えることはできません。割合は、親クラス(クラスが親である場合は物理レベル)で使用可能な帯域幅に基づいて計算されます。

すべてのクラス帯域幅をKbpsまたはパーセント単位で指定します。これらを混在させることはできません。帯域幅は、レイヤ2オーバーヘッドを収容できる大きさに設定する必要があります。

ステップ 5

random-detect dscp-based

廃棄ポリシーとしてDSCPベースWREDをイネーブルにします。デフォルトでは、WREDはディセーブルです。

ステップ 6

random-detect dscp dscp min-threshold max-threshold mark-prob-denominator

特定のDSCP値に対応するパケット スレッシュホールドおよびマーク確率値を指定します。

dscp には 、DSCP値を入力します。指定できる範囲は0~63です。通常使用される値にはニーモニック名を使用することもできます。

min-threshold には 、パケットの最小スレッシュホールドを入力します。指定できる範囲は1~32768です。平均キュー サイズが最小スレッシュホールドに到達すると、指定されたDSCP値を持つパケットの一部がランダムに廃棄されます。

max-threshold には 、パケットの最大スレッシュホールドを入力します。指定できる範囲は1~32768です。デフォルトは128です。平均キュー サイズが最大スレッシュホールドを超えると、指定されたDSCP値を持つすべてのパケットが廃棄されます。

mark-prob-denominator には 、平均キュー サイズが最大スレッシュホールドに達した場合に廃棄されるパケットの割合を示す分母を入力します。指定できる範囲は1~65535です。デフォルトは10です。この値が512の場合、キューが最大スレッシュホールドに達すると、512個ごとに1つのパケットが廃棄されます。

指定されたDSCP値のデフォルト設定リストについては、このリリースに対応するコマンド リファレンスを参照してください。

ステップ 7

random-detect exponential-weighting-constant weight

(任意) WREDの平均キューサイズ計算に使用する指数ウェイト係数を設定します。指定できる範囲は1~16です。デフォルトは9です。

ステップ 8

exit

ポリシーマップ コンフィギュレーション モードに戻ります。

ステップ 9

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 10

interface interface-id

ポリシー マップに付加するESポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 11

service-policy [ input | output ] policy-map-name

ポリシーマップ名を指定し、ESポートに適用します。

ステップ 12

end

イネーブルEXECモードに戻ります。

ステップ 13

show policy-map [ policy-map-name [ class class-map-name ]]

または

show policy-map interface interface-id

設定を確認します。

ステップ 14

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のポリシー マップを削除するには、 no policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用します。既存のクラスを削除するには、 no class class-name ポリシーマップ コンフィギュレーション コマンドを使用します。デフォルト帯域幅に戻すには、 no bandwidth
ポリシーマップ クラス コンフィギュレーション コマンドを使用します。DSCPベースWREDをディセーブルにするには、
no random-detect dscp-based ポリシーマップ クラス コンフィギュレーション コマンドを使用します。WREDのデフォルト設定に戻すには、 no random-detect dscp dscp ポリシーマップ クラス コンフィギュレーション コマンドを使用します。

次に、 policy10 という名前のクラスレベル ポリシーを設定する例を示します。クラス c1 には、次の特性があります。輻輳時に、このクラスには2000 Kbps以上の帯域幅で配信されると予測されます。平均キュー サイズの計算には、ウェイト係数10が使用されます。輻輳を回避するには、テール ドロップでなくDSCPベースWREDパケット廃棄を使用します。DSCP値が8の場合、最小スレッシュホールドは24、最大スレッシュホールドは40、マーク確率値は512です。

Switch(config)# class-map c1
Switch(config-cmap)# match ip dscp 8
Switch(config-cmap)# exit
Switch(config)# policy-map policy10
Switch(config-pmap)# class c1
Switch(config-pmap-c)# bandwidth 2000
Switch(config-pmap-c)# random-detect dscp-based
Switch(config-pmap-c)# random-detect exponential-weighting-constant 10
Switch(config-pmap-c)# random-detect dscp 8 24 40 512
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# switchport trunk encapsulation isl
Switch(config-if)# switchport mode trunk
Switch(config-if)# service-policy input policy10
 

次に、 parent という名前のVLANレベル ポリシーを設定する例を示します。VLAN 101が設定されたパケットと一致し、 policy1 という名前のクラスレベル子ポリシーが対応付けられます。子ポリシーは2つのクラスの2つのDSCP値を比較します。使用可能帯域幅の30%がgoldクラスに、20%がsilverクラスに、20%がvlan101に割り当てられます。廃棄ポリシーとしてDSCPベースWREDが使用されます。goldクラスの値がaf11である場合、最小スレッシュホールドが30に達すると、WREDはこのDSCP値が設定されたパケットをランダムに廃棄します。平均キュー サイズが最大スレッシュホールドである40を超えると、WREDはDSCP値がaf11に設定されたすべてのパケットを廃棄します。マーク確率値は10に設定されているため、平均キューが最大スレッシュホールドに達すると、10個ごとに1つのパケットが廃棄されます。goldクラスのaf12、およびsilverクラスのaf21とaf22についても、同様に設定されます。クラス ポリシー内で bandwidth コマンドを設定する場合は、親VLANレベル ポリシー内でも bandwidth または shape ポリシーマップ クラス コンフィギュレーション コマンドを設定する必要があります。

Switch(config)# class-map gold
Switch(config-cmap)# match ip dscp af11 af12
Switch(config-cmap)# exit
Switch(config)# class-map silver
Switch(config-cmap)# match ip dscp af21 af22
Switch(config-cmap)# exit
Switch(config)# class-map vlan101
Switch(config-cmap)# match vlan 101
Switch(config-cmap)# exit
Switch(config)# policy-map policy1
Switch(config-pmap)# class gold
Switch(config-pmap-c)# bandwidth percent 30
Switch(config-pmap-c)# random-detect dscp-based
Switch(config-pmap-c)# random-detect dscp af11 30 40 10
Switch(config-pmap-c)# random-detect dscp af12 25 40 10
Switch(config-pmap-c)# exit
Switch(config-pmap)# class silver
Switch(config-pmap-c)# bandwidth percent 20
Switch(config-pmap-c)# random-detect dscp-based
Switch(config-pmap-c)# random-detect dscp af21 28 35 10
Switch(config-pmap-c)# random-detect dscp af22 26 35 10
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map parent
Switch(config-pmap)# class vlan101
Switch(config-pmap-c)# bandwidth percent 30
Switch(config-pmap-c)# service-policy policy1
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# service-policy output parent

CBWFQおよびIP precedenceベースWREDの設定

CBWFQは、クラス マップが定義されたクラスごとに、キューを1つ作成します。クラスの一致条件を満たすパケットは、送信されるまで、このクラス専用のキューに蓄積されます。この処理は、均等化キューイング プロセスによってキューが処理される場合に発生します。このクラスに定義した最大パケット スレッシュホールドに到達すると、このクラス キュー宛ての超過パケットは、テール ドロップまたはWREDメカニズムに従って廃棄されます。

WREDは、ポートに輻輳の兆候が見え始めると、パケットを選択的に廃棄してテール ドロップの機会を減らします。キューが一杯になるまで待機しないで、早目に一部のパケットを廃棄することにより、一度に多数のパケットが廃棄されなくなります。

IP precedenceベースWREDをイネーブルにするには、ESポートに付加されたポリシー マップ内で random-detect precedence-based ポリシーマップ クラス コンフィギュレーション コマンドを使用します。このコマンドを使用すると、異なるIP precedence値が設定されたパケット間で優先廃棄処理を実行できます。キューに輻輳が発生すると、WREDアルゴリズムによってキュー宛てのパケットが廃棄またはマーキングされます。パケットはキューが一杯になる前に、適正に廃棄されます。IP precedence値が大きいパケットは、IP precedence値が小さいパケットよりも優先します。IP precedenceベースWREDでなくDSCPベースWREDをイネーブルにする場合は、「CBWFQおよびDSCPベースWREDの設定」を参照してください。

次の手順を開始する前に、設定時の注意事項を確認し、トラフィックを隔離するクラス マップを作成しておく必要があります。詳細については、「階層型QoS設定時の注意事項」および「階層型クラス マップによるトラフィックの分類」を参照してください。テール ドロップの設定方法については、「CBWFQおよびテール ドロップの設定」を参照してください。

階層型サービス ポリシーにクラスレベルのCBWFQおよびIP precedenceベースのWREDを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。次に、クラスレベルおよびVLANレベルのCBWFQおよびIP precedenceベースWREDを設定する例を示します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

policy-map policy-map-name

ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。

デフォルトでは、ポリシー マップは定義されていません。

ステップ 3

class class-name

トラフィック ポリシーを作成または変更するクラスの名前を指定して、ポリシーマップ クラス コンフィギュレーション モードを開始します。

デフォルトでは、トラフィック クラスは定義されていません。

ステップ 4

bandwidth { bandwidth-kbps | percent percent }

スイッチにトラフィック輻輳が発生している場合に、ポリシー マップに属するクラスに設定される最小帯域幅を指定します。スイッチに輻輳が発生していない場合は、 bandwidth コマンドで指定された帯域幅よりも多くの帯域幅がクラスに割り当てられます。

CBWFQはクラスに割り当てられた帯域幅から、クラスに属するパケットのウェイトを取得します。次に、CBWFQはこのウェイトを使用して、このクラスのキューを適正に処理します。

デフォルトでは、帯域幅は指定されていません。

帯域幅はKbps単位または割合で指定できます。

bandwidth-kbps には 、クラスに割り当てる帯域幅をKbps単位で指定します。指定できる範囲は200~2000000です。帯域幅は100 Kbpsの増分値で割り当てます。この増分値に従わない値を割り当てると、100 Kbpsの増分値に最も近い値に帯域幅が切り捨てられます。

percent percent には 、クラスに割り当てることができる帯域幅の割合を指定します。指定できる範囲は1~100です。1つのポリシー マップ内のクラス帯域幅の割合の合計が99%を超えることはできません。割合は、親クラス(クラスが親である場合は物理レベル)で使用可能な帯域幅に基づいて計算されます。

すべてのクラス帯域幅をKbpsまたはパーセント単位で指定します。これらを混在させることはできません。帯域幅は、レイヤ2オーバーヘッドを収容できる大きさに設定する必要があります。

ステップ 5

random-detect precedence-based

廃棄ポリシーとしてIP precedenceベースWREDをイネーブルにします。デフォルトでは、WREDはディセーブルです。

ステップ 6

random-detect precedence ip-precedence min-threshold max-threshold mark-prob-denominator

特定のIP precedence値に対応するパケット スレッシュホールドおよびマーク確率値を指定します。

ip-precedence には IP precedence値を指定します。指定できる範囲は0~7です。

min-threshold には 、パケットの最小スレッシュホールドを指定します。指定できる範囲は1~32768です。平均キュー サイズが最小スレッシュホールドに到達すると、指定されたIP precedence値を持つパケットの一部がランダムに廃棄されます。

max-threshold には 、パケットの最大スレッシュホールドを指定します。指定できる範囲は1~32768です。デフォルトは128です。平均キュー サイズが最大スレッシュホールドを超えると、指定されたIP precedence値を持つすべてのパケットが廃棄されます。

mark-prob-denominator には 、平均キュー サイズが最大スレッシュホールドに達した場合に廃棄されるパケットの割合に対応する分母を指定します。指定できる範囲は1~65535です。デフォルトは10です。この値が512の場合、キューが最大スレッシュホールドに達すると、512個ごとに1つのパケットが廃棄されます。

指定されたIP precedence値のデフォルト設定リストについては、このリリースに対応するコマンド リファレンスを参照してください。

ステップ 7

random-detect exponential-weighting-constant weight

(任意) WREDの平均キューサイズ計算に使用する指数ウェイト係数を設定します。指定できる範囲は1~16です。デフォルトは9です。

ステップ 8

exit

ポリシーマップ コンフィギュレーション モードに戻ります。

ステップ 9

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 10

interface interface-id

ポリシー マップに付加するESポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 11

service-policy [ input | output ] policy-map-name

ポリシーマップ名を指定し、ESポートに適用します。

ステップ 12

end

イネーブルEXECモードに戻ります。

ステップ 13

show policy-map [ policy-map-name [ class class-map-name ]]

または

show policy-map interface interface-id

設定を確認します。

ステップ 14

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のポリシー マップを削除するには、 no policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用します。既存のクラスを削除するには、 no class class-name ポリシーマップ コンフィギュレーション コマンドを使用します。デフォルト帯域幅に戻すには、 no bandwidth ポリシーマップ クラス コンフィギュレーション コマンドを使用します。IP precedenceベースWREDをディセーブルにするには、 no random-detect precedence-based ポリシーマップ クラス コンフィギュレーション コマンドを使用します。WREDのデフォルト設定に戻すには、 no random-detect
precedence
i p-precedence ポリシーマップ クラス コンフィギュレーション コマンドを使用します。

次に、 policy10 という名前のクラスレベル ポリシーを設定する例を示します。クラス c1 には、次の特性があります。輻輳時に、このクラスには2000 Kbps以上の帯域幅で配信されると予測されます。平均キュー サイズの計算には、ウェイト係数10が使用されます。輻輳を回避するには、テール ドロップでなくWREDパケット廃棄を使用します。IP precedenceはレベル0~2にリセットされます。IP precedence値0の最小スレッシュホールドは32、最大スレッシュホールドは256、マーク確率値は100です。IP precedence値1および2のスレッシュホールドおよびマーク確率値も同様です。

Switch(config)# class-map c1
Switch(config-cmap)# match ip precedence 0 1 2
Switch(config-cmap)# exit
Switch(config)# policy-map policy10
Switch(config-pmap)# class c1
Switch(config-pmap-c)# bandwidth 2000
Switch(config-pmap-c)# random-detect precedence-based
Switch(config-pmap-c)# random-detect exponential-weighting-constant 10
Switch(config-pmap-c)# random-detect precedence 0 32 256 100
Switch(config-pmap-c)# random-detect precedence 1 64 256 100
Switch(config-pmap-c)# random-detect precedence 2 96 256 100
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# switchport trunk encapsulation isl
Switch(config-if)# switchport mode trunk
Switch(config-if)# service-policy input policy10
 

次に、 parent という名前のVLANレベル ポリシーを設定する例を示します。VLAN 101が設定されたパケットと一致し、 policy1 という名前のクラスレベル子ポリシーが対応付けられます。子ポリシーは2つのクラスの2つのIP precedence値を比較します。使用可能帯域幅の30%がgoldクラスに、20%がsilverクラスに、20%がvlan101に割り当てられます。廃棄ポリシーとしてIP precedenceベースWREDが使用されます。goldクラスのIP precedence値が0である場合、最小スレッシュホールドが30に達すると、WREDはこのIP precedence値が設定されたパケットをランダムに廃棄します。平均キュー サイズが最大スレッシュホールドである40を超えると、WREDはIP precedence値が0に設定されたすべてのパケットを廃棄します。マーク確率値は10に設定されているため、平均キューが最大スレッシュホールドに達すると、10個ごとに1つのパケットが廃棄されます。silverクラスのIP precedence 3の設定も同様です。クラス ポリシー内で bandwidth コマンドを設定する場合は、親VLANレベル ポリシー内でも bandwidth または shape ポリシーマップ クラス コンフィギュレーション コマンドを設定する必要があります。

Switch(config)# class-map gold
Switch(config-cmap)# match ip precedence 0
Switch(config-cmap)# exit
Switch(config)# class-map silver
Switch(config-cmap)# match ip precedence 3
Switch(config-cmap)# exit
Switch(config)# class-map vlan101
Switch(config-cmap)# match vlan 101
Switch(config-cmap)# exit
Switch(config)# policy-map policy1
Switch(config-pmap)# class gold
Switch(config-pmap-c)# bandwidth percent 30
Switch(config-pmap-c)# random-detect precedence-based
Switch(config-pmap-c)# random-detect precedence 0 30 40 10
Switch(config-pmap-c)# exit
Switch(config-pmap)# class silver
Switch(config-pmap-c)# bandwidth percent 20
Switch(config-pmap-c)# random-detect precedence-based
Switch(config-pmap-c)# random-detect precedence 3 28 35 10
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map parent
Switch(config-pmap)# class vlan101
Switch(config-pmap-c)# bandwidth percent 30
Switch(config-pmap-c)# service-policy policy1
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# service-policy output parent

LLQのイネーブル化

LLQはトラフィック クラスの完全優先キューイングを提供します。LLQを使用すると、遅延の影響を受けやすい音声などのデータを送信してから、他のキューのパケットを送信することができます。プライオリティ キューは、空になるまで先に処理されます。プライオリティ キューに送信できるのは、クラスレベル ポリシーごとに1つのトラフィック ストリームのみです。プライオリティ キューは同じ階層内のすべてのトラフィック ストリームを制限するため、この機能を設定する場合は注意が必要です。トラフィック クラスのプライオリティ キューをイネーブルにするには、ESポートに付加されたポリシー マップ内で priority ポリシーマップ クラス コンフィギュレーション コマンドを使用します。


) スイッチに輻輳が発生したときに、ESポートでプライオリティ トラフィックが紛失しないようにするには、完全優先キューイングと出力プライオリティ キューイングの両方を使用します。特定のトラフィック クラスを出力プライオリティ キューにマッピングする場合、これらのクラスは自動的には完全優先キューに格納されないことに注意してください。priorityポリシーマップ クラス コンフィギュレーション コマンドとpriority-queue outインターフェイス コンフィギュレーション コマンドの両方を入力する必要があります。詳細については、「出力プライオリティ キューの設定」を参照してください。


次の手順を開始する前に、設定時の注意事項を確認し、トラフィックを隔離するクラス マップを作成しておく必要があります。詳細については、「階層型QoS設定時の注意事項」および「階層型クラス マップによるトラフィックの分類」を参照してください。

階層型サービス ポリシー内でクラスレベルのプライオリティ キューイングをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。次に、クラスレベルおよびVLANレベルのプライオリティ キューイングをイネーブルにする例を示します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

policy-map policy-map-name

ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。

デフォルトでは、ポリシー マップは定義されていません。

ステップ 3

class class-name

トラフィック ポリシーを作成または変更するクラスの名前を指定して、ポリシーマップ クラス コンフィギュレーション モードを開始します。

デフォルトでは、トラフィック クラスは定義されていません。

ステップ 4

priority

完全優先キューをイネーブルにし、トラフィックのクラスにプライオリティを設定します。

デフォルトでは、完全優先キューイングはディセーブルです。

ステップ 5

exit

ポリシーマップ コンフィギュレーション モードに戻ります。

ステップ 6

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 7

interface interface-id

ポリシー マップに付加するESポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 8

service-policy [ input | output ] policy-map-name

ポリシーマップ名を指定し、ESポートに適用します。

ステップ 9

end

イネーブルEXECモードに戻ります。

ステップ 10

show policy-map [ policy-map-name [ class class-map-name ]]

または

show policy-map interface interface-id

設定を確認します。

ステップ 11

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のポリシー マップを削除するには、 no policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用します。既存のクラスを削除するには、 no class class-name ポリシーマップ コンフィギュレーション コマンドを使用します。プライオリティ キューをディセーブルにするには、 no priority ポリシーマップ クラス コンフィギュレーション コマンドを使用します。

次に、2つのクラスを持つ、 policy1 という名前のクラスレベル ポリシーを設定する例を示します。クラス1の使用可能帯域幅は10%です。クラス2はプライオリティ キューとして設定されていて、空になるまで先に処理されます。

Switch(config)# class-map class1
Switch(config-cmap)# match mpls experimental 2 3 4
Switch(config-cmap)# exit
Switch(config)# class-map class2
Switch(config-cmap)# match mpls experimental 7
Switch(config-cmap)# exit
Switch(config)# policy-map policy1
Switch(config-pmap)# class class1
Switch(config-pmap-c)# bandwidth percent 10
Switch(config-pmap-c)# exit
Switch(config-pmap)# class class2
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/2
Switch(config-if)# service-policy input policy1
 

次に、 parent という名前のVLANレベル ポリシーを設定する例を示します。VLAN 101が設定されたパケットと一致し、 policy1 という名前のクラスレベル子ポリシーが対応付けられます。 goldクラスはプライオリティ キューとして設定されています。一方、silverクラスおよびvlan101クラスには、それぞれ20%の使用可能帯域幅が割り当てられています。廃棄ポリシーとしてDSCPベースWREDが使用されます。silverクラスの値がaf21である場合、最小スレッシュホールドが28に達すると、WREDはこのDSCP値が設定されたパケットをランダムに廃棄します。平均キュー サイズが最大スレッシュホールドである35を超えると、WREDはDSCP値がaf21に設定されたすべてのパケットを廃棄します。マーク確率値は10に設定されているため、平均キューが最大スレッシュホールドに達すると、10個ごとに1つのパケットが廃棄されます。silverクラスのaf22の設定も同様です。

Switch(config)# class-map gold
Switch(config-cmap)# match ip dscp af11 af12
Switch(config-cmap)# exit
Switch(config)# class-map silver
Switch(config-cmap)# match ip dscp af21 af22
Switch(config-cmap)# exit
Switch(config)# class-map vlan101
Switch(config-cmap)# match vlan 101
Switch(config-cmap)# exit
Switch(config)# policy-map policy1
Switch(config-pmap)# class gold
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# exit
Switch(config-pmap)# class silver
Switch(config-pmap-c)# bandwidth percent 20
Switch(config-pmap-c)# random-detect dscp-based
Switch(config-pmap-c)# random-detect dscp af21 28 35 10
Switch(config-pmap-c)# random-detect dscp af22 26 35 10
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map parent
Switch(config-pmap)# class vlan101
Switch(config-pmap-c)# bandwidth percent 20
Switch(config-pmap-c)# service-policy policy1
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# service-policy output parent

シェーピングの設定

シェーピングは、キュー内の不適合パケットを遅らせて、指定されたプロファイルに適合させるプロセスを提供します。シェーピングはポリシングと異なります。ポリシングでは、設定されたスレッシュホールドを超過するパケットは廃棄されますが、シェーピングではトラフィックがスレッシュホールドを超過しないように、パケットはバッファされます。シェーピングでは、ポリシングよりもトラフィック処理を円滑に実行できます。ポリシー マップ内のトラフィック クラスに関する平均レート トラフィック シェーピングをクラスレベル、VLANレベル、および物理レベルで設定するには、 shape ポリシーマップ クラス コンフィギュレーション コマンドを使用します。階層の物理レベルでシェーピングできるのは、ESポートに付加されたポリシー内のclass-defaultクラスのみです。

次の手順を開始する前に、設定時の注意事項を確認し、トラフィックを隔離するクラス マップを作成しておく必要があります。詳細については、「階層型QoS設定時の注意事項」および「階層型クラス マップによるトラフィックの分類」を参照してください。

階層型サービス ポリシー内でクラスレベルのシェーピングを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。次に、クラスレベル、VLANレベル、および物理レベルのシェーピングを設定する例を示します。

 

コマンド
説明

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

policy-map policy-map-name

ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。

デフォルトでは、ポリシー マップは定義されていません。

ステップ 3

class class-name

トラフィック ポリシーを作成または変更するクラスの名前を指定して、ポリシーマップ クラス コンフィギュレーション モードを開始します。

デフォルトでは、トラフィック クラスは定義されていません。

ステップ 4

shape average cir-bps

平均レート トラフィック シェーピングをイネーブルにします。トラフィックをシェーピングするビット レートであるCIRをビット/秒単位で指定します。このレートは、ご使用のサービス プロバイダーと契約したアクセス ビット レート、または維持するサービス レベルです。指定できる範囲は64000~2000000000 bpsです。

シェーピング レートは100 Kbpsの増分値で割り当てます。この増分値に従わない値を割り当てると、100 Kbpsの増分値に最も近い値に帯域幅が切り捨てられます。

デフォルトでは、平均レート トラフィック シェーピングはディセーブルです。

ステップ 5

exit

ポリシーマップ コンフィギュレーション モードに戻ります。

ステップ 6

exit

グローバル コンフィギュレーション モードに戻ります。

ステップ 7

interface interface-id

ポリシー マップに付加するESポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 8

service-policy [ input | output ] policy-map-name

ポリシーマップ名を指定し、ESポートに適用します。

ステップ 9

end

イネーブルEXECモードに戻ります。

ステップ 10

show policy-map [ policy-map-name [ class class-map-name ]]

または

show policy-map interface interface-id

設定を確認します。

ステップ 11

copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

既存のポリシー マップを削除するには、 no policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用します。既存のクラスを削除するには、 no class class-name ポリシーマップ コンフィギュレーション コマンドを使用します。平均レート トラフィック シェーピングをディセーブルにするには、 no shape average ポリシーマップ クラス コンフィギュレーション コマンドを使用します。

次に、クラスレベルの平均レート シェーピングを設定する例を示します。トラフィック クラス
class1
のデータ送信レートは256 Kbpsに制限されます。

Switch(config)# class-map class1
Switch(config-cmap)# match cos 0 1 2 3
Switch(config-cmap)# exit
Switch(config)# policy-map policy1
Switch(config-pmap)# class class1
Switch(config-pmap-c)# shape average 256000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# service-policy input policy1
 

次に、VLANレベルの平均レート シェーピングを設定する例を示します。トラフィック クラス vlan101 および vlan102 のデータ送信レートは、それぞれ400 Mbps に制限されます。

Switch(config)# class-map match-all vlan101
Switch(config-cmap)# match vlan 101
Switch(config-cmap)# exit
Switch(config)# class-map match-all vlan102
Switch(config-cmap)# match vlan 102
Switch(config-cmap)# exit
Switch(config)# policy-map vlan-policy
Switch(config-pmap)# class vlan101
Switch(config-pmap-c)# shape average 400000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class vlan102
Switch(config-pmap-c)# shape average 400000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1/1
Switch(config-if)# switchport trunk encapsulation isl
Switch(config-if)# switchport mode trunk
Switch(config-if)# service-policy output vlan-policy
 

次に、デフォルト クラスをシェーピングする例を示します。この設定では、クラスレベル ポリシー マップにVLANレベル ポリシー マップが、VLANレベル ポリシー マップに物理レベル ポリシー マップが対応付けられます。

Switch(config)# class-map my-class
Switch(config-cmap)# match ip precedence 1
Switch(config-cmap)# exit
Switch(config)# class-map my-logical-class
Switch(config-cmap)# match vlan 5
Switch(config-cmap)# exit
Switch(config)# policy-map my-class-policy
Switch(config-pmap)# class my-class
Switch(config-pmap-c)# set precedence 2
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map my-logical-policy
Switch(config-pmap)# class my-logical-class
Switch(config-pmap-c)# shape average 400000000
Switch(config-pmap-c)# service-policy my-class-policy
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# policy-map my-physical-policy
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# shape average 500000000
Switch(config-pmap-c)# service-policy my-logical-policy

階層型QoS情報の表示

階層型QoS情報を表示するには、 表32-16 に示すイネーブルEXECコマンドを1つまたは複数組み合わせて使用します。

 

表32-16 階層型QoS情報を表示するためのコマンド

コマンド
説明

show class-map [ class-map-name ]

トラフィックを分類するための一致条件を定義するQoSクラス マップを表示します。

show mls qos

グローバルQoSコンフィギュレーション情報を表示します。

show policy-map [ policy-map-name [ class class-map-name ]]

トラフィック クラスのトラフィック ポリシーを定義するQoSポリシー マップを表示します。

show policy-map interface interface-id output [ class class-name ]]

指定されたESポートのQoSポリシーマップ情報、および各クラスの統計情報を表示します。