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

目次

QoSの設定

QoSの概要

QoSの基本モデル

分類

QoS ACLに基づく分類

クラス マップおよびポリシー マップに基づく分類

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

物理ポートのポリシング

SVIのポリシング

マッピング テーブル

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

WTD

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

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

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

パケットの変更

自動QoSの設定

生成される自動QoS設定

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

自動QoS設定時の注意事項

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

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

自動QoS設定例

自動QoS情報の表示

標準QoSの設定

標準QoSのデフォルト設定

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

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

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

標準QoS設定時の注意事項

QoS ACLの注意事項

インターフェイスへのQoSの適用

ポリシングの注意事項

一般的なQoSの注意事項

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

物理ポートでVLANベースのQoSをイネーブル化

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

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

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

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

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

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

QoSポリシーの設定

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

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

ポリシー マップによる物理ポートのトラフィックの分類、ポリシング、およびマーキング

階層型ポリシー マップによるSVIのトラフィックの分類、ポリシング、およびマーキング

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

DSCPマップの設定

CoS/DSCPマップの設定

IP precedence/DSCPマップの設定

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

DSCP/CoSマップの設定

DSCP/DSCP変換マップの設定

入力キューの特性の設定

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

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

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

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

出力キューの特性の設定

設定時の注意事項

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

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

出力キューでのSRRシェーピング重みの設定

出力キューでのSRR共有重みの設定

出力緊急キューの設定

出力インターフェイスの帯域幅の制限

標準QoS情報の表示

QoSの設定

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

Cisco IOS Release 12.2(25)SEより前のリリースでは、QoSを物理ポート上のみに設定できます。Cisco IOS Release 12.2(25)SE以降のリリースでは、物理ポートおよびSwitch Virtual Interface(SVI;スイッチ仮想インターフェイス)上にQoSを設定できます。ポリシー マップを適用するほかに、分類、キューイング、およびスケジューリングなどのQoSを同じ方法で物理ポートおよびSVIに設定します。物理ポートにQoSを設定すると、非階層型のポリシー マップが適用されます。SVIにQoSを設定すると、非階層型、または階層型のポリシー マップが適用されます。Catalyst 3750 Metroスイッチのマニュアルでは、非階層型のポリシー マップは非階層型単一レベルのポリシー マップと呼ばれ、階層型のポリシー マップは階層型デュアル レベルのポリシー マップと呼ばれます。


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


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

「QoSの概要」

「自動QoSの設定」

「自動QoS情報の表示」

「標準QoSの設定」

「標準QoS情報の表示」

スイッチは、Modular QoS Command Line Interface(MQC;モジュラQoSコマンドライン インターフェイス)コマンドの一部をサポートします。MQCコマンドの詳細については、次のURLにアクセスし「Modular Quality of Service Command-Line Interface Overview」を参照してください。

http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/fqos_c/fqcprt8/qcfmdcli.htm#89799

QoSの概要

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

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

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

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

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

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

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

他のフレーム タイプでレイヤ2 CoS値を伝達することはできません。

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

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

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

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

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


) IPv6 QoSはこのリリースでサポートされていません。


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

 

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

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

ネットワーク上でQoSを実装する作業は、インターネットワーキング装置が提供するQoS機能、ネットワークのトラフィック タイプおよびパターン、さらには着信および発信トラフィックに求める制御のきめ細かさによって、簡単にも複雑にもなります。

QoSの基本モデル

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

図28-2に、QoSの基本モデルを示します。入力ポートでのアクションには、トラフィックの分類、ポリシング、マーキング、キューイング、およびスケジューリングがあります。

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

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

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

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

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

出力ポートでのアクションには、キューイングおよびスケジューリングがあります。

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

スケジューリングでは、設定されているSRRの共有重みまたはシェーピング重みに基づいて、4つの出力キューを処理します。キューの1つ(キュー1)は、他のキューの処理前に空になるまで処理される緊急キューにできます。

図28-2 QoSの基本モデル

 

分類

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

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

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

着信トラフィックの分類に、フレームまたはパケットのどのフィールドを使用するかは、ユーザ側で指定します。非IPトラフィックには、次の分類オプションを使用できます(図28-3を参照)。

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

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

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

IPトラフィックには、次の分類オプションを使用できます(図28-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値を信頼し、CoS/DSCPマップを使用してパケットのDSCP値を生成します。CoS値が存在しない場合は、デフォルトのポートCoS値を使用します。

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

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

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

図28-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値の特定のリストとの照合を含めることができます。複数のトラフィック タイプを分類する場合は、別のクラス マップを作成し、異なる名前を使用できます。パケットをクラス マップ条件と照合したあとで、ポリシー マップを使用してさらに分類します。

ポリシー マップでは、作用対象のトラフィック クラスを指定します。トラフィック クラスのCoS、DSCP、またはIP precedence値を信頼するアクションや、トラフィック クラスに特定のDSCPまたはIP precedence値を設定するアクション、またはトラフィック帯域幅の制限やトラフィックが不適合な場合の対処法を指定するアクションなどを指定できます。ポリシー マップを効率的に機能させるには、ポートにポリシー マップを結合しなければなりません。

クラス マップを作成するには、 class-map グローバル コンフィギュレーション コマンドまたは class ポリシー マップ コンフィギュレーション コマンドを使用します。多数のポート間でマップを共有する場合には、 class-map コマンドを使用する必要があります。 class-map コマンドを入力すると、クラス マップ コンフィギュレーション モードが開始されます。このモードで、 match クラス マップ コンフィギュレーション コマンドを使用して、トラフィックの一致条件を定義します。

ポリシー マップは、 policy-map グローバル コンフィギュレーション コマンドを使用して作成し、名前を付けます。このコマンドを入力すると、ポリシー マップ コンフィギュレーション モードが開始されます。このモードでは、 class trust 、または set ポリシー マップ コンフィギュレーション コマンドおよびポリシー マップ クラス コンフィギュレーション コマンドを使用して、特定のトラフィック クラスに対して実行するアクションを指定します。

ポリシー マップには、ポリサー、トラフィックの帯域幅限度、および限度を超えた場合のアクションを定義する police および police aggregate ポリシー マップ クラス コンフィギュレーション コマンドを含めることもできます。

ポリシー マップを効率的に機能させるには、 service-policy インターフェイス コンフィギュレーション コマンドを使用してポートにマップを結合します。

Cisco IOS Release 12.2(25)SEより前のリリースでは、ポリシー マップを物理ポートに対してのみ適用できます。Cisco IOS Release 12.2(25)SE以降のリリースでは、物理ポートまたはSVIに対しても非階層型のポリシー マップを適用できます。ただし、階層型のポリシー マップに関しては、SVIに対してのみしか適用できません。階層型のポリシー マップには2つのレベルがあります。1番めはVLANレベルで、SVIのトラフィック フローに対して実行するアクションを指定します。2番めはインターフェイス レベルで、SVIの物理ポートのトラフィックに対して実行するアクションを指定します。インターフェイス レベルのアクションはインターフェイス レベルのポリシー マップで指定されます。

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

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

パケットを分類して、DSCPベースまたはCoSベースのQoSラベルを割り当てたあとで、ポリシングおよびマーキング プロセスを開始できます(図28-4を参照)。

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


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


Cisco IOS Release 12.2(25)SEより前のリリースでは、ポリシングを物理ポートに対してのみ設定できます。信頼状態を設定したり、パケットに対して新規にDSCPまたはIP precedence値を設定したり、個別にまたは集約的にポリサーを定義できます。詳細は、「物理ポートのポリシング」を参照してください。

Cisco IOS Release 12.2(25)SE以降のリリースでは、物理ポートまたはSVIに対してポリシングを設定できます。物理ポートのポリシング設定の詳細については、「物理ポートのポリシング」を参照してください。SVIにポリシー マップを設定する場合、階層型のポリシー マップを作成して、ポリシー マップの2番めのインターフェイス レベルにのみ個別にポリサーを定義します。詳細は、「SVIのポリシング」を参照してください。

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

物理ポートのポリシング

物理ポートのポリシー マップでは、次のポリサー タイプを作成できます。

個別

QoSはポリサーに指定された帯域幅限度を、一致したトラフィック クラスごとに別々に適用します。このタイプのポリサーは、 police ポリシー マップ クラス コンフィギュレーション コマンドを使用して、ポリシー マップの中で設定します。

集約

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

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

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

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

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

物理ポートの非階層型ポリシー マップ

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

図28-4 物理ポートのポリシングおよびマーキング フローチャート

 

SVIのポリシング


) SVIに個別のポリサーで階層型のポリシー マップを設定する前に、SVIの物理ポートに対してVLANベースのQoSをイネーブルにする必要があります。ポリシー マップがSVIに適用されますが、個々のポリサーは、階層型のポリシー マップの2番めのインターフェイス レベルで指定した物理ポートのトラフィックに対してのみ影響します。


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

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

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

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

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

