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

目次

QoS の設定

QoS の概要

基本的な QoS モデル

ポリシー マップのサポート

ポリシング設定のサポート

標準 QoS の概要

入力分類

QoS ACL に基づく入力分類

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

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

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

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

マッピング テーブル

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

WTD

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

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

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

階層型 QoS の概要

階層レベル

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

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

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

階層型キュー

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

EtherChannel の階層型 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 設定時の注意事項

EtherChannel 上での階層型 QoS 設定の注意事項

階層型 QoS ポリシーの設定

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

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

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

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

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

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

LLQ のイネーブル化

シェーピングの設定

階層型 QoS 情報の表示

QoS の設定

この章では、Catalyst 3750 Metro スイッチに QoS(Quality of Service)を設定するさまざまな方法について説明します。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 は、物理ポートで非階層型単一レベル ポリシー マップを、Switch Virtual Interface(SVI; スイッチ仮想インターフェイス)で階層型デュアルレベル ポリシー マップを提供します。廃棄ポリシー アクションには、パケットを変更しないで通過させるアクション、パケットに割り当てられた DSCP 値をマークダウンするアクション、またはパケットを廃棄するアクションがあります。標準 QoS は、入力トラフィックのキューイングを Weighted Tail Drop(WTD; 重み付きテール ドロップ)アルゴリズムに基づいて、スケジューリングを Shaped Round Robin(SRR; シェイプド ラウンド ロビン)に基づいて実行します。また、出力トラフィックのキューイングを WTD に基づいて、スケジューリングを SRR によって共有ウェイトまたはシェーピング ウェイトに基づいて行います。また、出力プライオリティ キューも提供されます。


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


階層型 QoS を使用すると、Enhanced-Services(ES)ポートまたは ES ポートの EtherChannel 上で、受信または発信トラフィックの分類、ポリシング、マーキング、キューイング、スケジューリングを行うことができます。階層 QoS は、パケットの CoS、DSCP、IP precedence、または Multiprotocol Label Switching(MPLS; マルチプロトコル ラベル スイッチング)のEXP(試験)ビットに基づいて分類を行います。対応する VLAN に基づいてパケットを分類することもできます。階層型 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 パケット内のこれらの特殊ビットについて説明します(図33-1を参照)。

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

