QoS の概要
ネットワークは通常、ベストエフォート型の配信方式で動作します。この場合、すべてのトラフィックはプライオリティおよび適切なタイミングで配信される可能性に関して同等です。輻輳が発生した場合に廃棄される可能性も、すべてのトラフィックで同等です。
QoS 機能を設定すると、特定のネットワーク トラフィックを選択し、相対的な重要性に応じてプライオリティを指定し、輻輳管理および輻輳回避技術を使用して、優先処理を実行できます。ネットワークに QoS を実装すると、ネットワークのパフォーマンスが予想しやすくなり、帯域利用率がより効率化されます。
QoS は新たに普及しつつある Internet Engineering Task Force(IETF)の規格である Differentiated Services(DiffServ)アーキテクチャに基づいて実装されています。DiffServ アーキテクチャでは、ネットワークの入り口で各パケットが分類されます。
この分類は IP パケット ヘッダーに格納され、現在ほとんど使用されていない IP Type of Service(ToS; サービス タイプ)フィールドの 6 ビットを使用して、分類( クラス )情報が伝達されます。また、レイヤ 2 フレームでも分類を実行できます。レイヤ 2 フレームまたはレイヤ 3 パケット内のこれらの特殊ビットについて説明します(図33-1を参照)。
• レイヤ 2 フレームのプライオリティ ビット
レイヤ 2 の ISL(スイッチ間リンク)フレーム ヘッダーには、下位 3 ビットで IEEE 802.1p Class of Service(CoS; サービス クラス)値を伝達する、1 バイトのユーザ フィールドがあります。レイヤ 2 の ISL トランクとして設定されたポートでは、すべてのトラフィックが ISL フレームに収められます。
レイヤ 2 の 802.1Q フレーム ヘッダーには、上位 3 ビット(別名ユーザ プライオリティ ビット)で CoS 値を伝達する、2 バイトのタグ制御情報フィールドがあります。レイヤ 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 はサポートされていません。
図33-1 フレームおよびパケットの QoS 分類レイヤ
インターネットにアクセスするすべてのスイッチおよびルータはクラス情報を信頼し、クラス情報ごとに異なる転送処理を行います。エンド ホストやパス上のスイッチまたはルータでは、設定されたポリシーやパケットの調査結果、あるいはその両方に基づいて、パケットにクラス情報を割り当てることができます。通常は、主要なスイッチやルータが過負荷にならないように、ネットワークのエッジ付近でパケットが詳細に調査されます。
パス上のスイッチおよびルータでは、クラス情報に基づいて、トラフィック クラスごとに割り当てられるリソース量を制限できます。DiffServ アーキテクチャでトラフィックを処理するときの各デバイスの動作は、ホップ単位動作といいます。パス上にあるすべてのデバイスのホップ単位動作が一貫している場合は、エンドツーエンドの QoS ソリューションを構築できます。
ネットワークに QoS を実装する作業は、インターネットワーキング デバイス、ネットワーク内のトラフィック タイプとパターン、および着信/発信トラフィックに必要な制御の細かさによって、難易度が変化します。
基本的な QoS モデル
QoS を実装するには、スイッチ上でパケットまたはフローを相互に区別(分類)し、パケットがスイッチを通過するときに所定の QoS を示すラベルを割り当て、設定されたリソース使用率制限にパケットを適合させ(ポリシングおよびマーキング)、リソース競合の発生状況に応じて異なる処理(キューイングおよびスケジューリング)を行う必要があります。また、スイッチから送信されたトラフィックが特定のトラフィック プロファイルを満たすようにする必要もあります(シェーピング)。
図33-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)、緊急キューとすることができます。このキューを空になるまで処理してから、他のキューを処理します。
図33-2 基本的な QoS モデル
分類
分類はパケットのフィールドを調べて、トラフィックの種類を区別するプロセスです。QoS がスイッチ上でグローバルにイネーブルになっている場合のみ、分類はイネーブルとなります。デフォルトでは、QoS はグローバルにディセーブルに設定されているため、分類は実行されません。
分類中に、スイッチは検索処理を実行し、パケットに QoS ラベルを割り当てます。QoS ラベルはパケットに対して実行するすべての QoS アクション、およびパケットの送信元キューを識別します。
QoS ラベルはパケット内の DSCP または CoS 値に基づいて、パケットに実行されるキューイングおよびスケジューリング アクションを決定します。QoS ラベルは信頼設定およびパケット タイプに従ってマッピングされます(分類フローチャートを参照)。
着信トラフィックを分類するには、フレームまたはパケット内のどのフィールドを使用するかを指定します。非 IP トラフィックの場合は、次の方法で分類できます(図33-3を参照)。
• 着信フレーム内の CoS 値を信頼します(CoS を信頼するようにポートを設定します)。次に、設定可能な CoS/DSCP マップを使用して、パケットの DSCP 値を生成します。レイヤ 2 の ISL フレーム ヘッダーの場合、CoS 値は 1 バイトのユーザ フィールドの下位 3 ビットに格納されます。レイヤ 2 の 802.1Q フレーム ヘッダーの場合、CoS 値はタグ制御情報フィールドの上位 3 ビットに格納されます。CoS 値の範囲は 0(ロー プライオリティ)~ 7(ハイ プライオリティ)です。
• 着信フレームの DSCP または IP precedence 値を信頼します。これらの設定は、非 IP トラフィックの場合は無意味です。これらのいずれかの方法で設定されているポートに非 IP トラフィックが着信した場合は、CoS 値が割り当てられ、CoS/DSCP マップから内部 DSCP 値が生成されます。スイッチは内部 DSCP 値を使用してトラフィックの優先度を表す CoS 値を生成します。
• 設定されたレイヤ 2 の MAC(メディア アクセス制御)Access Control List(ACL; アクセス制御リスト)に基づいて分類します。レイヤ 2 の MAC ACL では、MAC 送信元アドレス、MAC 宛先アドレス、およびその他のフィールドを調べることができます。ACL が設定されていない場合、パケットには DSCP および CoS 値として 0 が割り当てられます。この割り当ては、トラフィックがベストエフォート型であることを意味します。ACL が設定されている場合は、ポリシーマップ アクションによって、着信フレームに割り当てられる DSCP または CoS 値が指定されます。
IP トラフィックの場合は、次の方法で分類できます(図33-3を参照)。
• 着信パケットの DSCP 値を信頼し(DSCP を信頼するようにポートを設定し)、パケットに同じ DSCP 値を割り当てます。IETF では、1 バイトの ToS フィールドの上位 6 ビットが DSCP として定義されています。特定の DSCP 値で表されるプライオリティは設定可能です。DSCP 値の範囲は 0 ~ 63 です。
2 つの QoS 管理ドメインの境界上にあるポートの場合は、設定可能な DSCP/DSCP 変換マップを使用し、DSCP を別の値に変更できます。
• 着信パケットの IP precedence 値を信頼し(IP precedence を信頼するようにポートを設定し)、設定可能な IP precedence/DSCP マップを使用してパケットの DSCP 値を生成します。IP バージョン 4 仕様では、1 バイトの ToS フィールドの上位 3 ビットが IP precedence として定義されています。IP precedence 値の範囲は 0(ロー プライオリティ)~ 7(ハイ プライオリティ)です。
• 着信パケットに CoS 値がある場合にはこれを信頼し、CoS/DSCP マップを使用してパケットの DSCP 値を生成します。CoS 値が存在しない場合は、デフォルトのポート CoS 値を使用します。
• 設定された IP 標準、または IP ヘッダーの各フィールドを調べる拡張 ACL に基づいて、分類を実行します。ACL が設定されていない場合、パケットには DSCP および CoS 値として 0 が割り当てられます。この割り当ては、トラフィックがベストエフォート型であることを意味します。ACL が設定されている場合は、ポリシーマップ アクションによって、着信フレームに割り当てられる DSCP または CoS 値が指定されます。
ここで説明されているマップの詳細については、「マッピング テーブル」を参照してください。ポートの信頼状態に関する設定の詳細については、「ポートの信頼状態による分類の設定」を参照してください。
分類されたパケットは、ポリシング、マーキング、および入力キューイングとスケジューリングの各段階に送られます。
図33-3 分類フローチャート
QoS ACL に基づく分類
IP 標準、IP 拡張、およびレイヤ 2 MAC ACL を使用すると、同じ特性(クラス)を持つパケットのグループを定義できます。QoS コンテキストでは、Access Control Entry(ACE; アクセス制御エントリ)とセキュリティ ACL で、許可(permit)および拒否(deny)アクションの意味が異なります。
• 許可アクションと一致した場合は(原則的には最初の一致)、指定された QoS 関連のアクションが実行されます。
• 拒否アクションと一致した場合は、処理中の ACL が省略され、次の ACL が処理されます。
• すべての ACE を調べても許可アクションとの一致が見つからなかった場合は、パケットに関する QoS 処理が行われず、ベストエフォート型サービスがパケットに対して行われます。
• ポートに複数の ACL が設定されている場合、許可アクションを含む最初の ACL とパケットの一致が見つかるとそれ以降の検索処理は中止され、QoS 処理が開始されます。
(注) アクセス リストを作成するときは、アクセス リストの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。
ACL を使用して定義されたトラフィック クラスには、ポリシーを付加できます。ポリシーにはアクションがそれぞれ指定された複数のクラスを含めることができます。ポリシーには、クラスを特定のグループとして分類する(たとえば DSCP を割り当てる)コマンドや、クラスの速度制限を行うコマンドが含まれます。このポリシーは、ポリシーが有効となる特定のポートに付加されます。
IP トラフィックを分類する IP ACL を実装するには、 access-list グローバル コンフィギュレーション コマンドを使用します。非 IP トラフィックを分類するレイヤ 2 MAC ACL を実装するには、 mac access-list extended グローバル コンフィギュレーション コマンドを使用します。設定の詳細については、「QoS ポリシーの設定」を参照してください。
クラス マップおよびポリシー マップに基づく分類
クラス マップは、特定のトラフィック フロー(またはクラス)に名前を付けて、他のすべてのトラフィックと区別するためのメカニズムです。クラス マップでは、特定のトラフィック フローとの比較を行い、さらにそれを分類するために使用する条件を定義します。この条件には、ACL で定義されたアクセス グループとの比較、または DSCP 値や IP precedence 値の特定のリストとの比較を含めることができます。複数のタイプのトラフィックを分類する場合は、別のクラス マップを作成し、異なる名前を付けることができます。クラス マップの基準と一致したパケットは、ポリシー マップを使用してさらに分類できます。
ポリシー マップは処理対象のトラフィック クラスを指定します。トラフィック クラスの 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 ラベルを割り当てたあとで、ポリシングおよびマーキング プロセスを開始できます(図33-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 にポリシー マップを設定する場合は、階層型ポリシー マップを作成できます。また、セカンダリ インターフェイス レベルのポリシー マップでのみ個別ポリサーを定義できます。詳細については、「SVI でのポリシング」を参照してください。
ポリシー マップおよびポリシング アクションを設定したあとで、 service-policy インターフェイス コンフィギュレーション コマンドを使用して、入力ポートまたは SVI にポリシーを付加します。詳細については、「ポリシー マップによる物理ポート上のトラフィックの分類、ポリシング、およびマーキング」、「階層型ポリシー マップによる SVI 上のトラフィックの分類、ポリシング、およびマーキング」、および「集約ポリサーによるトラフィックの分類、ポリシング、およびマーキング」を参照してください。
(注) 10 ギガビット イーサネット インターフェイスはポリシングをサポートしません。
物理ポートでのポリシング
物理ポートでのポリシングでは、次の種類のポリサーを作成できます。
• 個別 ― 一致する各トラフィック クラスに、ポリサー内で指定された帯域幅制限が個別に適用されます。ポリシー マップ内でこのタイプのポリサーを設定するには、 police ポリシー マップ クラス コンフィギュレーション コマンドを使用します。
• 集約 ― 一致するすべてのトラフィック フローに、集約ポリサーで指定される帯域幅制限が累積的に適用されます。このタイプのポリサーを設定するには、 police aggregate ポリシー マップ クラス コンフィギュレーション コマンドを使用し、ポリシー マップ内の集約ポリサー名を指定します。ポリサーの帯域幅制限を指定するには、 mls qos aggregate-policer グローバル コンフィギュレーション コマンドを使用します。この方法で、集約ポリサーはポリシー マップ内にあるトラフィックの複数のクラスで共有されます。
(注) Cisco IOS Release 12.2(25)SE 以降では、SVI に設定できるのは、個別ポリサーのみです。
ポリシングは、トークン バケット アルゴリズムを使用します。各フレームがスイッチに受信されると、バケットにトークンが追加されます。バケットは内部にホールがあり、平均トラフィック レートとしてビット/秒で指定されたレートで通過します。バケットにトークンが追加されるたびに、スイッチはバケット内に十分なスペースがあるかどうかを確認します。十分なスペースがない場合は、不適合とマークされ、指定されたポリサーの対処方法がとられます(廃棄またはマークダウン)。
バケットが満たされる速度は、バケット深度(burst-byte)、トークンが削除される速度(rate-bps)、および平均速度を上回るバースト期間の関数です。バケットのサイズにより、バースト長に上限が設定され、バックツーバックで送信できるフレーム数が制限されます。バーストが短い場合、バケットはオーバーフローせず、トラフィック フローに対して何のアクションも行われません。ただし、バーストが長く速度が速い場合、バケットはオーバーフローし、そのバーストのフレームに対してポリシング アクションが行われます。
バケット深度(バケットがオーバーフローするまでに許容された最大バースト)は、 police ポリシー マップ クラス コンフィギュレーション コマンドまたは mls qos aggregate-policer グローバル コンフィギュレーション コマンドの burst-byte オプションを使用して設定します。トークンがバケットから削除される速度(平均速度)は、 police ポリシー マップ コンフィギュレーション コマンドまたは mls qos aggregate-policer グローバル コンフィギュレーション コマンドの rate-bps オプションを使用して設定します。
図33-4に、次のタイプのポリシー マップを設定する場合のポリシングおよびマーキング プロセスについて示します。
• 物理ポート上の非階層型ポリシー マップ
• SVI に付加されるインターフェイス レベルの階層型ポリシー マップ。物理ポートは、このセカンダリ ポリシー マップで指定されます。
図33-4 物理ポート上のポリシングおよびマーキングのフローチャート
SVI でのポリシング
(注) SVI 上で個別ポリサーを使用して階層型ポリシー マップを設定する前に、SVI に所属する物理ポート上で VLAN ベースの QoS をイネーブルにする必要があります。ポリシー マップは SVI に付加されますが、個別ポリサーが影響を与えるのは、階層型ポリシー マップのセカンダリ インターフェイス レベルで指定された物理ポート上のトラフィックに対してのみです。
階層型ポリシー マップには、次の 2 つのレベルがあります。1 つめは VLAN レベルで、SVI 上のトラフィック フローに対する対処方法を指定します。2 つめはインターフェイス レベルで、SVI に所属し、インターフェイスレベルのポリシー マップで指定される物理ポート上のトラフィックに対する対処方法を指定します。
SVI 上でポリシングを設定する場合、次の 2 つのレベルの階層型ポリシー マップを作成および設定できます。
• VLAN レベル ― このプライマリ レベルを作成するには、ポートの信頼状態を指定し、パケット内の新しい DSCP 値または IP precedence 値を設定する、クラス マップおよびクラスを設定します。VLAN レベルのポリシー マップは SVI の VLAN に対してのみ適用され、ポリサーをサポートしません。
• インターフェイス レベル ― このセカンダリ レベルを作成するには、SVI に所属する物理ポート上の個別ポリサーを指定するクラス マップおよびクラスを設定します。インターフェイスレベルのポリシー マップは個別ポリサーのみをサポートし、集約ポリサーをサポートしません。Cisco IOS Release 12.2(25)SED 以降では、VLAN レベルのポリシー マップ内に定義されている各クラスに対して、異なるインターフェイス レベルのポリシー マップを設定できます。
階層型ポリシー マップの例については、「階層型ポリシー マップによる SVI 上のトラフィックの分類、ポリシング、およびマーキング」を参照してください。
図33-5に、SVI 上の階層型ポリシーの場合のポリシングおよびマーキング プロセスについて示します。
図33-5 SVI のポリシングおよびマーキングのフローチャート
マッピング テーブル
QoS を処理している間、すべてのトラフィック(非 IP トラフィックを含む)のプライオリティは、分類段階で取得された DSCP または CoS 値に基づく QoS ラベルで表されます。
• 分類中に、QoS は設定可能なマッピング テーブルを使用して、受信された CoS、DSCP、または IP precedence 値から、対応する DSCP または CoS 値を取得します。これらのマップには、CoS/DSCP マップや IP precedence/DSCP マップなどがあります。これらのマップを設定するには、 mls qos map cos-dscp および mls qos map ip-prec-dscp グローバル コンフィギュレーション コマンドを使用します。
DSCP 信頼状態で設定された入力ポートの DSCP 値が QoS ドメイン間で異なる場合は、2 つの QoS ドメインの境界上にあるポートに、設定可能な DSCP/DSCP 変換マップを適用できます。このマップを設定するには、 mls qos map dscp-mutation グローバル コンフィギュレーション コマンドを使用します。
• ポリシング中に、QoS は IP パケットまたは非 IP パケットに別の DSCP 値を割り当てることができます(パケットが不適合で、マークダウン値がポリサーによって指定されている場合)。この設定可能なマップをポリシング設定 DSCP マップと呼びます。このマップを設定するには、 mls qos map policed-dscp グローバル コンフィギュレーション コマンドを使用します。
• トラフィックがスケジューリング段階に到達する前に、QoS は QoS ラベルに従って、入力および出力キューにパケットを格納します。QoS ラベルはパケット内の DSCP または CoS 値に基づいています。DSCP 入力/出力キュー スレッシュホールド マップまたは CoS 入力/出力キュー スレッシュホールド マップを使用して、キューを選択します。これらのマップを設定するには、 mls qos srr-queue { input | output } dscp-map および mls qos srr-queue { input | output } cos-map グローバル コンフィギュレーション コマンドを使用します。
CoS/DSCP、DSCP/CoS、および IP precedence/DSCP マップのデフォルト値は、使用しているネットワークに適する場合と適さない場合があります。
デフォルトの DSCP/DSCP 変換マップおよびデフォルトのポリシング設定 DSCP マップは、空のマップです。これらのマップでは、着信した DSCP 値が同じ DSCP 値にマッピングされます。 DSCP/DSCP 変換マップは、特定のポートに適用できる唯一のマップです。その他のすべてのマップはスイッチ全体に適用されます。
設定の詳細については、「DSCP マップの設定」を参照してください。
DSCP および CoS 入力キュー スレッシュホールド マップの詳細については、「入力キューでのキューイングおよびスケジューリング」を参照してください。DSCP および CoS 出力キュー スレッシュホールド マップの詳細については、「出力キューでのキューイングおよびスケジューリング」を参照してください。
キューイングおよびスケジューリングの概要
スイッチでは、輻輳防止に役立つように、特定の位置に各キューが配置されています(図33-6を参照)。
図33-6 入力および出力キューの位置
すべてのポートの入力帯域幅の合計がスタック リングの帯域幅を超えることがあるため、入力キューはパケットの分類、ポリシング、およびマーキングのあと、パケットがスイッチ ファブリックに転送される前の位置に配置されています。複数の入力ポートから 1 つの出力ポートに同時にパケットが送信されて、輻輳が発生することがあるため、出力キューはスタック リングのあとに配置されています。
WTD
入力および出力キューは両方とも、WTD と呼ばれるテール廃棄輻輳回避メカニズムの拡張バージョンを使用します。WTD はキュー長を管理したり、トラフィック分類ごとに廃棄優先順位を設定するために実装されます。
フレームが特定のキューにキューイングされると、WTD はフレームに割り当てられた QoS ラベルを使用して、それぞれ異なるスレッシュホールドを適用します。この QoS ラベルのスレッシュホールドを超えた場合( 宛先キューの空きスペースがフレーム サイズより小さくなると) 、フレームは廃棄されます。
図33-7に、サイズが 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% スレッシュホールドが適用されます。このフレームがキューに追加されると、スレッシュホールドを超過するため、フレームは廃棄されます。
図33-7 WTD およびキューの動作
詳細については、「入力キューへの DSCP または CoS 値のマッピングおよび WTD スレッシュホールドの設定」、「出力キューセットに対するバッファ スペースの割り当ておよび WTD スレッシュホールドの設定」、および「出力キューおよびスレッシュホールド ID への DSCP または CoS 値のマッピング」を参照してください。
SRR のシェーピングおよび共有
入力および出力の両方のキューは SRR で処理され、SRR によってパケットの送信レートが制御されます。入力キューでは、SRR によってパケットがスタック リングに送信されます。出力キューでは、SRR によってパケットが出力ポートに送信されます。
出力キューでは、SRR を共有またはシェーピング用に設定できます。ただし、入力キューでは共有がデフォルト モードであり、これ以外のモードはサポートされていません。
シェーピング モードでは、出力キューの帯域幅割合が保証され、この値にレートが制限されます。シェーピングされたトラフィックの場合は、リンクがアイドルの場合も、割り当てを超える帯域幅は使用されません。シェーピングを使用すると、トラフィック フローがより均一になり、バースト トラフィックの最大時と最小時の幅が小さくなります。シェーピングの場合は、各ウェイトの絶対値を使用して、キューで使用可能な帯域幅が計算されます。
共有モードでは、キューは設定されたウェイトに従って各キュー間の帯域幅を共有します。帯域幅はこのレベルで保証されますが、このレベルに限定されるわけではありません。たとえば、特定のキューが空であり、リンクを共有する必要がない場合、残りのキューは未使用の帯域幅を使用して、共有できます。共有の場合、キューからパケットを取り出す頻度はウェイトの比率で制御します。ウェイトの絶対値には意味がありません。
詳細については、「各入力キューの帯域幅の割り当て」、「出力キューの SRR シェーピング ウェイトの設定」、および「出力キューの SRR 共有ウェイトの設定」を参照してください。
入力キューでのキューイングおよびスケジューリング
図33-8に、入力ポートのキューイングおよびスケジューリングに関するフローチャートを示します。
図33-8 入力ポートのキューイングおよびスケジューリングに関するフローチャート
(注) SRR は設定された割合に従いプライオリティ キューを処理してから、他のキューを処理します。
スイッチは、SRR によって共有モードでのみ処理される、設定可能な入力キューを 2 つサポートしています。 表33-1 にこれらのキューの説明を示します。
表33-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 を持つパケットを特定のキューに格納したり、大きなキュー サイズを割り当てたり、キューの処理頻度を増やしたり、プライオリティが低いパケットが廃棄されるようにキューのスレッシュホールドを調整したりして、トラフィックのプライオリティを設定できます。設定の詳細については、「入力キューの特性の設定」を参照してください。
出力キューでのキューイングおよびスケジューリング
図33-9に、出力ポートのキューイングおよびスケジューリングに関するフローチャートを示します。
(注) 緊急キューがイネーブルの場合、SRR はこのキューを空になるまで処理してから、他の 3 つのキューを処理します。
図33-9 出力ポートのキューイングおよびスケジューリングに関するフローチャート
各ポートでは、4 つの出力キューをサポートしています。そのうちの 1 つのキュー(キュー 1)を出力緊急キューとすることができます。これらのキューはキューセットに割り当てられます。スイッチから送信されるすべてのトラフィックは、パケットに割り当てられた QoS ラベルに基づいて、これらの 4 つのキューのいずれかを通過し、スレッシュホールドの影響を受けます。
図33-10に出力キュー バッファを示します。バッファ スペースは共通プールと専用プールからなります。スイッチはバッファ割り当て方式を使用して、出力キューごとに最小バッファ サイズを確保します。これにより、いずれかのキューまたはポートがすべてのバッファを消費して、その他のキューのバッファが不足することがなくなり、要求元のキューにバッファ スペースを割り当てるかどうかを制御します。スイッチは、目的のキューが確保量(下限)を超えるバッファを消費していないかどうか、最大バッファ(上限)をすべて消費しているかどうか、および共通プールが空である(空きバッファなし)か、または空でない(空きバッファあり)かを判別します。キューが上限に達していない場合、スイッチは専用プールまたは共通プール(空でない場合)からバッファ スペースを割り当てることができます。共通プールに空きバッファがない場合、またはキューが上限に達している場合は、フレームが廃棄されます。
図33-10 出力キューのバッファ割り当て
バッファおよびメモリの割り当て
バッファのアベイラビリティの保証、廃棄スレッシュホールドの設定、およびキューセットの最大メモリ割り当ての設定を行うには、 mls qos queue-set output qset-id threshold queue-id drop-threshold1 drop-threshold2 reserved-threshold maximum-threshold グローバル コンフィギュレーション コマンドを使用します。各スレッシュホールド値はキューに割り当てられたメモリの割合です。この割合を指定するには、 mls qos queue-set output qset-id buffers allocation1 ... allocation4 グローバル コンフィギュレーション コマンドを使用します。 割り当てられたすべてのバッファの合計が専用プールになります。残りのバッファは共通プールの一部になります。
バッファ割り当てを行うと、ハイ プライオリティ トラフィックを確実にバッファに格納できます。たとえば、バッファ スペースが 400 の場合、バッファ スペースの 70% をキュー 1 に割り当てて、10% をキュー 2 ~ 4 に割り当てることができます。キュー 1 には 280 のバッファが割り当てられ、キュー 2 ~ 4 にはそれぞれ 40 バッファが割り当てられます。
割り当てられたバッファをキューセット内の特定のキュー用に確保できます。たとえば、キュー用として 100 バッファある場合、50%(50 バッファ)を確保できます。残りの 50 バッファは共通プールに戻されます。また、最大スレッシュホールドを設定することにより、キューが一杯になった場合でも、確保量を超えるバッファの取得を可能にできます。共通プールが空でない場合、必要なバッファを共通プールから割り当てることができます。
WTD スレッシュホールド
キューおよびスレッシュホールドにスイッチを通過する各パケットを割り当てることができます。特に、出力キューには DSCP または CoS 値、スレッシュホールド ID には DSCP または CoS 値をマッピングします。 mls qos srr-queue output dscp-map queue queue-id { dscp1...dscp8 | threshold threshold-id dscp1...dscp8 } または mls qos srr-queue output cos-map queue queue-id { cos1...cos8 | threshold threshold-id cos1...cos8 } グローバル コンフィギュレーション コマンドを使用します。DSCP 出力キュー スレッシュホールド マップおよび CoS 出力キュー スレッシュホールド マップを表示するには、 show mls qos maps イネーブル EXEC コマンドを使用します。
キューは WTD を使用して、トラフィック クラスごとに異なる廃棄割合をサポートします。各キューには 3 つの廃棄スレッシュホールドがあります。そのうちの 2 つは設定可能( 明示的 )な WTD スレッシュホールドで、もう 1 つはキューフル ステートに設定済みの設定不可能( 暗黙的 )なスレッシュホールドです。スレッシュホールド ID 1 および ID 2 用の 2 つの WTD スレッシュホールド割合を割り当てます。スレッシュホールド ID 3 の廃棄スレッシュホールドは、キューフル ステートに設定されていて、変更できません。WTD の機能の詳細については、「WTD」を参照してください。
シェーピング モードまたは共有モード
SRR は、各キューセットを共有モードまたはシェーピング モードで処理します。ポートをキューセットにマッピングするには、 queue-set qset-id インターフェイス コンフィギュレーション コマンドを使用します。ポートに共有ウェイトまたはシェーピング ウェイトを割り当てるには、 srr-queue bandwidth share weight1 weight2 weight3 weight4 または srr-queue bandwidth shape weight1 weight2 weight3 weight4 インターフェイス コンフィギュレーション コマンドを使用します。シェーピングと共有の違いについては、「SRR のシェーピングおよび共有」を参照してください。
(注) 10 ギガビット インターフェイスにシェーピング ウェイトを割り当てられません。
バッファ割り当てと SRR ウェイト比率を組み合わせることにより、廃棄する前にバッファに格納して送信できるデータ量を制御します。ウェイトの比率は、SRR スケジューラが各キューからパケットを送信する頻度の比率です。
緊急キューがイネーブルでないかぎりは、4 つのキューすべてが、SRR に参加します。緊急キューがイネーブルの場合、最初の帯域幅ウェイトは無視されて、比率計算で使用されません。緊急キューは、プライオリティ キューです。このキューを空になるまで処理してから、他のキューを処理します。緊急キューをイネーブルにするには、 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 値は変更されませんが、DSCP は CoS/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 がイネーブルの場合、トラフィックの分類、パケット ラベルの割り当て、および入力キューと出力キューの設定に入力パケット ラベルを使用します( 表33-2 を参照)。
表33-2 トラフィック タイプ、パケット ラベル、キュー
|
|
|
|
|
|
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) |
表33-3 に、生成された入力キューの自動 QoS 設定を示します。
表33-3 入力キュー用の自動 QoS 設定
|
|
|
|
|
SRR 共有 |
1 |
0、1 |
81% |
67% |
プライオリティ |
2 |
2、3、4、5、6、7 |
19% |
33% |
表33-4 に、生成された出力キューの自動 QoS 設定を示します。
表33-4 出力キュー用の自動 QoS 設定
|
|
|
|
ギガビット対応
ポートのキュー
(バッファ)サイズ
|
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 グローバル コンフィギュレーション コマンド)、その他のグローバル コンフィギュレーション コマンドが追加されます。
• Cisco IP Phone に接続されたネットワークのエッジにあるポート上で auto qos voip cisco-phone インターフェイス コンフィギュレーション コマンドを入力すると、信頼境界機能がイネーブルになります。スイッチは Cisco Discovery Protocol(CDP)を使用して、Cisco IP Phone の有無を検出します。Cisco IP Phone が検出されると、パケットで受信される QoS ラベルを信頼するようにポートの入力分類が設定されます。Cisco IP Phone がない場合、パケットで受信される QoS ラベルを信頼しないようにポートの入力分類が設定されます。 表33-3 および 表33-4 の設定に従って、ポートに入力キューおよび出力キューが設定されます。
• Cisco SoftPhone を稼働するデバイスに接続されたネットワークのエッジのポートで、 auto qos voip cisco-softphone インターフェイス コンフィギュレーション コマンドを入力すると、スイッチはポリシングを使用してパケットが適合か、または不適合かを判断し、パケット上のアクションを指定します。パケットに 24、26、または 46 の DHCP 値が含まれていない場合、あるいはパケットが不適合の場合、スイッチは DHCP 値を 0 に変更します。スイッチは 表33-3 および 表33-4 の設定に従って、ポートの入力および出力キューを設定します。
• ネットワーク内部に接続されたポート上で auto qos voip trust インターフェイス コンフィギュレーション コマンドを入力すると、非ルーテッド ポートの場合は入力パケット内の CoS 値、ルーテッド ポートの場合は入力パケット内の DSCP 値が信頼されます(前提条件は、トラフィックがすでに他のエッジ デバイスによって分類されていることです)。 表33-3 および 表33-4 の設定に従って、ポートに入力キューおよび出力キューが設定されます。
信頼境界機能の詳細については、「信頼境界の設定によるポート セキュリティの確保」を参照してください。
auto qos voip cisco-phone 、 auto qos voip cisco-softphone 、または auto qos voip trust インターフェイス コンフィギュレーション コマンドを使用して自動 QoS をイネーブルにすると、スイッチはトラフィック タイプと入力パケット ラベルに基づいて自動的に QoS 設定を生成し、 表33-5 に示すコマンドをポートに適用します。
表33-5 生成される自動 QoS 設定
|
|
スイッチは標準 QoS を自動的にイネーブルにし、CoS/DSCP マップ(着信パケット内の CoS 値の DSCP 値へのマッピング)を設定します。 |
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
|
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 コマンドを入力した場合、 mls qos trust cos コマンドを使用することによって、スイッチは非ルーテッド ポートで受信したパケットの CoS 値を信頼するように、または mls qos trust dscp コマンドを使用することによって、ルーテッド ポートで受信したパケットの DSCP 値を信頼するように、自動的に入力分類を設定します。 |
Switch(config-if)#
mls qos trust cos
Switch(config-if)#
mls qos trust dscp
|
auto qos voip cisco-phone コマンドを入力すると、スイッチは自動的に信頼境界機能をイネーブルにします。この機能は、CDP を使用して Cisco IP Phone の有無を検出します。 |
Switch(config-if)#
mls qos trust device cisco-phone
|
auto qos voip cisco-softphone コマンドを入力すると、スイッチはクラス マップおよびポリシー マップを自動的に作成します。 |
Switch(config)#
mls qos map policed-dscp 24 26 46 to 0
Switch(config)#
class-map match-all AutoQoS-VoIP-RTP-Trust
Switch(config-cmap)#
match ip dscp ef
Switch(config)#
class-map match-all AutoQoS-VoIP-Control-Trust
Switch(config-cmap)#
match ip dscp cs3 af31
Switch(config)#
policy-map AutoQoS-Police-SoftPhone
Switch(config-pmap)#
class AutoQoS-VoIP-RTP-Trust
Switch(config-pmap-c)#
set dscp ef
Switch(config-pmap-c)#
police 320000 8000 exceed-action policed-dscp-transmit
Switch(config-pmap)#
class AutoQoS-VoIP-Control-Trust
Switch(config-pmap-c)#
set dscp cs3
Switch(config-pmap-c)#
police 32000 8000 exceed-action policed-dscp-transmit
|
クラス マップおよびポリシー マップの作成後、スイッチは AutoQoS-Police-SoftPhone のポリシー マップを、Cisco SoftPhone 機能を備えた自動 QoS がイネーブルである入力インターフェイスに自動的に適用します。 |
Switch(config-if)#
service-policy input AutoQoS-Police-SoftPhone
|
自動 QoS の設定上の影響
自動 QoS がイネーブルの場合、 auto qos voip インターフェイス コンフィギュレーション コマンドおよび生成された設定が、実行コンフィギュレーションに追加されます。
自動 QoS によって生成されたコマンドは、CLI(コマンドライン インターフェイス)から入力された場合と同様に適用されます。既存のユーザ設定により、生成されたコマンドの適用に失敗したり、生成されたコマンドで既存設定が上書きされることがあります。これらの動作は、警告なしに実行されます。生成されたコマンドがすべて正常に適用された場合、上書きされなかったユーザ入力の設定は、実行コンフィギュレーションに残ります。上書きされたユーザ入力の設定を元に戻すには、現在のコンフィギュレーションをメモリに保存しないでスイッチを再ロードします。生成されたコマンドを適用できなかった場合は、元の実行コンフィギュレーションが復元されます。
自動 QoS 設定時の注意事項
自動 QoS の設定を開始する前に、次の点に注意してください。
• Cisco IOS Release 12.2(20)SE より前のリリースの場合、自動 QoS では、Cisco IP Phone を含むスイッチ ポート上のみで VoIP が設定されます。
• Cisco IOS Release 12.2(20)SE 以降のリリースでは、自動 QoS は非ルーテッド ポートおよびルーテッド ポートの Cisco IP Phone を使用する VoIP に関して、スイッチの設定を行います。また、Cisco SoftPhone アプリケーションが稼働するデバイスを使用した VoIP に対して、自動 QoS がスイッチに設定されます。
(注) Cisco SoftPhone が稼働するデバイスが非ルーテッドまたはルーテッド ポートに接続されている場合、スイッチはポートごとに Cisco SoftPhone アプリケーション 1 つのみをサポートします。
• 10 ギガビット インターフェイスは、Cisco IP Phone を使用した VoIP、または Cisco SoftPhone 機能を稼働するデバイスを使用した VoIP では、自動 QoS 機能をサポートしません。
• 自動 QoS のデフォルト設定を利用するには、自動 QoS コマンドをイネーブルにしてから、その他の QoS コマンドを設定してください。必要であれば、QoS 設定をきめ細かく調整できますが、自動 QoS コマンド設定が完了したあとに実行することを推奨します。詳細については、「自動 QoS の設定上の影響」を参照してください。
• 自動 QoS がイネーブルになったあと、名前に AutoQoS を含むポリシー マップまたは集約ポリサーを変更しないでください。ポリシー マップまたは集約ポリサーを変更する必要がある場合、これらをコピーしてから、コピーしたポリシー マップまたは集約ポリサーを変更してください。生成したポリシー マップではなく新しいポリシー マップを使用するには、生成したポリシー マップをインターフェイスから削除し、新しいポリシー マップをインターフェイスに適用します。
• スタティック アクセス、ダイナミック アクセス、音声 VLAN アクセス、およびトランク ポートで自動 QoS をイネーブルにできます。
• デフォルトでは、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 をイネーブルにする方法
VoIP 用の QoS を 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 ラベルは電話機が検出されたときのみ信頼されます。このキーワードは 10 ギガビット インターフェイス上ではサポートされません。 • cisco-softphone ― ポートが Cisco SoftPhone 機能を実行する装置に接続されています。このキーワードは 10 ギガビット インターフェイス上ではサポートされません。
(注) cisco-softphoneキーワードをサポートするのは、Cisco IOS Release 12.2(20)SE 以降のリリースのみです。
• trust ― アップリンク ポートが信頼できるスイッチまたはルータに接続されていて、入力パケット内の VoIP トラフィック分類が信頼されます。 |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show auto qos interface interface-id |
設定を確認します。 このコマンドは、自動 QoS がイネーブルであるインターフェイス上の自動 QoS コマンドを表示します。 show running-config vlan イネーブル EXEC コマンドを使用すれば、自動 QoS の設定およびユーザによる変更を表示できます。 |
自動 QoS がイネーブルまたはディセーブルの場合に自動生成される QoS コマンドを表示するには、 debug auto qos イネーブル 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 を実装する手順について説明します(図33-11を参照)。QoS パフォーマンスを最適にするには、ネットワーク内部の装置すべてで自動 QoS をイネーブルにします。
図33-11 自動 QoS を設定したネットワークの例
図33-11に、VoIP トラフィックを他のすべてのトラフィックより優先させるネットワークを示します。配線クローゼット内の QoS ドメインのエッジにあるスイッチで自動 QoS をイネーブルにします。
(注) 自動 QoS コマンドを入力する前にいかなる標準 QoS コマンドも設定しないでください。QoS 設定をきめ細かく調整できますが、自動 QoS コマンド設定が完了したあとに実行することを推奨します。
VoIP トラフィックを他のすべてのトラフィックよりも優先させるために、QoS ドメインのエッジにあるスイッチを設定するには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
debug auto qos |
自動 QoS 用のデバッグをイネーブルにします。デバッグがイネーブルになると、スイッチは、自動 QoS がイネーブルになる場合に自動的に生成される QoS 設定を表示します。 |
ステップ 2 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
cdp enable |
CDP をグローバルにイネーブルにします。デフォルトで、CDP はイネーブルに設定されます。 |
ステップ 4 |
interface interface-id |
Cisco IP Phone に接続されているスイッチ ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 5 |
auto qos voip cisco-phone |
ポートで自動 QoS をイネーブルにし、ポートが Cisco IP Phone に接続されていることを指定します。 着信パケット内の QoS ラベルは、Cisco IP Phone が検出された場合のみ信頼されます。 |
ステップ 6 |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 7 |
Cisco IP Phone に複数のポートが接続されている場合ステップ 4 ~ 6 を繰り返します。 |
ステップ 8 |
interface interface-id |
信頼されるスイッチまたはルータに接続されていると識別されるスイッチ ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。図33-11を参照してください。 |
ステップ 9 |
auto qos voip trust |
ポートで自動 QoS をイネーブルにし、ポートが信頼できるルータやスイッチに接続されていることを指定します。 |
ステップ 10 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 11 |
show auto qos |
設定を確認します。 このコマンドは、自動 QoS がイネーブルであるインターフェイス上の自動 QoS コマンドを表示します。 show running-config vlan イネーブル EXEC コマンドを使用すれば、自動 QoS の設定およびユーザによる変更を表示できます。 自動 QoS によって影響を受ける可能性のある QoS 設定に関する情報については、「自動 QoS 情報の表示」(p.26-12)を参照してください。 |
ステップ 12 |
copy running-config startup-config |
auto qos voip インターフェイス コンフィギュレーション コマンドと生成された自動 QoS 設定をコンフィギュレーション ファイルに保存します。 |
標準 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 になっています。入力および出力キューのデフォルト設定については、「入力キューのデフォルト設定」および「出力キューのデフォルト設定」を参照してください。
入力キューのデフォルト設定
表33-6 に、QoS がイネーブルの場合の入力キューのデフォルト設定を示します。
表33-6 入力キューのデフォルト設定
|
|
|
バッファ割り当て |
90% |
10% |
帯域幅割り当て |
4 |
4 |
プライオリティ キューの帯域幅 |
0 |
10 |
WTD 廃棄スレッシュホールド 1 |
100% |
100% |
WTD 廃棄スレッシュホールド 2 |
100% |
100% |
表33-7 に、QoS がイネーブルの場合のデフォルトの CoS 入力キュー スレッシュホールド マップを示します。
表33-7 デフォルトの CoS 入力キュー スレッシュホールド マップ
|
|
0~4 |
1~1 |
5 |
2~1 |
6、7 |
1~1 |
表33-8 に、QoS がイネーブルの場合のデフォルトの DSCP 入力キュー スレッシュホールド マップを示します。
表33-8 デフォルトの DSCP 入力キュー スレッシュホールド マップ
|
|
0~39 |
1~1 |
40~47 |
2~1 |
48~63 |
1~1 |
出力キューのデフォルト設定
表33-9 に、QoS がイネーブルの場合における、各キューセットに対する出力キューのデフォルト設定を示します。すべてのポートはキューセット 1 にマッピングされます。ポートの帯域幅制限は 100% に設定され、レートは制限されません。
表33-9 出力キューのデフォルト設定
|
|
|
|
|
バッファ割り当て |
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 シェーピング ウェイト(絶対) |
25 |
0 |
0 |
0 |
SRR 共有ウェイト |
25 |
25 |
25 |
25 |
表33-10 に、QoS がイネーブルの場合のデフォルトの CoS 出力キュー スレッシュホールド マップを示します。
表33-10 デフォルトの CoS 出力キュー スレッシュホールド マップ
|
|
0、1 |
2~1 |
2、3 |
3~1 |
4 |
4~1 |
5 |
1~1 |
6、7 |
4~1 |
表33-11 に、QoS がイネーブルの場合のデフォルトの DSCP 出力キュー スレッシュホールド マップを示します。
表33-11 デフォルトの DSCP 出力キュー スレッシュホールド マップ
|
|
0~15 |
2~1 |
16~31 |
3~1 |
32~39 |
4~1 |
40~47 |
1~1 |
48~63 |
4~1 |
マッピング テーブルのデフォルト設定
デフォルトの CoS/DSCP マップについては、表33-12を参照してください。
デフォルトの IP precedence/DSCP マップについては、表33-13を参照してください。
デフォルトの DSCP/CoS マップについては、表33-14を参照してください。
デフォルトの DSCP/DSCP 変換マップは、着信した DSCP 値を同じ DSCP 値にマッピングする空のマップです。
デフォルトのポリシング設定 DSCP マップは、着信した DSCP 値を同じ DSCP 値にマッピングする(マークダウンしない)空のマップです。
QoS ACL の注意事項
以下は、ACL で QoS を設定する場合の注意事項です。
• 設定された IP 拡張 ACL と IP フラグメントを比較して、QoS を実行することはできません。IP フラグメントはベストエフォート型として送信されます。IP フラグメントは IP ヘッダー内のフィールドで指定されます。
• クラス マップごとに 1 つの ACL、および 1 つの match クラス マップ コンフィギュレーション コマンドのみを使用できます。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 です。たとえば、ギガビット イーサネット ポートに 32 個のポリサー、ファスト イーサネット ポートに 8 個のポリサーを設定したり、ギガビット イーサネット ポートに 64 個のポリサー、ファスト イーサネット ポートに 5 個のポリサーを設定できます。ポリサーは必要に応じてソフトウェアによって割り当てられ、ハードウェアおよび ASIC 境界の制約を受けます。ポートごとにポリサーを予約することはできません。特定のポートを目的のポリサーに確実に割り当てることはできません。
• 入力ポートでは、1 つのパケットに適用できるポリサーは 1 つだけです。平均レートおよび確定されたバースト パラメータのみ設定可能です。
• 10 ギガビット イーサネット上でポリシングを設定できません。
• 同じ非階層型ポリシー マップ内で複数のトラフィック クラスが共有する集約ポリサーを作成できます。ただし、集約ポリサーは複数の異なるポリシー マップには使用できません。
• QoS が設定されたポートでは、そのポートを通じて受信されるすべてのトラフィックは、ポートに付加されたポリシー マップに従って分類、ポリシング、およびマーキングが行われます。QoS が設定されたトランク ポートでは、そのポートを通じて受信される すべての VLAN 内トラフィックは、ポートに付加されたポリシー マップに従って分類、ポリシング、およびマーキングが行われます。
• スイッチに EtherChannel ポートが設定されている場合は、EtherChannel を構成する各物理ポートで QoS の分類、ポリシング、マッピング、およびキューイングを設定する必要があります。EtherChannel のすべてのポートで、QoS 設定を統一するかどうかを決定します。
一般的な QoS の注意事項
一般的な QoS の注意事項は次のとおりです。
• スイッチで受信された制御トラフィック(スパニングツリー Bridge Protocol Data Unit[BPDU; ブリッジ プロトコル データ ユニット]やルーティング アップデート パケットなど)には、すべての入力 QoS 処理が行われます。
• キュー設定を変更すると、データが失われることがあります。したがって、トラフィックが最小のときに設定を変更してください。
QoS をグローバルでイネーブルにする方法
デフォルトでは、QoS はスイッチ上でディセーブルです。
QoS をイネーブルにするには、イネーブル EXEC モードで次の手順を実行します。この手順は必須です。
QoS をディセーブルにするには、 no mls qos グローバル コンフィギュレーション コマンドを使用します。
物理ポートでの VLAN ベース QoS のイネーブル化
デフォルトでは、スイッチのすべての物理ポート上で VLAN ベース QoS はディセーブルです。スイッチは、クラス マップおよびポリシー マップなどの QoS を物理ポートに基づいてのみ適用します。Cisco IOS Release 12.2(25)SE 以降では、スイッチ ポート上で VLAN ベース QoS をイネーブルにできます。
VLAN ベース QoS をイネーブルにするには、イネーブル EXEC モードで次の手順を実行します。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 ドメイン内のポートの信頼状態の設定
QoS ドメインに入ってくるパケットは、QoS ドメインのエッジで分類されます。パケットがエッジで分類されるときは、QoS ドメイン内のスイッチごとにパケットを分類する必要がないため、QoS ドメイン内のスイッチ ポートを trusted ポートの 1 つに設定できます。図33-12に、ネットワーク トポロジーの例を示します。
図33-12 QoS ドメイン内のポートの信頼状態
受信するトラフィックの分類を信頼するようにポートを設定するには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
信頼するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 有効なインターフェイスは物理ポートなどです。 |
ステップ 3 |
mls qos trust [ cos | dscp | ip-precedence ] |
ポートの信頼状態を設定します。 デフォルトでは、ポートの信頼状態は untrusted です。キーワードを指定しない場合、デフォルトは 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 } インターフェイス コンフィギュレーション コマンドを使用します。
信頼境界の設定によるポート セキュリティの確保
通常のネットワークでは、図33-12に示すように、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 ラベルを信頼するように、電話機の接続先であるスイッチ ポートを設定できます。 mls qos trust cos インターフェイス コンフィギュレーション コマンドを使用して、ポートで受信されるすべてのトラフィックの DSCP ラベルを信頼するように、電話が接続されているルーテッド ポートを設定します。
電話機をバイパスして 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 を通して電話機を設定します。
ポートの信頼境界をイネーブルにするには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
cdp run |
CDP をグローバルにイネーブルにします。デフォルトで、CDP はイネーブルに設定されます。 |
ステップ 3 |
interface interface-id |
Cisco IP Phone に接続されているポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 有効なインターフェイスは物理ポートなどです。 |
ステップ 4 |
cdp enable |
ポート上で CDP をイネーブルにします。デフォルトで、CDP はイネーブルに設定されます。 |
ステップ 5 |
Cisco IP Phone で受信したトラフィックの CoS 値を信頼するように、スイッチ ポートを設定します。 または Cisco IP Phone で受信したトラフィックの DHCP 値を信頼するように、ルーテッド ポートを設定します。 デフォルトでは、ポートの信頼状態は untrusted です。 |
ステップ 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 トランスペアレンシがイネーブルの場合でも、IEEE 802.1Q トンネル ポートに設定されているポートの信頼性には影響を与えません。
DSCP トランスペアレンシの設定に関わらず、スイッチは、パケットの内部 DSCP 値を変更し、トラフィックのプライオリティを表す CoS 値を生成するのにこれを使用します。また、内部 DSCP 値を使用して、出力キューおよびスレッシュホールドの選択も行います。
スイッチ上で DHCP トランスペアレンシをイネーブルにするには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos |
QoS をグローバルにイネーブルにします。 |
ステップ 3 |
no mls qos rewrite ip dscp |
DSCP トランスペアレンシをイネーブルにします。スイッチは、IP パケットの DSCP フィールドを変更しないように設定されます。 |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show mls qos interface [ interface-id ] |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
DSCP トランスペアレンシをディセーブルにすることにより、信頼性の設定または ACL に基づいて DSCP 値を変更するようにスイッチを設定するには、 mls qos rewrite ip dscp グローバル コンフィギュレーション コマンドを使用します。
no mls qos グローバル コンフィギュレーション コマンドを使用して QoS をディセーブルにした場合、CoS 値および DSCP 値は変更されません(デフォルトの QoS 設定)。
no mls qos rewrite ip dscp グローバル コンフィギュレーション コマンドを入力して、DSCP トランスペアレンシをイネーブルにし、次に mls qos trust [ cos | dscp ] インターフェイス コンフィギュレーション コマンドを入力した場合、DSCP トランスペアレンシはイネーブルのままです。
別の QoS ドメインとの境界ポートでの DSCP 信頼状態の設定
2 つの異なる QoS ドメインを管理していて、その QoS ドメイン間の IP トラフィックに QoS 機能を実行する場合は、DSCP を信頼するようにドメインの境界に位置するスイッチ ポートを設定できます(図33-13を参照)。それにより、受信ポートでは信頼する DSCP 値をそのまま使用し、QoS の分類手順が省略されます。2 つのドメインで異なる DSCP 値が使用されている場合は、他のドメイン内での定義に合わせて一連の DSCP 値を変換する DSCP/DSCP 変換マップを設定できます。
図33-13 別の QoS ドメインとの境界ポートでの DSCP 信頼状態
ポートに DSCP を信頼する状態を設定して、DSCP/DSCP 変換マップを変更するには、イネーブル EXEC モードで次の手順を実行します。両方の QoS ドメインに共通の方法でマッピングするには、両方のドメイン内のポートに次の手順を実行する必要があります。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos map dscp-mutation dscp-mutation-name in-dscp to out-dscp |
DSCP/DSCP 変換マップを変更します。 デフォルトの DSCP/DSCP 変換マップは、着信した DSCP 値を同じ DSCP 値にマッピングする空のマップです。 • dscp-mutation-name には、変換マップ名を入力します。新しい名前を指定することにより、複数のマップを作成できます。 • in-dscp には、最大 8 つの DSCP 値をスペースで区切って入力します。次に to キーワードを入力します。 • out-dscp には、DSCP 値を 1 つ入力します。 DSCP の範囲は 0 ~ 63 です。 |
ステップ 3 |
interface interface-id |
信頼するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 有効なインターフェイスは物理ポートなどです。 |
ステップ 4 |
mls qos trust dscp |
DSCP を信頼する状態のポートとして、入力ポートを設定します。デフォルトでは、ポートの信頼状態は untrusted です。 |
ステップ 5 |
mls qos dscp-mutation dscp-mutation-name |
DSCP を信頼する状態の指定の入力ポートにマップを適用します。 dscp-mutation-name には、ステップ 2 で作成した変換マップ名を指定します。 1 つの入力ポートに複数の DSCP/DSCP 変換マップを設定できます。 |
ステップ 6 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 7 |
show mls qos maps dscp-mutation |
設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
DSCP を信頼しない状態にポートを戻すには、 no mls qos trust インターフェイス コンフィギュレーション コマンドを使用します。デフォルトの DSCP/DSCP 変換マップ値に戻すには、 no mls qos map dscp-mutation dscp-mutation-name グローバル コンフィギュレーション コマンドを使用します。
次に、ポートが DSCP を信頼する状態に設定し、着信した DSCP 値 10 ~ 13 が DSCP 値 30 にマッピングされるように DSCP/DSCP 変換マップ( gi1/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
ACL によるトラフィックの分類
IP トラフィックを分類するには、IP 標準 ACL または IP 拡張 ACL を使用します。非 IP トラフィックを分類するには、レイヤ 2 MAC ACL を使用します。
IP トラフィック用の IP 標準 ACL を作成するには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
access-list access-list-number { deny | permit } source [ source-wildcard ] |
ステップ 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 |
ステップ 3 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 4 |
show access-lists |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
アクセス リストを削除するには、 no access-list access-list-number グローバル コンフィギュレーション コマンドを使用します。
次に、任意の送信元から任意の宛先への IP トラフィック(DSCP 値は 32)を許可する ACL の作成例を示します。
Switch(config)# access-list 100 permit ip any any dscp 32
次に、10.1.1.1 の送信元ホストから 10.1.1.2 の宛先ホストへの IP トラフィック(precedence 値は 5)を許可する ACL の作成例を示します。
Switch(config)# access-list 100 permit ip host 10.1.1.1 host 10.1.1.2 precedence 5
次に、任意の送信元から宛先グループ アドレス 224.0.0.2 への PIM トラフィック(DSCP 値は 32)を許可する ACL の作成例を示します。
Switch(config)# access-list 102 permit pim any 224.0.0.2 dscp 32
非 IP トラフィック用のレイヤ 2 MAC ACL を作成するには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mac access-list extended name |
リスト名を指定し、レイヤ 2 MAC ACL を作成します。 このコマンドを入力すると、拡張 MAC ACL コンフィギュレーション モードに変わります。 |
ステップ 3 |
{ permit | deny } { host src-MAC-addr mask | any | host dst-MAC-addr | dst-MAC-addr mask } [ type mask ] |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show access-lists [ access-list-number | access-list-name ] |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
アクセス リストを削除するには、 no mac access-list extended access-list-name グローバル コンフィギュレーション コマンドを使用します。
次に、2 つの許可ステートメントを含むレイヤ 2 の MAC ACL を作成する例を示します。最初のステートメントでは、MAC アドレスが 0001.0000.0001 であるホストから、MAC アドレスが
0002.0000.0001 であるホストへのトラフィックが許可されます。2 番めのステートメントでは、MAC アドレスが 0001.0000.0002 であるホストから、MAC アドレスが 0002.0000.0002 であるホストへの、EtherType が XNS-IDP のトラフィックのみが許可されます。
Switch(config)# mac access-list extended maclist1
Switch(config-ext-macl)# permit 0001.0000.0001 0.0.0 0002.0000.0001 0.0.0
Switch(config-ext-macl)# permit 0001.0000.0002 0.0.0 0002.0000.0002 0.0.0 xns-idp
! (Note: all other access implicitly denied)
クラス マップによるトラフィックの分類
特定のトラフィック フロー(またはクラス)を他のすべてのトラフィックと区別して名前を付けるには、 class-map グローバル コンフィギュレーション コマンドを使用します。クラス マップが、特定のトラフィック フローとの比較を行い、さらにそれを分類するために使用する条件を定義します。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 標準 ACL または IP 拡張 ACL、非 IP トラフィックの場合はレイヤ 2 の MAC ACL を作成します。必要な回数だけこのコマンドを繰り返します。 詳細については、「ACL によるトラフィックの分類」を参照してください。
(注) アクセス リストを作成するときは、アクセス リストの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。
|
ステップ 3 |
class-map [ match-all | match-any ] class-map-name |
ステップ 4 |
match { access-group acl-index-or-name | ip dscp dscp-list | ip precedence ip-precedence-list } |
トラフィックを分類する一致条件を定義します。 デフォルトで、一致条件は定義されていません。 各クラス マップで使用できる一致条件および ACL は、それぞれ 1 つのみです。 • access-group acl-index-or-name を指定する場合は、ステップ 2 で作成した ACL の番号または名前を指定します。 • ip dscp dscp-list を指定する場合は、着信パケットと比較する IP DSCP 値を 8 個まで入力します。各値はスペースで区切ります。指定できる範囲は 0 ~ 63 です。 • ip precedence ip-precedence-list を指定する場合は、着信パケットと比較する IP precedence 値を 8 個まで入力します。各値はスペースで区切ります。指定できる範囲は 0 ~ 7 です。 |
ステップ 5 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 6 |
show class-map |
設定を確認します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
既存のポリシー マップを削除するには、 no 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
次に、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 値を設定するアクション、および一致した各トラフィック クラス(ポリサー)のトラフィック帯域幅の制限やトラフィックが不適合(マーキング)になったときの対処法を指定するアクションなどを指定できます。
ポリシー マップには次の特徴もあります。
• ポリシー マップには、それぞれ異なる一致条件およびポリサーが指定された、複数のクラス ステートメントを追加できます。
• ポートを通じて受信されるトラフィック タイプごとに、個別のポリシー マップ クラスを設定できます。
• ポリシー マップの信頼状態およびポートの信頼状態はどちらか一方のみを設定することができ、最後に設定された方が有効となります。
物理ポートにポリシー マップの設定を行うときは、次の注意事項に従ってください。
• 1 つの入力ポートに付加できるポリシー マップは、1 つに限られます。
• mls qos map ip-prec-dscp dscp1...dscp8グローバル コンフィギュレーション コマンドを使用して IP precedence/DSCP マップを設定する場合、設定は IP precedence 値を信頼するように設定された入力インターフェイス上のパケットにのみ影響します。ポリシー マップでは、
set ip 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 に変更します。
• Cisco IOS Release 12.2(25)SEC 以降では、 set ip precedence コマンドまたは set precedence コマンドを使用し、パケットの IP precedence 値を新しい値に設定できます。この設定は、スイッチ設定で set ip precedence として表示されます。
• Cisco IOS Release 12.2(25)SED 以降では、ポートに対して定義された各クラスごとに、独立した第 2 レベルのポリシー マップを設定できます。第 2 レベルのポリシー マップは、各トラフィック クラスに対するポリシング アクションを指定します。階層型ポリシー マップを設定するには、「階層型ポリシー マップによる SVI 上のトラフィックの分類、ポリシング、およびマーキング」を参照してください。
(注) 10 ギガビット イーサネット インターフェイスは、ポリシー マップを使用したポリシングをサポートしません。
非階層型ポリシー マップを作成するには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
class-map [ match-all | match-any ] class-map-name |
ステップ 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 に進みます。
デフォルトでは、ポートの信頼状態は untrusted です。このコマンドを入力するときにキーワードを指定しないと、デフォルトは 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 には、平均トラフィック レートをビット/秒単位で指定します。指定できる範囲は 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 ポリシー マップ コンフィギュレーション コマンドを使用します。信頼できない状態に戻すには、 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 1000000 8000 exceed-action policed-dscp-transmit
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
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-ext-mac)# exit
Switch(config)# mac access-list extended maclist2
Switch(config-ext-mac)# permit 0001.0000.0003 0.0.0 0002.0000.0003 0.0.0
Switch(config-ext-mac)# permit 0001.0000.0004 0.0.0 0002.0000.0004 0.0.0 aarp
Switch(config-ext-mac)# exit
Switch(config)# class-map macclass1
Switch(config-cmap)# match access-group maclist1
Switch(config-cmap)# exit
Switch(config)# policy-map macpolicy1
Switch(config-pmap)# class macclass1
Switch(config-pmap-c)# set dscp 63
Switch(config-pmap-c)# exit
Switch(config-pmap)# class macclass2 maclist2
Switch(config-pmap-c)# set dscp 45
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# mls qos trust cos
Switch(config-if)# service-policy input macpolicy1
階層型ポリシー マップによる SVI 上のトラフィックの分類、ポリシング、およびマーキング
Cisco IOS Release 12.2(25)SE 以降では、SVI に階層型ポリシー マップを設定できます。階層型ポリシングは、VLAN レベルとインターフェイスレベルのポリシー マップを結合し、単一のポリシー マップを作成します。
VLAN レベル ポリシー マップは、SVI 上で処理対象となるトラフィック クラスを指定します。アクションには、CoS、DSCP、または IP precedence 値を信頼するかどうかの設定、あるいはトラフィック クラスに対する特定の DSCP または IP precedence 値の設定が含まれます。インターフェイス レベルのポリシー マップを使用して、個別ポリサーに影響される物理ポートを指定します。
(注) 10 ギガビット イーサネット インターフェイスは、ポリシー マップを使用したポリシングをサポートしません。
階層型ポリシー マップの設定を行うときは、次の注意事項に従ってください。
• 階層型ポリシー マップを設定する前に、ポリシー マップのインターフェイスレベルで指定される物理ポート上で、VLAN ベースの QoS をイネーブルにする必要があります。
• 1 つの入力ポートまたは SVI に付加できるポリシー マップは、1 つに限られます。
• ポリシー マップには、それぞれ異なる一致条件およびアクションが指定された、複数のクラス ステートメントを設定できます。
• SVI 上で受信されるトラフィック タイプごとに、個別のポリシー マップ クラスを設定できます。
• ポリシー マップの信頼状態およびポートの信頼状態はどちらか一方のみを設定することができ、最後に設定された方が有効となります。
• mls qos map ip-prec-dscp dscp1...dscp8グローバル コンフィギュレーション コマンドを使用して IP precedence/DSCP マップを設定する場合、設定は IP precedence 値を信頼するように設定された入力インターフェイス上のパケットにのみ影響します。ポリシー マップでは、
set ip 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 precedence として表示されます。
• VLAN ベース QoS がイネーブルの場合、階層型ポリシー マップは前に設定されたポートベースのポリシー マップより優先されます。
• 階層型ポリシー マップは SVI に付加され、VLAN に所属するすべてのトラフィックに影響を及ぼします。VLAN レベルのポリシー マップで指定されるアクションは、SVI に所属するトラフィックに影響を及ぼします。ポート レベル ポリシー マップで指定されるポリシング アクションは、関連する物理インターフェイスの入力トラフィックに影響を及ぼします。
• トランク ポート上で階層型ポリシー マップを設定する場合、VLAN 範囲は重複することはできません。VLAN 範囲が重複すると、ポリシー マップで指定されたアクションは重複した VLAN 上の着信および発信トラフィックに影響を及ぼします。
• 階層型ポリシー マップでは、集約ポリサーをサポートしません。
• VLAN ベース QoS がイネーブルの場合は、スイッチは VLAN マップなどの VLAN ベースの機能をサポートします。
• 階層型ポリシー マップを設定できるのは、プライベート VLAN のプライマリ VLAN に対してのみです。
• VLAN ベース QoS をイネーブルにして、スイッチ スタックに階層型ポリシー マップを設定する場合に、スタックの設定を変更すると、次のアクションが自動的に実行されます。
–新しいスタック マスターが選択されると、スタック マスターは自身の適用可能なすべてのインターフェイス上でこれらの機能を再度イネーブルにして、再設定します。
–新しいスタック メンバーが追加されると、スタック マスターはスタック メンバーの適用可能なすべてのポート上でこれらの機能を再度イネーブルにして、再設定します。
–スイッチ スタックをマージすると、新しいスタック マスターは新しいスタック上のスイッチでこれらの機能を再度イネーブルにして、再設定します。
–スイッチ スタックが 2 つ以上のスイッチ スタックに分割されると、各スイッチ スタックのスタック マスターは、スタック マスターを含むスタック メンバーの適用可能なすべてのインターフェイス上でこの機能を再度イネーブルにして、再設定します。
階層型ポリシー マップを作成するには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
class-map [ match-all | match-any ] class-map-name |
ステップ 3 |
match { access-group acl-index-or-name | ip dscp dscp-list | ip precedence ip-precedence-list } |
トラフィックを分類する一致条件を定義します。 デフォルトで、一致条件は定義されていません。 各クラス マップで使用できる一致条件および 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 |
ステップ 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 には、平均トラフィック レートをビット/秒単位で指定します。指定できる範囲は 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 を省略してください。
デフォルトでは、ポートの信頼状態は untrusted です。このコマンドを入力するときにキーワードを指定しないと、デフォルトは 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 レベル ポリシー マップで複数のクラスを指定する場合は、Cisco IOS Release 12.2(25)SED 以降では、各クラスに異なる 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 インターフェイス コンフィギュレーション コマンドを使用します。
次に、階層型ポリシー マップの作成方法を示します。
Switch#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#access-list 101 permit ip any any
Switch(config)#class-map cm-1
Switch(config-cmap)#match access 101
次に、新しいマップを SVI に接続する例を示します。
Switch#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#class-map cm-interface-1
Switch(config-cmap)#match input g3/0/1 - g3/0/2
Switch(config)#policy-map port-plcmap
Switch(config-pmap)#class-map cm-interface-1
Switch(config-pmap-c)#police 900000 9000 exc policed-dscp-transmit
Switch(config-pmap-c)#exit
Switch(config)#policy-map vlan-plcmap
Switch(config-pmap)#class-map cm-1
Switch(config-pmap-c)#set dscp 7
Switch(config-pmap-c)#service-policy port-plcmap-1
Switch(config-pmap-c)#exit
Switch(config-pmap)#class-map cm-2
Switch(config-pmap-c)#match ip dscp 2
Switch(config-pmap-c)#service-policy port-plcmap-1
Switch(config-pmap)#class-map cm-3
Switch(config-pmap-c)#match ip dscp 3
Switch(config-pmap-c)#service-policy port-plcmap-2
Switch(config-pmap)#class-map cm-4
Switch(config-pmap-c)#trust dscp
Switch(config)#interface vlan 10
Switch(config-if)#ser input vlan-plcmap
集約ポリサーによるトラフィックの分類、ポリシング、およびマーキング
集約ポリサーを使用すると、同じポリシー マップ内の複数のトラフィック クラスで共有されるポリサーを作成できます。ただし、集約ポリサーを複数の異なるポリシー マップまたはポートには使用できません。
集約ポリサーは、物理ポート上の非階層型ポリシー マップでのみ設定できます。
(注) 10 ギガビット イーサネット インターフェイスは集約ポリサーを使用したポリシングをサポートしません。
集約ポリサーを作成するには、イネーブル EXEC モードで次の手順を実行します。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos aggregate-policer aggregate-policer-name rate-bps burst-byte exceed-action { drop | policed-dscp-transmit } |
同じポリシー マップ内の複数のトラフィック クラスに適用できるポリサー パラメータを定義します。 デフォルトで、集約ポリサーは定義されていません。サポートされているポリサーの数については、「標準 QoS 設定時の注意事項」を参照してください。 • aggregate-policer-name には、集約ポリサーの名前を指定します。 • rate-bps には、平均トラフィック レートをビット/秒単位で指定します。指定できる範囲は 8000 ~ 1000000000 です。 • burst-byte には、標準バースト サイズをバイト単位で指定します。指定できる範囲は 8000 ~ 1000000 です。 • レートを超過した場合の対処方法を指定します。パケットを廃棄するには、 exceed-action drop キーワードを使用します。(ポリシング設定 DSCP マップを使用して)DSCP 値をマークダウンし、パケットを送信するには、 exceed-action policed-dscp-transmit キーワードを使用します。詳細については、「ポリシング設定 DSCP マップの設定」 を参照してください。 |
ステップ 3 |
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 gigabitethernet2/0/1
Switch(config-if)# service-policy input aggflow1
CoS/DSCP マップの設定
着信パケットの CoS 値を、トラフィックのプライオリティを表すために QoS で内部的に使用される DSCP 値にマッピングするには、CoS/DSCP マップを使用します。
表33-12 にデフォルトの CoS/DSCP マップを示します。
表33-12 デフォルトの 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# show mls qos maps cos-dscp
--------------------------------
dscp: 10 15 20 25 30 35 40 45
IP precedence/DSCP マップの設定
着信パケットの IP precedence 値を、トラフィックのプライオリティを表すために QoS で内部的に使用される DSCP 値にマッピングするには、IP precedence/DSCP マップを使用します。
表33-13 に、デフォルトの IP precedence/DSCP マップを示します。
表33-13 デフォルトの 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# show mls qos maps ip-prec-dscp
--------------------------------
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# show mls qos maps policed-dscp
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
(注) このポリシング設定 DSCP マップでは、マークダウンされる DSCP 値が表形式で示されています。d1 列は元の DSCP の最上位桁、d2 行は元の DSCP の最下位桁を示します。d1 と d2 の交点にある値が、マークダウンされる値です。たとえば、元の DSCP 値が 53 の場合、マークダウンされる DSCP 値は 0 です。
DSCP/CoS マップの設定
4 つの出力キューの 1 つを選択するために使用される CoS 値を生成するには、DSCP/CoS マップを使用します。
表33-14 にデフォルトの DSCP/CoS マップを示します。
表33-14 デフォルトの 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# show mls qos maps dscp-cos
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
(注) 上記の DSCP/CoS マップでは、CoS 値が表形式で示されています。d1 列は DSCP の最上位桁、d2 行は DSCP の最下位桁を示します。d1 と d2 の交点にある値が CoS 値です。たとえば、この DSCP/CoS マップでは、DSCP 値が 8 の場合、対応する CoS 値は 0 です。
DSCP/DSCP 変換マップの設定
2 つの QoS ドメインで異なる DSCP 定義が使用されている場合は、他のドメイン内での定義に合わせて一連の DSCP 値を変換する DSCP/DSCP 変換マップを使用します。DSCP/DSCP 変換マップは、QoS 管理ドメインの境界にある受信ポートに適用されます(入力変換)。
入力変換により、パケットの DSCP 値が新しい DSCP 値で上書きされ、QoS はこの新しい値を使用してパケットを処理します。スイッチは新しい DSCP 値を使用して、ポートからパケットを送信します。
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 を信頼する状態のポートとして、入力ポートを設定します。デフォルトでは、ポートの信頼状態は untrusted です。 |
ステップ 5 |
mls qos dscp-mutation dscp-mutation-name |
DSCP を信頼する状態の指定の入力ポートにマップを適用します。 dscp-mutation-name には、ステップ 2 で指定された変換マップ名を入力します。 |
ステップ 6 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 7 |
show mls qos maps dscp-mutation |
設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
デフォルトのマップに戻すには、 no mls qos dscp-mutation dscp-mutation-name グローバル コンフィギュレーション コマンドを使用します。
次に、DSCP/DSCP 変換マップを定義する例を示します。明示的に設定されていないすべてのエントリは変更されません(空のマップで指定された値のままです)。
Switch(config)# mls qos map dscp-mutation mutation1 1 2 3 4 5 6 7 to 0
Switch(config)# mls qos map dscp-mutation mutation1 8 9 10 11 12 13 to 10
Switch(config)# mls qos map dscp-mutation mutation1 20 21 22 to 20
Switch(config)# mls qos map dscp-mutation mutation1 30 31 32 33 34 to 30
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# mls qos trust dscp
Switch(config-if)# mls qos dscp-mutation mutation1
Switch# show mls qos maps dscp-mutation 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
(注) 上記の DSCP/DSCP 変換マップでは、変換される値が表形式で示されています。d1 列は元の DSCP の最上位桁、d2 行は元の DSCP の最下位桁を示します。d1 と d2 の交点の値が、変換値です。たとえば、DSCP 値が 12 の場合、対応する変換値は 10 です。
入力キューへの 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
設定時の注意事項
緊急キューがイネーブルの場合、または 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 gigabitethernet1/0/1
Switch(config-if)# queue-set 2
出力キューおよびスレッシュホールド ID への DSCP または CoS 値のマッピング
トラフィックにプライオリティを設定するには、特定の DSCP または CoS を持つパケットを特定のキューに格納し、より低いプライオリティを持つパケットが廃棄されるようにキューのスレッシュホールドを調整します。
(注) ほとんどの場合は、出力キューのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用の QoS ソリューションを満たしていない場合のみです。
DSCP または CoS 値を出力キューおよびスレッシュホールド ID にマッピングするには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos srr-queue output dscp-map queue queue-id threshold threshold-id dscp1...dscp8 または mls qos srr-queue output cos-map queue queue-id threshold threshold-id cos1...cos8 |
DSCP または CoS 値を出力キューおよびスレッシュホールド ID にマッピングします。 デフォルトでは、DSCP 値 0 ~ 15 はキュー 2 およびスレッシュホールド 1 に、DSCP 値 16 ~ 31 はキュー 3 およびスレッシュホールド 1 に、DSCP 値 32 ~ 39 および 48 ~ 63 はキュー 4 およびスレッシュホールド 1 に、DSCP 値 40 ~ 47 はキュー 1 およびスレッシュホールド 1 にマッピングされます。 デフォルトでは、CoS 値 0 および 1 はキュー 2 およびスレッシュホールド 1 に、CoS 値 2 および 3 はキュー 3 およびスレッシュホールド 1 に、CoS 値 4、6、および 7 はキュー 4 およびスレッシュホールド 1 に、CoS 値 5 はキュー 1 およびスレッシュホールド 1 にマッピングされます。 • queue-id に使用できる範囲は 1 ~ 4 です。 • threshold-id に使用できる範囲は 1 ~ 3 です。スレッシュホールド 3 の廃棄スレッシュホールドは定義済みであり、キューフル ステートに設定されます。 • dscp1...dscp 8 には、8 つまでの値を、それぞれスペースで区切って入力します。指定できる範囲は 0 ~ 63 です。 • cos1...cos8 には、8 つまでの値を、それぞれスペースで区切って入力します。指定できる範囲は 0 ~ 7 です。 |
ステップ 3 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 4 |
show mls qos maps |
設定を確認します。 DSCP 出力キュー スレッシュホールド マップは、表形式で表示されます。d1 列は DSCP 値の最上位桁、d2 行は DSCP 値の最下位桁を示します。d1 および d2 値の交点がキュー ID およびスレッシュホールド ID です。たとえば、キュー 2 およびスレッシュホールド 1(02-01)のようになります。 CoS 出力キュー スレッシュホールド マップでは、先頭行に CoS 値、および 2 番めの行に対応するキュー ID およびスレッシュホールド ID が示されます。たとえば、キュー 2 およびスレッシュホールド 2(2-2)のようになります。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
デフォルトの DSCP 出力キュー スレッシュホールド マップまたはデフォルトの CoS 出力キュー スレッシュホールド マップに戻すには、 no mls qos srr-queue output dscp-map または
no mls qos srr-queue output cos-map グローバル コンフィギュレーション コマンドを使用します。
次に、DSCP 値 10 および 11 を出力キュー 1 およびスレッシュホールド 2 にマッピングする例を示します。
Switch(config)# mls qos srr-queue output dscp-map queue 1 threshold 2 10 11
出力キューの SRR シェーピング ウェイトの設定
(注) 10 ギガビット インターフェイス上で SSR シェーピング ウェイトは設定できません。
各キューに割り当てる使用可能な帯域幅の比率を指定できます。ウェイトの比率は、SRR スケジューラが各キューからパケットを送信する頻度の比率です。
出力キューには、シェーピング ウェイト、共有ウェイト、またはその両方を設定できます。バースト トラフィックを平滑化したり、出力をより滑らかにするには、シェーピングを使用します。共有ウェイトの詳細については、 「SRR のシェーピングおよび共有」を参照してください。共有ウェイトの詳細については、「出力キューの SRR 共有ウェイトの設定」を参照してください。
(注) 入力 10 ギガビット インターフェイスで帯域幅は制限できません。
ポートにマッピングされた 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 gigabitethernet2/0/1
Switch(config-if)# srr-queue bandwidth shape 8 0 0 0
出力キューの SRR 共有ウェイトの設定
共有モードでは、キューは設定されたウェイトに従って各キュー間の帯域幅を共有します。帯域幅はこのレベルで保証されますが、このレベルに限定されるわけではありません。たとえば、特定のキューが空であり、リンクを共有する必要がない場合、残りのキューは未使用の帯域幅を使用して、各キュー間で共有できます。共有の場合、キューからパケットを取り出す頻度はウェイトの比率で制御します。ウェイトの絶対値には意味がありません。
(注) ほとんどの場合は、出力キューのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用の QoS ソリューションを満たしていない場合のみです。
ポートにマッピングされた 4 つの出力キューに共有ウェイトを割り当てて、帯域幅の共有をイネーブルにするには、イネーブル EXEC モードで次の手順を実行します。この手順は任意です。
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
発信トラフィックのポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
srr-queue bandwidth share weight1 weight2 weight3 weight4 |
出力キューに SRR ウェイトを割り当てます。 デフォルトでは、4 つのウェイトがすべて 25 です(各キューに帯域幅の 1/4 が割り当てられています)。 weight1 weight2 weight3 weight4 には、SRR スケジューラがパケットを送信する頻度の比率を制御するウェイトを入力します。各値はスペースで区切ります。指定できる範囲は 1 ~ 255 です。 |
ステップ 4 |
end |
イネーブル EXEC モードに戻ります。 |
ステップ 5 |
show mls qos interface interface-id queueing |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
デフォルトの設定に戻すには、 no srr-queue bandwidth share インターフェイス コンフィギュレーション コマンドを使用します。
次に、出力ポートで動作している SRR スケジューラのウェイトの比率を設定する例を示します。4 つのキューが使用され、共有モードで各キューに割り当てられる帯域幅の比率は、キュー 1、2、3、および 4 に対して 1/(1 + 2 + 3 + 4)、2/(1 + 2 + 3 + 4)、3/(1 + 2 + 3 + 4)、および 4/(1 + 2 + 3 + 4)になります(それぞれ、10、20、30、および 40%)。つまり、キュー 4 の帯域幅はキュー 1 の 4 倍、キュー 2 の 2 倍、キュー 3 の 1.3 倍です。
Switch(config)# interface gigabitethernet2/0/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 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
出力インターフェイスの帯域幅の制限
(注) 10 ギガビット インターフェイス上で SSR シェーピング ウェイトは設定できません。
出力ポートの帯域幅は制限できます。たとえば、顧客が高速リンクの一部しか費用を負担しない場合は、帯域幅をその値に制限できます。
(注) ほとんどの場合は、出力キューのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用の 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 gigabitethernet2/0/1
Switch(config-if)# srr-queue bandwidth limit 80
このコマンドを 80% に設定すると、ポートは期間の 20% の間アイドルです。回線レートは接続速度の 80%(800 Mbps)に低下します。ハードウェアによる回線レートの調整では 6 ずつ増分されるため、これらの値は正確ではありません。