図28-5に、SVIに階層型のポリシー マップが設定されている場合のポリシングおよびマーキングのプロセスを示します。

図28-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値に基づいており、DSCP入力/出力キュー スレッシュホールド マップまたはCoS入力/出力キュー スレッシュホールド マップを使用してキューを選択します。これらのマップを設定するには、 mls qos srr-queue { input | output } dscp-map および mls qos srr-queue { input | output } cos-map グローバル コンフィギュレーション コマンドを使用します。

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

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

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

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

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

スイッチは特定のポイントにキューを配置し、輻輳防止に役立てます(図28-6を参照)。

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

 

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

WTD

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

 


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


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

 

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

キュー タイプ1
機能

標準

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

緊急

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

1.スイッチはネットワークを適切に運用するために重要なトラフィック用に設定不可能なキューを2つ使用します。

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

WTDスレッシュホールド

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

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

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

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

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

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

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

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

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


) 緊急キューがイネーブルの場合、SRRによって空になるまで処理されてから、他の3つのキューが処理されます。


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

 

各ポートは、そのうち1つ(キュー1)を出力緊急キューにできる、4つの出力キューをサポートしています。これらのキューはキューセットに割り当てられます。スイッチに存在するすべてのトラフィックは、パケットに割り当てられたQoSラベルに基づいて、これらの4つのキューのいずれかを通過し、スレッシュホールドの影響を受けます。

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

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

 

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

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

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

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

WTDスレッシュホールド

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

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

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

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

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

緊急キューがイネーブルでないかぎり、4つのキューはすべてSRRに参加し、この場合、1番めの帯域幅重みは無視されて比率計算に使用されません。緊急キューはプライオリティ キューであり、処理されて空になってから、他のキューが処理されます。緊急キューをイネーブルにするには、 priority-queue out インターフェイス コンフィギュレーション コマンドを使用します。

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


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


パケットの変更

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

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

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

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

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

自動QoSの設定

自動QoS機能を使用して、既存のQoS機能の配置を容易にできます。自動QoSでは、ネットワーク設計について前提条件を設定し、その結果スイッチは、デフォルトのQoS動作を使用せずに、各トラフィック フローについて優先度を指定して入力および出力キューを適切に使用できるようになります(デフォルトで自動QoSはディセーブルになっています。したがって、スイッチはパケットの内容やサイズに関係なく、各パケットにベストエフォート型のサービスを提供し、単一キューからパケットを送信します)。

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

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

Cisco IP Phoneの有無の検出

QoS分類の設定

出力キューの設定

ここでは、次の設定情報について説明します。

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

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

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

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

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

「自動QoS設定例」

生成される自動QoS設定

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

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

 

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

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

DSCP

46

24、26

48

56

34

-

CoS

5

3

6

7

4

-

CoS/
入力キュー マップ

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

0、1(キュー1)

CoS/
出力キュー マップ

5(キュー1)

3、6、7(キュー2)

4(キュー3)

2(キュー3)

0、1
(キュー4)

2.VoIP = Voice over IP

表28-3 に、入力キューに対して生成される自動QoS設定を示します。

 

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

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

SRR共有

1

0、1

81%

67%

プライオリティ

2

2、3、4、5、6、7

19%

33%

表28-4 に、出力キューに対して生成される自動QoS設定を示します。

 

表28-4 出力キューの自動QoS設定

出力キュー
キュー番号
CoS/
キュー マップ
キュー重み
(帯域幅)
ギガビット対応ポートのキュー(バッファ)サイズ
10/100
イーサネット
ポートのキュー
(バッファ)サイズ

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

1

5

10%

16%

10%

SRR共有

2

3、6、7

10%

6%

10%

SRR共有

3

2、4

60%

17%

26%

SRR共有

4

0、1

20%

61%

54%

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Switch(config)# mls qos queue-set output 1 threshold 1 138 138 92 138
Switch(config)# mls qos queue-set output 1 threshold 2 138 138 92 400
Switch(config)# mls qos queue-set output 1 threshold 3 36 77 100 318
Switch(config)# mls qos queue-set output 1 threshold 4 20 50 67 400
Switch(config)# mls qos queue-set output 2 threshold 1 149 149 100 149
Switch(config)# mls qos queue-set output 2 threshold 2 118 118 100 235
Switch(config)# mls qos queue-set output 2 threshold 3 41 68 100 272
Switch(config)# mls qos queue-set output 2 threshold 4 42 72 100 242
Switch(config)# mls qos queue-set output 1 buffers 10 10 26 54
Switch(config)# mls qos queue-set output 2 buffers 16 6 17 61
Switch(config-if)# srr-queue bandwidth shape 10 0 0 0
Switch(config-if)# srr-queue bandwidth share 10 10 60 20

auto qos voip trust コマンドを入力すると、スイッチが、非ルーテッド ポート上のパケットで受信されたCoS値を信頼するように( mls qos trust cos コマンドにより)、自動的に入力分類を設定します。

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

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

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

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

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

クラス マップとポリシー マップを作成すると、スイッチは自動的にポリシー マップ
(別名 AutoQoS-Police-SoftPhone )を、Cisco SoftPhone機能を備えた自動QoSがイネーブルである入力インターフェイスに適用します。

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

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

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

スイッチは、自動QoSが生成したコマンドを、CLIから入力したように適用します。既存のユーザ設定により、生成コマンドのアプリケーションに障害が発生したり、生成コマンドによってユーザ設定が上書きされたりする可能性があります。これらの動作は警告なしに発生します。すべての生成コマンドが正常に適用された場合、上書きされていないユーザ入力設定が実行コンフィギュレーションに残ります。上書きされたユーザ入力設定は、現在の設定をメモリに保存することなく、スイッチをリロードすることで取得できます。生成コマンドが適用されなかった場合、以前の実行コンフィギュレーションが復元されます。

自動QoS設定時の注意事項

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

Cisco IOS Release 12.2(20)SEより前のリリースでは、自動QoSはCisco IP Phoneを搭載したスイッチ ポート上でのみVoIPを設定します。

Cisco IOS Release 12.2(20)SE以降のリリースでは、自動QoSは非ルーテッドおよびルーテッド ポート上のCisco IP PhoneのVoIP用にスイッチを設定します。また、自動QoSはCisco SoftPhoneアプリケーションを稼働する装置のVoIP用にスイッチを設定します。


) Cisco SoftPhoneを稼働する装置が非ルーテッド ポートまたはルーテッド ポートに接続されている場合、スイッチはポート単位でCisco SoftPhoneアプリケーション1つのみをサポートします。


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

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

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

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

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

このリリースは、Cisco IP SoftPhone Version 1.3(3)以降のみをサポートします。

接続した装置は、Cisco Call Managerバージョン4以降を使用する必要があります。

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

Cisco IOS Release 12.2(20)SEでは、旧リリースから自動QoSの実装が変更されています。生成した自動QoS設定が変更され、Cisco SoftPhone機能のサポートと、ルーテッド ポートのCisco IP Phoneが追加されました。