レイヤ 2 のInter-Switch Link(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 です。

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

 


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


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

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

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

基本的な QoS モデル

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

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

 

QoS を実装するには、スイッチ上でパケットまたはフローを相互に区別(分類)し、パケットがスイッチを通過するときに所定の 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 つのスケジューリング メカニズムです。スケジューリングでは、平均レート シェーピングを使用してキューを処理します。詳細については、 「階層型キューのキューイングおよびスケジューリング」 を参照してください。

ポリシー マップのサポート

インターフェイスのタイプが異なるとサポートされるポリシーマップのフォーマット タイプが異なります。ポリシーマップのフォーマット タイプは次のものがサポートされます。

単一レベル(非階層型)ポリシーマップ ― ポリシーマップのクラス レベルでのみアクションを定義できます。

2 レベルまでの階層型ポリシー マップ ― 1 つまたは 2 つのレベルでアクションを定義できます。定義する順序は、(1)クラス レベル、(2)物理レベルです。これらのポリシーは、SVI でのみサポートされ、SVI で受信されるすべてのトラフィックに対して適用されます。

3 レベルまでの階層型ポリシー マップ ― 3 つまでのレベルでアクションを定義できます。定義する順序は、(1)物理レベル、(2)VLAN レベル、(3)クラス レベルとなります。これらのポリシーは、ES ポートおよび ES EtherChannel でのみサポートされます。


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


表33-1 にインターフェイスの違いによるポリシー マップのサポート タイプを示します。

 

表33-1 サポートされるポリシー マップ(インターフェイス タイプ別)

インターフェイス タイプ
単一レベル
デュアル レベル
(クラス/物理)
階層型(3 レベルまで)
入力
出力
入力
出力
入力
出力

標準ポート

1

 

 

 

 

 

ES ポート

 

 

ES EtherChannel

 

 

 

SVI

 

 

 

 

1.○ = サポートあり、空欄 = サポートなし

サポートされないポリシーマップ フォーマットまたはインターフェイスにアクションを追加すると、サービス ポリシーをインターフェイスに付加できません。

また、次のように、ソフトウェアのリリースが異なると、ポリシー マップのサポート レベルが異なることに注意してください。

Cisco IOS Release 12.2(25)EY よりも前のリリースでは、次のものをサポートします。

標準ポートおよび ES 物理ポートでの非階層型単一レベル入力ポリシー マップ

ES 物理ポートでの非階層型単一レベル出力ポリシー マップ

ES 物理ポートでの階層型(3 レベルまで)出力ポリシー マップ

Cisco IOS Release 12.2(25)EY 以降のリリースでは次のものもサポートします。

ES 物理ポートでの階層型(3 レベルまで)入力ポリシー マップ

SVI での 2 レベルまでの階層型入力ポリシー マップ

Cisco IOS Release 12.2(35)SE 以降のリリースでは次のものもサポートします。

ES ポートで構成される EtherChannel での非階層型単一レベル出力ポリシー マップ

ES ポートで構成される EtherChannel での階層型(3 レベルまで)入力および出力ポリシー マップ

これにより、両方の ES ポートに共通の階層型ポリシーを設定でき、同時に EtherChannel の冗長性とロード バランシングを確保することができます。

ポリシング設定のサポート

インターフェイス タイプとポリシー フォーマットが異なると、サポートされるポリシング設定のタイプが異なります。

入力ポリシー マップの付加先が、標準ポート、SVI、ES ポート、または ES ポートで構成される EtherChannel(Cisco IOS Release 12.2(35)SE 以降)のいずれであるかに基づいて、次のようにさまざまな形式の入力ポリシングがサポートされます。

標準ポートおよび ES ポートでの非階層型単一レベル入力ポリシー マップは、1 つのレートと 2 つのカラーによる個別および集約ポリサーのみをサポートし、2 つのレートと 3 つのカラーによるポリサーはサポートしません。実際の階層構造を持たない階層型オプションの 1 つを使用する必要がある場合は、ダミーの階層構造を(class-default のみを使用して)作成することができます。非階層型ポリシングの詳細については、「非階層型単一レベル ポリシング」を参照してください。

SVI に付加される階層型入力ポリシー マップは、2 つまでのレベルでアクションを定義することができ、1 つのレートと 2 つのカラーによる個別ポリサーのみをサポートします。これらのポリシー マップでは、2 つのレートと 3 つのカラーによるポリサーまたは集約ポリサーはサポートされません。階層構造の物理レベルでのみポリサーを設定します。このポリシング設定の詳細については、「SVI での階層型デュアルレベル ポリシング」を参照してください。

ES ポート(または、Cisco IOS Release 12.2(35)SE 以降は ES ポートで構成される EtherChannel)に付加される階層型入力ポリシー マップは、3 つまでのレベルでアクションを定義することができ、1 つのレートと 2 つのカラーおよび 2 つのレートと 3 つのカラーによる個別ポリサーをサポートし、すべてのカラーについてアクションの設定が可能です。階層構造の任意のレベルでポリサーを設定できます。これらのポリシー マップでは、集約ポリサーはサポートされません。階層型ポリシー マップに関する詳細については、「階層型ポリシーおよびマーキング」を参照してください。ES ポートと EtherChannel における階層型ポリシー マップの違いについては、「EtherChannel の階層型 QoS」を参照してください。

出力ポリシングは、ES ポートまたは ES ポートで構成される EtherChannel(Cisco IOS Release 12.2(35)SE 以降)でのみサポートされます。ポリシングは、非階層型出力ポリシー マップおよび 3 レベルまでの階層型出力ポリシー マップでサポートされます。3 レベルまでの階層型ポリシーのポリシングの説明については、 「階層型ポリシーおよびマーキング」 を参照してください。

標準 QoS の概要

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

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

「入力分類」

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

「マッピング テーブル」

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

入力分類

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

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

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

着信トラフィックを分類するには、フレームまたはパケット内のどのフィールドを使用するかを指定します。非 IP トラフィックの場合は、次の方法で入力分類を実行できます(図33-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 トラフィックの場合は、次の方法で入力分類を実行できます(図33-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 に基づく入力分類」および「トラフィック クラスおよびトラフィック ポリシーに基づく入力分類」を参照してください。

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

図33-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 より前のリリースでは、非階層型単一レベル ポリシー マップを適用できるのは物理ポートのみで(ES ポートでは両方向に、標準ポートでは入力方向に)、階層型(3 レベルまで)ポリシー マップは、ES ポート上で出力ポリシー マップとしてしかサポートされませんでした。Cisco IOS Release 12.2(25)EY 以降はこれに加えて、2 レベルまでのポリシー マップを SVI の入力方向でサポートし、3 レベルまでのポリシー マップを ES ポートで入力ポリシー マップとしてサポートします。ただし、階層型デュアルレベル ポリシー マップを適用できるのは、SVI のみです。デュアルレベル ポリシー マップには、2 つのレベルが含まれます。最初のレベルは VLAN レベルで、SVI でのトラフィック フローに対して実行するアクションを指定します。2 番めのレベルはインターフェイス レベルで、SVI に属する物理ポートでのトラフィックに対して実行するアクションを指定します。インターフェイスレベル アクションは、インターフェイスレベル ポリシー マップで指定されます。Cisco IOS Release 12.2(35)SE ではさらに、単一レベル出力ポリシー マップおよび階層型の入力マップと出力マップを ES ポートで構成される EtherChannel に適用できます。

詳細については、「入力ポリシングおよびマーキング」を参照してください。設定の詳細については、「入力 QoS ポリシーの設定」を参照してください。

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

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

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


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



) 階層型入力サービス ポリシーは、他のどのサービスが実行されるよりも先にトラフィック ストリームに適用されます。たとえば、トラフィックに適用された階層型入力サービス ポリシーは、ストーム制御しきい値の上からその下へとトラフィック速度を変更し、ストーム制御のトラフィック ストリームへの影響を防ぐこともできます。


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

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

個別(単一レート)

一致する各トラフィック クラスに、ポリサー内で指定された帯域幅制限が個別に適用されます。ポリシー マップ内で単一レート ポリサーを設定するには、 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 インターフェイス コンフィギュレーション コマンドを使用して、ポートに入力ポリシーを付加します。設定の詳細については、「非階層型単一レベル ポリシー マップによる入力トラフィックの分類、ポリシング、およびマーキング」、および「集約ポリサーによる入力トラフィックの分類、ポリシング、およびマーキング」を参照してください。

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

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

SVI に付加されたインターフェイス レベルの階層型デュアルレベル ポリシー マップ。物理ポートは、このセカンダリ ポリシー マップで指定されます。

図33-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 に属する物理ポートで個別ポリサーを指定するクラス マップおよびクラスを設定します。インターフェイスレベル ポリシー マップは、個別ポリサーのみをサポートし、集約ポリサーはサポートしません。

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

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

図33-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 出力キューしきい値マップの詳細については、「出力キューセットのキューイングおよびスケジューリング」を参照してください。

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

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

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

 

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

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

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

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

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

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

WTD

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

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

図33-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% しきい値が適用されます。このフレームがキューに追加されると、しきい値を超過するため、フレームは廃棄されます。

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

 

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

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

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

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

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

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

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

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

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

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

 


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


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

 

表33-2 入力キューのタイプ

キュー タイプ 2
説明

標準

標準プライオリティとみなされるユーザ トラフィック。各フローを区別するために、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 グローバル コンフィギュレーション コマンドを使用して、合計トラフィックの割合として設定できます。緊急キューは帯域幅が保証されています。

2.スイッチでは、設定不可能なトラフィック用キューが 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 値を持つパケットを特定のキューに格納したり、大きなキュー サイズを割り当てたり、キューの処理頻度を増やしたり、プライオリティが低いパケットが廃棄されるようにキューのしきい値を調整したりして、トラフィックのプライオリティを設定することができます。設定の詳細については、「入力キューの特性の設定」を参照してください。

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

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

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

 


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


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

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

図33-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 つのカラーによるポリシング)をサポートします。Cisco IOS Release 12.2(35)SE からは、ES ポートで構成される EtherChannel での階層型入力および出力QoS もサポートされます。

階層型 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 output 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 dot1q
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 に使用されます(図33-11を参照)。

図33-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 の設定」を参照してください。

階層型入力サービス ポリシーには、階層型出力サービス ポリシーと同じ設定オプション(ポリシング、シェーピング、CBWFQ)を含めることができますが、ACL や集約ポリサーなどの設定を含めることはできません。ポリシーが非階層型の場合は、ES ポートでのアクセス グループの一致が許可されます。この規則に違反すると、ポリシーがインターフェイスに付加されなくなります。

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

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

図33-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 ポリシーの設定」を参照してください。

EtherChannel の階層型 QoS

Cisco IOS Release 12.2(35)SE からは、ポートのない EtherChannel または、1 つまたは 2 つ の ES ポートを備える EtherChannel で 3 レベルの階層型 QoS を設定できます。ポートのない EtherChannel に階層型 QoS を設定し、標準ポートをその EtherChannel に追加した場合、階層型ポリシーマップは EtherChannel から削除されます。階層型ポリシーは、ES ポート以外のポートではサポートされません。

EtherChannel 上の階層型 QoS と ES ポート上の階層型 QoS の違いについては、「階層型 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 がイネーブルの場合、トラフィックの分類、パケット ラベルの割り当て、および入力キューと出力キューセットの設定には入力パケット ラベルを使用します( 表33-3 を参照)。

 

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

VoIP 3 データ トラフィック
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)

