Catalyst 3750 Metro スイッチ ソフトウェア コンフィギュレーション ガイド
QoS の設定
QoS の設定
発行日;2012/02/04 | 英語版ドキュメント(2011/06/02 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 12MB) | フィードバック

目次

QoS の設定

QoS の概要

QoS の基本モデル

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

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

標準 QoS の概要

入力分類

QoS ACL に基づく入力分類

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

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

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

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

マッピング テーブル

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

WTD

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

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

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

パフォーマンス モニタリング プロトコル用の QoS 処理

Cisco IP-SLA

TWAMP

IP-SLA および TWAMP プローブ用の QoS 処理

マーキング

キューイング

CPU によって生成されたトラフィックの QoS マーキング

CPU によって生成されたトラフィックの QoS キューイング

設定時の注意事項

階層型 QoS の概要

階層レベル

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

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

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

階層型キュー

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

EtherChannel の階層型 QoS

自動 QoS の設定

生成される自動 QoS 設定

コンフィギュレーションにおける自動 QoS の影響

自動 QoS 設定時の注意事項

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

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

自動 QoS 設定例

自動 QoS 情報の表示

標準 QoS の設定

標準 QoS 設定

入力キュー設定

出力キューセット設定

マッピング テーブル設定

標準 QoS 設定時の注意事項

パケットの変更

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

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

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

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

ポート セキュリティを確保するための信頼境界機能の設定

DSCP 透過モードのイネーブル化

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

入力 QoS ポリシーの設定

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

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

CPU によって生成されたトラフィックのマーキングおよびキューイング

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

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

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

DSCP マップの設定

CoS/DSCP マップの設定

IP precedence/DSCP マップの設定

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

DSCP/CoS マップの設定

DSCP/DSCP 変換マップの設定

入力キューの特性の設定

入力キューへの DSCP または CoS 値のマッピングおよび WTD しきい値の設定

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

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

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

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

出力キューセットに対するバッファ スペースの割り当ておよび WTD しきい値の設定

出力キューセットおよびしきい値 ID への DSCP または CoS 値のマッピング

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

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

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

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

CPU によって生成されたトラフィックのマーキングおよびキューイングの設定

標準 QoS 情報の表示

階層型 QoS の設定

階層型 QoS の設定

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

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

階層型 QoS ポリシーの設定

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

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

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

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

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

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

LLQ のイネーブル化

シェーピングの設定

階層型 QoS 情報の表示

QoS の設定

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

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

標準 QoS を使用すると、任意のポート上で着信トラフィックの分類、ポリシング、マーキング、キューイング、およびスケジューリングを行ったり、発信トラフィックのキューイングやスケジューリングを行うことができます。入力側では、標準 QoS は着信パケットの Class of Service(CoS; サービス クラス)、Differentiated Services Code Point(DSCP)、または IP precedence 値に基づいて、分類を行います。分類はレイヤ 2 MAC Access Control List(ACL; アクセス コントロール リスト)、IP 標準 ACL、または IP 拡張 ACL に基づいて実行できます。また、標準 QoS は、物理ポートで非階層型単一レベル ポリシー マップを、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; マルチプロトコル ラベル スイッチング)の experimental(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 の設定」

「CPU によって生成されたトラフィックのマーキングおよびキューイングの設定」

「標準 QoS 情報の表示」

「階層型 QoS の設定」

「階層型 QoS 情報の表示」

QoS の概要

ネットワークは通常、ベストエフォート型の配信方式で動作します。したがって、すべてのトラフィックに等しいプライオリティが与えられ、正しいタイミングで配信される可能性も同じです。輻輳が発生した場合に、廃棄される可能性についても、すべてのトラフィックで同じです。

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

QoS は、Internet Engineering Task Force(IETF; インターネット技術特別調査委員会)の新しい規格である Differentiated Services(DiffServ)アーキテクチャに基づいて実装されます。このアーキテクチャでは、ネットワークに入るときに各パケットを分類することが規定されています。

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

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

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

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

Cisco IOS リリース 12.2(52)SE 以降では、デュアル IPv4/IPv6 Switch Database Management(SDM)テンプレートを使用する IPv6 ポートベースの信頼性をサポートします。IPv6 を実行するスイッチでは、デュアル IPv4/IPv6 テンプレートを使用してスイッチをリロードする必要があります。詳細については、「SDM テンプレートの設定」を参照してください。

図 34-1 フレームおよびパケットにおける QoS 分類レイヤ

 


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


インターネットにアクセスするすべてのスイッチおよびルータはクラス情報に基づいて、同じクラス情報が与えられているパケットは同じ扱いで転送を処理し、異なるクラス情報のパケットはそれぞれ異なる扱いをします。パケットのクラス情報は、設定されているポリシー、パケットの詳細な検証、またはその両方に基づいて、エンド ホストが割り当てるか、または伝送中にスイッチまたはルータで割り当てることができます。パケットの詳細な検証は、コア スイッチおよびルータの負荷が重くならないように、ネットワークのエッジ付近で行います。

パス上のスイッチおよびルータは、クラス情報を使用して、個々のトラフィック クラスに割り当てるリソースの容量を制限できます。DiffServ アーキテクチャでトラフィックを処理するときの、各デバイスの動作を Per-Hop Behavior(PHB)といいます。パス上のすべてのデバイスに一貫性のある PHB をさせることによって、エンドツーエンドの QoS ソリューションを構築できます。

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

QoS の基本モデル

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

図 34-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 は、ポートに輻輳の兆候が見え始めると、パケットを選択的に廃棄してテール ドロップの機会を減らします。詳細については、 「階層型キューのキューイングおよびスケジューリング」を参照してください。

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

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

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

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

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

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


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


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

 

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

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

標準ポート

あり1

なし

なし

なし

なし

なし

ES ポート

あり

あり

なし

なし

あり

あり

ES EtherChannel

なし

あり

なし

なし

あり

あり

SVI

あり

なし

あり

なし

なし

なし

1.あり = サポートあり。なし = サポートなし。

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

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

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

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

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

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

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

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

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

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

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

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

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


) スイッチでは、階層型 QoS などの特定の ES ポート固有の機能を含む IPv6 関連の機能はサポートされていません。


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

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

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

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

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

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

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

標準 QoS の概要

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

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

「入力分類」

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

「マッピング テーブル」

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

入力分類

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

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

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

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

着信フレーム内の CoS 値を信頼します(CoS を信頼するようにポートを設定します)。次に、設定可能な CoS/DSCP マップを使用して、パケットの DSCP 値を生成します。レイヤ 2 の ISL フレーム ヘッダーの場合、CoS 値は 1 バイトのユーザ フィールドの下位 3 ビットに格納されて伝達されます。レイヤ 2 IEEE 802.1Q フレームのヘッダーは、タグ制御情報フィールドの上位 3 ビットで CoS 値を伝達します。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 トラフィックの場合は、次の方法で入力分類を実行できます(図 34-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 標準 ACL または IP 拡張 ACL(IP ヘッダーの各フィールドを調べる)に基づいて、分類を実行します。ACL が設定されていない場合、パケットには DSCP および CoS 値として 0 が割り当てられ、トラフィックがベストエフォート型であることを意味します。ACL が設定されている場合は、ポリシー マップ アクションによって、着信フレームに割り当てられる DSCP または CoS 値が指定されます。

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

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

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

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

 

QoS ACL に基づく入力分類

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

許可アクションとの一致が検出されると(最初の一致の原則)、指定の QoS 関連アクションが実行されます。

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

許可アクションとの一致が検出されないまま、すべての ACE の検証が終了した場合、そのパケットでは QoS 処理は実行されず、ベストエフォート型サービスが実行されます。

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


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


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

IP ACL を実装して IP トラフィックを分類する場合は、 access-list グローバル コンフィギュレーション コマンドを使用します。レイヤ 2 MAC ACL を実装して非 IP トラフィックを分類する場合は、 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 を指定した場合、どの一致条件とも一致しないパケットは、トラフィック クラスのメンバーとして分類されます。このクラスは他のトラフィック クラスと同様に処理(ポリシングやマーキングなどを実行)できますが、削除できません。 class コマンドを使用してトラフィック クラスに名前を付けると、ポリシー マップ クラス コンフィギュレーション モードが開始され、このトラフィック クラスに関する対処方法を指定できるようになります。

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

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

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

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

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

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


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



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


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

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

個別(単一レート)

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

集約

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


) Cisco IOS リリース 12.2(25)EY 以降にかぎり、SVI では個別ポリサーだけを設定できます。


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

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

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

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

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