自動QoSがスイッチ上に設定され、スイッチがCisco IOS Release 12.2(20)SEより前のリリースを稼働している状態で、Cisco IOS Release 12.2(20)SE以降のリリースにアップグレードする場合、コンフィギュレーション ファイルに新しい設定が含まれないため、自動QoSは動作しません。コンフィギュレーション ファイルで自動QoS設定をアップグレードするには、次の手順を実行します。

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

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に接続されたポート、Cisco SoftPhone機能を実行する装置に接続されたポート、またはネットワーク内部の信頼性のある他のスイッチやルータに接続されたアップリンク ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 3

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

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

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

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

cisco-softphone ポートがCisco SoftPhone機能を実行する装置に接続されています。


cisco-softphoneキーワードをサポートするのは、Cisco IOS Release 12.2(20)SE以降のリリースのみです。


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

ステップ 4

end

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

ステップ 5

show auto qos interface interface-id

設定を確認します。

このコマンドは、自動QoSがイネーブルであるインターフェイス上の自動QoSコマンドを表示します。自動QoS設定およびユーザの変更を表示するには、 show running-config イネーブルEXECコマンドを使用します。

自動QoSのイネーブルまたはディセーブル時に自動的に生成されたQoSコマンドを表示するには、自動QoSをイネーブルにする に、 debug auto qos イネーブルEXECコマンドを入力します。詳細については、このリリースに対応するコマンド リファレンスにある debug autoqos コマンドの項を参照してください。

ポートで自動QoSをディセーブルにするには、no auto qos voipインターフェイス コンフィギュレーション コマンドを使用します。このポート用に自動QoSが生成したインターフェイス コンフィギュレーション コマンドのみが削除されます。これが自動QoSをイネーブルにしている最後のポートの場合に、 no auto qos voip コマンドを入力すると、自動QoS生成グローバル コンフィギュレーション コマンドが残っていても、(グローバル コンフィギュレーションによって他のポートのトラフィックを中断しないように)自動QoSはディセーブルであるとみなされます。

自動QoS生成グローバル コンフィギュレーション コマンドをディセーブルにするには、 no mls qos グローバル コンフィギュレーション コマンドを使用します。QoSがディセーブルになると、パケット(パケットのCoS値、DSCP値、およびIP precedence値)は変更されないため、trusted(信頼性のある)ポート、またはuntrusted(信頼性のない)ポートの概念はありません。トラフィックはパススルー モードでスイッチングされます(書き換えられずにスイッチングされ、ポリシングを伴わないベストエフォート型として分類されます)。

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

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

自動QoS設定例

ここでは、自動QoSをネットワークに実装する方法について説明します(図28-11を参照)。QoSパフォーマンスを最適にするには、ネットワーク内部の装置すべてで自動QoSをイネーブルにします。

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

 

図28-11に、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

interface interface-id

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

ステップ 9

auto qos voip trust

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

ステップ 10

end

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

ステップ 11

show auto qos

設定を確認します。

このコマンドは、自動QoSがイネーブルであるインターフェイス上の自動QoSコマンドを表示します。自動QoS設定およびユーザの変更を表示するには、 show running-config イネーブルEXECコマンドを使用します。

自動QoSによって影響されるQoS設定の詳細については、「自動QoS情報の表示」を参照してください。

ステップ 12

copy running-config startup-config

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

自動QoS情報の表示

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

自動QoSによって影響を受けるQoS設定を表示するには、以下のいずれかのコマンドを使用します。

show mls qos

show mls qos maps cos-dscp

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

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

show mls qos input-queue

show running-config

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

標準QoSの設定

標準QoSを設定する前に、次の事項を十分に理解しておく必要があります。

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

トラフィックの特性およびネットワークのニーズ。バースト性の高いトラフィックかどうかの判別。音声およびビデオ ストリーム用の帯域幅確保の必要性

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

ネットワーク上の輻輳発生箇所

ここでは、次の設定情報について説明します。

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

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

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

「物理ポートでVLANベースのQoSをイネーブル化」(任意)

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

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

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

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

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

標準QoSのデフォルト設定

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

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

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

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

 

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

機能
キュー1
キュー2

バッファ割り当て

90%

10%

帯域幅割り当て3

4

4

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

0

10

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

100%

100%

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

100%

100%

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

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

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

 

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

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

0~4

1-1

5

2-1

6、7

1-1

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

 

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

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

0~39

1-1

40~47

2-1

48~63

1-1

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

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

 

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

機能
キュー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シェーピング重み(絶対)5

25

0

0

0

SRR共有重み6

25

25

25

25

5.シェーピング重みが0の場合、このキューはシェーピング モードで動作します。

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

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

 

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

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

0、1

2-1

2、3

3-1

4

4-1

5

1-1

6、7

4-1

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

 

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

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

0~15

2-1

16~31

3-1

32~39

4-1

40~47

1-1

48~63

4-1

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

デフォルトのCoS/DSCPマップは、表28-12のとおりです。

デフォルトのIP precedence/DSCPマップは、表28-13のとおりです。

デフォルトのDSCP/CoSマップは、表28-14のとおりです。

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

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

標準QoS設定時の注意事項

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

「QoS ACLの注意事項」

「インターフェイスへのQoSの適用」

「ポリシングの注意事項」

「一般的なQoSの注意事項」

QoS ACLの注意事項

ACLでQoSを設定する際の注意事項は次のとおりです。

IPフラグメントと設定されているIP拡張ACLを照合することによって、QoSを実施することはできません。IPフラグメントはベストエフォート型として送信されます。IPフラグメントはIPヘッダーのフィールドで示されます。

1つのクラス マップごとに使用できるACLは1つだけ、使用できる match クラスマップ コンフィギュレーション コマンドは1つだけです。ACLには、フィールドとパケットの内容を照合するACEを複数指定できます。

インターフェイスへのQoSの適用

物理ポートでQoSを設定する際の注意事項は次のとおりです。ここでの注意事項はSVI(レイヤ3インターフェイス)にも当てはまります。

QoSは物理ポートおよびSVIに設定できます。物理ポートにQoSを設定する場合は、非階層型のポリシー マップを作成し、適用してください。SVIにQoSを設定する場合は、非階層型および階層型のポリシー マップを作成し、適用できます。

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

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

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

物理ポートでVLANベースのQoSを設定した場合、スイッチはそのポートにあるすべてのポートベースのポリシー マップを削除します。そうすることで、物理ポートのトラフィックは、自身のポートのSVIに適用されているポリシー マップの適用を受け入れられます。

SVIに適用された階層型のポリシー マップでは、物理ポートのインターフェイス レベルで個別にのみポリサーを作成でき、ポートのトラフィックの帯域幅制限を指定できます。入力ポートは、トランクまたは静的アクセス ポイントとして設定する必要があります。階層型のポリシー マップのVLANレベルではポリサーを設定できません。

スイッチは、階層型のポリシー マップで集約ポリサーをサポートしません。

SVIに階層型のポリシー マップが適用されたあとは、インターフェイス レベルのポリシー マップを変更したり、削除したりできません。新規にインターフェイス レベルのポリシー マップを階層型のポリシー マップに追加することもできません。変更するには、まずSVIから階層型ポリシー マップを削除する必要があります。また、階層型ポリシー マップで指定されたクラス マップを追加または削除できません。

ポリシングの注意事項

ポリシングの注意事項を次に示します。

複数の物理ポートを制御するポートASIC装置は、256のポリサー(255のポリサーと1つの no ポリサー)をサポートしています。各ポートでサポートされているポリサーの最大数は64です。ポリサーはソフトウェアの要求に応じて割り当てられ、ハードウェアおよびASICの限度によって制約されます。ポートごとにポリサーを確保することはできません。ポートがいずれかのポリサーに割り当てられる保証はありません。

入力ポートでは1つのパケットに適用できるポリサーは1つだけです。設定できるのは、平均速度パラメータおよび認定バースト パラメータだけです。

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

QoS対応として設定されているポートを介して受信したすべてのトラフィックは、そのポートに結合されたポリシー マップに基づいて分類、ポリシング、およびマーキングが行われます。QoS対応として設定されているトランク ポートの場合、ポートを介して受信したすべてのVLANのトラフィックは、そのポートに結合されたポリシー マップに基づいて分類、ポリシング、およびマーキングが行われます。