3.VoIP = Voice over IP

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

 

表33-4 入力キュー用の自動 QoS 設定

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

SRR 共有

1

0 、1

81%

67%

プライオリティ

2

2 、3 、4 、5 、6 、7

19%

33%

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

 

表33-5 出力キューセット用の自動 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 ラベルを信頼しないように入力分類が設定されます。スイッチは 表33-4 および 表33-5 の設定に従って、ポートに入力キューおよび出力キューを設定します。

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

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

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

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


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


 

表33-6 生成される自動 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 が接続されているスイッチ ポート上でのみ VoIP スイッチを設定します。

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 設定例

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

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

 

図33-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

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

ステップ 11

auto qos voip trust

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

ステップ 12

end

特権 EXEC モードに戻ります。

ステップ 13

show auto qos

設定を確認します。

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

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

ステップ 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 のデフォルト設定」を参照してください。

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

単一レベル入力ポリシー マップは、標準ポート、ES ポート、および SVI でサポートされます。 表33-7 に、QoS がイネーブルの場合の入力キューのデフォルト設定を示します。

 

表33-7 入力キューのデフォルト設定

機能
キュー 1
キュー 2

バッファ割り当て

90%

10%

帯域幅割り当て 4

4

4

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

0

10

WTD ドロップしきい値 1