次のタイプのポリシー マップが設定されると、図 34-4 のようなポリシングおよびマーキングのプロセスが実行されます。

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

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

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

 

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

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

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

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

VLAN レベル:クラス マップおよびポートの信頼状態を指定するクラスを設定するか、またはパケットに新規に DSCP や IP precedence 値を設定してプライマリ レベルを作成します。VLAN レベルのポリシー マップは SVI の VLAN だけに対して適用可能で、ポリサーはサポートしません。


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


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


) SVI に付加されたポリシーのインターフェイス レベルのクラス マップ設定には、ES ポートを組み込むことができません。このタイプのサービス ポリシーを SVI に付加しようとすると、コマンドは拒否されてエラー メッセージが表示されます。ポート単位で VLAN 単位の拡張ポリシングを ES ポートに設定するには、階層型ポリシー マップをポートに付加します。


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

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

図 34-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 入力/出力キューしきい値マップを使用して、キューセットから入力キューおよび出力キューを選択します。入力キューか出力キューに加えて、QoS ラベルも WTD しきい値を識別します。これらのマップを設定するには、 mls qos srr-queue { input | output } dscp-map および mls qos srr-queue { input | output } cos-map グローバル コンフィギュレーション コマンドを使用します。

CPU によって生成されたトラフィックのマーキングとキューイングを行うときは、次のようになります。

mls qos srr-queue output cpu- queue グローバル コンフィギュレーション コマンドを入力して出力キューを明示的に設定した場合、CPU トラフィックはそのキューに送信され、しきい値はそのキューに適用されます。

CPU によって生成されたトラフィック用に出力キューを明示的に設定していない場合は、CPU マーキング値および DSCP マップ値か CoS マップ値により、CPU によって生成されたトラフィックの出力キューとしきい値が判別されます。

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

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

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

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

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

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

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

 

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

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

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

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

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

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

WTD

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

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

各キューには 3 つのしきい値があります。3 つのしきい値のうちどれがフレームに適用されるかは、QoS ラベルによって決まります。3 つのしきい値のうち 2 つは設定可能(明示的)ですが、1 つは設定可能ではありません(暗黙)。

図 34-7 に、サイズが 1000 フレームであるキューでの WTD の動作例を示します。廃棄割合は、40、60、および 100% に設定されています。これらのパーセンテージは、40% しきい値の場合は最大 400 フレーム、60% しきい値の場合は最大 600 フレーム、100% しきい値の場合は最大 1000 フレームをキューイングできるという意味です。

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

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

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

 

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

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

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

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

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

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

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

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

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

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

 


) 共有が設定されている場合、SRR はプライオリティ キューを処理してから、他のキューを処理します。


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

 

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

キュー タイプ2
機能

標準

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

緊急

DiffServ 緊急転送または音声トラフィックなどのハイプライオリティ ユーザ トラフィック。このトラフィックに必要な帯域幅は、 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 コマンドを使用します。CPU によって生成されたトラフィックにキューおよびしきい値を指定するには、mls qos srr-queue output cpu queue id threshold id グローバル コンフィギュレーション コマンド を使用します。

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

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

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

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

 


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


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

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

図 34-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 コマンドを使用します。CPU によって生成されたトラフィックにキューおよびしきい値を指定するには、mls qos srr-queue output cpu queue id threshold id グローバル コンフィギュレーション コマンド を使用します。

キューセットは 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 処理

「Cisco IP-SLA」

「TWAMP」

「IP-SLA および TWAMP プローブ用の QoS 処理」

「CPU によって生成されたトラフィックの QoS マーキング」

「CPU によって生成されたトラフィックの QoS キューイング」

「設定時の注意事項」

Cisco IP-SLA

Cisco IP Service Level Agreement(IP SLA; IP サービス レベル契約)の詳細については、「Cisco IOS IP SLA の概要」を参照してください。

TWAMP

Two-Way Active Measurement Protocol(TWAMP)の詳細については、次を参照してください。

「TWAMP の概要」

「TWAMP の設定」

IP-SLA および TWAMP プローブ用の QoS 処理

IP-SLA および TWAMP のプローブ用の QoS 処理は、デバイスを通過する通常のデータ トラフィックに発生する影響を正確に反映する必要があります。

生成元デバイスはプローブのマーキングを変更してはいけません。これらのプローブは、設定されている通常トラフィックのキューイング ポリシーに基づいてキューに格納される必要があります。

マーキング

デフォルトでは、CFM トラフィックの Class of Service(CoS)マーキング(CFM プローブを使用する IP SLA を含む)は変更されません。この機能ではこの動作を変更できません。

デフォルトでは、他のすべてのレイヤ 2 非 IP トラフィックの CoS マーキングは変更されません。QoS マーキング機能ではこの動作を変更できます。

デフォルトでは、IP トラフィック マーキング(IP SLA および TWAMP プローブを含む)は変更されません。QoS マーキング機能ではこの動作を変更できます。

キューイング

通常のトラフィックと同様、CFM トラフィック(CFM プローブを使用する IP SLA を含む)は、このトラフィックの CoS 値および出力ポートに設定された出力ポリシー マップに応じてキューに格納されます。この機能ではこの動作を変更できません。

デフォルトでは、他のすべてのレイヤ 2 非 IP トラフィックは、出力ポートのキューにスタティックにマッピングされます。ただし、この機能ではキューイング動作を変更できます。このトラフィックは、 cpu traffic qos グローバル コンフィギュレーション コマンドで指定された CoS マーキングおよびグローバル CoS/キュー マッピングに従ってキューに格納されます。

デフォルトでは、すべての IP トラフィック(IP SLA および TWAMP のプローブを含む)は、出力ポートのキューにスタティックにマッピングされます。ただし、この機能ではキューイング動作を変更できます。すべての IP トラフィックは、 cpu traffic qos グローバル コンフィギュレーション コマンドで指定された CoS、DSCP、または precedence のマーキングおよびそれに対応するグローバル CoS/キュー、DSCP/キュー、または precedence/キューのマッピングに従ってキューに格納されます。


) この機能によって、MLS QoS マーキングおよび CPU トラフィックのキューイング機能が強化されます。Enhanced Services(ES)ポート上に設定された出力 MQC QoS ポリシー マップの使用による、マーキングおよびキューイング機能のアベイラビリティへの影響はありません。


CPU によって生成されたトラフィックの QoS マーキング

Cisco IOS リリース 12.2(52)SE 以降のリリースでは、QoS マーキングを使用して CPU からのトラフィックのアトリビュートを設定または変更できます。QoS マーキング処理によって、パケット内の CoS、IP DSCP、または IP precedence のビットを書き換えたり変更せずに残したりできます。QoS はパケット マーキングを使用して、ローカル スイッチおよびネットワーク上で特定のトラフィック タイプを識別し、QoS がこれらのトラフィックを処理する方法を指定します。


) QoS マーキングを設定するには、mls qos グローバル コンフィギュレーション コマンドを使用して、まず Multilayer Switch(MLS; マルチレイヤ スイッチ)QoS をイネーブルにする必要があります。


MLS QoS がディセーブルの場合は、すべての CPU トラフィックにデフォルト動作が適用されます。つまり、スイッチが QoS マーキングのコマンドを受け付け、MLS QoS がイネーブルになると有効になります。

CPU によって生成されたトラフィックを指定してマーキングするには、次のグローバル コンフィギュレーション コマンドを使用します。

cpu traffic qos cos { cos_value | trust }

cpu traffic qos dscp { dscp_value | trust | dscp-mutation mutation-map-name }

cpu traffic qos precedence { precedence_value | trust | precedence-mutation mutation-map-name }

CFM を使用しない非 IP CPU トラフィックには、次のようなマーキング オプションがあります。

CoS 値を設定するには、 cos_value 引数を指定して cpu traffic qos cos グローバル コンフィギュレーション コマンドを使用します。

着信フレーム内の CoS 値を信頼し、設定可能な CoS/DSCP マップを使用してパケットの DSCP 値を生成するには、 trust キーワードを指定して cpu traffic qos cos グローバル コンフィギュレーション コマンドを使用します。


) DSCP または precedence 値を設定したり、着信フレーム内の DSCP または precedence 値を信頼しても、非 IP トラフィックには影響ありません。


IP CPU トラフィックには、次のようなマーキング オプションがあります。

CoS 値を設定するには、 cos_value 引数を指定して cpu traffic qos cos グローバル コンフィギュレーション コマンドを使用します。

着信フレーム内の CoS 値を信頼し、設定可能な CoS/DSCP マップを使用してパケットの DSCP 値を生成するには、 trust キーワードを指定して cpu traffic qos cos グローバル コンフィギュレーション コマンドを使用します。