スイッチ上でEtherChannelポートが設定されている場合、EtherChannelを形成する個々の物理ポートにQoSの分類、ポリシング、マッピング、およびキューイングを設定する必要があります。また、QoSの設定をEtherChannelのすべてのポートで照合するかどうかを決定する必要があります。

一般的なQoSの注意事項

一般的なQoSの注意事項を次に示します。

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

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

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

デフォルトでは、QoSはスイッチ上でディセーブルに設定されています。

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

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

mls qos

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

デフォルト設定におけるQoSの動作については、「標準QoSのデフォルト設定」「入力キューでのキューイングおよびスケジューリング」、および「出力キューでのキューイングおよびスケジューリング」を参照してください。

ステップ 3

end

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

ステップ 4

show mls qos

設定を確認します。

ステップ 5

copy running-config startup-config

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

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

物理ポートでVLANベースのQoSをイネーブル化

デフォルトでは、VLANベースのQoSはスイッチにあるすべての物理ポートでディセーブルです。スイッチは、物理ポート ベースでのみ、クラス マップおよびポリシー マップQoSを含むQoSを適用できます。Cisco IOS Release 12.2(25)SE以降のリリースでは、スイッチ ポートでVLANベースのQoSをイネーブルにできます。

イネーブルEXECモードを開始して、VLANベースのQoSをイネーブルにするには、次の手順を実行します。この手順には、SVIにインターフェイス レベルの階層型ポリシー マップが指定されている物理ポートが必要です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

interface interface-id

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

ステップ 3

mls qos vlan-based

ポートでVLANベースのQoSをイネーブルにします。

ステップ 4

end

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

ステップ 5

show mls qos interface interface-id

VLANベースのQoSが物理ポートでイネーブルかどうかを確認します。

ステップ 6

copy running-config startup-config

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

物理ポートでVLANベースのQoSをディセーブルにする場合は、 no mls qos vlan-based インターフェイス コンフィギュレーション コマンドを使用します。

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

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

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

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

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

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

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

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

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

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

 

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

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

interface interface-id

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

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

ステップ 3

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

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

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

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

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

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

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

ステップ 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 { default-cos | override }

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

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

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

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

ステップ 4

end

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

ステップ 5

show mls qos interface

設定を確認します。

ステップ 6

copy running-config startup-config

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

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

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

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

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

信頼設定により、ユーザが電話をバイパスして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

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

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

ステップ 4

cdp enable

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

ステップ 5

mls qos trust cos

mls qos trust dscp

Cisco IP Phoneから受信したトラフィックのCoS値を信頼するようにスイッチ ポートを設定します。

または

Cisco IP Phoneから受信したトラフィックのDSCP値を信頼するようにルーテッド ポートを設定します。

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

Cisco IOS Release 12.2(25)SE以降では、スイッチはトランスペアレントなDSCP機能をサポートします。この機能は発信パケットのDSCPフィールドのみに作用します。トランスペアレントなDSCP機能のデフォルト設定はディセーブルです。スイッチは着信パケットのDSCPフィールドを変更します。発信パケットのDSCPフィールドは、ポートの信頼設定、ポリシングとマーキング、およびDSCP/DSCP変換マップを含め、QoS設定によって異なります。

no mls qos rewrite ip dscp コマンドを用いてトランスペアレントなDSCP機能をイネーブルにした場合、スイッチは着信パケットのDSCPフィールドを変更しません。そのため、発信パケットのDSCPフィールドの内容はパケットの着信時と同じです。

トランスペアレントなDSCP設定にかかわらず、スイッチはパケット内部のDSCP値を変更し、トラフィックのプライオリティを提示するCoS値を生成します。また、スイッチは内部の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ステートに設定できます(図28-13を参照)。それにより、受信ポートではDSCP trusted値をそのまま使用し、QoSの分類手順が省略されます。2つのドメインで異なるDSCP値が使用されている場合は、他のドメイン内での定義に一致するように一連のDSCP値を変換するDSCP/DSCP変換マップを設定できます。

図28-13 別の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 には、DSCP値を1つ入力します。

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

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

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

次に、ポートをDSCP trustedステートに設定して、着信DSCP値10~13がDSCP 30にマッピングされるようにDSCP/DSCP変換マップ( gi0/2-mutation という名前)を変更する例を示します。

Switch(config)# mls qos map dscp-mutation gi0/2-mutation 10 11 12 13 to 30
Switch(config)# interface gigabitethernet0/2
Switch(config-if)# mls qos trust dscp
Switch(config-if)# mls qos dscp-mutation gi0/2-mutation
Switch(config-if)# end

QoSポリシーの設定

QoSポリシーを設定するには、通常、トラフィックをクラス別に分類し、各トラフィック クラスに適用するポリシーを設定し、ポリシーをポートに結合する必要があります。

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

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

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

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

「ポリシー マップによる物理ポートのトラフィックの分類、ポリシング、およびマーキング」

「階層型ポリシー マップによるSVIのトラフィックの分類、ポリシング、およびマーキング」

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

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

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

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.0.0.0 source-wildcard 255.255.255.255の省略形として any キーワードを使用するか、 source 0.0.0.0を表すキーワードとして host を使用します。

destination には、パケットの宛先となるネットワークまたはホストを指定します。 destination および
destination-wildcard には、 source および source-wildcard での説明と同じオプションを使用できます。


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


ステップ 3

end

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

ステップ 4

show access-lists

設定を確認します。

ステップ 5

copy running-config startup-config

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

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

次に、任意の送信元から、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または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 グローバル コンフィギュレーション コマンドを使用します。クラス マップでは、さらに細かく分類するために、特定のトラフィック フローと照合する条件を定義します。matchステートメントには、ACL、IP precedence値、DSCP値などの条件を指定できます。一致条件は、クラス マップ コンフィギュレーション モードの中でmatchステートメントを1つ入力することによって定義します。


classポリシー マップ コンフィギュレーション コマンドを使用することによって、ポリシー マップの作成時にクラス マップを作成することもできます。詳細については、「ポリシー マップによる物理ポートのトラフィックの分類、ポリシング、およびマーキング」および「階層型ポリシー マップによるSVIのトラフィックの分類、ポリシング、およびマーキング」を参照してください。


クラス マップを作成し、トラフィックを分類するための一致条件を定義するには、イネーブル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 です。


) クラス マップごとにサポートされるmatchコマンドは1つだけなので、match-allでもmatch-anyでもキーワードの機能は変わりません。


ステップ 4

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

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

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

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

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

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

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

ポリシー マップによる物理ポートのトラフィックの分類、ポリシング、およびマーキング

作用対象となるトラフィック クラスを指定する非階層型ポリシー マップを、物理ポート上に設定できます。トラフィック クラスの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 ポリシー マップ クラス コンフィギュレーション コマンドを使用します。

Cisco IOS Release 12.2(25)SE以降では、 set ip dscp コマンドを使用した場合、スイッチ コンフィギュレーションでこのコマンドは set dscp に変更されます。 set ip dscp コマンドを入力した場合、スイッチ コンフィギュレーションでは set dscp の設定として表示されます。

Cisco IOS Release 12.2(25)SEC以降では、 set ip precedence または set precedence コマンドを使用して、パケットのIP precedence値を新しい値に設定できます。この設定は、スイッチ コンフィギュレーションで set ip precedenc として表示されます。

イネーブルEXECモードを開始して、非階層型ポリシー マップを作成するには、次の手順を実行します。

 

コマンド
目的

ステップ 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 です。


) クラス マップごとにサポートされるmatchコマンドは1つだけなので、match-allでもmatch-anyでもキーワードの機能は変わりません。


ステップ 3

policy-map policy-map-name

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

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

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

ステップ 4

class class-map-name

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

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

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

ステップ 5

trust [ cos | dscp | ip-precedence ]

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


) このコマンドとsetコマンドは、同じポリシー マップ内で相互に排他的になります。trustコマンドを入力する場合は、ステップ6へ進んでください。


デフォルトでは、ポートは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マップの設定」を参照してください。

ステップ 6

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