100%

100%

WTD ドロップしきい値 2

100%

100%

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

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

表33-8 に、QoS がイネーブルの場合のデフォルトの CoS 入力キューしきい値マップを示します。

 

表33-8 デフォルトの CoS 入力キューしきい値マップ

CoS 値
キュー ID ― しきい値 ID

0 ~ 4

1 ~ 1

5

2 ~ 1

6、7

1 ~ 1

表33-9 に、QoS がイネーブルの場合のデフォルトの DSCP 入力キューしきい値マップを示します。

 

表33-9 デフォルトの DSCP 入力キューしきい値マップ

DSCP 値
キュー ID ― しきい値 ID

0 ~ 39

1 ~ 1

40 ~ 47

2 ~ 1

48 ~ 63

1 ~ 1

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

単一レベル出力ポリシー マップは、SVI および ES ポートでサポートされます。 表33-10 に、QoS がイネーブルの場合の出力キューセットのデフォルト設定を示します。すべてのポートはキューセット 1 にマッピングされます。ポートの帯域幅制限は 100% に設定され、レートは制限されません。

 

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

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

バッファ割り当て

25%

25%

25%

25%

WTD ドロップしきい値 1

100%

200%

100%

100%

WTD ドロップしきい値 2

100%

200%

100%

100%

専用しきい値

50%

50%

50%

50%

最大しきい値

400%

400%

400%

400%

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

25

0

0

0

SRR 共有ウェイト 7

25

25

25

25

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

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

表33-11 に、QoS がイネーブルの場合のデフォルトの CoS 出力キューしきい値マップを示します。

 

表33-11 デフォルトの CoS 出力キューしきい値マップ

CoS 値
キュー ID ― しきい値 ID

0、1

2 ~ 1

2、3

3 ~ 1

4

4 ~ 1

5

1 ~ 1

6、7

4 ~ 1

表33-12 に、QoS がイネーブルの場合のデフォルトの DSCP 出力キューしきい値マップを示します。

 

表33-12 デフォルトの 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 マップについては、表33-13を参照してください。

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

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

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

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

標準 QoS 設定時の注意事項

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

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

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

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

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

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

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

標準ポートおよび ES ポートでは、ポート ASIC デバイスがスイッチで合計 256のポリサーをサポートします。このうち、255はユーザによる設定が可能で、1 個は内部用に予約されています。各ポートで設定可能なポリサーの最大数は 63 です。たとえば、ギガビット イーサネット ポートに 32のポリサー、ファスト イーサネット ポートに 8 つのポリサーを設定することや、ギガビット イーサネット ポートに 63のポリサー、ファスト イーサネット ポートに 5 つのポリサーを設定することができます。ポリサーは必要に応じてソフトウェアによって割り当てられ、ハードウェアおよび ASIC 境界の制約を受けます。ポートごとにポリサーを予約することはできません。特定のポートを目的のポリサーに確実に割り当てることはできません。これらの制限は、ES ポートに付加された階層型ポリシーで設定されたポリサーには適用されません。

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