DSCP 値を設定するには、 dscp_value 引数を指定して cpu traffic qos dscp グローバル コンフィギュレーション コマンドを使用します。

着信フレーム内の DSCP 値を信頼し、設定可能な DSCP/CoS マップを使用してパケットの CoS 値を生成するには、 trust キーワードを指定して cpu traffic qos dscp グローバル コンフィギュレーション コマンドを使用します。

着信フレームの DSCP 値を変更し、設定可能な DSCP/CoS マップを使用してパケットの CoS 値を生成するには、 dscp-mutation キーワードおよび mutation-map-name 引数を指定して cpu traffic qos dscp グローバル コンフィギュレーション コマンドを使用します。

precedence 値を設定するには、 precedence_value 引数を指定して cpu traffic qos precedence グローバル コンフィギュレーション コマンドを使用します。

着信フレーム内の precedence 値を信頼し、設定可能な IP precedence/DSCP マップを使用してパケットの DSCP 値を生成し、設定可能な DSCP/CoS マップを使用してパケットの CoS 値を生成するには、 trust キーワードを指定して cpu traffic qos precedence グローバル コンフィギュレーション コマンドを使用します。

着信フレームの precedence 値を変更するには、 precedence-mutation キーワードおよび mutation-map-name 引数を指定して cpu traffic qos precedence グローバル コンフィギュレーション コマンドを使用します。IP precedence/DSCP マップを使用して precedence 値から DSCP 値を生成してから、設定された DSCP 変換マップを使用して変更された DSCP 値を生成します。設定可能な DSCP/CoS マップを使用して、パケットの CoS 値を生成します。

CPU によって生成されたトラフィックの QoS キューイング

cpu traffic qos グローバル コンフィギュレーション コマンドで CPU によって生成されたトラフィックに設定された QoS マーキング、およびグローバル QoS マーキング/キュー マッピングによって、出力ポートのキューが識別されます。

デフォルトでは、CPU トラフィックはキュー 2、しきい値 1 に割り当てられます。

CFM CPU トラフィックには、次のようなキューイング オプションがあります。

着信フレーム内の CoS 値を信頼し、設定可能な CoS/キュー マップまたは CoS/しきい値マップを使用してパケットに対してキューまたはしきい値を選択するには、 trust キーワードを指定して cpu traffic qos cos グローバル コンフィギュレーション コマンドを使用します。

すべての非 CFM CPU トラフィックには、次のキューイング オプションがあります。

出力キューおよびしきい値を指定するには、 mls qos srr-queue output cpu-queue グローバル コンフィギュレーション コマンドを使用します。

非 IP の非 CFM CPU トラフィックには、次のようなオプションがあります。

CoS 値を設定するには、 cos_value 引数を指定して cpu traffic qos cos グローバル コンフィギュレーション コマンドを使用します。次に、設定可能な CoS/キュー マップまたは CoS/しきい値マップを使用して、パケットに対してキューまたはしきい値を選択します。

着信フレーム内の CoS 値を信頼し、設定可能な CoS/キュー マップまたは CoS/しきい値マップを使用してパケットに対してキューまたはしきい値を選択するには、 trust キーワードを指定して cpu traffic qos cos グローバル コンフィギュレーション コマンドを使用します。


) DSCP/キュー マップは非 IP トラフィックに影響を与えません。


IP CPU トラフィックには、次のようなキューイング オプションがあります。

CoS 値を設定するには、 cos_value 引数を指定して cpu traffic qos cos グローバル コンフィギュレーション コマンドを使用します。次に、設定可能な CoS/キュー マップまたは CoS/しきい値マップを使用して、パケットに対してキューまたはしきい値を選択します。

着信フレーム内の CoS 値を信頼し、設定可能な CoS/キュー マップまたは CoS/しきい値マップを使用してパケットに対してキューまたはしきい値を選択するには、 trust キーワードを指定して cpu traffic qos cos グローバル コンフィギュレーション コマンドを使用します。

DSCP 値を設定するには、 dscp_value 引数を指定して cpu traffic qos dscp グローバル コンフィギュレーション コマンドを使用します。次に、設定可能な DSCP/キュー マップまたは DSCP/しきい値マップを使用して、パケットに対してキューまたはしきい値を選択します。

着信フレーム内の DSCP 値を信頼するには、 trust キーワードを指定して cpu traffic qos dscp グローバル コンフィギュレーション コマンドを使用します。次に、設定可能な DSCP/キュー マップまたは DSCP/しきい値マップを使用して、パケットに対してキューまたはしきい値を選択します。

着信フレームの DSCP 値を変更するには、 dscp-mutation キーワードおよび mutation-map-name 引数を指定して cpu traffic qos dscp グローバル コンフィギュレーション コマンドを使用します。次に、設定可能な DSCP/キュー マップまたは DSCP/しきい値マップを使用して、パケットに対してキューまたはしきい値を選択します。

precedence 値を設定するには、 precedence_value 引数を指定して cpu traffic qos precedence グローバル コンフィギュレーション コマンドを使用します。次に、設定可能な DSCP/キュー マップまたは DSCP/しきい値マップを使用して、パケットに対してキューまたはしきい値を選択します。

着信フレーム内の precedence 値を信頼するには、 trust キーワードを指定して cpu traffic qos precedence グローバル コンフィギュレーション コマンドを使用します。次に、設定可能な IP precedence/DSCP マップを使用して DSCP 値を生成してから、設定可能な DSCP/キュー マップまたは DSCP/しきい値マップを使用して、パケットに対してキューまたはしきい値を選択します。

着信フレームの precedence 値を変更するには、 precedence-mutation キーワードおよび mutation-map-name 引数を指定して cpu traffic qos precedence グローバル コンフィギュレーション コマンドを使用します。IP precedence/DSCP マップを使用して precedence 値から DSCP 値を生成します。設定された DSCP 変換マップを使用して、変更された DSCP 値を生成します。次に、設定可能な DSCP/キュー マップまたは DSCP/しきい値マップを使用して、パケットに対してキューまたはしきい値を選択します。

設定時の注意事項

この機能はスイッチでグローバルに設定する必要があります。ポート単位またはプロトコル単位では設定できません。

個別の回線上でそれぞれ cpu traffic qos マーキング処理を入力します。

trust キーワードを指定すると、スイッチは着信 CoS、DSCP、または precedence 値を信頼するように設定され、パケットはグローバル マップ設定に従ってマーキングされます。

mutation キーワードを指定すると、スイッチはグローバル変換マップ設定に従って着信値を変更するように設定されます。

CoS を信頼するようにスイッチを設定すると、この設定は IP トラフィックと非 IP トラフィックの両方に適用されます。

DSCP または precedence を信頼または変更し、CoS を信頼または変更しないようにスイッチを設定すると、この設定は IP トラフィックだけに適用されます。

CoS を信頼し、DSCP または precedence は信頼または変更するようにスイッチを設定すると、信頼された CoS は非 IP トラフィックに適用され、信頼または変更された DSCP または precedence は IP トラフィックに適用されます。

cpu traffic qos cos グローバル コンフィギュレーション コマンドは、CoS を信頼するか CoS 値を指定して CPU によって生成されたトラフィックの CoS マーキングを設定しますが、両方を実行することはありません。新しく設定を行うと、既存の設定は置き換えられます。

cpu traffic qos dscp グローバル コンフィギュレーション コマンドは、DSCP の信頼、DSCP の変換、または DSCP 値の指定により、CPU によって生成されたトラフィックの DSCP マーキングを設定します。新しく設定を行うと、既存の設定は置き換えられます。

cpu traffic qos precedence グローバル コンフィギュレーション コマンドは、precedence の信頼、precedence の変換、または precedence 値の指定により、CPU によって生成されたトラフィックの precedence マーキングを設定します。新しく設定を行うと、既存の設定は置き換えられます。

cpu traffic qos dscp グローバル コンフィギュレーション コマンドと cpu traffic qos precedence グローバル コンフィギュレーション コマンドは相互に排他的です。新しく設定を行うと、既存の設定は置き換えられます。


mls qos srr-queue output cpu-queue グローバル コンフィギュレーション コマンドを使用すると、上記のキュー マッピング設定オプションはすべて変更されます。


階層型 QoS の概要

スイッチは、ES ポートの入力または出力に適用される階層型 QoS 設定(トラフィック分類、CBWFQ、LLQ、シェーピング、および 2 つのレートと 3 つのカラーによるポリシング)をサポートします。Cisco IOS リリース 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 クラスが含まれている場合に、設定を行うには police cir police cir percent 、および shape コマンドを使用する必要があります。

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

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

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

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

