この章では、標準のQuality of Service(QoS;サービス品質)コマンドまたは自動QoSコマンドを使用して、Catalyst 3750スイッチにQoSを設定する方法について説明します。QoSを使用すると、特定のトラフィックを他のトラフィックよりも優先的に処理できます。QoSを使用しない場合、パケットの内容やサイズに関係なく、各パケットにベストエフォート型サービスが提供され、信頼性、遅延限度、スループットが保証されずに、パケットが送信されます。特に明記しないかぎり、 スイッチ という用語はスタンドアロン スイッチおよびスイッチ スタックを意味します。
QoSの概要
ネットワークは通常、ベストエフォート型の配信方式で動作します。この場合、すべてのトラフィックはプライオリティおよび適切なタイミングで配信される可能性に関して同等です。輻輳が発生した場合に廃棄される可能性も、すべてのトラフィックで同等です。
QoS機能を設定すると、特定のネットワーク トラフィックを選択し、相対的な重要性に応じてプライオリティを指定し、輻輳管理および輻輳回避技術を使用して、優先処理を行うことができます。ネットワークにQoSを実装すると、ネットワークのパフォーマンスが予想しやすくなり、帯域利用率がより効果的になります。
QoSは新たに普及しつつあるInternet Engineering Task Force(IETF)の規格であるDifferentiated Services(DiffServ)アーキテクチャに基づいて実装されています。DiffServアーキテクチャでは、ネットワークの入り口で各パケットが分類されます。
この分類はIPパケット ヘッダーに格納され、現在ほとんど使用されていないIP Type of Service(ToS;サービス タイプ)フィールドの6ビットを使用して、分類( クラス )情報が伝達されます。また、レイヤ2フレームでも分類を実行できます。次に、レイヤ2フレームまたはレイヤ3パケット内のこれらの特殊ビットについて説明します( フレームおよびパケットのQoS分類レイヤ を参照)。
レイヤ2のISL(スイッチ間リンク)フレーム ヘッダーには、下位3ビットでIEEE 802.1p Class of Service(CoS;サービス クラス)値を伝達する、1バイトのユーザ フィールドがあります。レイヤ2のISLトランクとして設定されたポートでは、すべてのトラフィックがISLフレームに収められます。
レイヤ2の802.1Qフレーム ヘッダーには、上位3ビット(別名ユーザ プライオリティ ビット)でCoS値を伝達する、2バイトのタグ制御情報フィールドがあります。レイヤ2の802.1Qトランクとして設定されたポートでは、ネイティブVLANのトラフィックを除き、すべてのトラフィックが802.1Qフレームに収められます。
その他のフレーム タイプでは、レイヤ2のCoS値を伝達できません。
レイヤ2 CoS値の範囲は0(ロー プライオリティ)〜7(ハイ プライオリティ)です。
レイヤ3 IPパケットは、IP precedence値またはDifferentiated Services Code Point(DSCP)値のいずれかを伝達します。DSCP値はIP precedence値と下位互換性があるので、QoSではどちらの値も使用できます。
インターネットにアクセスするすべてのスイッチおよびルータはクラス情報を信頼し、クラス情報ごとに異なる転送処理を行います。エンド ホストやパス上のスイッチまたはルータでは、設定されたポリシーやパケットの調査結果、あるいはその両方に基づいて、パケットにクラス情報を割り当てることができます。通常は、主要なスイッチやルータが過負荷にならないように、ネットワークのエッジ付近でパケットが詳細に調査されます。
パス上のスイッチおよびルータでは、クラス情報に基づいて、トラフィック クラスごとに割り当てられるリソース量を制限することができます。DiffServアーキテクチャでトラフィックを処理するときの各デバイスの動作は、ホップ単位動作と呼ばれます。パス上にあるすべてのデバイスのホップ単位動作が一貫している場合は、エンドツーエンドのQoSソリューションを構築できます。
ネットワークにQoSを実装する作業は、インターネットワーキング デバイス、ネットワーク内のトラフィック タイプとパターン、および着信/発信トラフィックに必要な制御の細かさによって、難易度が変化します。
基本的なQoSモデル
QoSを実装するには、スイッチ上でパケットまたはフローを相互に区別(分類)し、パケットがスイッチを通過するときに所定のQoSを示すラベルを割り当て、設定されたリソース使用率制限にパケットを適合させ(ポリシングおよびマーキング)、リソース競合の発生状況に応じて異なる処理(キューイングおよびスケジューリング)を行う必要があります。また、スイッチから送信されたトラフィックが特定のトラフィック プロファイルを満たすようにする必要もあります(シェーピング)。
基本的なQoSモデル に、基本的な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)、緊急キューとすることができます。このキューを空になるまで処理してから、他のキューを処理します。
- 基本的なQoSモデル
分類
分類はパケットのフィールドを調べて、トラフィックの種類を区別するプロセスです。QoSがスイッチ上でグローバルでイネーブルになっている場合のみ、分類はイネーブルとなります。デフォルトでは、QoSはグローバルでディセーブルになっているため、分類は実行されません。
分類中に、スイッチは検索処理を実行し、パケットにQoSラベルを割り当てます。QoSラベルはパケットに対して実行するすべてのQoSアクション、およびパケットの送信元キューを識別します。
QoSラベルはパケット内のDSCPまたはCoS値に基づいて、パケットに実行されるキューイングおよびスケジューリング アクションを決定します。QoSラベルは信頼設定およびパケット タイプに従ってマッピングされます( 分類フローチャート を参照)。
着信トラフィックを分類するには、フレームまたはパケット内のどのフィールドを使用するかを指定します。非IPトラフィックの場合は、次の方法で分類できます( 分類フローチャート を参照)。
- 着信フレーム内のCoS値を信頼します(CoSを信頼するようにポートを設定します)。次に、設定可能なCoS/DSCPマップを使用して、パケットのDSCP値を生成します。レイヤ2のISLフレーム ヘッダーの場合、CoS値は1バイトのユーザ フィールドの下位3ビットに格納されて伝達されます。レイヤ2の802.1Qフレーム ヘッダーの場合、CoS値はタグ制御情報フィールドの上位3ビットに格納されて伝達されます。CoS値の範囲は0(ロー プライオリティ)〜7(ハイ プライオリティ)です。
- 着信フレームのDSCPまたはIP precedence値を信頼します。これらの設定は、非IPトラフィックの場合は無意味です。これらのいずれかの方法で設定されているポートに非IPトラフィックが着信した場合は、CoS値が割り当てられ、CoS/DSCPマップからDSCP値が生成されます。
- 設定されたレイヤ2のMAC(メディア アクセス制御)Access Control List(ACL;アクセス制御リスト)に基づいて分類します。レイヤ2のMAC ACLでは、MAC送信元アドレス、MAC宛先アドレス、およびその他のフィールドを調べることができます。ACLが設定されていない場合、パケットにはDSCPおよびCoS値として0が割り当てられます。この割り当ては、トラフィックがベストエフォート型であることを意味します。ACLが設定されている場合は、ポリシーマップ アクションによって、着信フレームに割り当てられるDSCPまたはCoS値が指定されます。
IPトラフィックの場合は、次の方法で分類できます( 分類フローチャート を参照)。
- 着信パケットのDSCP値を信頼し(DSCPを信頼するようにポートを設定し)、パケットに同じDSCP値を割り当てます。IETFでは、1バイトのToSフィールドの上位6ビットがDSCPとして定義されています。特定のDSCP値で表されるプライオリティは設定可能です。DSCP値の範囲は0〜63です。
2つのQoS管理ドメインの境界上にあるポートの場合は、設定可能なDSCP/DSCP変換マップを使用し、DSCPを別の値に変更することができます。
- 着信パケットのIP precedence値を信頼し(IP precedenceを信頼するようにポートを設定し)、設定可能なIP precedence/DSCPマップを使用してパケットのDSCP値を生成します。IPバージョン4仕様では、1バイトのToSフィールドの上位3ビットがIP precedenceとして定義されています。IP precedence値の範囲は0(ロー プライオリティ)〜7(ハイ プライオリティ)です。
- 着信パケットにCoS値がある場合にはこれを信頼し、CoS/DSCPマップを使用してパケットのDSCP値を生成します。CoS値が存在しない場合は、デフォルトのポートCoS値を使用します。
- 設定されたIP標準、またはIPヘッダーの各フィールドを調べる拡張ACLに基づいて、分類を実行します。ACLが設定されていない場合、パケットにはDSCPおよびCoS値として0が割り当てられます。この割り当ては、トラフィックがベストエフォート型であることを意味します。ACLが設定されている場合は、ポリシーマップ アクションによって、着信フレームに割り当てられるDSCPまたはCoS値が指定されます。
ここで説明されているマップの詳細については、 マッピング テーブル を参照してください。ポートの信頼状態に関する設定の詳細については、 ポートの信頼状態による分類の設定 を参照してください。
QoS ACLに基づく分類
IP標準、IP拡張、およびレイヤ2 MAC ACLを使用すると、同じ特性(クラス)を持つパケットのグループを定義できます。QoSコンテキストでは、Access Control Entry(ACE;アクセス制御エントリ)とセキュリティACLで、許可(permit)および拒否(deny)アクションの意味が異なります。
- 許可アクションと一致した場合は(原則的には最初の一致)、指定されたQoS関連のアクションが実行されます。
- 拒否アクションと一致した場合は、処理中のACLが省略され、次のACLが処理されます。
- すべてのACEを調べても許可アクションとの一致が見つからなかった場合は、パケットに関するQoS処理が行われず、ベストエフォート型サービスがパケットに対して行われます。
- ポートに複数のACLが設定されている場合、許可アクションを含む最初のACLとパケットの一致が見つかるとそれ以降の検索処理は中止され、QoS処理が開始されます。
ACLを使用して定義されたトラフィック クラスには、ポリシーを付加できます。ポリシーにはアクションがそれぞれ指定された複数のクラスを含めることができます。ポリシーには、クラスを特定のグループとして分類する(たとえばDSCPを割り当てる)コマンドや、クラスの速度制限を行うコマンドが含まれます。このポリシーは、ポリシーが有効となる特定のポートに付加されます。
IPトラフィックを分類するIP ACLを実装するには、 access-list グローバル コンフィギュレーション コマンドを使用します。非IPトラフィックを分類するレイヤ2 MAC ACLを実装するには、 mac access-list extended グローバル コンフィギュレーション コマンドを使用します。設定の詳細については、 QoSポリシーの設定 を参照してください。
クラス マップおよびポリシー マップに基づく分類
クラス マップは、特定のトラフィック フロー(またはクラス)に名前を付けて、他のすべてのトラフィックと区別するためのメカニズムです。クラス マップでは、特定のトラフィック フローとの比較を行い、さらにそれを分類するために使用する条件を定義します。この条件には、ACLで定義されたアクセス グループとの比較、またはDSCP値やIP precedence値の特定のリストとの比較を含めることができます。複数のタイプのトラフィックを分類する場合は、別のクラス マップを作成し、異なる名前を付けることができます。クラス マップの基準と一致したパケットは、ポリシー マップを使用してさらに分類できます。
ポリシー マップは処理対象のトラフィック クラスを指定します。トラフィック クラスの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 インターフェイス コンフィギュレーション コマンドを使用し、ポリシー マップをポートに付加します。
詳細については、 ポリシングおよびマーキング を参照してください。設定の詳細については、 QoSポリシーの設定 を参照してください。
ポリシングおよびマーキング
パケットを分類し、DSCPまたはCoSに基づいてQoSラベルを割り当てたあとで、ポリシングおよびマーキング プロセスを開始できます( ポリシングおよびマーキングのフローチャート を参照)。
ポリシングでは、トラフィックの帯域幅制限を指定するポリサーが作成されます。制限を超えるパケットは、「 不適合 」になります。各ポリサーはパケットごとに、パケットが適合であるかまたは不適合であるかを判別し、パケットに対するアクションを決定します。これらのアクションはマーカーによって実行されます。パケットを変更しないで通過させるアクション、パケットを廃棄するアクション、またはパケットに割り当てられたDSCP値を変更(マークダウン)してパケットの通過を許可するアクションなどがあります。設定可能なポリシング設定DSCPマップを使用すると、パケットに新しいDSCPベースQoSラベルが設定されます。ポリシング設定DSCPマップの詳細については、 マッピング テーブル を参照してください。マークダウンされたパケットは、元のQoSラベルと同じキューを使用して、フロー内のパケットの順番が崩れないようにします。
一致する各トラフィック クラスに、ポリサー内で指定された帯域幅制限が個別に適用されます。ポリシー マップ内でこのタイプのポリサーを設定するには、 police ポリシー マップ クラス コンフィギュレーション コマンドを使用します。
一致するすべてのトラフィック フローに、集約ポリサーで指定される帯域幅制限が累積的に適用されます。このタイプのポリサーを設定するには、 police aggregate ポリシー マップ クラス コンフィギュレーション コマンドを使用し、ポリシー マップ内の集約ポリサー名を指定します。ポリサーの帯域幅制限を指定するには、 mls qos aggregate-policer グローバル コンフィギュレーション コマンドを使用します。この方法で、集約ポリサーはポリシー マップ内にあるトラフィックの複数のクラスで共有されます。
ポリシングは、トークン バケット アルゴリズムを使用します。各フレームがスイッチに受信されると、バケットにトークンが追加されます。バケットは内部にホールがあり、平均トラフィック レートとしてビット/秒で指定されたレートで通過します。バケットにトークンが追加されるたびに、スイッチはバケット内に十分なスペースがあるかどうかを確認します。十分なスペースがない場合は、不適合とマークされ、指定されたポリサーの対処方法がとられます(廃棄またはマークダウン)。
バケットが満たされる速度は、バケット深度(burst-byte)、トークンが削除される速度(rate-bps)、および平均速度を上回るバースト期間の関数です。バケットのサイズにより、バースト長に上限が設定され、バックツーバックで送信できるフレーム数が制限されます。バーストが短い場合、バケットはオーバーフローせず、トラフィック フローに対して何のアクションも行われません。ただし、バーストが長く速度が速い場合、バケットはオーバーフローし、そのバーストのフレームに対してポリシング アクションが行われます。
バケット深度(バケットがオーバーフローするまでに許容された最大バースト)は、 police ポリシー マップ クラス コンフィギュレーション コマンドまたは mls qos aggregate-policer グローバル コンフィギュレーション コマンドの burst-byte オプションを使用して設定します。トークンがバケットから削除される速度(平均速度)は、 police ポリシー マップ コンフィギュレーション コマンドまたは mls qos aggregate-policer グローバル コンフィギュレーション コマンドの rate-bps オプションを使用して設定します。
ポリシー マップおよびポリシング アクションを設定したあとで、 service-policy インターフェイス コンフィギュレーション コマンドを使用して、入力ポートにポリシーを付加します。設定の詳細については、 ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング 、および 集約ポリサーによるトラフィックの分類、ポリシング、およびマーキング を参照してください。
マッピング テーブル
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出力キュー スレッシュホールド マップの詳細については、 出力キューでのキューイングおよびスケジューリング を参照してください。
キューイングおよびスケジューリングの概要
スイッチでは、輻輳防止に役立つように、特定の位置に各キューが配置されています( 入力および出力キューの位置 を参照)。
すべてのポートの入力帯域幅の合計がスタック リングの帯域幅を超えることがあるため、入力キューはパケットの分類、ポリシング、およびマーキングのあと、パケットがスイッチ ファブリックに転送される前の位置に配置されています。複数の入力ポートから1つの出力ポートに同時にパケットが送信されて、輻輳が発生することがあるため、出力キューはスタック リングのあとに配置されています。
WTD
入力および出力キューは両方とも、Weighted Tail Drop(WTD)と呼ばれるテール廃棄輻輳回避メカニズムの拡張バージョンを使用します。WTDはキュー長を管理したり、トラフィック分類ごとに廃棄優先順位を設定するために実装されます。
フレームが特定のキューにキューイングされると、WTDはフレームに割り当てられたQoSラベルを使用して、それぞれ異なるスレッシュホールドを適用します。このQoSラベルのスレッシュホールドを超えた場合( 宛先キューの空きスペースがフレーム サイズより小さくなると) 、フレームは廃棄されます。
WTDおよびキューの動作 に、サイズが1000フレームであるキューにおけるWTDの動作例を示します。40%(400フレーム)、60%(600フレーム)、および100%(1000フレーム)の3つの廃棄率が設定されています。これらの廃棄率は、40%スレッシュホールドの場合は最大400フレーム、60%スレッシュホールドの場合は最大600フレーム、100%スレッシュホールドの場合は最大1000フレームをキューイングできるという意味です。
この例では、CoS値6および7は他のCoS値よりも重要度が高く、100%廃棄スレッシュホールドに割り当てられます(キューフル ステート)。CoS値4および5は60%スレッシュホールドに、CoS値0〜3は40%スレッシュホールドに割り当てられます。
600個のフレームが格納されているキューに、新しいフレームが着信したとします。このフレームのCoS値は4および5で、60%スレッシュホールドが適用されます。このフレームがキューに追加されると、スレッシュホールドを超過するため、フレームは廃棄されます。
詳細については、 入力キューへのDSCPまたはCoS値のマッピングおよびWTDスレッシュホールドの設定 、 出力キューセットに対するバッファ スペースの割り当ておよびWTDスレッシュホールドの設定 、および 出力キューおよびスレッシュホールドIDへのDSCPまたはCoS値のマッピング を参照してください。
SRRのシェーピングおよび共有
入力および出力の両方のキューはSRRで処理され、SRRによってパケットの送信レートが決まります。入力キューでは、SRRによってパケットがスタック リングに送信されます。出力キューでは、SRRによってパケットが出力ポートに送信されます。
出力キューでは、SRRを共有またはシェーピング用に設定できます。ただし、入力キューでは共有がデフォルト モードであり、これ以外のモードはサポートされていません。
シェーピング モードでは、出力キューの帯域幅割合が保証され、この値にレートが制限されます。シェーピングされたトラフィックの場合は、リンクがアイドルの場合も、割り当てを超える帯域幅は使用されません。シェーピングを使用すると、トラフィック フローがより均一になり、バースト トラフィックの最大時と最小時の幅が小さくなります。シェーピングの場合は、各ウェイトの絶対値を使用して、キューで使用可能な帯域幅が計算されます。
共有モードでは、キューは設定されたウェイトに従って各キュー間で帯域幅を共有します。帯域幅はこのレベルで保証されますが、このレベルに限定されるわけではありません。たとえば、特定のキューが空であり、リンクを共有する必要がない場合、残りのキューは未使用の帯域幅を使用して、共有できます。共有の場合、キューからパケットを取り出す頻度はウェイトの比率によって決まります。ウェイトの絶対値には意味がありません。
詳細については、 各入力キューの帯域幅の割り当て 、 出力キューのSRRシェーピング ウェイトの設定 、および 出力キューのSRR共有ウェイトの設定 を参照してください。
入力キューでのキューイングおよびスケジューリング
入力ポートのキューイングおよびスケジューリングに関するフローチャート に、入力ポートのキューイングおよびスケジューリングに関するフローチャートを示します。
|
キュー タイプ 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 グローバル コンフィギュレーション コマンドを使用して、合計スタック トラフィックの割合として設定できます。緊急キューは帯域幅が保証されています。 |
キューおよびスレッシュホールドに、スイッチを通過する各パケットを割り当てます。特に、入力キューには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を持つパケットを特定のキューに格納したり、大きなキュー サイズを割り当てたり、キューの処理頻度を増やしたり、プライオリティが低いパケットが廃棄されるようにキューのスレッシュホールドを調整したりして、トラフィックのプライオリティを設定できます。設定の詳細については、 入力キューの特性の設定 を参照してください。
出力キューでのキューイングおよびスケジューリング
出力ポートのキューイングおよびスケジューリングに関するフローチャート に、出力ポートのキューイングおよびスケジューリングに関するフローチャートを示します。
各ポートでは、4つの出力キューをサポートしています。そのうちの1つのキュー(キュー1)を出力緊急キューとすることができます。これらのキューはキューセットに割り当てられます。スイッチから送信されるすべてのトラフィックは、パケットに割り当てられたQoSラベルに基づいて、これらの4つのキューのいずれかを通過し、スレッシュホールドの影響を受けます。
出力キューのバッファ割り当て に出力キュー バッファを示します。バッファ スペースは共通プールと専用プールからなります。スイッチはバッファ割り当て方式を使用して、出力キューごとに最小バッファ サイズを確保します。これにより、いずれかのキューまたはポートがすべてのバッファを消費して、その他のキューのバッファが不足することがなくなり、要求元のキューにバッファ スペースを割り当てるかどうかが決まります。スイッチは、目的のキューが確保量(下限)を超えるバッファを消費していないかどうか、最大バッファ(上限)をすべて消費しているかどうか、および共通プールが空である(空きバッファなし)か、または空でない(空きバッファあり)かを検出します。キューが上限に達していない場合、スイッチは専用プールまたは共通プール(空でない場合)からバッファ スペースを割り当てることができます。共通プールに空きバッファがない場合、またはキューが上限に達している場合は、フレームが廃棄されます。
バッファおよびメモリの割り当て
バッファのアベイラビリティの保証、廃棄スレッシュホールドの設定、およびキューセットの最大メモリ割り当ての設定を行うには、 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に参加します。緊急キューがイネーブルの場合、最初の帯域幅ウェイトは無視されて、比率計算で使用されません。緊急キューは、プライオリティ キューです。このキューを空になるまで処理してから、他のキューを処理します。緊急キューをイネーブルにするには、 priority-queue out インターフェイス コンフィギュレーション コマンドを使用します。
ここに記載されたコマンドを組み合わせると、特定のDSCPまたはCoSを持つパケットを特定のキューに格納したり、大きなキュー サイズを割り当てたり、キューの処理頻度を増やしたり、プライオリティが低いパケットが廃棄されるようにキューのスレッシュホールドを調整したりして、トラフィックのプライオリティを設定できます。設定の詳細については、 出力キューの特性の設定 を参照してください。
パケットの変更
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値は変更されませんが、DSCPはCoS/DSCPマップに従って変更されることがあります。
入力変換が行われると、選択された新しいDSCP値に応じてDSCPが書き換えられます。ポリシー マップの設定アクションによって、DSCPが書き換えられることもあります。
自動QoSの設定
自動QoSを使用すると、既存のQoS機能を簡単に導入できます。自動QoSはネットワーク設計に関する前提条件を設定するもので、それによってスイッチは、デフォルトのQoS動作を使用せずにトラフィック フローごとに優先順位を付け、入力キューおよび出力キューを適切に使用できます(デフォルトで、QoSはディセーブルです。スイッチはパケットの内容やサイズに関係なく、各パケットにベストエフォート型サービスを提供し、単一キューでパケットを送信します)。
自動QoSをイネーブルにすると、トラフィック タイプと入力パケット ラベルに基づいてトラフィックが自動的に分類されます。スイッチはこの分類結果を使って適切な出力キューを選択します。
自動QoSコマンドを使って、Cisco IP Phoneと接続しているポートを識別し、アップリンクを通じて信頼できるVoice over IP(VoIP)トラフィックを受信するポートを識別します。ここで自動QoSは次の機能を実行します。
ここでは、スイッチ上で自動QoSを設定する手順について説明します。
生成される自動QoS設定
デフォルトでは、自動QoSはすべてのポートでディセーブルに設定されています。
自動QoSがイネーブルの場合、トラフィックの分類、パケット ラベルの割り当て、および入力キューと出力キューの設定に入力パケット ラベルを使用します( トラフィック タイプ、入力パケット ラベル、割り当てパケット ラベル、およびキュー を参照)。
最初のポートで自動QoS機能をイネーブルにすると、次の動作が自動的に発生します。
- QoSがグローバルにイネーブルになり( mls qos グローバル コンフィギュレーション コマンド)、その他のグローバル コンフィギュレーション コマンドが追加されます。
- Cisco IP Phoneに接続されたネットワークのエッジにあるポート上で auto qos voip cisco-phone インターフェイス コンフィギュレーション コマンドを入力すると、信頼境界機能がイネーブルになります。スイッチはCisco Discovery Protocol(CDP)を使用して、Cisco IP Phoneの有無を検出します。Cisco IP Phoneが検出されると、パケットで受信されるQoSラベルを信頼するようにポートの入力分類が設定されます。Cisco IP Phoneがない場合、パケットで受信されるQoSラベルを信頼しないようにインターフェイスの入力分類が設定されます。 入力キュー用の自動QoS設定 および 出力キュー用の自動QoS設定 の設定に従って、ポートに入力キューおよび出力キューが設定されます。
- ネットワーク内部に接続されたポート上で auto qos voip trust インターフェイス コンフィギュレーション コマンドを入力すると、非ルーテッド ポートの場合は入力パケット内のCoS値、ルーテッド ポートの場合は入力パケット内のDSCP値が信頼されます(前提条件は、トラフィックがすでに他のエッジ デバイスによって分類されていることです)。 入力キュー用の自動QoS設定 および 出力キュー用の自動QoS設定 の設定に従って、ポートに入力キューおよび出力キューが設定されます。
信頼境界機能の詳細については、 信頼境界の設定によるポート セキュリティの確保 を参照してください。
auto qos voip cisco-phone または auto qos voip trust インターフェイス コンフィギュレーション コマンドを使用して自動QoSをイネーブルにすると、スイッチはトラフィック タイプと入力パケット ラベルに基づいて自動的にQoS設定を生成し、 生成される自動QoS設定 に示すコマンドをポートに適用します。
自動QoSの設定上の影響
自動QoSがイネーブルの場合、 auto qos voip インターフェイス コンフィギュレーション コマンドおよび生成された設定が、実行コンフィギュレーションに追加されます。
自動QoSによって生成されたコマンドは、CLIから入力された場合と同様に適用されます。既存のユーザ設定により、生成されたコマンドの適用に失敗したり、生成されたコマンドで既存設定が上書きされることがあります。これらの動作は、警告なしに実行されます。生成されたコマンドがすべて正常に適用された場合、上書きされなかったユーザ入力の設定は、実行コンフィギュレーションに残ります。上書きされたユーザ入力の設定を元に戻すには、現在のコンフィギュレーションをメモリに保存しないでスイッチをリロードします。生成されたコマンドを適用できなかった場合は、元の実行コンフィギュレーションが復元されます。
自動QoS設定時の注意事項
- このリリースでは、Cisco IP PhoneのVoIPに対してのみ自動QoSがスイッチに設定されます。
- 自動QoSのデフォルト設定を利用するには、自動QoSコマンドをイネーブルにしてから、その他のQoSコマンドを設定してください。必要であれば、QoS設定をきめ細かく調整できますが、自動QoSコマンド設定が完了したあとに実行することを推奨します。詳細については、 自動QoSの設定上の影響 を参照してください。
- スタティック アクセス、ダイナミック アクセス、音声VLANアクセス、およびトランク ポートで自動QoSをイネーブルにできます。
- デフォルトでは、CDPはすべてのポートでイネーブルに設定されています。自動QoSを適切に機能させるには、CDPをディセーブルにしないでください。
- ポリシングは自動QoSでイネーブルになりません。ポリシングは手動でイネーブルにできます( QoSポリシーの設定 を参照)。
VoIP用の自動QoSをイネーブルにする方法
自動QoSがイネーブルまたはディセーブルの場合に自動生成されるQoSコマンドを表示するには、 debug autoqos イネーブルEXECコマンドを入力して から 、QoSをイネーブルにします。詳細については、このリリースのコマンド リファレンスに記載された[debug autoqos]コマンドの説明を参照してください。
ポートで自動QoSをディセーブルにするには、no auto qos voipインターフェイス コンフィギュレーション コマンドを使用します。自動QoSによりこのポートに生成されたインターフェイス コンフィギュレーション コマンドのみが削除されます。自動QoSがイネーブル化されていないポートに no auto qos voip コマンドを入力すると、自動QoSにより生成されたグローバル コンフィギュレーション コマンドが残っている場合も、自動QoSはディセーブルであるとみなされます(これにより、他のポート上でグローバル設定の影響を受けるトラフィックが中断されなくなります)。 no mls qos グローバル コンフィギュレーション コマンドを使用すると、自動QoSにより生成されたグローバル コンフィギュレーション コマンドをディセーブルにすることができます。QoSがディセーブルの場合、パケット(パケットのCoS値、DSCP値、およびIP precedence値)は変更されないため、trusted(信頼する)ポート、untrusted(信頼しない)ポートの概念はありません。トラフィックはパススルー モードでスイッチングされます(パケットは書き換えられずにスイッチングされ、ポリシングを伴わないベストエフォート型として分類されます)。
次に、ポートに接続されたスイッチまたはルータが信頼のあるデバイスの場合、自動QoSをイネーブルにし、着信パケットで受信されたQoSラベルを信頼する例を示します。
Switch(config)# interface gigabitethernet2/0/1
Switch(config-if)# auto qos voip trust
自動QoS設定例
ここでは、ネットワーク内でAuto-QoSを実装する手順について説明します( 自動QoSを設定したネットワークの例 を参照)。
自動QoSを設定したネットワークの例 に、VoIPトラフィックのプライオリティが他のタイプのトラフィックよりも高くなるネットワークを示します。配線クローゼット内のQoSドメインのエッジにあるスイッチで、自動QoSをイネーブルにします。
VoIPトラフィックを他のすべてのトラフィックよりも優先させるために、QoSドメインのエッジにあるスイッチを設定するには、イネーブルEXECモードで次の手順を実行します。
|
自動QoS用のデバッグをイネーブルにします。デバッグがイネーブルになると、スイッチは、自動QoSがイネーブルになる場合に自動的に生成されるQoS設定を表示します。 |
||
|
Cisco IP Phoneに接続されたスイッチ ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
||
|
信頼できるスイッチまたはルータに接続していると認識されたスイッチ ポートを指定し、インターフェイス コンフィギュレーション モードを開始します( 自動QoSを設定したネットワークの例 を参照)。 |
||
|
このコマンドは、最初に適用された自動QoS設定を表示するもので、実行された可能性のあるユーザによる変更は反映されません。 自動QoSによって影響を受ける可能性のあるQoS設定に関する情報については、「自動QoS情報の表示」(p.26-12)を参照してください。 |
||
|
auto qos voip インターフェイス コンフィギュレーション コマンドと生成された自動QoS設定をコンフィギュレーション ファイルに保存します。 |
自動QoS情報の表示
自動QoSの初期設定を表示するには、 show auto qos [ interface interface-id ]イネーブルEXECコマンドを使用します。 ユーザが変更した設定を表示するには、 show running-config イネーブルEXECコマンドを使用します。 show auto qos および show running-config コマンド出力を比較してユーザが定義したQoS設定を特定できます。
自動QoSによって影響を受ける可能性のあるQoS設定に関する情報を表示するには、次のいずれかのコマンドを使用します。
- show mls qos
- show mls qos maps cos-dscp
- show mls qos interface [ interface-id ] [ buffers | queueing ]
- show mls qos maps [ cos-dscp | cos-input-q | cos-output-q | dscp-cos | dscp-input-q | dscp-output-q ]
- show mls qos input-queue
- show running-config
これらのコマンドの詳細については、このリリースのコマンド リファレンスを参照してください。
標準QoSの設定
標準QoSを設定する前に、次の内容を完全に把握してください。
- 使用するアプリケーションのタイプおよびネットワークのトラフィック パターン
- トラフィックの特性およびネットワークの要求。トラフィック バーストの有無。音声およびビデオ ストリーム用に帯域幅を確保する必要性
- 帯域要件およびネットワーク速度
- ネットワークで輻輳が発生する場所
ここでは、スイッチにQoSを設定する手順について説明します。
- 標準QoSのデフォルト設定
- 標準QoS設定時の注意事項
- QoSをグローバルでイネーブルにする方法 (必須)
- ポートの信頼状態による分類の設定 (必須)
- QoSポリシーの設定 (必須)
- DSCPマップの設定 (任意、DSCP/DSCP変換マップまたはポリシング設定DSCPマップを使用する必要がない場合)
- 入力キューの特性の設定 (任意)
- 出力キューの特性の設定 (任意)
標準QoSのデフォルト設定
QoSはディセーブルに設定されています。パケット(パケットのCoS値、DSCP値、およびIP precedence値)は変更されないため、trustedポート、untrustedポートの概念はありません。トラフィックはパススルー モードでスイッチングされます(パケットは書き換えられずにスイッチングされ、ポリシングを伴わないベストエフォート型として分類されます)。
mls qos グローバル コンフィギュレーション コマンドを使用してQoSをイネーブルにし、その他のすべてのQoS設定がデフォルトである場合、トラフィックはポリシングを伴わないベストエフォート型として分類されます(DSCPおよびCoS値は0に設定されます)。ポリシー マップは設定されていません。デフォルトでは、すべてのポートの信頼状態はuntrustedになっています。入力および出力キューのデフォルト設定については、 入力キューのデフォルト設定 および 出力キューのデフォルト設定 を参照してください。
入力キューのデフォルト設定
入力キューのデフォルト設定 に、QoSがイネーブルの場合の入力キューのデフォルト設定を示します。
|
帯域幅割り当て 2 |
||
|
プライオリティ キューの帯域幅 3 |
||
デフォルトのCoS入力キュー スレッシュホールド マップ に、QoSがイネーブルの場合のデフォルトのCoS入力キュー スレッシュホールド マップを示します。
デフォルトのDSCP入力キュー スレッシュホールド マップ に、QoSがイネーブルの場合のデフォルトのDSCP入力キュー スレッシュホールド マップを示します。
出力キューのデフォルト設定
出力キューのデフォルト設定 に、QoSがイネーブルの場合における、各キューセットに対する出力キューのデフォルト設定を示します。すべてのポートはキューセット1にマッピングされます。ポートの帯域幅制限は100%に設定され、レートは制限されません。
|
SRRシェーピング ウェイト(絶対) 4 |
||||
|
SRR共有ウェイト 5 |
デフォルトのCoS出力キュー スレッシュホールド マップ に、QoSがイネーブルの場合のデフォルトのCoS出力キュー スレッシュホールド マップを示します。
デフォルトのDSCP出力キュー スレッシュホールド マップ に、QoSがイネーブルの場合のデフォルトのDSCP出力キュー スレッシュホールド マップを示します。
マッピング テーブルのデフォルト設定
デフォルトのCoS/DSCPマップについては、 デフォルトのCoS/DSCPマップ を参照してください。
デフォルトのIP precedence/DSCPマップについては、 デフォルトのIP Precedence/DSCPマップ を参照してください。
デフォルトのDSCP/CoSマップについては、 デフォルトのDSCP/CoSマップ を参照してください。
デフォルトのDSCP/DSCP変換マップは、着信したDSCP値を同じDSCP値にマッピングする空のマップです。
デフォルトのポリシング設定DSCPマップは、着信したDSCP値を同じDSCP値にマッピングする(マークダウンしない)空のマップです。
標準QoS設定時の注意事項
- QoSは物理ポートにのみ設定します。VLANまたはスイッチ仮想インターフェイス レベルでは、QoSはサポートされていません。
- 設定されたIP拡張ACLとIPフラグメントを比較して、QoSを実行することはできません。IPフラグメントはベストエフォート型として送信されます。IPフラグメントはIPヘッダー内のフィールドで指定されます。
- クラス マップごとに1つのACL、および1つの match クラス マップ コンフィギュレーション コマンドのみを使用できます。ACLには、フィールドとパケットの内容を照合するACEを複数指定できます。
- ブリッジング、ルーティング、またはCPUへの送信のいずれを行うかに関係なく、着信トラフィックは分類、ポリシング、およびマークダウンされます(設定されている場合)。ブリッジングされたフレームを廃棄したり、DSCPおよびCoS値を変更することができます。
- 入力ポートでは、1つのパケットにポリサーを1つのみ適用できます。設定できるのは平均速度および確定されたバースト パラメータのみです。
- 複数の物理ポートを制御するポートASICデバイスは、256個のポリサー(255のポリサーと1つの no のポリサー)をサポートしています。各ポートでサポートされているポリサーの最大数は64です。たとえば、ギガビット イーサネット ポートに32個のポリサー、ファスト イーサネット ポートに8個のポリサーを設定したり、ギガビット イーサネット ポートに64個のポリサー、ファスト イーサネット ポートに5個のポリサーを設定することができます。ポリサーは必要に応じてソフトウェアによって割り当てられ、ハードウェアおよびASIC境界の制約を受けます。ポートごとにポリサーを予約することはできません。特定のポートを目的のポリサーに確実に割り当てることはできません。
- QoSが設定されたポートでは、そのポートを通じて受信されるすべてのトラフィックは、ポートに付加されたポリシー マップに従って分類、ポリシング、およびマーキングが行われます。QoSが設定されたトランク ポートでは、そのポートを通じて受信される すべての VLAN内トラフィックは、ポートに付加されたポリシー マップに従って分類、ポリシング、およびマーキングが行われます。
- 同じポリシー マップ内の複数のトラフィック クラスで共有される集約ポリサーを作成できます。ただし、集約ポリサーを複数の異なるポリシー マップに使用することはできません。
- スイッチにEtherChannelポートが設定されている場合は、EtherChannelを構成する各物理ポートでQoSの分類、ポリシング、マッピング、およびキューイングを設定する必要があります。EtherChannelのすべてのポートで、QoS設定を統一するかどうかを決定します。
- スイッチで受信された制御トラフィック(スパニングツリーBridge Protocol Data Unit [BPDU;ブリッジ プロトコル データ ユニット]やルーティング アップデート パケットなど)には、すべての入力QoS処理が行われます。
- キュー設定を変更すると、データが失われることがあります。したがって、トラフィックが最小のときに設定を変更するようにしてください。
QoSをグローバルでイネーブルにする方法
|
デフォルト設定におけるQoSの動作については、 標準QoSのデフォルト設定 、 入力キューでのキューイングおよびスケジューリング 、および 出力キューでのキューイングおよびスケジューリング を参照してください。 |
||
QoSをディセーブルにするには、 no mls qos グローバル コンフィギュレーション コマンドを使用します。
ポートの信頼状態による分類の設定
ここでは、ポートの信頼状態を使用して着信トラフィックを分類する方法について説明します。ネットワーク設定に応じて、次に示す作業または QoSポリシーの設定 に記載されている作業を1つまたは複数実行する必要があります。
QoSドメイン内のポートの信頼状態の設定
QoSドメインに入ってくるパケットは、QoSドメインのエッジで分類されます。パケットがエッジで分類されるときは、QoSドメイン内のスイッチごとにパケットを分類する必要がないため、QoSドメイン内のスイッチ ポートをtrustedポートの1つに設定できます。 QoSドメイン内のポートの信頼状態 に、ネットワーク トポロジーの例を示します。
ポートをuntrustedの状態に戻すには、 no mls qos trust インターフェイス コンフィギュレーション コマンドを使用します。
デフォルトのCoS値を変更する方法については、 インターフェイスのCoS値の設定 を参照してください。CoS/DSCPマップを設定する方法については、 CoS/DSCPマップの設定 を参照してください。
インターフェイスのCoS値の設定
QoSは、trustedポートおよびuntrustedポートで受信されたタグなしフレームに、 mls qos cos インターフェイス コンフィギュレーション コマンドによって指定されたCoS値を割り当てます。
ポートのデフォルトのCoS値を定義したり、デフォルトのCoS値をポートのすべての着信パケットに割り当てるには、イネーブルEXECモードで次の手順を実行します。
デフォルト設定に戻すには、 no mls qos cos { default-cos | override } インターフェイス コンフィギュレーション コマンドを使用します。
信頼境界の設定によるポート セキュリティの確保
通常のネットワークでは、 QoSドメイン内のポートの信頼状態 に示すように、Cisco IP Phoneをスイッチ ポートに接続し、電話機の背後でデータ パケットを生成するデバイスをカスケード構成にします。Cisco IP Phoneは、音声パケットのCoSレベルをハイ プライオリティ(CoS=5)に、データ パケットのCoSレベルをロー プライオリティ(CoS=0)にマーキングして、共有データ リンクを通る音声品質を保証します。通常の場合、電話機からスイッチに送信されたトラフィックは、802.1Qヘッダーを使用するタグによってマーキングされます。このヘッダーにはVLAN情報、およびパケットの優先順位を示すCoSの3ビットフィールドが格納されます。
ほとんどのCisco IP Phone設定では、電話機からスイッチに送信されたトラフィックは信頼され、音声トラフィックのプライオリティがネットワーク内の他のタイプのトラフィックよりも高くなります。 mls qos trust cos インターフェイス コンフィギュレーション コマンドを使用することにより、ポートで受信されたすべてのトラフィックのCoSラベルを信頼するように、電話機の接続先であるスイッチ ポートを設定することができます。
電話機をバイパスしてPCがスイッチに直接接続されている場合、trustedに設定されているポートでは、信頼境界機能を使用することにより、ハイプライオリティ キューの誤使用を防止することもできます。信頼境界を使用しない場合、スイッチはPCによって生成されたCoSラベルを信頼します(CoS設定が信頼されるため)。対照的に、信頼境界を使用する場合は、CDPを使用してスイッチ ポート上でCisco IP Phone(Cisco IP Phone 7910、7935、7940、および7960)の存在を検出します。電話機が検出されなかった場合、信頼境界機能はスイッチ ポートの信頼設定をディセーブルにし、ハイプライオリティ キューの誤使用を防止します。PCおよびCisco IP Phoneがスイッチに接続されたハブに接続されている場合、信頼境界機能は無効であることに注意してください。
場合によっては、Cisco IP Phoneに接続されたPCがハイプライオリティのデータ キューを利用しないように設定できます。そのためには、 switchport priority extend cos インターフェイス コンフィギュレーション コマンドを使用し、PCから受信したトラフィックのプライオリティよりも優先するように、スイッチCLIを通して電話機を設定します。
|
Cisco IP Phoneで受信したトラフィックのCoS値を信頼するように、ポートを設定します。デフォルトでは、ポートはtrustedになっていません。 |
||
|
Cisco IP Phoneが信頼されたデバイスであることを指定します。 信頼境界および自動QoS( auto qos voip インターフェイス コンフィギュレーション コマンド)は相互に排他的なので、同時にイネーブルにできません。 |
||
信頼境界機能をディセーブルにするには、 no mls qos trust device インターフェイス コンフィギュレーション コマンドを使用します。
別のQoSドメインとの境界ポートでのDSCP信頼状態の設定
2つの異なるQoSドメインを管理していて、そのQoSドメイン間のIPトラフィックにQoS機能を実行する場合は、DSCPを信頼するようにドメインの境界に位置するスイッチ ポートを設定できます( 別のQoSドメインとの境界ポートでのDSCP信頼状態 を参照)。それにより、受信ポートでは信頼するDSCP値をそのまま使用し、QoSの分類手順が省略されます。2つのドメインで異なるDSCP値が使用されている場合は、他のドメイン内での定義に合わせて一連のDSCP値を変換するDSCP/DSCP変換マップを設定できます。
ポートにDSCPを信頼する状態を設定して、DSCP/DSCP変換マップを変更するには、イネーブルEXECモードで次の手順を実行します。両方のQoSドメインに共通の方法でマッピングするには、両方のドメイン内のポートに次の手順を実行する必要があります。
|
mls qos map dscp-mutation dscp-mutation-name in-dscp to out-dscp |
||
|
DSCPを信頼する状態の指定の入力ポートにマップを適用します。 |
||
DSCPを信頼しない状態にポートを戻すには、 no mls qos trust インターフェイス コンフィギュレーション コマンドを使用します。デフォルトのDSCP/DSCP変換マップ値に戻すには、 no mls qos map dscp-mutation dscp-mutation-name グローバル コンフィギュレーション コマンドを使用します。
次に、ポートをDSCPを信頼する状態に設定し、着信したDSCP値10〜13がDSCP値30にマッピングされるようにDSCP/DSCP変換マップ( gi1/0/2-mutation )を変更する例を示します。
Switch(config)# mls qos map dscp-mutation gi1/0/2-mutation 10 11 12 13 to 30
Switch(config)# interface gigabitethernet1/0/2
Switch(config-if)# mls qos trust dscp
Switch(config-if)# mls qos dscp-mutation gi1/0/2-mutation
QoSポリシーの設定
通常の場合、QoSポリシーを設定するには、トラフィックをクラスに分類したり、これらのトラフィック クラスに適用されるポリシーを設定したり、ポリシーをポートに付加する必要があります。
基本的な情報については、 分類 および ポリシングおよびマーキング を参照してください。設定時の注意事項については、 標準QoS設定時の注意事項 を参照してください。
ここでは、トラフィックを分類、ポリシング、マーキングする方法について説明します。ネットワーク設定に応じて、次の作業を1つまたは複数実行する必要があります。
- ACLによるトラフィックの分類
- クラス マップによるトラフィックの分類
- ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング
- 集約ポリサーによるトラフィックの分類、ポリシング、およびマーキング
ACLによるトラフィックの分類
IPトラフィックを分類するには、IP標準ACLまたはIP拡張ACLを使用します。非IPトラフィックを分類するには、レイヤ2 MAC ACLを使用します。
アクセス リストを削除するには、 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
アクセス リストを削除するには、 no access-list access-list-number グローバル コンフィギュレーション コマンドを使用します。
次に、任意の送信元から任意の宛先へのIPトラフィック(DSCP値は32)を許可するACLの作成例を示します。
Switch(config)# access-list 100 permit ip any any dscp 32
次に、10.1.1.1の送信元ホストから10.1.1.2の宛先ホストへのIPトラフィック(precedence値は5)を許可するACLの作成例を示します。
Switch(config)# access-list 100 permit ip host 10.1.1.1 host 10.1.1.2 precedence 5
次に、任意の送信元から宛先グループ アドレス224.0.0.2へのPIMトラフィック(DSCP値は32)を許可するACLの作成例を示します。
Switch(config)# access-list 102 permit pim any 224.0.0.2 dscp 32
アクセス リストを削除するには、 no mac access-list extended access-list-name グローバル コンフィギュレーション コマンドを使用します。
次に、2つの許可ステートメントを含むレイヤ2のMAC ACLを作成する例を示します。最初のステートメントでは、MACアドレスが0001.0000.0001であるホストから、MACアドレスが0002.0000.0001であるホストへのトラフィックが許可されます。2番めのステートメントでは、MACアドレスが0001.0000.0002であるホストから、MACアドレスが0002.0000.0002であるホストへの、EtherTypeがXNS-IDPのトラフィックのみが許可されます。
Switch(config)# mac access-list extended maclist1
Switch(config-ext-macl)# permit 0001.0000.0001 0.0.0 0002.0000.0001 0.0.0
Switch(config-ext-macl)# permit 0001.0000.0002 0.0.0 0002.0000.0002 0.0.0 xns-idp
! (Note: all other access implicitly denied)
クラス マップによるトラフィックの分類
特定のトラフィック フロー(またはクラス)を他のすべてのトラフィックと区別して名前を付けるには、 class-map グローバル コンフィギュレーション コマンドを使用します。クラス マップが、特定のトラフィック フローとの比較を行い、さらにそれを分類するために使用する条件を定義します。ACL、IP precedence値、DSCP値などの条件を一致(match)ステートメントに含めることができます。一致条件は、クラス マップ コンフィギュレーション モードで1つの一致ステートメントを入力することによって定義されます。
クラス マップを作成し、トラフィックを分類するための一致条件を定義するには、イネーブルEXECモードで次の作業を実行します。
|
access-list access-list-number { deny | permit } source [ source-wildcard ] access-list access-list-number { deny | permit } protocol source [ source-wildcard ] destination [ destination-wildcard ] { permit | deny } { host src-MAC-addr mask | any | host dst-MAC-addr | dst-MAC-addr mask } [ type mask ] |
IPトラフィックの場合はIP標準ACLまたはIP拡張ACL、非IPトラフィックの場合はレイヤ2のMAC ACLを作成します。必要な回数だけこのコマンドを繰り返します。 詳細については、 ACLによるトラフィックの分類 を参照してください。 |
|
|
クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。
match-all または match-any のどちらのキーワードも指定しない場合、デフォルトは match-all です。 |
||
|
match { access-group acl-index-or-name | ip dscp dscp-list | ip precedence ip-precedence-list } |
||
既存のクラス マップを削除するには、 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
次に、DSCP値が10、11、12である着信トラフィックとの一致を調べる、 class2 という名前のクラス マップを作成する例を示します。
Switch(config)# class-map class2
Switch(config-cmap)# match ip dscp 10 11 12
次に、IP precedence値が5、6、7である着信トラフィックとの一致を調べる、 class3 という名前のクラス マップを作成する例を示します。
Switch(config)# class-map class3
Switch(config-cmap)# match ip precedence 5 6 7
ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング
ポリシー マップは処理対象のトラフィック クラスを指定します。トラフィック クラスのCoS値、DSCP値、またはIP precedence値を信頼するアクション、トラフィック クラスに特定のDSCP値またはIP precedence値を設定するアクション、および一致した各トラフィック クラス(ポリサー)のトラフィック帯域幅の制限やトラフィックが不適合(マーキング)になったときの対処法を指定するアクションなどを指定できます。
- ポリシー マップには、それぞれ異なる一致条件およびポリサーが指定された、複数のクラス ステートメントを追加することができます。
- ポートを通じて受信されるトラフィック タイプごとに、個別のポリシー マップ クラスを設定することができます。
- ポリシー マップの信頼状態およびポートの信頼状態はどちらか一方のみを設定することができ、最後に設定された方が有効となります。
|
クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。
match-all または match-any のどちらのキーワードも指定しない場合、デフォルトは match-all です。 |
||
|
ポリシー マップ名を入力してポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 ポリシー マップのデフォルトの動作では、パケットがIPパケットの場合、DSCPは0に、パケットがタグ付きの場合、CoSは0に設定されます。ポリシングは実行されません。 |
||
|
トラフィック分類を定義し、ポリシー マップ クラス コンフィギュレーション モードを開始します。 デフォルトでは、ポリシー マップのクラス マップは定義されていません。 class-map グローバル コンフィギュレーション コマンドによってトラフィック クラスがすでに定義されている場合は、このコマンドの class-map-name に名前を指定します。 |
||
|
CoSベースまたはDSCPベースのQoSラベルを生成するためにQoSが使用する信頼状態を設定します。 デフォルトでは、ポートはtrustedになっていません。このコマンドを入力するときにキーワードを指定しないと、デフォルトは dscp になります。
詳細については、 CoS/DSCPマップの設定 を参照してください。 |
||
|
police rate-bps burst-byte [ exceed-action { drop | policed-dscp-transmit }] |
デフォルトでは、ポリサーは定義されていません。サポートされているポリサー数については、 標準QoS設定時の注意事項 を参照してください。
|
|
既存のポリシー マップを削除するには、 no policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用します。既存のクラス マップを削除するには、 no class class-map-name ポリシー マップ コンフィギュレーション コマンドを使用します。信頼できない状態に戻すには、 no trust ポリシーマップ コンフィギュレーション コマンドを使用します。割り当てられたDSCPまたはIP precedence値を削除するには、 no set { ip 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)# 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)# interface gigabitethernet2/0/1
Switch(config-if)# service-policy input flow1t
次に、2つの許可ステートメントを指定してレイヤ2 MAC ACLを作成し、入力ポートに付加する例を示します。最初の許可ステートメントでは、MACアドレスが0001.0000.0001であるホストから、MACアドレスが0002.0000.0001であるホストへのトラフィックが許可されます。2番めの許可ステートメントでは、MACアドレスが0001.0000.0002であるホストから、MACアドレスが0002.0000.0002であるホストへの、EtherTypeがXNS-IDPのトラフィックのみが許可されます。
Switch(config)# mac access-list extended maclist1
Switch(config-ext-mac)# permit 0001.0000.0001 0.0.0 0002.0000.0001 0.0.0
Switch(config-ext-mac)# permit 0001.0000.0002 0.0.0 0002.0000.0002 0.0.0 xns-idp
Switch(config)# 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)# class-map macclass1
Switch(config-cmap)# match access-group maclist1
Switch(config)# policy-map macpolicy1
Switch(config-pmap)# class macclass1
Switch(config-pmap-c)# set ip dscp 63
Switch(config-pmap)# class macclass2 maclist2
Switch(config-pmap-c)# set ip dscp 45
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# mls qos trust cos
Switch(config-if)# service-policy input macpolicy1
集約ポリサーによるトラフィックの分類、ポリシング、およびマーキング
集約ポリサーを使用すると、同じポリシー マップ内の複数のトラフィック クラスで共有されるポリサーを作成できます。ただし、集約ポリサーを複数の異なるポリシー マップまたはポートには使用できません。
|
mls qos aggregate-policer aggregate-policer-name rate-bps burst-byte exceed-action { drop | policed-dscp-transmit } |
同じポリシー マップ内の複数のトラフィック クラスに適用できるポリサー パラメータを定義します。 デフォルトで、集約ポリサーは定義されていません。サポートされているポリサー数については、 標準QoS設定時の注意事項 を参照してください。
|
|
|
必要に応じて、トラフィックを分類するクラス マップを作成します。詳細については、 クラス マップによるトラフィックの分類 を参照してください。 |
||
|
ポリシー マップ名を入力してポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 詳細については、 ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング を参照してください。 |
||
|
トラフィック分類を定義し、ポリシー マップ クラス コンフィギュレーション モードを開始します。 詳細については、 ポリシー マップによるトラフィックの分類、ポリシング、およびマーキング を参照してください。 |
||
指定した集約ポリサーをポリシー マップから削除するには、 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)# class-map ipclass2
Switch(config-cmap)# match access-group 2
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)# class ipclass2
Switch(config-pmap-c)# set ip dscp 56
Switch(config-pmap-c)# police aggregate transmit1
Switch(config)# interface gigabitethernet2/0/1
Switch(config-if)# service-policy input aggflow1
DSCPマップの設定
- CoS/DSCPマップの設定 (任意)
- IP Precedence/DSCPマップの設定 (任意)
- ポリシング設定DSCPマップの設定 (任意、マップの空の設定が不適切でない場合)
- DSCP/CoSマップの設定 (任意)
- DSCP/DSCP変換マップの設定 (任意、マップの空の設定が不適切でない場合)
DSCP/DSCP変換マップを除くすべてのマップはグローバルに定義され、すべてのポートに適用されます。
CoS/DSCPマップの設定
着信パケットのCoS値を、トラフィックのプライオリティを表すためにQoSで内部的に使用されるDSCP値にマッピングするには、CoS/DSCPマップを使用します。
デフォルトのCoS/DSCPマップ にデフォルトのCoS/DSCPマップを示します。
|
dscp1...dscp8 には、CoS値0〜7に対応する8つのDSCP値を入力します。各DSCP値はスペースで区切ります。 |
||
デフォルトのマップに戻すには、 no mls qos cos-dscp グローバル コンフィギュレーション コマンドを使用します。
次に、CoS/DSCPマップを変更して表示する例を示します。
Switch(config)# mls qos map cos-dscp 10 15 20 25 30 35 40 45
Switch# show mls qos maps cos-dscp
--------------------------------
IP Precedence/DSCPマップの設定
着信パケットのIP precedence値を、トラフィックのプライオリティを表すためにQoSで内部的に使用されるDSCP値にマッピングするには、IP precedence/DSCPマップを使用します。
デフォルトのIP Precedence/DSCPマップ に、デフォルトのIP precedence/DSCPマップを示します。
これらの値がネットワークに適さない場合は、変更する必要があります。
IP precedence/DSCPマップを変更するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。
|
dscp1...dscp8 には、IP precedence値0〜7に対応する8つのDSCP値を入力します。各DSCP値はスペースで区切ります。 |
||
デフォルトのマップに戻すには、 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# show mls qos maps ip-prec-dscp
--------------------------------
ポリシング設定DSCPマップの設定
ポリシングおよびマーキング アクションによって得られる新しい値にDSCP値をマークダウンするには、ポリシング設定DSCPマップを使用します。
デフォルト マップに戻すには、 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# show mls qos maps policed-dscp
---------------------------------------
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
DSCP/CoSマップの設定
4つの出力キューの1つを選択するために使用されるCoS値を生成するには、DSCP/CoSマップを使用します。
デフォルトのDSCP/CoSマップ にデフォルトのDSCP/CoSマップを示します。
デフォルトのマップに戻すには、 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# show mls qos maps dscp-cos
---------------------------------------
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
DSCP/DSCP変換マップの設定
2つのQoSドメインで異なるDSCP定義が使用されている場合は、他のドメイン内での定義に合わせて一連のDSCP値を変換するDSCP/DSCP変換マップを使用します。DSCP/DSCP変換マップは、QoS管理ドメインの境界にある受信ポートに適用されます(入力変換)。
入力変換により、パケットのDSCP値が新しいDSCP値で上書きされ、QoSはこの新しい値を使用してパケットを処理します。スイッチは新しいDSCP値を使用して、ポートからパケットを送信します。
1つの入力ポートに複数のDSCP/DSCP変換マップを設定できます。デフォルトのDSCP/DSCP変換マップは、着信したDSCP値を同じDSCP値にマッピングする空のマップです。
|
mls qos map dscp-mutation dscp-mutation-name in-dscp to out-dscp |
||
デフォルトのマップに戻すには、 no mls qos dscp-mutation dscp-mutation-name グローバル コンフィギュレーション コマンドを使用します。
次に、DSCP/DSCP変換マップを定義する例を示します。明示的に設定されていないすべてのエントリは変更されません(空のマップで指定された値のままです)。
Switch(config)# mls qos map dscp-mutation mutation1 1 2 3 4 5 6 7 to 0
Switch(config)# mls qos map dscp-mutation mutation1 8 9 10 11 12 13 to 10
Switch(config)# mls qos map dscp-mutation mutation1 20 21 22 to 20
Switch(config)# mls qos map dscp-mutation mutation1 30 31 32 33 34 to 30
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# mls qos trust dscp
Switch(config-if)# mls qos dscp-mutation mutation1
Switch# show mls qos maps dscp-mutation mutation1
---------------------------------------
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
入力キューの特性の設定
ネットワークおよびQoSソリューションが複雑な場合は、次に示す作業をすべて実行しなければならない場合があります。次の特性を決定する必要があります。
- 各キューに割り当てるパケット(DSCPまたはCoS値を使用)
- 各キューに適用する廃棄スレッシュホールドの割合、および各スレッシュホールドにマッピングするCoSまたはDSCP値
- 各キューに割り当てる使用可能なバッファ スペース
- 各キューに割り当てる使用可能な帯域幅
- ハイ プライオリティを設定する必要があるトラフィックの有無(音声など)
- 入力キューへのDSCPまたはCoS値のマッピングおよびWTDスレッシュホールドの設定 (任意)
- 各入力キューのバッファ スペースの割り当て (任意)
- 各入力キューの帯域幅の割り当て (任意)
- 入力プライオリティ キューの設定 (任意)
入力キューへのDSCPまたはCoS値のマッピングおよびWTDスレッシュホールドの設定
トラフィックにプライオリティを設定するには、特定のDSCPまたはCoSを持つパケットを特定のキューに格納し、より低いプライオリティを持つパケットが廃棄されるようにキューのスレッシュホールドを調整します。
DSCPまたはCoS値を入力キューにマッピングして、WTDスレッシュホールドを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。
デフォルトの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つのキューで入力バッファを分割する比率を定義します(バッファ スペース量を割り当てます)。バッファ割り当てと帯域幅割り当てにより、パケットを廃棄する前にバッファに格納できるデータ量が決まります。
|
デフォルトでは、バッファの90%がキュー1に、残りの10%がキュー2に割り当てられます。 |
||
デフォルト設定に戻すには、 no mls qos srr-queue input buffers グローバル コンフィギュレーション コマンドを使用します。
次に、バッファ スペースの60%を入力キュー1に、40%を入力キュー2に割り当てる例を示します。
Switch(config)# mls qos srr-queue input buffers 60 40
各入力キューの帯域幅の割り当て
各入力キューに割り当てる使用可能な帯域幅の比率を指定する必要があります。ウェイトの比率は、SRRスケジューラが各キューからパケットを送信する頻度の比率です。帯域幅割り当てとバッファ割り当てにより、パケットを廃棄する前にバッファに格納できるデータ量が決まります。入力キューでSRRが動作するのは、共有モードの場合のみです。
|
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 グローバル コンフィギュレーション コマンドによって設定されたウェイトに従い、入力キューを処理します。詳細については、 入力プライオリティ キューの設定 を参照してください。 |
||
デフォルト設定に戻すには、 no mls qos srr-queue input bandwidth グローバル コンフィギュレーション コマンドを使用します。
次に、入力帯域幅をキューに割り当てる例を示します。プライオリティ キューはディセーブルです。キュー1に割り当てられた共有帯域幅の比率は25/(25+75)、キュー2の比率は75/(25+75)です。
Switch(config)# mls qos s rr-queue input priority-queue 2 bandwidth 0
Switch(config)# mls qos s rr-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 グローバル コンフィギュレーション コマンドによって設定されたウェイトに従い、入力キューを処理します。
|
mls qos srr-queue input priority-queue queue-id bandwidth weight |
||
デフォルト設定に戻すには、 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 s rr-queue input priority-queue 1 bandwidth 10
Switch(config)# mls qos s rr-queue input bandwidth 4 4
出力キューの特性の設定
ネットワークおよびQoSソリューションが複雑な場合は、次に示す作業をすべて実行しなければならない場合があります。次の特性を決定する必要があります。
- 各キューおよびスレッシュホールドIDにマッピングされるパケット(DSCPまたはCoS値を使用)
- キューセット(ポートごとの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を使用して、トラフィック クラスごとに異なる廃棄割合をサポートをします。
キューセットのメモリ割り当ておよび廃棄スレッシュホールドを設定するには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。
デフォルト設定に戻すには、 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 gigabitethernet1/0/1
Switch(config-if)# queue-set 2
出力キューおよびスレッシュホールドIDへのDSCPまたはCoS値のマッピング
トラフィックにプライオリティを設定するには、特定のDSCPまたはサービス コストを持つパケットを特定のキューに格納し、より低いプライオリティを持つパケットが廃棄されるようにキューのスレッシュホールドを調整します。
DSCPまたはCoS値を出力キューおよびスレッシュホールドIDにマッピングするには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。
デフォルトの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モードで次の手順を実行します。この手順は任意です。
デフォルトの設定に戻すには、 no srr-queue bandwidth shape インターフェイス コンフィギュレーション コマンドを使用します。
次に、キュー1に帯域幅のシェーピングを設定する例を示します。キュー2、3、および4のウェイト比率は0に設定されているため、これらのキューは共有モードで動作します。キュー1の帯域幅のウェイトは1/8(12.5%)です。
Switch(config)# interface gigabitethernet2/0/1
Switch(config-if)# srr-queue bandwidth shape 8 0 0 0
出力キューのSRR共有ウェイトの設定
共有モードでは、キューは設定されたウェイトに従って各キュー間の帯域幅を共有します。帯域幅はこのレベルで保証されますが、このレベルに限定されるわけではありません。たとえば、特定のキューが空であり、リンクを共有する必要がない場合、残りのキューは未使用の帯域幅を使用して、各キュー間で共有できます。共有の場合、キューからパケットを取り出す頻度はウェイトの比率によって決まります。ウェイトの絶対値には意味がありません。
ポートにマッピングされた4つの出力キューに共有ウェイトを割り当てて、帯域幅の共有をイネーブルにするには、イネーブルEXECモードで次の手順を実行します。この手順は任意です。
|
デフォルトでは、4つのウェイトがすべて25です(各キューに帯域幅の1/4が割り当てられています)。 weight1 weight2 weight3 weight4 には、SRRスケジューラがパケットを送信する頻度の比率を決定するウェイトを入力します。各値はスペースで区切ります。指定できる範囲は1〜255です。 |
||
デフォルトの設定に戻すには、 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 gigabitethernet2/0/1
Switch(config-if)# srr-queue bandwidth share 1 2 3 4
出力緊急キューの設定
Cisco IOS Release 12.1(19)EA1で、特定のパケットに対して他のパケットよりも高いプライオリティを保証するには、出力緊急キューで特定のパケットをキューイングします。SRRはこのキューを空になるまで処理してから、他のキューを処理します。
出力緊急キューをディセーブルにするには、 no priority-queue out インターフェイス コンフィギュレーション コマンドを使用します。
次に、SRRウェイトが設定されているときに出力緊急キューをイネーブルにする例を示します。出力緊急キューは、設定済みのSRRウェイトを上書きします。
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# srr-queue bandwidth shape 25 0 0 0
Switch(config-if)# srr-queue bandwidth share 30 20 25 25
Switch(config-if)# priority-queue out
出力インターフェイスの帯域幅の制限
出力ポートの帯域幅は制限できます。たとえば、顧客が高速リンクの一部しか費用を負担しない場合は、帯域幅をその値に制限できます。
デフォルトの設定に戻すには、 no srr-queue bandwidth limit インターフェイス コンフィギュレーション コマンドを使用します。
Switch(config)# interface gigabitethernet2/0/1
Switch(config-if)# srr-queue bandwidth limit 80
このコマンドを80%に設定すると、ポートは期間の20%の間アイドルです。回線レートは接続速度の80%(800 Mbps)に低下します。ハードウェアによる回線レートの調整では6ずつ増分されるため、これらの値は正確ではありません。
標準QoS情報の表示
標準QoS情報を表示するには、 標準QoS情報を表示するためのコマンド に示すイネーブルEXECコマンドを1つまたは複数組み合わせて使用します。