Cisco IOS Release 12.2(35)SE より前のリリースでは、標準(1 つのレベル)サービス ポリシーを論理インターフェイス(EtherChannel など)に付加することはできません。スイッチに EtherChannel を設定している場合、EtherChannel を構成する個々の物理ポート上でQoS 分類、ポリシング、マッピング、およびキューイングを設定する必要があります。Cisco IOS Release 12.2(35)SE からは、ES ポートで構成される EtheChannel で単一レベル出力ポリシー マップおよび双方向の階層型ポリシー マップがサポートされます。

スイッチで受信された制御トラフィック(スパニングツリー 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 つに設定できます。図33-14に、ネットワーク トポロジの例を示します。

図33-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 ポートからパケットが送信されます。


) IEEE 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 } インターフェイス コンフィギュレーション コマンドを使用します。

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

通常のネットワークでは、図33-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 を信頼するようにドメインの境界に位置するスイッチ ポートを設定することができます(図33-15を参照)。それにより、受信ポートでは信頼する DSCP 値をそのまま使用し、QoS の分類手順が省略されます。2 つのドメインで異なる DSCP 値が使用されている場合は、他のドメイン内での定義に合わせて一連の DSCP 値を変換する DSCP/DSCP 変換マップを設定することができます。

図33-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 ポートでトラフィックを分類する方法については、「階層型クラス マップによるトラフィックの分類」を参照してください。

クラス マップを作成し、着信トラフィックを分類するための一致条件を定義するには、特権 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

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

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

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

(任意)このクラス マップのすべての一致ステートメントに対して論理和をとるには、 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 レベル クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。クラス マップの作成の詳細については、 「クラス マップによる入力トラフィックの分類」 を参照してください。

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

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

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

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

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


) クラス マップ 1 つにつき 1 つの match コマンドのみがサポートされているため、match-all キーワードとmatch-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

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

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

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

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

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

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


) クラス マップ 1 つにつき 1 つの match コマンドのみがサポートされているため、match-all キーワードとmatch-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 マップを使用します。

表33-13 にデフォルトの CoS/DSCP マップを示します。

 

表33-13 デフォルトの 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 マップを使用します。

表33-14 に、デフォルトの IP precedence/DSCP マップを示します。

 

表33-14 デフォルトの 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 マップを使用します。

表33-15 にデフォルトの DSCP/CoS マップを示します。

 

表33-15 デフォルトの 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 です。


入力キューの特性の設定

単一レベル入力ポリシー マップは SVI および標準物理ポート上でのみサポートされます。ネットワークおよび 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

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

単一レベル出力ポリシー マップは SVI および ES ポート上でのみサポートされます。ネットワークおよび 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 しきい値は 200% に設定されています。キュー 1、2、3、および 4 の専用しきい値は 50% に設定されています。すべてのキューの最大しきい値は 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 モードで次の手順を実行します。この手順は任意です。

 

コマンド
説明

ステップ 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 情報を表示するには、 表33-16 に示す特権 EXEC コマンドを 1 つまたは複数組み合わせて使用します。

 

表33-16 標準 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 ポートまたは ES ポートで構成される EtherChannel の着信および発信トラフィックに適用することができます。

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

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

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

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

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

ここでは、スイッチに階層型 QoS を設定する手順について説明します。ここに記載された内容は、トラフィックが標準ポートまたは ES ポートから ES ポートに送信されている場合に参照してください。

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

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

「EtherChannel 上での階層型 QoS 設定の注意事項」

「階層型 QoS ポリシーの設定」(必須)

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

QoS はディセーブルに設定されています。

トラフィック クラス、クラス マップ、ポリシー マップ、またはポリサーは定義されていません。

LLQ はディセーブルです。

CBWFQ はディセーブルです。

テール ドロップはイネーブルです。

WRED はディセーブルです。

平均レート トラフィック シェーピングはディセーブルです。

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

これらの階層型 QoS 設定時の注意事項は、ES ポートまたは ES EtherChannel(ES ポートで構成される EtherChannel)の入力および出力サービスポリシーに適用されます。

階層型設定を有効にするには、 mls qos グローバル コンフィギュレーション コマンドを使用して QoS をイネーブルにする必要があります。QoS がイネーブルの場合は、「標準 QoS のデフォルト設定」、および「階層型 QoS のデフォルト設定」に記載されたデフォルト設定が使用されます。手順の詳細については、「QoS のグローバルなイネーブル化」を参照してください。

Cisco IOS Release 12.2(35)SE からは、階層型サービス ポリシーを ES ポートの EtherChannel に付加できます。このポリシーを使用して ES ポートに階層型ポリシーを設定できるので、EtherChannel の個々の ES ポートに QoS 分類、ポリシング、マッピング、およびキューイングを設定する必要がありません。ポートのない EtherChannel に階層型ポリシーを設定し、標準ポートをその EtherChannel に追加した場合、ポリシーは EtherChannel から削除されます。この機能の詳細については、「EtherChannel 上での階層型 QoS 設定の注意事項」を参照してください。