トラフィック クラスの送信速度を制限して、パケットごとにアクション(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 に使用されます(図 34-11 を参照)。

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

 

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

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

このトークン バケットの例では、CIR レートが 2 Kb/s の場合、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 Kb/s、PIR が 200 Kb/s に設定されている場合に、250 Kb/s のレートのデータ ストリームに 2 つのレートを使用するポリサーが適用されると、パケット マーキング アクションは次のようになります。

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

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

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

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

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

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

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

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

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

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

LLQ

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

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

シェーピング

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

EtherChannel の階層型 QoS

Cisco IOS リリース 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 をイネーブルにすると、トラフィック タイプおよび入力パケット ラベルに基づいてトラフィックを自動的に分類します。スイッチは分類した結果を使用して適切な出力キューを選択します。

自動 QoS コマンドを使用して Cisco IP Phone、および Cisco SoftPhone アプリケーションを実行するデバイスに接続するポートを指定します。また、アップリンクを介して信頼のおけるトラフィックを受信するポートを指定します。自動 QoS は以下の機能を実行します。

IP Phone の有無の検知

QoS 分類の設定

出力キューの設定

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

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

「コンフィギュレーションにおける自動 QoS の影響」

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

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

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

「自動 QoS 設定例」

生成される自動 QoS 設定

デフォルトでは、自動 QoS はすべてのポートでディセーブルです。

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

 

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

VoIP3 データ トラフィック
VoIP Control
Traffic
ルーティング プロトコル トラフィック
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

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

 

表 34-4 入力キューに対する auto-QoS の設定

入力キュー
キュー番号
CoS からキューへのマッピング
キューの重み(帯域幅)
キュー(バッファ)サイズ

SRR 共有

1

0、1

81%

67%

プライオリティ

2

2、3、4、5、6、7

19%

33%

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

 

表 34-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%


) mls qos グローバル コンフィギュレーション コマンドを入力して QoS を有効にしてから、CPU によって生成されたトラフィックの QoS パラメータを設定する必要があります。このようにしないと、CPU トラフィック QoS コマンド設定が適用されません。QoS パラメータを設定するには、cpu traffic qos グローバル コンフィギュレーション コマンドを使用します。


最初のポートで auto-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 ラベルを信頼しないように設定されます。スイッチは 表 34-4 および 表 34-5 の設定に従って、ポートに入力キューおよび出力キューを設定します。

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

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

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

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


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


 

表 34-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 が生成したコマンドを、Command Line Interface(CLI; コマンドライン インターフェイス)から入力したように適用します。既存のユーザ設定により、生成されたコマンドの適用に失敗したり、生成されたコマンドでユーザ設定が上書きされることがあります。これらのアクションは、警告を表示せずに実行されます。生成されたコマンドがすべて正常に適用された場合、上書きされなかったユーザ入力の設定は実行コンフィギュレーション内に残ります。上書きされたユーザ入力の設定は、現在の設定をメモリに保存せずに、スイッチをリロードすると復元できます。生成されたコマンドが適用されなかった場合は、元の実行コンフィギュレーションが復元されます。

自動 QoS 設定時の注意事項

自動 QoS を設定する前に、次の事項を確認してください。

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

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


) Cisco SoftPhone が稼動するデバイスが非ルーテッド ポートまたはルーテッド ポートに接続されている場合、スイッチは 1 ポートにつき Cisco SoftPhone アプリケーションを 1 つだけサポートします。


自動 QoS の設定を利用する場合、他の QoS コマンドを実行する前に自動 QoS をイネーブルにする必要があります。必要に応じて QoS 設定を微調整できますが、自動 QoS が完了したあとにだけ調整することを推奨します。詳細については、「コンフィギュレーションにおける自動 QoS の影響」を参照してください。

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

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

デフォルトでは、CDP 機能はすべてのポート上でイネーブルです。自動 QoS が適切に動作するために、CDP をディセーブルにしないでください。

ルーテッド ポートで Cisco IP Phone の自動 QoS をイネーブルにすると、スタティック IP アドレスを IP Phone に割り当てます。

このリリースは、Cisco IP SoftPhone バージョン 1.3(3) 以降だけをサポートします。

接続される装置は Cisco CallManager バージョン 4 以降を使用する必要があります。

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

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

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

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

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

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

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

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

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

QoS ドメイン内で VoIP 用の自動 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 設定を表示するもので、ユーザによる有効な設定変更は反映されません。自動 QoS 設定およびユーザの変更を表示するには、 show running-config 特権 EXEC コマンドを使用します。

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

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

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

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

自動 QoS 設定例

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

図 34-13 ネットワークでの自動 QoS の設定例

 

図 34-13図 34-13 に、VoIP トラフィックを他のすべてのトラフィックに優先するネットワークを示します。QoS ドメインのエッジにあるワイヤリング クローゼット内のスイッチ上で、自動 QoS はイネーブルです。


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


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

 

コマンド
目的

ステップ 1

debug auto qos

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

ステップ 2

configure terminal

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

ステップ 3

cdp enable

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

信頼できるスイッチまたはルータに接続されていると識別されたポートを指定します。図 34-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 設定を特定できます。

auto-QoS の影響を受ける可能性のある現在の QoS の設定情報を表示するには、次のいずれかのコマンドを使用します。

show cpu traffic 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 値は変更されない)ため、信頼できるポートまたは信頼できないポートといった概念は存在しません。トラフィックは Pass-Through モードでスイッチングされます(パケットは書き換えられることなくスイッチングされ、ポリシングなしのベスト エフォートに分類されます)。

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

入力キュー設定

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

 

表 34-7 入力キュー設定

機能
キュー 1
キュー 2

バッファ割り当て

90%

10%

帯域幅割り当て 4

4

4

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

0

10

WTD ドロップしきい値 1

100%

100%

WTD ドロップしきい値 2

100%

100%

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

5.キュー 2 はプライオリティ キューです。共有が設定されている場合、SRR はプライオリティ キューを処理してから、他のキューを処理します。

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

 

表 34-8 CoS 入力キューしきい値マップ

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

0 ~ 4

1-1

5

2-1

6、7

1-1

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

 

表 34-9 DSCP 入力キューしきい値マップ

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

0 ~ 39

1-1

40 ~ 47

2-1

48 ~ 63

1-1

出力キューセット設定

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

 

表 34-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 が各キューに割り当てられます。

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

 

表 34-11 CoS 出力キューしきい値マップ

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

0、1

2-1

2、3

3-1

4

4-1

5

1-1

6、7

4-1

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

 

表 34-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 マップは、表 34-13 のとおりです。

IP precedence/DSCP マップは、表 34-14 のとおりです。

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

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

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

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

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

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

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

Cisco IOS リリース 12.2(44)SE 以降では、mls qos グローバル コンフィギュレーション コマンドをディセーブルにして cpu traffic qos グローバル コンフィギュレーション コマンドを明示的に設定しない場合、スイッチでデフォルト動作が使用されます。CPU によって生成されたトラフィック、およびキュー 1 にキューイングされたすべてのパケットは、デフォルトでマーキングされません。

Cisco IOS リリース 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 ポートでは、出力時に IEEE 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 つに設定できます。図 34-14 に、ネットワーク トポロジの例を示します。

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

 

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

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

interface interface-id

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

指定できるインターフェイスには、物理ポートも含まれます。

ステップ 3

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

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

デフォルトでは、ポートは trusted ではありません。キーワードを指定しない場合、デフォルトは dscp です。

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

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

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

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

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

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

ステップ 4

end

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

ステップ 5

show mls qos interface

設定を確認します。

ステップ 6

copy running-config startup-config

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

untrusted ステートにポートを戻す場合は、 no mls qos trust インターフェイス コンフィギュレーション コマンドを使用します。

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

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

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

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

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

interface interface-id

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

指定できるインターフェイスとして、物理ポートも含まれます。

ステップ 3

mls qos cos { -cos | override }

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

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

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

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

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

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

ステップ 4

end

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

ステップ 5

show mls qos interface

設定を確認します。

ステップ 6

copy running-config startup-config

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

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

ポート セキュリティを確保するための信頼境界機能の設定

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

ほとんどの Cisco IP Phone 設定では、電話からスイッチへ送信されるトラフィックは、音声トラフィックがネットワーク内の他のタイプのトラフィックに対して適切にプライオリティ付けがされていることを保証するように信頼されています。 mls qos trust cos インターフェイス コンフィギュレーション コマンドを使用して、ポートで受信されるすべてのトラフィックの CoS ラベルを信頼するように、電話が接続されているスイッチ ポートを設定します。