パケットに新しい値を設定することによって、IPトラフィックを分類します。

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

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

ステップ 7

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

ステップ 8

exit

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

ステップ 9

exit

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

ステップ 10

interface interface-id

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

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

ステップ 11

service-policy input policy-map-name

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

サポートされるポリシー マップは、入力ポートごとに1つだけです。

ステップ 12

end

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

ステップ 13

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

設定を確認します。

ステップ 14

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

次に、ポリシー マップを作成し、入力ポートに結合する例を示します。この設定では、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 gigabitethernet0/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 gigabitethernet0/1
Switch(config-if)# mls qos trust cos
Switch(config-if)# service-policy input macpolicy1
 

階層型ポリシー マップによるSVIのトラフィックの分類、ポリシング、およびマーキング

Cisco IOS Release 12.2(25)SE以降のリリースでは、SVIに階層型のポリシー マップを設定できます。階層型のポリシングは、VLANレベルおよびインターフェイス レベルのポリシー マップで構成された、1つのポリシー マップとして作成されます。

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

Cisco IOS Release 12.2(25)SE以降では、 set ip dscp コマンドを使用した場合、スイッチ コンフィギュレーションでこのコマンドは set dscp に変更されます。 set ip dscp コマンドを入力した場合、スイッチ コンフィギュレーションでは set dscp の設定として表示されます。

Cisco IOS Release 12.2(25)SEC以降では、 set ip precedence または set precedence コマンドを使用して、パケットのIP precedence値を新しい値に設定できます。この設定は、スイッチ コンフィギュレーションで set ip precedenc として表示されます。

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 です。


) クラス マップごとにサポートされるmatchコマンドは1つだけなので、match-allでもmatch-anyでもキーワードの機能は変わりません。


ステップ 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 です。


) クラス マップごとにサポートされるmatchコマンドは1つだけなので、match-allでもmatch-anyでもキーワードの機能は変わりません。


ステップ 7

match input-interface interface-id-list

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

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

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

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

ステップ 8

exit

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

ステップ 9

exit

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

ステップ 10

policy-map policy-map-name

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

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

ステップ 11

class-map class-map-name

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

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

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

ステップ 12

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

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

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

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

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

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

ステップ 13

exit

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

ステップ 14

exit

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

ステップ 15

policy-map policy-map-name

ポリシー マップ名を入力することによってVLANレベルのポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。

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

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

ステップ 16

class class-map-name

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

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

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

ステップ 17

trust [ cos | dscp | ip-precedence ]

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


) このコマンドとsetコマンドは、同じポリシー マップ内で相互に排他的になります。trustコマンドを入力する場合は、ステップ18を省略してください。


デフォルトでは、ポートは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 | ip precedence new-precedence }

パケットに新しい値を設定することによって、IPトラフィックを分類します。

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

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

ステップ 19

service-policy policy-map-name

インターフェイス レベルのポリシー マップ名を指定し(ステップ10を参照)、VLANレベルのポリシー マップと連動させます。

VLANレベルのポリシー マップが複数のクラスを指定している場合、すべてのクラスに同じ 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レベルのポリシー マップに複数のインターフェイス レベルのポリシー マップがある場合、すべてのクラスが 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 gigabitethernet0/1 gigabitethernet0/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

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

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

集約ポリサーは、物理ポートの非階層型ポリシー マップにのみ設定できます。

集約ポリサーを作成するには、イネーブル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 には、平均トラフィック レートをビット/秒(bps)で指定します。指定できる範囲は8000~1000000000です。

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

速度を超過した場合に実行するアクションを指定します。パケットを廃棄する場合は、 exceed-action drop キーワードを使用します。(ポリシング済みDSCPマップを使用して)DSCP値をマークダウンし、パケットを送信するには、 exceed-action policed-dscp-transmit キーワードを使用します。詳細については、「ポリシング済みDSCPマップの設定」を参照してください。

ステップ 3

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

必要に応じて、トラフィックを分類するクラス マップを作成します。詳細は、「クラス マップによるトラフィックの分類」を参照してください。

ステップ 4

policy-map policy-map-name

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

詳細は、「ポリシー マップによる物理ポートのトラフィックの分類、ポリシング、およびマーキング」を参照してください。

ステップ 5

class class-map-name

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

詳細は、「ポリシー マップによる物理ポートのトラフィックの分類、ポリシング、およびマーキング」を参照してください。

ステップ 6

police aggregate aggregate-policer-name

同じポリシー マップ内の複数のクラスに集約ポリサーを適用します。

aggregate-policer-name には、ステップ2で指定した名前を入力します。

ステップ 7

exit

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

ステップ 8

interface interface-id

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

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

ステップ 9

service-policy input policy-map-name

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

サポートされるポリシー マップは、入力ポートごとに1つだけです。

ステップ 10

end

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

ステップ 11

show mls qos aggregate-policer [ aggregate-policer-name ]

設定を確認します。

ステップ 12

copy running-config startup-config

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

指定された集約ポリサーをポリシー マップから削除するには、 no police aggregate aggregate- policer-name ポリシー マップ コンフィギュレーション モードを使用します。集約ポリサーおよびそのパラメータを削除するには、 no mls qos aggregate-policer aggregate-policer-name グローバル コンフィギュレーション コマンドを使用します。

次に、集約ポリサーを作成して、ポリシー マップ内の複数のクラスに結合する例を示します。この設定では、IP ACLはネットワーク10.1.0.0およびホスト11.3.1.1からのトラフィックを許可します。ネットワーク10.1.0.0から着信するトラフィックの場合は、着信パケットのDSCPが信頼されます。ホスト11.3.1.1から着信するトラフィックの場合、パケットのDSCPは56に変更されます。ネットワーク10.1.0.0およびホスト11.3.1.1からのトラフィック レートには、ポリシングが設定されます。トラフィックが平均レート(48000 bps)、および標準バースト サイズ(8000バイト)を超過している場合は、(ポリシング済みDSCPマップに基づいて)DSCPがマークダウンされて、送信されます。ポリシー マップは入力ポートに結合されます。

Switch(config)# access-list 1 permit 10.1.0.0 0.0.255.255
Switch(config)# access-list 2 permit 11.3.1.1
Switch(config)# mls qos aggregate-police transmit1 48000 8000 exceed-action policed-dscp-transmit
Switch(config)# class-map ipclass1
Switch(config-cmap)# match access-group 1
Switch(config-cmap)# exit
Switch(config)# class-map ipclass2
Switch(config-cmap)# match access-group 2
Switch(config-cmap)# exit
Switch(config)# policy-map aggflow1
Switch(config-pmap)# class ipclass1
Switch(config-pmap-c)# trust dscp
Switch(config-pmap-c)# police aggregate transmit1
Switch(config-pmap-c)# exit
Switch(config-pmap)# class ipclass2
Switch(config-pmap-c)# set dscp 56
Switch(config-pmap-c)# police aggregate transmit1
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# service-policy input aggflow1
Switch(config-if)# exit
 

DSCPマップの設定

ここでは、次の設定情報について説明します。

「CoS/DSCPマップの設定」(任意)

「IP precedence/DSCPマップの設定」(任意)

「ポリシング済みDSCPマップの設定」(任意、マップのヌル設定が不適切な場合以外)

「DSCP/CoSマップの設定」(任意)

「DSCP/DSCP変換マップの設定」(任意、マップのヌル設定が不適切な場合以外)

DSCP/DSCP変換マップを除くすべてのマップはグローバルに定義され、すべてのポートに適用されます。

CoS/DSCPマップの設定

CoS/DSCPマップを使用して、着信パケットのCoS値を、QoSがトラフィックのプライオリティを表すために内部使用するDSCP値にマッピングします。

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

 

表28-12 デフォルトのCoS/DSCPマップ

CoS値
DSCP値

0

0

1

8

2

16

3

24

4

32

5

40

6

48

7

56

これらの値が使用しているネットワークに適さない場合は、値を変更する必要があります。

CoS/DSCPマップを変更するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

mls qos map cos-dscp dscp1...dscp8

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