ES ポートまたは EtherChannel に付加された出力ポリシーまたは階層型入力ポリシーのいずれかでは、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 レベルとクラスレベルの照合処理を混在させることはできません。

IEEE 802.1Q トンネリングとポート信頼ポリシーが併用されている場合は、同じトンネル VLAN を共有するすべてのポートに同じ信頼ポリシーを設定する必要があります。

ポートごとにサポートされるポリシー マップは 1 つのみです。ES ポートまたは EtherChannel ごとに、1 つの階層型入力サービス ポリシーと 1 つの出力サービス ポリシーを付加できます。

入力 ES ポートまたは EtherChannel に、レベルを 1 つしか持たない出力ポリシー マップを適用することはできません。

信頼ポリシーと階層型入力ポリシーの両方が ES ポートまたは EtherChannel に設定されている場合、サービス ポリシーで指定されたアクションは、信頼ポリシーが適用される前に処理されます。

階層型入力ポリシー マップに set ポリシーマップ クラス コンフィギュレーション コマンドが含まれる場合、スイッチは自動的にポートの信頼状態を ES ポートまたは EtherChannel に適用します。また、スイッチは、トラフィック クラスに一致しないトラフィックを含め、ES ポートまたは EtherChannel 上のすべての着信トラフィックにポートの信頼状態を適用します。たとえば、 set cos new-cos コマンドを入力した場合、スイッチは自動的にインターフェイスが CoS を信頼するように設定します。

階層型入力ポリシー マップにより、明示的な set アクションまたはポリシング アクションを使用して QoS 値が設定される場合は、ES ポートまたは EtherChannel にも適切な信頼ポリシーが設定されている必要があります。たとえば、ポリシーにより CoS が変更される場合は、ES ポートまたは EtherChannel は CoS を信頼する必要があります。ポリシーにより DSCP が変更される場合は、ES ポートは DSCP を信頼する必要があります。入力ポリシーにレイヤ 2 とレイヤ 3 の QoS 変更が混在する場合は、ポリシーを付加することはできません。

階層型出力ポリシー マップに set ポリシーマップ クラス コンフィギュレーション コマンドが含まれていても、ポートの信頼状態は影響を受けません。たとえば、CoS を 2 に設定した場合に影響を受けるのは、パケットの CoS 値のみです。パケットの DSCP 値が CoS/DSCP マップに基づいて変更されることはありません。

入力ポリシー マップでは、ポートが信頼できる着信パケットの値は 1 つのみなので、レイヤ 2 およびレイヤ 3 set アクションを組み合わせることはできません。たとえば、スイッチは次のポリシー マップをサポートしません。

policy-map p1
class cos1
police cir per 10 conform-action set-cos-transmit 3
set dscp af22
 

ES ポートまたは EtherChannel では、階層型サービスポリシーで設定されるポリサー数の唯一の制限は、設定可能なクラスの有限数です。詳細については、「階層レベル」を参照してください。

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 ポートまたは EtherChannel で受信されるすべてのトラフィックに自動的に適用します。

ポートが信頼できるのは着信パケットの 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 ポートまたは EtherChannel に設定するには、ここに記載されている設定手順を使用します。ES ポートに付加された単一レベル ポリシー マップでは、多くの設定オプションがサポートされません。