信頼設定により、ユーザが電話をバイパスして PC を直接スイッチに接続する場合に、ハイ プライオリティ キューの誤使用を避けるのにも信頼境界機能を使用できます。信頼境界機能を使用しないと、(信頼性のある CoS 設定により)PC が生成した 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 値を信頼するように、ポートを設定します。デフォルトでは、ポートは trusted ではありません。

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

Cisco IOS リリース 12.1(14)AX2 以降のリリースでは、スイッチは DSCP 透過機能をサポートします。この機能は発信パケットの DSCP フィールドだけに作用します。デフォルトでは、DSCP 透過性はディセーブルです。スイッチでは着信パケットの DSCP フィールドが変更され、発信パケットの DSCP フィールドは、ポートの信頼設定、ポリシングとマーキング、DSCP/DSCP 変換マップを含めて Quality of Service(QoS)に基づきます。

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

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

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

特権 EXEC モードを開始して、透過的な DSCP 機能をスイッチでイネーブルにするには、次の手順を実行します。

 

コマンド
目的

ステップ 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 trusted ステートに設定できます(図 34-15 を参照)。それにより、受信ポートでは DSCP trusted 値をそのまま使用し、QoS の分類手順が省略されます。2 つのドメインで異なる DSCP 値が使用されている場合は、他のドメイン内での定義に一致するように一連の DSCP 値を変換する DSCP/DSCP 変換マップを設定できます。

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

 

ポート上に DSCP trusted ステートを設定して、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 には、1 つの DSCP 値を入力します。

DSCP の範囲は 0 ~ 63 です。

ステップ 3

interface interface-id

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

指定できるインターフェイスとして、物理ポートも含まれます。

ステップ 4

mls qos trust dscp

DSCP trusted ポートとして入力ポートを設定します。デフォルトでは、ポートは trusted ではありません。

ステップ 5

mls qos dscp-mutation dscp-mutation-name

指定された DSCP trusted 入力ポートにマップを適用します。

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

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

ステップ 6

end

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

ステップ 7

show mls qos maps dscp-mutation

設定を確認します。

ステップ 8

copy running-config startup-config

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

nontrusted ステートにポートを戻す場合は、 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 には、source に適用されるワイルドカード ビットをドット付き 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.00.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 グローバル コンフィギュレーション コマンドを使用します。

次に、任意の送信元から、DSCP 値が 32 に設定されている任意の宛先への IP トラフィックを許可する 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 または Subnetwork Access Protocol(SNAP; サブネットワーク アクセス プロトコル)でカプセル化されたパケットの Ethertype 番号を指定して、パケットのプロトコルを識別します。 type の範囲は 0 ~ 65535 です。通常は 16 進数で指定します。 mask には、一致をテストする前に Ethertype に適用される 無視(don't care) ビットを入力します。

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

ステップ 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 つの許可(permit)ステートメントを指定したレイヤ 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 標準または IP 拡張 ACL、または非 IP トラフィック用のレイヤ 2 MAC ACL を作成し、必要な回数だけコマンドを繰り返します。

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

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

ステップ 3

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

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

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

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

(任意)このクラス マップ配下のすべての一致ステートメントの論理 OR を実行するには、 match-any キーワードを使用します。1 つまたは複数の条件が一致していなければなりません。

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

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

ステップ 4

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

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

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

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

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

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

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

ステップ 5

end

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

ステップ 6

show class-map

設定を確認します。

ステップ 7

copy running-config startup-config

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

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

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

Switch(config)# access-list 103 permit ip 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

CPU によって生成されたトラフィックのマーキングおよびキューイング

cpu traffic qos [cos value | dscp value | precedence value] グローバル コンフィギュレーション コマンドおよび mls qos srr-queue output cpu queue id threshold id グローバル コンフィギュレーション コマンドを入力し、CPU によって生成されたコントロール プレーン トラフィックのマーキングとキューイングを行うことができます。このコマンドを使用し、CPU によって生成されたコントロール プレーン パケットをある値でマーキングし、4 つの出力キューのうちいずれかにトラフィックをマッピングできます。

CoS、DSCP、IP precedence のいずれかの値でコントロール プレーン トラフィックをマーキングするには、cpu traffic qos グローバル コンフィギュレーション コマンドを使用します。イーサネット トラフィックまたは IP トラフィックの cpu traffic qos マーキングを設定すると、CPU によって生成されたコントロール プレーン トラフィックは、指定した値でマーキングされます。Connectivity Fault Management(CFM; 接続障害管理)トラフィックを除くすべてのコントロール プレーン トラフィックは、この値でマーキングされます。メッセージ処理に CFM レイヤを使用する Cisco IOS IP Service Level Agreement(SLA; サービス レベル契約)トラフィックは影響されません。しかし、UDP やその他のネットワーキング レイヤ プロトコルを使用する IP SLA トラフィックは、この機能によって影響されます。

cpu traffic qos 機能を使用するには、 mls qos global コンフィギュレーション コマンドをスイッチでグローバルに有効にする必要があります。 vlan dot1q tag native グローバル コンフィギュレーション コマンドを入力し、ネイティブ VLAN トラフィックをマーキングしてタグを付けることもできます。

CPU によって生成されたトラフィックに出力キューおよびしきい値を指定するには、mls qos srr-queue output cpu-queue グローバル コンフィギュレーション コマンドを使用します。デフォルト出力キューの値は 2 です。スイッチを通過する各パケットをキューおよびしきい値に割り当てることができます。特に、出力キューセットには DSCP または CoS 値、しきい値 ID には DSCP または CoS 値をマッピングします。mls qos srr-queue output dscp-map queue queue-id {dscp1...dscp8 | threshold threshold-iddscp1...dscp8} または mls qos srr-queue output cos-map queue queue-id {cos1...cos8 | thresholdthreshold-id cos1...cos8} グローバル コンフィギュレーション コマンドを使用します。

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

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

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

1 つのポリシー マップに、それぞれ異なる一致条件とポリサーを指定した複数のクラス ステートメントを指定できます。

ポリシー マップには、事前に定義されたデフォルトのトラフィック クラスを含めることができます。デフォルトのトラフィック クラスはマップの末尾に明示的に配置されます。

1 つのポートから受信されたトラフィック タイプごとに、別々のポリシー マップ クラスを設定できます。

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

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

入力ポートごとに付加できるポリシー マップは、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 ポリシー マップ クラス コンフィギュレーション コマンドを使用します。

class class-default ポリシー マップ コンフィギュレーション コマンドを使用してデフォルトのトラフィック クラスを設定した場合、分類されないトラフィック(トラフィック クラスで指定された一致条件を満たさないトラフィック)はデフォルトのトラフィック クラス( class-default )として処理されます。

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

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

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

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

policy-map policy-map-name

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

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

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

ステップ 3

class [ class-map-name | class-default ]

トラフィックの分類を定義し、ポリシー マップ クラス コンフィギュレーション モードを開始します。

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

すでに class-map グローバル コンフィギュレーション コマンドを使用してトラフィック クラスが定義されている場合は、このコマンドで class-map-name にその名前を指定します。

class-default トラフィック クラスは事前に定義されたもので、すべてのポリシーに追加できます。常にポリシー マップの末尾に配置されます。 class-default クラスに暗黙的な match any が含まれている場合、他のトラフィック クラスにまだ一致していないパケットはすべて class-default に一致します。

ステップ 4

trust [ cos | dscp | ip-precedence ]

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

デフォルトでは、ポートは trusted ではありません。キーワードが指定されず、コマンドが入力されている場合、デフォルトは 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 です。

コマンドと同じです。

ステップ 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 ポリシー マップ コンフィギュレーション コマンドを使用します。デフォルトの untrusted の状態に戻すには、 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
 

次に、IPv4 と IPv6 の両方のトラフィックに適用されるクラス マップを作成する例を示します。このクラス マップには、未分類のトラフィックに適用されるデフォルトのクラスがあります。

Switch(config)# ip access-list 101 permit ip any any
Switch(config)# ipv6 access-list ipv6-any permit ip any any
Switch(config)# class-map cm-1
Switch(config-cmap)# match access-group 101
Switch(config-cmap)# exit
Switch(config)# class-map cm-2
Switch(config-cmap)# match access-group name ipv6-any
Switch(config-cmap)# exit
Switch(config)# policy-map pm1
Switch(config-pmap)# class cm-1
Switch(config-pmap-c)# set dscp 4
Switch(config-pmap-c)# exit
Switch(config-pmap)# class cm-2
Switch(config-pmap-c)# set dscp 6
Switch(config-pmap-c)# exit
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# set dscp 10
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface G0/1
Switch(config-if)# switch mode access
Switch(config-if)# service-policy input pm1
 

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

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

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

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

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

入力ポートまたは SVI ごとに付加できるポリシー マップは、1 つだけです。

1 つのポリシー マップに、それぞれ異なる一致条件とアクションを指定した複数のクラス ステートメントを指定できます。

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

ポリシー マップには、事前に定義されたデフォルトのトラフィック クラスを含めることができます。デフォルトのトラフィック クラスはマップの末尾に明示的に配置されます。

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

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

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

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

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

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

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

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

階層型デュアルレベル ポリシー マップを作成するには、特権 EXEC モードで次の手順を実行します。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

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

VLAN レベルのクラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。クラス マップの作成については、 「クラス マップによる入力トラフィックの分類」 を参照してください。

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

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

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

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

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

でもキーワードの機能は変わりません。

ステップ 3

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

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

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

クラス マップごとにサポートされる一致条件は 1 つだけです。また、クラス マップごとにサポートされる ACL は 1 つだけです。

access-group acl-index-or-name には、ACL の番号または名前を指定します。

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

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

ステップ 4

exit

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

ステップ 5

exit

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

ステップ 6

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

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

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

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

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

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

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

でもキーワードの機能は変わりません。

ステップ 7

match input-interface interface-id-list

インターフェイス レベルのクラス マップを実行する物理ポートを指定します。次の方法で、最大 6 つ指定できます。

単一のポート(1 つのエントリとしてカウントされます)

スペースで区切られたポートのリスト(各ポートが 1 つのエントリとしてカウントされます)

ハイフンで区切られたポートの範囲(2 つのエントリとしてカウントされます)

このコマンドは、子レベルのポリシー マップでのみ使用でき、子レベルのポリシー マップ内での唯一の一致条件である必要があります。

ステップ 8

exit

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

ステップ 9

exit

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

ステップ 10

policy-map policy-map-name

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

デフォルトでは、ポリシー マップは定義されておらず、ポリサーも実行されていません。

ステップ 11

class [ class-map-name | class-default ]

トラフィックの分類を定義し、ポリシー マップ クラス コンフィギュレーション モードを開始します。

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

すでに class-map グローバル コンフィギュレーション コマンドを使用してトラフィック クラスが定義されている場合は、このコマンドで class-map-name にその名前を指定します。

class-default トラフィック クラスは事前に定義されたもので、すべてのポリシーに追加できます。常にポリシー マップの末尾に配置されます。 class-default クラスに暗黙的な match any が含まれている場合、他のトラフィック クラスにまだ一致していないパケットはすべて class-default に一致します。

ステップ 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 が使用する信頼状態を設定します。

コマンドを入力する場合は、ステップ 18 を省略してください。

デフォルトでは、ポートは trusted ではありません。キーワードが指定されず、コマンドが入力されている場合、デフォルトは 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 ポリシー マップ コンフィギュレーション コマンドを使用します。

ポリシー マップで デフォルトの untrusted の状態に戻すには、 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)# class class-default
Switch(config-pmap-c)# set dscp 10
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 マップを使用します。