dscp1...dscp8 には、CoS値0~7に対応する8つのDSCP値を入力します。各DSCP値はスペースで区切ります。

DSCPの範囲は0~63です。

ステップ 3

end

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

ステップ 4

show mls qos maps cos-dscp

設定を確認します。

ステップ 5

copy running-config startup-config

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

デフォルトのマップに戻すには、 no mls qos cos-dscp グローバル コンフィギュレーション コマンドを使用します。

次に、CoS/DSCPマップを変更して表示する例を示します。

Switch(config)# mls qos map cos-dscp 10 15 20 25 30 35 40 45
Switch(config)# end
Switch# show mls qos maps cos-dscp
 
Cos-dscp map:
cos: 0 1 2 3 4 5 6 7
--------------------------------
dscp: 10 15 20 25 30 35 40 45

IP precedence/DSCPマップの設定

着信パケットのIP precedence値を、QoSがトラフィックのプライオリティを表すために内部使用するDSCP値にマッピングするには、IP precedence/DSCPマップを使用します。

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

 

表28-13 デフォルトのIP precedence/DSCPマップ

IP precedence値
DSCP値

0

0

1

8

2

16

3

24

4

32

5

40

6

48

7

56

これらの値が使用しているネットワークに適さない場合は、値を変更する必要があります。

IP precedence/DSCPマップを変更するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

mls qos map ip-prec-dscp dscp1...dscp8

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

dscp1...dscp8 には、IP precedence値0~7に対応する8つのDSCP値を入力します。各DSCP値はスペースで区切ります。

DSCPの範囲は0~63です。

ステップ 3

end

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

ステップ 4

show mls qos maps ip-prec-dscp

設定を確認します。

ステップ 5

copy running-config startup-config

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

デフォルトのマップに戻すには、 no mls qos ip-prec-dscp グローバル コンフィギュレーション コマンドを使用します。

次に、IP precedence/DSCPマップを変更して表示する例を示します。

Switch(config)# mls qos map ip-prec-dscp 10 15 20 25 30 35 40 45
Switch(config)# end
Switch# show mls qos maps ip-prec-dscp
 
IpPrecedence-dscp map:
ipprec: 0 1 2 3 4 5 6 7
--------------------------------
dscp: 10 15 20 25 30 35 40 45

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

ポリシングおよびマーキング アクションによって得られる新しい値にDSCP値をマークダウンするには、ポリシング済みDSCPマップを使用します。

デフォルトのポリシング済みDSCPマップは、着信DSCP値を同じDSCP値にマッピングする空のマップです。

ポリシング済みDSCPマップを変更するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

mls qos map policed-dscp dscp-list to mark-down-dscp

ポリシング済みDSCPマップを変更します。

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

mark-down-dscp には、対応するポリシング済み(マークダウンされる)DSCP値を入力します。

ステップ 3

end

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

ステップ 4

show mls qos maps policed-dscp

設定を確認します。

ステップ 5

copy running-config startup-config

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

デフォルトのマップに戻すには、 no mls qos policed-dscp グローバル コンフィギュレーション コマンドを使用します。

次に、DSCP 50~57を、マークダウンされるDSCP値0にマッピングする例を示します。

Switch(config)# mls qos map policed-dscp 50 51 52 53 54 55 56 57 to 0
Switch(config)# end
Switch# show mls qos maps policed-dscp
Policed-dscp map:
d1 : d2 0 1 2 3 4 5 6 7 8 9
---------------------------------------
0 : 00 01 02 03 04 05 06 07 08 09
1 : 10 11 12 13 14 15 16 17 18 19
2 : 20 21 22 23 24 25 26 27 28 29
3 : 30 31 32 33 34 35 36 37 38 39
4 : 40 41 42 43 44 45 46 47 48 49
5 : 00 00 00 00 00 00 00 00 58 59
6 : 60 61 62 63
 

) このポリシング済みDSCPマップでは、マークダウンされるDSCP値が表形式で示されています。d1列は元のDSCPの最上位桁、d2行は元のDSCPの最下位桁を示します。d1とd2の交点にある値が、マークダウンされる値です。たとえば、元のDSCP値が53の場合、マークダウンされるDSCP値は0です。


DSCP/CoSマップの設定

4つの出力キューのうち1つを選択するために使用されるCoS値を生成するには、DSCP/CoSマップを使用します。

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

 

表28-14 デフォルトのDSCP/CoSマップ

DSCP値
CoS値

0~7

0

8~15

1

16~23

2

24~31

3

32~39

4

40~47

5

48~55

6

56~63

7

これらの値が使用しているネットワークに適さない場合は、値を変更する必要があります。

DSCP/CoSマップを変更するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

mls qos map dscp-cos dscp-list to cos

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

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

cos には、DSCP値と対応するCoS値を入力します。

DSCPの範囲は0~63、CoSの範囲は0~7です。

ステップ 3

end

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

ステップ 4

show mls qos maps dscp-to-cos

設定を確認します。

ステップ 5

copy running-config startup-config

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

デフォルトのマップに戻すには、 no mls qos dscp-cos グローバル コンフィギュレーション コマンドを使用します。

次に、DSCP値0、8、16、24、32、40、48、および50をCoS値0にマッピングして、マップを表示する例を示します。

Switch(config)# mls qos map dscp-cos 0 8 16 24 32 40 48 50 to 0
Switch(config)# end
Switch# show mls qos maps dscp-cos
Dscp-cos map:
d1 : d2 0 1 2 3 4 5 6 7 8 9
---------------------------------------
0 : 00 00 00 00 00 00 00 00 00 01
1 : 01 01 01 01 01 01 00 02 02 02
2 : 02 02 02 02 00 03 03 03 03 03
3 : 03 03 00 04 04 04 04 04 04 04
4 : 00 05 05 05 05 05 05 05 00 06
5 : 00 06 06 06 06 06 07 07 07 07
6 : 07 07 07 07
 

) 上記のDSCP/CoSマップでは、CoS値が表形式で示されています。d1列はDSCPの最上位桁、d2行はDSCPの最下位桁を示します。d1とd2の交点にある値がCoS値です。たとえば、このDSCP/CoSマップでは、DSCP値が08の場合、対応するCoS値は0です。


DSCP/DSCP変換マップの設定

2つのQoSドメインで異なるDSCP定義が使用されている場合は、一方のドメインの一連のDSCP値を変換して、もう一方のドメインの定義に一致させるDSCP/DSCP変換マップを使用します。DSCP/DSCP変換マップは、QoS管理ドメインの境界にある受信ポート適用します(入力変換)。

入力変換により、パケットのDSCP値が新しいDSCP値で上書きされ、QoSはこの新しい値を使用してパケットを処理します。スイッチは新しいDSCP値を使用して、ポートからパケットを送信します。

1つの入力ポートに複数のDSCP/DSCP変換マップを設定できます。デフォルトのDSCP/DSCP変換マップは、着信DSCP値を同じDSCP値にマッピングする空のマップです。

DSCP/DSCP変換マップを変更するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

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

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

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

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

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

DSCPの範囲は0~63です。

ステップ 3

interface interface-id

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

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

ステップ 4

mls qos trust dscp

DSCP 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 gigabitethernet0/1
Switch(config-if)# mls qos trust dscp
Switch(config-if)# mls qos dscp-mutation mutation1
Switch(config-if)# end
Switch# show mls qos maps dscp-mutation mutation1
Dscp-dscp mutation map:
mutation1:
d1 : d2 0 1 2 3 4 5 6 7 8 9
---------------------------------------
0 : 00 00 00 00 00 00 00 00 10 10
1 : 10 10 10 10 14 15 16 17 18 19
2 : 20 20 20 23 24 25 26 27 28 29
3 : 30 30 30 30 30 35 36 37 38 39
4 : 40 41 42 43 44 45 46 47 48 49
5 : 50 51 52 53 54 55 56 57 58 59
6 : 60 61 62 63
 

) 上記のDSCP/DSCP変換マップでは、変換される値が表形式で示されています。d1列は元のDSCPの最上位桁、d2行は元のDSCPの最下位桁を示します。d1とd2の交点の値が、変換される値です。たとえば、DSCP値が12の場合、対応する変換される値は10です。