階層型単一レベル入力サービスポリシー(たとえば、ES ポートまたは EtherChannel で 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 クラスに予約されます。

子ポリシー マップで設定された総帯域幅が、親ポリシー マップの総帯域幅を超えることはできません。

EtherChannel 上での階層型 QoS 設定の注意事項

Cisco IOS Release 12.2(35)E からは、Catalyst 3750 Metro ES ポートで構成される EtherChannel で階層型 QoS がサポートされます。2 つのポートを備える EtherChannel を設定し、階層型ポリシーをその EtherChannel に適用すると、階層型 QoS は両方のポートを通過するトラフィックに適用されます。すべての階層型 QoS 規則(ポリシング、シェーピング、帯域幅、およびプライオリティを含む)が適用されたあと、パケットは適切な物理インターフェイスから送信されます。これらの規則は、EtherChannel パイプ全体に適用されます。階層型 QoS に加えて、標準 EtherChannel の冗長性とロード バランシングが構成の種類に基づいて実行されます。EtherChannel は論理インターフェイスであることから、EtherChannel 上での階層型 QoS と ES ポート上での階層型 QoS にはいくつかの違いがあります。

ここでは、EtherChannel 上での階層型 QoS に関する注意事項と機能について、ES ポートと比較した場合の動作の違いを含めて説明します。Cisco IOS Release 12.2(35)SE では、ES ポートの階層型 QoS について変更はありません。

階層型 QoS は、EtherChannel の入力および出力の両方向でサポートされます。

階層型ポリシーは、ES ポートで構成される EtherChannel でのみサポートされます。標準ポートで構成された EtherChannel ではサポートされません。

ES ポートで構成される EtherChannel に階層型ポリシーを付加できるのは、ほかのポリシーが ES ポートに個別に付加されていない場合に限ります。

ポートのない EtherChannel に階層型ポリシーを付加できます。ただし、そのポリシーは、EtherChannel に 1 つまたは複数の ES ポートを追加したときにのみ有効になります。

EtherChannel に 1 つだけアクティブな ES ポートがある場合、EtherChannel に付加された階層型ポリシーは、ES ポート単体の階層型ポリシーとまったく同じ働きをします。

階層型ポリシーが付加されている、ポートのない EtherChannel に対して標準ポートを追加しようとすると、その標準ポートは EtherChannel に追加されますが、階層型ポリシーは削除されます。階層型ポリシーは、ES ポートを備える EtherChannel でのみサポートされます。

EtherChannel に階層型 QoS を設定しても EtherChannel のロード バランシングには影響を与えません。EtherChannel の両方のポートがアクティブの場合、両ポートに対するトラフィックは階層型 QoS 用のキューに入れられてから、本来のターゲット インターフェイスに送信されます。

アクション用のパラメータ(帯域幅やポリシングなど)はすべて、階層型ポリシー マップのすべてのクラスで絶対値または割合として設定する必要があります。この設定によって、ポリシーの用途がロード バランシングなのか冗長性なのかが決まります。

すべての階層型 QoS パラメータを絶対値で設定すると、設定可能な総帯域幅はいずれかのリンクの帯域幅(990,000,000 bps)に制限され、その結果、冗長性が得られます。

すべての階層型パラメータを割合(%)値で設定すると、100% の帯域幅を設定できます。両方のリンクがアップしている場合、帯域幅は約 2 Gbps(990,000,000 bps の 2 倍)になります。1 つのリンクがダウンすると、帯域幅は 1 Gbps になりすべてのポリシーは縮小されますが、割合は同じ値が維持され、その結果、ロード バランシングが得られます。ロード バランシングの割合によるシェーピングはサポートされません。

ポリシング ポリシーを割合で設定した場合、内部的な制限によって最大ポリシング パラメータは 990,000,000 bps に設定されます。リンク ステートの変化によってポリシング値がこの値を超えた場合、そのポリシーは分離されます。したがって、2 つの ES リンクを備える EtherChannle に対して割合を設定する場合は、それぞれのポリサーを最大で 49% に制限する必要があります。ただし、同じポリシーに、または親ポリシーと子ポリシーとに複数のポリサーを設定し、それぞれを最大で 49% に設定することもできます。

階層型 QoS パラメータを絶対値または割合で設定した場合の、ES リンク ステートの変化による結果を次に示します。

パラメータを絶対値で設定した場合、保証される総帯域幅は 990,000,000 bps を超えることはありません。EtherChannel の 1 つのリンクがダウンすると、すべてのトラフィックは 2 つの ES ポート間で分散されずに、他の物理インターフェイスで送受信されます。値の再計算は行われず、階層型 QoS パラメータまたはポリシー実行に変更は生じません。

パラメータを割合で設定した場合、EtherChannel の 1 つのリンクがダウンすると、すべての絶対パラメータの値は半分に減少しますが、設定した割合は同じ値が維持されます。帯域幅を割合で設定した場合では、減少した帯域幅パラメータで均等に分散されてすべてのトラフィックが送受信されます。ポリシングを割合で設定した場合では、他のトラフィックに影響を与えないように、減少したパラメータに基づいてパケットが破棄されます。

スイッチは、ES ポートまたはEtherChannel の階層型 QoS には割合によるシェーピングをサポートしません。したがって、EtherChannel に適用されるポリシーでは、どのタイプのシェーピングにも割合によるポリシングまたは帯域幅を設定することはできません。

出力と入力の両方の EtherChannel 階層型ポリシーを同時に付加する場合は、絶対値または割合のいずれか一方で両方のポリシーを設定する必要があります。入力ポリシーを割合で設定して出力ポリシーを絶対値で設定したり、その逆の設定をすることはできません。

階層型 QoS ポリシーの設定

ここでは、階層型 QoS ポリシーを設定して、ES ポートまたは ES ポートで構成される EtherChannel に付加するサービス ポリシーを作成する方法を示します。

基本的な情報については、「階層レベル」「トラフィック クラスおよびトラフィック ポリシーに基づく階層型分類」「階層型ポリシーおよびマーキング」、および「階層型キューのキューイングおよびスケジューリング」を参照してください。設定時の注意事項については、「階層型 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

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

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

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

(任意)このクラス マップのすべての一致ステートメントに対して論理和をとるには、 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 ポートまたは EtherChannel に付加されたポリシー内の 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 ポートまたは EtherChannel ポート チャネルを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 8

service-policy { input | output } policy-map-name

ポリシーマップ名を指定し、ES ポートまたは EtherChannel に適用します。

ステップ 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 インターフェイス コンフィギュレーション コマンドを使用します。


) ポートのない EtherChannel にポリシー マップを適用してから、その EtherChannel に標準ポートを追加した場合、標準ポートは階層型 QoS をサポートしないので、ポリシーは EtherChannel から削除されます。