表 34-13 に CoS/DSCP マップを示します。

 

表 34-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 マップを使用します。

表 34-14 に IP precedence/DSCP マップを示します。

 

表 34-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 マップを使用します。

表 34-15 に DSCP/CoS マップを示します。

 

表 34-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 値が 08 の場合、対応する 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 には、1 つの DSCP 値を入力します。

DSCP の範囲は 0 ~ 63 です。

ステップ 3

interface interface-id

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

指定できるインターフェイスとして、物理ポートも含まれます。

ステップ 4

mls qos trust dscp

DSCP trusted ポートとして入力ポートを設定します。デフォルトでは、ポートは trusted ではありません。

ステップ 5

mls qos dscp-mutation dscp-mutation-name

指定された DSCP trusted 入力ポートにマップを適用します。

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 とドロップしきい値 50% のしきい値 1 にマッピングする方法を示します。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 グローバル コンフィギュレーション コマンドを使用します。

次の例では、入力キュー 1 にバッファ スペースの 60% を、入力キュー 2 にバッファ スペースの 40% を割り当てる方法を示します。

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 ソリューションの複雑さに応じて、次に示す作業をすべて実行しなければならない場合があります。次の特性を決定する必要があります。

DSCP 値または CoS 値によって各キューおよびしきい値 ID にマッピングされるパケット

キューセット(ポートごとの 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 と 1/3 倍であることを示します。

Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# srr-queue bandwidth share 1 2 3 4

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

Cisco IOS リリース 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 つずつ増加するよう調整しているので、この値は厳密ではありません。

CPU によって生成されたトラフィックのマーキングおよびキューイングの設定

CPU によって生成されたトラフィックのマーキングおよびキューイングを設定するには、特権 EXEC モードで次の手順を実行します。この手順は任意です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

CoS/DSCP、DSCP/CoS、IP precedence/DSCP、および DSCP 変換グローバル マップを設定します。

「DSCP マップの設定」を参照してください。

ステップ 3

cpu traffic qos cos { cos-value | trust}

CPU トラフィックの CoS 値をマーキングします。

新しい CoS 値を入力するには、 cos-value を使用します。指定できる範囲は 0 ~ 7 です。値を設定しなかった場合は、パケットごとにプロトコル固有の値が適用されます。

着信 CoS 値を信頼するには、 trust キーワードを使用します。

ステップ 4

cpu traffic qos dscp { dscp_value | trust | dscp-mutation mutation-map-name }

CPU トラフィックの DSCP 値をマーキングします。

新しい DSCP 値を入力するには、 dscp_value を使用します。指定できる範囲は 0 ~ 63 です。値を設定しなかった場合は、パケットごとにプロトコル固有の値が適用されます。

着信 DSCP 値を信頼するには、 trust キーワードを使用します。

設定済みの変換マップに基づいて着信 DSCP 値を変換するには、 dscp-mutation キーワードを使用します。

ステップ 5

cpu traffic qos precedence { precedence_value | trust | precedence-mutation mutation-map-name }

CPU トラフィックの precedence 値をマーキングします。

新しい IP precedence 値を 0 ~ 7 の番号または名前で入力するには、 precedence_value を使用します。使用できる名前および番号は、 routine 0 )、 priority 1 )、 immediate 2 )、 flash 3 )、 flash-override 4 )、 critical 5 )、 internet 6 )、 network 7 )です。

値を設定しなかった場合は、パケットごとにプロトコル固有の値が適用されます。

着信 precedence 値を信頼するには、 trust キーワードを使用します。

設定済みの変換マップに基づいて着信 precedence 値を変換するには、 precedence-mutation キーワードを使用します。

ステップ 6

end

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

ステップ 7

グローバル マップを設定して、キューおよびしきい値番号に QoS マーキングをマップします。

「出力キューセットおよびしきい値 ID への DSCP または CoS 値のマッピング」を参照してください。

ステップ 8

copy running-config startup-config

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

ステップ 9

show running-config

設定したグローバル マップと CPU トラフィックの QoS 設定を表示します。

ステップ 10

show cpu traffic qos

CPU によって生成されたトラフィックの QoS マーキング値を表示します。

ステップ 11

show mls qos maps

すべてのグローバル マップの情報を表示します。

コマンドをディセーブルにするには、このコマンドの no 形式を使用します。

例 1

次に、パケットの DSCP 値に基づいて CPU によって生成された IP トラフィック(IP-SLA および TWAMP を含む)の CoS をマーキングし、DSCP 値に基づいて出力キューイングを設定する例を示します。

この例の結果は次のとおりです。

CPU によって生成されたすべての IP トラフィックは、IP DSCP 値に基づいて出力ポートのキューに格納されます。

DSCP 値が ef 46 )であるすべての IP トラフィックは音声トラフィックのシミュレーションで、CoS 値 5 が割り当てられます。

DSCP 値が af41 34 )、 af42 36 )、および af43 38 )であるすべての IP トラフィックには CoS 値 4 が割り当てられます。

DSCP 値が 48 および 56 であるすべての Internet Control Protocol(ICP)トラフィックには CoS 値 7 が割り当てられます。

これ以外の IP トラフィックおよび非 IP トラフィックは、デフォルト設定に従って処理されます。

DSCP 値 46 はキュー 1 しきい値 1 にキューイングされます。

DSCP 値 34 36 38 はキュー 2 しきい値 3 にキューイングされます。

DSCP 値 48 56 はキュー 4 しきい値 2 にキューイングされます。