入力キューの特性の設定

ネットワークおよびQoSソリューションの複雑さに応じて、次に示す作業をすべて実行しなければならない場合があります。次の特性を決定する必要があります。

各キューに(DSCP値またはCoS値によって)割り当てるパケット

各キューに適用される廃棄スレッシュホールド、および各スレッシュホールドにマッピングされるCoSまたはDSCP値

各キュー間に割り当てられる空きバッファ スペースの量

各キュー間に割り当てられる使用可能な帯域幅の量

ハイ プライオリティを設定する必要があるトラフィック(音声など)の有無

ここでは、次の設定情報について説明します。

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

「入力キュー間のバッファ スペースの割り当て」(任意)

「入力キュー間の帯域幅の割り当て」(任意)

「入力プライオリティ キューの設定」(任意)

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

トラフィックにプライオリティを設定するには、特定のDSCPまたはCoSを持つパケットを特定のキューに格納し、より低いプライオリティを持つパケットが廃棄されるようにキューのスレッシュホールドを調整します。

DSCPまたはCoS値を入力キューにマッピングして、WTDスレッシュホールドを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

mls qos srr-queue input dscp-map queue queue-id threshold threshold-id dscp1...dscp8

または

mls qos srr-queue input cos-map queue queue-id threshold threshold-id cos1...cos8

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

デフォルトでは、DSCP値0~39および48~63はキュー1およびスレッシュホールド1にマッピングされます。DSCP値40~47はキュー2およびスレッシュホールド1にマッピングされます。

デフォルトでは、CoS値0~4、6、および7はキュー1およびスレッシュホールド1にマッピングされます。CoS値5はキュー2およびスレッシュホールド1にマッピングされます。

queue-id に指定できる範囲は、1~2です。

threshold-id の範囲は、1~3です。スレッシュホールド3の廃棄スレッシュホールドの割合は定義済みであり、キューフル ステートに設定されます。

dscp1...dscp8 には、最大8つの値をスペースで区切って入力します。指定できる範囲は0~63です。

cos1...cos8 には、最大8つの値をスペースで区切って入力します。指定できる範囲は0~7です。

ステップ 3

mls qos srr-queue input threshold queue-id threshold-percentage1 threshold-percentage2

入力キューに2つのWTDスレッシュホールドの割合(スレッシュホールド1および2用)を割り当てます。デフォルトでは、両方のスレッシュホールドが100%に設定されています。

queue-id に指定できる範囲は、1~2です。

threshold-percentage1 threshold-percentage2 の範囲は、1~100です。各値はスペースで区切ります。

各スレッシュホールド値は、キューに割り当てられたキュー記述子の総数の割合です。

ステップ 4

end

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

ステップ 5

show mls qos maps

設定を確認します。

DSCP入力キュー スレッシュホールド マップは、表形式で表示されます。d1列はDSCP値の最上位桁、d2行はDSCP値の最下位桁を示します。d1およびd2値の交点がキューIDおよびスレッシュホールドIDです。たとえば、キュー2およびスレッシュホールド1(02-01)のようになります。

CoS入力キュー スレッシュホールド マップでは、先頭行にCoS値、2番めの行に対応するキューIDおよびスレッシュホールドIDが示されます。たとえば、キュー2およびスレッシュホールド2(2-2)のようになります。

ステップ 6

copy running-config startup-config

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

デフォルトのCoS入力キュー スレッシュホールド マップまたはデフォルトのDSCP入力キュー スレッシュホールド マップに戻すには、 no mls qos srr-queue input cos-map 、または no mls qos srr-queue input dscp-map グローバル コンフィギュレーション コマンドを使用します。デフォルトのWTDスレッシュホールドの割合に戻すには、 no mls qos srr-queue input threshold queue-id グローバル コンフィギュレーション コマンドを使用します。

次に、DSCP値0~6を、入力キュー1およびスレッシュホールド1(廃棄スレッシュホールドが50%)にマッピングする例を示します。DSCP値20~26は、入力キュー1およびスレッシュホールド2(廃棄スレッシュホールドが70%)にマッピングされます。

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

Switch(config)# mls qos srr-queue input dscp-map queue 1 threshold 2 20 21 22 23 24 25 26

Switch(config)# mls qos srr-queue input threshold 1 50 70

 

この例では、50%のWTDスレッシュホールドがDSCP値(0~6)に割り当てられており、70%のWTDスレッシュホールドが割り当てられたDSCP値(20~26)よりも先に廃棄されます。

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

2つのキュー間で入力バッファを分割する比率を定義します(スペース量を割り当てます)。バッファ割り当てと帯域幅割り当てにより、パケットが廃棄される前にバッファに格納できるデータ量が制御されます。

入力キュー間にバッファを割り当てるには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

mls qos srr-queue input buffers percentage1 percentage2

入力キュー間にバッファを割り当てます。

デフォルトでは、バッファの90%がキュー1に、残りの10%がキュー2に割り当てられます。

percentage1 percentage2 の範囲は、0~100です。各値はスペースで区切ります。

キューが着信バースト トラフィックをすべて処理できるように、バッファを割り当てる必要があります。

ステップ 3

end

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

ステップ 4

show mls qos interface buffer

または

show mls qos input-queue

設定を確認します。

ステップ 5

copy running-config startup-config

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

デフォルトの設定に戻すには、 no mls qos srr-queue input buffers グローバル コンフィギュレーション コマンドを使用します。

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

Switch(config)# mls qos srr-queue input buffers 60 40

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

入力キュー間に割り当てられる使用可能な帯域幅の量を指定する必要があります。重みの比率は、SRRスケジューラが各キューからパケットを送信する頻度の比率です。帯域幅割り当てとバッファ割り当てにより、パケットが廃棄される前にバッファに格納できるデータ量を制御できます。入力キューでSRRが動作するのは、共有モードの場合のみです。

入力キュー間に帯域幅を割り当てるには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

mls qos srr-queue input bandwidth weight1 weight2

入力キューに共有ラウンド ロビン重みを割り当てます。

weight1およびweight2 のデフォルト設定は4です(帯域幅の1/2が2つのキューで等しく共有されます)。

weight1 および weight2 の範囲は、1~100です。各値はスペースで区切ります。

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

ステップ 3

end

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

ステップ 4

show mls qos interface queueing

または

show mls qos input-queue

設定を確認します。

ステップ 5

copy running-config startup-config

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

デフォルトの設定に戻すには、 no mls qos srr-queue input bandwidth グローバル コンフィギュレーション コマンドを使用します。

次に、キューに入力帯域幅を割り当てる例を示します。プライオリティ キューはディセーブルです。キュー1に割り当てられた共有帯域幅の比率は25/(25+75)、キュー2の比率は75/(25+75)です。

Switch(config)# mls qos srr-queue input priority-queue 2 bandwidth 0
Switch(config)# mls qos srr-queue input bandwidth 25 75
 

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

プライオリティ キューは、迅速な処理が必要なトラフィック(遅延およびジッタを最小に抑える必要のある音声トラフィックなど)にのみ使用します。

プライオリティ キューは、オーバーサブスクライブ リングに激しいネットワーク トラフィックが発生している状況で(バックプレーンが伝達できるトラフィックよりも多くのトラフィックが発生し、キューがいっぱいになって、フレームが廃棄されている場合)、遅延およびジッタを軽減するように帯域幅の一部が保証されています。

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

プライオリティ キューを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

mls qos srr-queue input priority-queue queue-id bandwidth weight

キューをプライオリティ キューとして割り当て、内部リングが輻輳している場合にリングの帯域幅を保証します。

デフォルトのプライオリティ キューはキュー2です。このキューには帯域幅の10%が割り当てられています。

queue-id に指定できる範囲は、1~2です。

bandwidth weight には、内部リングの帯域幅に対するパーセントを割り当てます。指定できる範囲は0~40です。値が大きい場合はリング全体に影響が及び、パフォーマンスが低下することがあるため、保証できる帯域幅の量は制限されています。

ステップ 3

end

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