次に、発信トラフィックを平均認定速度 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 output 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 output policy1

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

階層型トラフィック ポリシーでクラスベース パケットのマーキングを実行するには、ES ポートまたは EtherChannel に付加されたポリシー マップに 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 ポートまたは EtherChannel ポート チャネルを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 8

service-policy { input | output } policy-map-name

ポリシーマップ名を指定し、ES ポートまたは EtherChannel に適用します。

ステップ 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 インターフェイス コンフィギュレーション コマンドを使用します。


) ポートのない EtherChannel にポリシー マップを適用してから、その EtherChannel に標準ポートを追加した場合、標準ポートは階層型 QoS をサポートしないので、ポリシーは EtherChannel から削除されます。


次に、 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 dot1q
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 ポートまたは EtherChannel に付加されたポリシー マップ内で 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 ポートまたは EtherChannel ポート チャネルを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 9

service-policy { input | output } policy-map-name

ポリシーマップ名を指定し、ES ポートまたは EtherChannel に適用します。

ステップ 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 ポリシーマップ クラス コンフィギュレーション コマンドを使用します。


) ポートのない EtherChannel にポリシー マップを適用してから、その EtherChannel に標準ポートを追加した場合、標準ポートは階層型 QoS をサポートしないので、ポリシーは EtherChannel から削除されます。


次に、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 output 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 dot1q
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 ポートまたは EtherChannel に付加されたポリシー マップ内で 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 ポートまたは EtherChannel ポート チャネルを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 11

service-policy { input | output } policy-map-name

ポリシーマップ名を指定し、ES ポートまたは EtherChannel に適用します。

ステップ 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 ポリシーマップ クラス コンフィギュレーション コマンドを使用します。


) ポートのない EtherChannel にポリシー マップを適用してから、その EtherChannel に標準ポートを追加した場合、標準ポートは階層型 QoS をサポートしないので、ポリシーは EtherChannel から削除されます。


次に、 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 dot1q
Switch(config-if)# switchport mode trunk
Switch(config-if)# service-policy output 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 ポートまたは EtherChannel に付加されたポリシー マップ内で 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 ポートまたは EtherChannel ポート チャネルを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 11

service-policy { input | output } policy-map-name

ポリシーマップ名を指定し、ES ポートまたは EtherChannel に適用します。

ステップ 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 ポリシーマップ クラス コンフィギュレーション コマンドを使用します。


) ポートのない EtherChannel にポリシー マップを適用してから、その EtherChannel に標準ポートを追加した場合、標準ポートは階層型 QoS をサポートしないので、ポリシーは EtherChannel から削除されます。


次に、 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 dot1q
Switch(config-if)# switchport mode trunk
Switch(config-if)# service-policy output 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 ポートまたは EtherChannel に付加されたポリシー マップ内で 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 ポートまたは EtherChannel ポート チャネルを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 8

service-policy { input | output } policy-map-name

ポリシーマップ名を指定し、ES ポートまたは EtherChannel に適用します。

ステップ 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 output 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 ポートまたは EtherChannel に付加されたポリシー内の 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 ポートまたは EtherChannel ポート チャネルを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 8

service-policy { input | output } policy-map-name

ポリシーマップ名を指定し、ES ポートまたは EtherChannel に適用します。

ステップ 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 output 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 dot1q
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 情報を表示するには、 表33-17 に示す特権 EXEC コマンドを 1 つまたは複数組み合わせて使用します。

 

表33-17 階層型 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 ポリシーマップ情報、および各クラスの統計情報を表示します。