他のすべての CPU トラフィックは、デフォルト キュー 2 およびしきい値 1 を使用して出力されます。

マップ

 
Switch(config)# mls qos
Switch(config)# mls qos map dscp-cos 46 to 5
Switch(config)# mls qos map dscp-cos 34 36 38 to 4
Switch(config)# mls qos map dscp-cos 48 56 to 7

CPU QoS

 
Switch(config)# cpu traffic qos dscp trust

キューイング

 
Switch(config)# mls qos srr-queue output dscp-map queue 1 threshold 1 46
Switch(config)# mls qos srr-queue output dscp-map queue 2 threshold 3 34 36 38
Switch(config)# mls qos srr-queue output dscp-map queue 4 threshold 2 48 56

例 2

次に、パケットの DSCP 値に基づいて CPU によって生成された IP トラフィック(IP-SLA および TWAMP を含む)の DSCP をマーキングする例を示します。

この例の結果は次のとおりです。

DSCP 値が 0 であるすべての IP トラフィックには DSCP 値 30 が割り当てられます。

DSCP 値が af41 34 )、 af42 36 )、および af43 38 )であるすべての IP トラフィックには DSCP 値 48 が割り当てられます。

他のすべての IP トラフィックおよび非 IP トラフィックは、デフォルト設定によって処理されます。

マップ

 
Switch(config)# mls qos
Switch(config)# mls qos map dscp-mutation mapname 0 to 30
Switch(config)# mls qos map dscp-mutation mapname 34 36 38 to 48

CPU QoS

 
Switch(config)# cpu traffic qos dscp dscp-mutation mapname

例 3

次に、パケットの precedence 値に基づいて CPU によって生成された IP トラフィック(IP-SLA および TWAMP を含む)の precedence をマーキングする例を示します。

この例の結果は次のとおりです。

precedence 値が 0 である CPU によって生成されたすべての IP トラフィックには precedence 値 3 が割り当てられます。

precedence 値が 2 3 、および 4 である CPU によって生成されたすべての IP トラフィックには precedence 値 6 が割り当てられます。

他のすべての IP トラフィックおよび非 IP トラフィックは、デフォルト設定によって処理されます。

マップ

 
Switch(config)# mls qos
Switch(config)# mls qos map dscp-mutation mapname 0 to 24
Switch(config)# mls qos map dscp-mutation mapname 16 24 32 to 48

CPU QoS

 
Switch(config)# cpu traffic qos precedence precedence-mutation mapname

) IP DSCP および IP precedence は関連しています。着信パケットの precedence 値に基づいて IP パケットの precedence 値をマーキングするには、対応する DSCP 変換マップが設定されており、cpu traffic qos precedence precedence-mutation コマンドを使用する必要があります。キューイングはパケットの IP DSCP 値に基づいて行われます。


例 4

次に、パケットの CoS 値に基づいて CPU によって生成された IP トラフィック(IP-SLA および TWAMP を含む)の DSCP をマーキングし、CoS 値に基づいて出力キューイングを設定する例を示します。

この例の結果は次のとおりです。

CPU によって生成されたすべての IP トラフィックは、CoS 値に基づいて出力ポートのキューに格納されます。

CoS 値が 0 であるすべての IP トラフィックには DSCP 値 30 が割り当てられます。

CoS 値が 6 および 7 であるすべての IP トラフィックには DSCP 値 56 が割り当てられます。

他のすべての IP トラフィックおよび非 IP トラフィックは、デフォルト設定によって処理されます。

CoS 値 0 はキュー 1 しきい値 1 にキューイングされます。

CoS 値 6 および 7 はキュー 2 しきい値 3 にキューイングされます。

他のすべての CPU トラフィックは、デフォルト キュー 2 およびしきい値 1 を使用して出力されます。

マップ

 
Switch(config)# mls qos
Switch(config)# mls qos map cos-dscp 0 to 30
Switch(config)# mls qos map cos-dscp 6 7 to 56

CPU QoS

 
Switch(config)# cpu traffic qos cos trust

キューイング

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

例 5

次に、パケットの precedence 値に基づいて CPU によって生成された IP トラフィック(IP-SLA および TWAMP を含む)の CoS をマーキングし、DSCP 値に基づいて出力キューイングを設定する例を示します。

この例の結果は次のとおりです。

CPU によって生成されたすべての IP トラフィックは、IP DSCP 値に基づいて出力ポートのキューに格納されます。

precedence 値が 3 であるすべての IP トラフィックは音声トラフィックのシミュレーションで、CoS 値 5 が割り当てられます。

precedence 値が 4 および 5 であるすべての IP トラフィックには CoS 値 7 が割り当てられます。

他のすべての IP トラフィックおよび非 IP トラフィックは、デフォルト設定によって処理されます。

DSCP 値 24 (precedence 値 3 に相当)はキュー 1 しきい値 1 にキューイングされます。

DSCP 値 32 および 40 (precedence 値 4 および 5 に相当)はキュー 2 しきい値 3 にキューイングされます。

他のすべての CPU トラフィックは、デフォルト キュー 2 およびしきい値 1 を使用して出力されます。

マップ

 
Switch(config)# mls qos
Switch(config)# mls qos map dscp-cos 24 to 5
Switch(config)# mls qos map dscp-cos 32 40 to 7

CPU QoS

 
Switch(config)# cpu traffic qos precedence trust

キューイング

 
Switch(config)# mls qos srr-queue output dscp-map queue 1 threshold 1 24
Switch(config)# mls qos srr-queue output dscp-map queue 2 threshold 3 32 40

標準 QoS 情報の表示

標準 QoS 情報を表示するには、 表 34-16 の特権 EXEC コマンドを 1 つまたは複数使用します。

 

表 34-16 標準 QoS 情報を表示するためのコマンド

コマンド
目的

show class-map [ class-map-name ]

トラフィックを分類するための一致条件を定義した QoS クラス マップを表示します。

show cpu traffic qos

コントロール プレーン トラフィックの 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 ポートから EtherChannel ES ポートに送信されている場合に参照してください。

「階層型 QoS の設定」

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

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

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

階層型 QoS の設定

QoS はディセーブルです。

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

LLQ はディセーブルです。

CBWFQ はディセーブルです。

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

WRED はディセーブルです。

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

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

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


) スイッチでは、階層型 QoS などの特定の ES ポート固有の機能を含む IPv6 機能はサポートされていません。


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

Cisco IOS リリース 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 を照合する代わりに)IEEE 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 つのポリシー マップ内では、すべてのクラス帯域幅を Kb/s またはパーセント単位で指定できますが、これらを混在させることはできません。( service-policy ポリシー マップ クラス コンフィギュレーション コマンドを使用して設定された)子ポリシーでは、帯域幅を Kb/s 単位で指定できません。親ポリシーに対する割合として帯域幅を指定します。

子ポリシー マップでは、各クラス マップの最小帯域幅を、親ポリシー マップの総帯域幅の 0.01% より大きくする必要があります。子ポリシー マップで class-default クラスが設定されていない場合、この最小帯域幅マップは class-default クラスに予約されます。

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

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

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

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


) スイッチでは、階層型 QoS などの特定の ES ポート固有の機能を含む IPv6 関連の機能はサポートされていません。


階層型 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 リンクを備える EtherChannel に対して割合を設定する場合は、それぞれのポリサーを最大で 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 などの特定の ES ポート固有の機能を含む IPv6 機能はサポートされていません。


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

トラフィックの分類、ポリシング、マーキング、キューイング、またはスケジューリングを行う場合は、ご使用のネットワーク設定および QoS ソリューションに応じて、次の作業を 1 つまたは複数実行する必要があります。

「階層型クラス マップによるトラフィックの分類」(必須)

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

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

「CBWFQ およびテール ドロップの設定」(任意)

「CBWFQ および DSCP ベース WRED の設定」(任意)

「CBWFQ および IP precedence ベース WRED の設定」(任意)

「LLQ のイネーブル化」(任意)

「シェーピングの設定」(任意)

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

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

クラスレベルのクラス マップを作成し、トラフィックを分類するための一致条件を定義するには、特権 EXEC モードで次の手順を実行します。この手順は必須です。次に、クラスレベルおよび VLAN レベルのクラス マップを作成する例を示します。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

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

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

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

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

(任意)このクラス マップ配下のすべての一致ステートメントの論理 OR を実行するには、 match-any キーワードを使用します。1 つまたは複数の条件が一致していなければなりません。

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