ステップ 4

show mls qos interface queueing

または

show mls qos input-queue

設定を確認します。

ステップ 5

copy running-config startup-config

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

デフォルト設定に戻すには、 no mls qos srr-queue input priority-queue queue-id グローバル コンフィギュレーション コマンドを使用します。プライオリティ キューイングをディセーブルにするには、帯域幅の重みを0に設定します。たとえば、 mls qos srr-queue input priority-queue queue-id bandwidth 0 を入力します。

次に、キューに入力帯域幅を割り当てる例を示します。キュー1は、帯域幅の10%が割り当てられているプライオリティ キューです。キュー1および2に割り当てられている帯域幅比率は4/(4+4)です。SRRは、10%の帯域幅が設定されたキュー1(プライオリティ キュー)を最初に処理します。次に、SRRは残りの90%の帯域幅をキュー1と2にそれぞれ45%ずつ割り当てて、各キューで等しく共有します。

Switch(config)# mls qos srr-queue input priority-queue 1 bandwidth 10
Switch(config)# mls qos srr-queue input bandwidth 4 4

出力キューの特性の設定

ネットワークおよびQoSソリューションの複雑さに応じて、次に示す作業をすべて実行しなければならない場合があります。次の特性を決定する必要があります。

DSCP値またはCoS値によって各キューおよびスレッシュホールドIDにマッピングされるパケット

キューセット(ポートごとの4つの出力キュー)に適用される廃棄スレッシュホールドの割合、およびトラフィック タイプに必要なメモリの確保量および最大メモリ

キュー セットに割り当てる固定バッファ スペースの量

ポートの帯域幅に関するレート制限の必要性

出力キューの処理頻度、および使用する技術(シェーピング、共有、または両方)

ここでは、次の設定情報について説明します。

「設定時の注意事項」

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

「出力キューおよびスレッシュホールドIDへのDSCPまたはCoS値のマッピング」(任意)

「出力キューでのSRRシェーピング重みの設定」(任意)

「出力キューでのSRR共有重みの設定」(任意)

「出力緊急キューの設定」(任意)

「出力インターフェイスの帯域幅の制限」(任意)

設定時の注意事項

緊急キューをイネーブルにする、またはSRRの重みに基づいて出力キューを処理する場合は、次の注意事項に従ってください。

出力緊急キューがイネーブルの場合、キュー1に対応するSRRシェーピング重みおよび共有重みは上書きされます。

出力緊急キューがディセーブルで、SRRシェーピング重みおよび共有重みが設定されている場合、シェーピング モードはキュー1の共有モードを無効にし、SRRはこのキューをシェーピング モードで処理します。

出力緊急キューがディセーブルで、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 ... allocation4 には、キューセット内のキューごとに1つずつ、合計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 gigabitethernet0/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スケジューラが各キューからパケットを送信する頻度の比率です。

出力キューにシェーピング重み、共有重み、またはその両方を設定できます。バースト性のあるトラフィックを平滑化したり、出力をより滑らかにしたりするには、シェーピングを使用します。シェーピング重みの詳細については、 「SRRのシェーピングおよび共有」を参照してください。共有重みの詳細については、「出力キューでのSRR共有重みの設定」を参照してください。

ポートにマッピングされた4つの出力キューにシェーピング重みを割り当てて、帯域幅のシェーピングをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

interface interface-id

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

ステップ 3

srr-queue bandwidth shape weight1 weight2 weight3 weight4

出力キューにSRR重みを割り当てます。

デフォルトでは、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 gigabitethernet0/1
Switch(config-if)# srr-queue bandwidth shape 8 0 0 0

出力キューでのSRR共有重みの設定

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


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


ポートにマッピングされた4つの出力キューに共有重みを割り当てて、帯域幅の共有をイネーブルにするには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

interface interface-id

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

ステップ 3

srr-queue bandwidth share weight1 weight2 weight3 weight4

出力キューにSRR重みを割り当てます。

デフォルトでは、4つの重みがすべて25です(各キューに帯域幅の1/4が割り当てられています)。

weight1 weight2 weight3 weight4 には、SRRスケジューラがパケットを送信する頻度の比率を制御する重みを入力します。各値はスペースで区切ります。指定できる範囲は1~255です。

ステップ 4

end

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

ステップ 5

show mls qos interface interface-id queueing

設定を確認します。

ステップ 6

copy running-config startup-config

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

デフォルトの設定に戻すには、 no srr-queue bandwidth share インターフェイス コンフィギュレーション コマンドを使用します。

次に、出力ポートで稼働しているSRRスケジューラの重み比率を設定する例を示します。4つのキューが使用され、共有モードで各キューに割り当てられる帯域幅の比率は、キュー1、2、3、および4に対して1/(1+2+3+4)、2/(1+2+3+4)、3/(1+2+3+4)、および4/(1+2+3+4)になります(それぞれ、10、20、30、および40%)。つまり、キュー4の帯域幅はキュー1の4倍、キュー2の2倍、キュー3の約1.3倍です。

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

出力緊急キューの設定

Cisco IOS Release 12.1(19)EA1から、出力緊急キューにパケットを入れることにより、特定のパケットのプライオリティを他のパケットより高くできます。SRRは、このキューが空になるまで処理してから他のキューを処理します。

出力緊急キューをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。

 

コマンド
目的

ステップ 1

configure terminal

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

ステップ 2

mls qos

スイッチ上でQoSをイネーブルにします。

ステップ 3

interface interface-id

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

ステップ 4

priority-queue out

デフォルトでディセーブルに設定されている出力緊急キューをイネーブルにします。

このコマンドを設定すると、SRRに参加するキューは1つ少なくなるため、SRR重みおよびキュー サイズの比率が影響を受けます。つまり、 srr-queue bandwidth shape または srr-queue bandwidth share コマンドの weight1 が無視されます(比率計算に使用されません)。

ステップ 5

end

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

ステップ 6

show running-config

設定を確認します。

ステップ 7

copy running-config startup-config

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

出力緊急キューをディセーブルにするには、 no priority-queue out インターフェイス コンフィギュレーション コマンドを使用します。

次に、SRR重みが設定されている場合に出力緊急キューをイネーブルにする例を示します。出力緊急キューは、設定済みのSRR重みよりも優先されます。

Switch(config)# interface gigabitethernet0/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です。

デフォルトでは、ポートのレートは制限されず、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 gigabitethernet0/1
Switch(config-if)# srr-queue bandwidth limit 80
 

このコマンドを80%に設定すると、ポートは該当期間の20%はアイドルになります。回線レートは接続速度の80%(800 Mbps)に低下します。ハードウェアは6を増分値として回線レートを調整するため、これらの値は正確ではありません。

標準QoS情報の表示

標準QoS情報を表示するには、 表28-15 のイネーブルEXECコマンドを1つまたは複数使用します。

 

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

コマンド
目的

show class-map [ class-map-name ]

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

show mls qos

グローバルQoSコンフィギュレーション情報を表示します。

show mls qos aggregate-policer [ aggregate-policer-name ]

集約ポリサーの設定を表示します。

show mls qos input-queue

入力キューのQoS設定を表示します。

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

バッファ割り当て、ポリサーが設定されるポート、キューイング方式、入出力統計情報など、ポート レベルのQoS情報が表示されます。

show mls qos maps [ cos-dscp | cos-input-q | cos-output-q | dscp-cos | dscp-input-q | dscp-mutation dscp-mutation-name | dscp-output-q | ip-prec-dscp | policed-dscp ]

QoSマッピング情報を表示します。

show mls qos queue-set [ qset-id ]

出力キューのQoS設定を表示します。

show mls qos vlan vlan-id

指定のSVIに適用されたポリシー マップを表示します。

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

着信トラフィックの分類条件を定義したQoSポリシー マップを表示します。


) 着信トラフィックの分類情報を表示する場合は、show policy-map interfaceイネーブルEXECコマンドを使用しないでください。control-planeおよびinterfaceキーワードはサポートされていません。表示される統計情報は無視してください。


show running-config | include rewrite

トランスペアレントなDSCP設定を表示します。