match-all または match-any のどちらのキーワードも指定しない場合、デフォルトは match-all です。(単一の VLAN を照合する代わりに)IEEE 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 に基づいて、または(IEEE 802.1Q トンネリングが設定されている場合は)外部 VLAN ID に基づいて、パケットを比較します。
VLAN 番号で識別される単一の VLAN、またはハイフンで区切られた VLAN 範囲を指定できます。指定できる範囲は 1 ~ 4094 です。

vlan inner vlan-id の場合は、IEEE 802.1Q トンネルの内部 VLAN ID に基づいてパケットを比較します。VLAN 番号で識別される単一の VLAN、またはハイフンで区切られた VLAN 範囲を指定できます。指定できる範囲は 1 ~ 4094 です。

(単一 VLAN を比較する代わりに)IEEE 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 という名前の IEEE 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- クラスだけです。

ポリサーはトラフィック クラスの送信レートを制限し、パケットごとにアクション(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 Gb/s)が最大帯域幅になります。 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 ]]]

コマンドの構文の説明については、このリリースに対応するコマンド リファレンスを参照してください。

2 つのレート(CIR および PIR)を使用するトラフィック ポリサーを設定します。デフォルトでは、ポリサーは定義されていません。

cir cir には、最初のトークン バケットが更新される CIR を指定します。指定できる範囲は 64000 ~ 990000000 b/s です。

(任意) bc conform-burst には、ポリシング用の最初のトークン バケットで使用される適合バースト サイズを指定します。指定できる範囲は 1536 ~ 16776960 バイトです。デフォルト値は 8192 です。

pir pir には、ポリシング用の 2 番めのトークン バケットが更新される PIR を指定します。指定できる範囲は 64000 ~ 990000000 b/s です。

(任意) be peak-burst には、2 番めのトークン バケットで使用されるピーク バースト サイズを指定します。指定できる範囲は 1536 ~ 16776960 バイトです。デフォルト値は 8192 です。

(任意) conform-action には、CIR および PIR に適合するパケットに対して実行されるアクションを指定します。

(任意) exceed-action には、PIR に適合し、CIR に適合しないパケットに対して実行されるアクションを指定します。

(任意) violate-action には、PIR を超過するパケットに対して実行されるアクションを指定します。

は廃棄です。

(任意) 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 から削除されます。


次に、2 つのレートを使用するクラスレベルのトラフィック ポリサーを設定して、平均確定レートの 500 Kb/s およびピーク レートの 1 Mb/s に発信トラフィックを制限する方法の例を示します。平均確定レート(500 Kb/s)に準拠するとしてマーキングされたトラフィックは現状のままで送信されます。500 Kb/s を超過し、1 Mb/s を超過しないとしてマーキングされたトラフィックは、IP precedence 2 がマーキングされて、送信されます。1 Mb/s を超過するとしてマーキングされたすべてのトラフィックは、廃棄されます。バースト パラメータは 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
 

次に、2 つのレートを使用する VLAN レベルのトラフィック ポリサーを設定して、平均確定レートの 500 Kb/s およびピーク レートの 1 Mb/s に発信トラフィックを制限する方法の例を示します。平均確定レート(500 Kb/s)に準拠するとしてマーキングされたトラフィックは現状のままで送信されます。500 Kb/s を超過し、1 Mb/s を超過しないとしてマーキングされたトラフィックは、IP precedence 2 がマーキングされて、送信されます。1 Mb/s を超過するとしてマーキングされたすべてのトラフィックは、廃棄されます。バースト パラメータは 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- は、親ポリシーと一致するにもかかわらず、ポリシー マップ内の明示的な一致条件と一致しないすべてのトラフィックに適用されます。親ポリシーが設定されていない場合、親ポリシーは物理ポートを表します。物理レベル ポリシー マップでは、class- 以外のクラスを設定できません。

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-
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 にリセットされます。

次に、log-policy という名前の VLAN レベル ポリシー マップを作成する例を示します。

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
 

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 はこのウェイトを使用して、このクラスのキューを適正に処理します。

デフォルトでは、帯域幅は指定されていません。

帯域幅は Kb/s 単位または割合で指定できます。

bandwidth-kbps には、クラスに割り当てる帯域幅 を Kb/s 単位で指定します。指定できる範囲は 200 ~ 2000000 です。帯域幅は 100 Kb/s の増分値で割り当てます。この増分値に従わない値を割り当てると、100 Kb/s の増分値に最も近い値に帯域幅が切り捨てられます。

percent percent には、クラスに割り当てることができる帯域幅の割合を指定します。指定できる範囲は 1 ~ 100 です。1 つのポリシー マップ内のクラス帯域幅の割合の合計が 99% を超えることはできません。割合は、親クラス(クラスが親である場合は物理レベル)で使用可能な帯域幅に基づいて計算されます。

すべてのクラス帯域幅は Kb/s またはパーセント単位で指定しますが、これらは混在できません。帯域幅は、レイヤ 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 Kb/s に設定されます。

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 はこのウェイトを使用して、このクラスのキューを適正に処理します。

デフォルトでは、帯域幅は指定されていません。

帯域幅は Kb/s 単位または割合で指定できます。

bandwidth-kbps には、クラスに割り当てる帯域幅を Kb/s 単位で指定します。指定できる範囲は 200 ~ 2000000 です。帯域幅は 100 Kb/s の増分値で割り当てます。この増分値に従わない値を割り当てると、100 Kb/s の増分値に最も近い値に帯域幅が切り捨てられます。

percent percent には、クラスに割り当てることができる帯域幅の割合を指定します。指定できる範囲は 1 ~ 100 です。1 つのポリシー マップ内のクラス帯域幅の割合の合計が 99% を超えることはできません。割合は、親クラス(クラスが親である場合は物理レベル)で使用可能な帯域幅に基づいて計算されます。

すべてのクラス帯域幅は Kb/s またはパーセント単位で指定しますが、これらは混在できません。帯域幅は、レイヤ 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 Kb/s 以上の帯域幅で配信されると予測されます。平均キュー サイズの計算には、ウェイト係数 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 はこのウェイトを使用して、このクラスのキューを適正に処理します。

デフォルトでは、帯域幅は指定されていません。

帯域幅は Kb/s 単位または割合で指定できます。

bandwidth-kbps には、クラスに割り当てる帯域幅 を Kb/s 単位で指定します。指定できる範囲は 200 ~ 2000000 です。帯域幅は 100 Kb/s の増分値で割り当てます。この増分値に従わない値を割り当てると、100 Kb/s の増分値に最も近い値に帯域幅が切り捨てられます。

percent percent には、クラスに割り当てることができる帯域幅の割合を指定します。指定できる範囲は 1 ~ 100 です。1 つのポリシー マップ内のクラス帯域幅の割合の合計が 99% を超えることはできません。割合は、親クラス(クラスが親である場合は物理レベル)で使用可能な帯域幅に基づいて計算されます。

すべてのクラス帯域幅は Kb/s またはパーセント単位で指定しますが、これらは混在できません。帯域幅は、レイヤ 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 Kb/s 以上の帯域幅で配信されると予測されます。平均キュー サイズの計算には、ウェイト係数 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 クラスに、30% が 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- クラスだけです。

次の手順を開始する前に、設定時の注意事項を確認し、トラフィックを隔離するクラス マップを作成しておく必要があります。詳細については、「階層型 QoS 設定時の注意事項」および「階層型クラス マップによるトラフィックの分類」を参照してください。

階層型サービス ポリシー内でクラスレベルのシェーピングを設定するには、特権 EXEC モードで次の手順を実行します。この手順は任意です。次に、クラスレベル、VLAN レベル、および物理レベルのシェーピングを設定する例を示します。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

policy-map policy-map-name

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

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

ステップ 3

class class-name

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

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

ステップ 4

shape average cir-bps

平均レート トラフィック シェーピングをイネーブルにします。CIR、つまりトラフィックがシェーピングされるビット レートを b/s 単位で指定します。これは、サービスプロバイダーと契約したアクセス ビット レート、または維持するサービス レベルです。指定できる範囲は 64000 ~ 2000000000 b/s です。

シェーピング レートは 100 Kb/s の増分値で割り当てます。この増分値に従わない値を割り当てると、100 Kb/s の増分値に最も近い値に帯域幅が切り捨てられます。

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

ステップ 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 Kb/s に制限されます。

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 Mb/s に制限されます。

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-
Switch(config-pmap-c)# shape average 500000000
Switch(config-pmap-c)# service-policy my-logical-policy

階層型 QoS 情報の表示

階層型 QoS 情報を表示するには、 表 34-17 に示す特権 EXEC コマンドを 1 つまたは複数組み合わせて使用します。

 

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