QoS の概要
ネットワークは通常、ベストエフォート型の配信方式で動作します。したがって、すべてのトラフィックに等しいプライオリティが与えられ、正しいタイミングで配信される可能性も同じです。輻輳が発生した場合に、廃棄される可能性についても、すべてのトラフィックで同じです。
QoS 機能を設定すると、特定のネットワーク トラフィックを選択し、相対的な重要性に応じてそのトラフィックに優先度を指定し、輻輳管理および輻輳回避技術を使用して、優先処理を実行できます。ネットワークに QoS を実装すると、ネットワーク パフォーマンスがさらに予測しやすくなり、帯域幅をより効率的に利用できるようになります。
QoS は、Internet Engineering Task Force(IETF)の新しい規格である Differentiated Services(DiffServ)アーキテクチャに基づいて実装されます。このアーキテクチャでは、ネットワークに入るときに各パケットを分類することが規定されています。
この分類は IP パケット ヘッダーに格納され、推奨されない IP Type of Service(ToS; サービス タイプ)フィールドの 6 ビットを使用して、分類(クラス)情報として伝達されます。分類情報をレイヤ 2 フレームでも伝達できます。レイヤ 2 フレームのこれらの特殊ビットについて説明します(図27-1を参照)。
レイヤ 2 フレームのプライオリティ ビット
• レイヤ 2 の ISL(スイッチ間リンク)フレーム ヘッダーには 1 バイトのユーザ フィールドがあり、その下位 3 ビットでは IEEE 802.1p CoS 値を伝達します。レイヤ 2 ISL トランクとして設定されたポートでは、すべてのトラフィックが ISL フレームに収められます。
• レイヤ 2 IEEE 802.1Q フレーム ヘッダーには 2 バイトのタグ制御情報フィールドがあります。このフィールドは、上位 3 ビット(ユーザ プライオリティ ビット)で CoS 値を伝達します。レイヤ 2 IEEE 802.1Q トランクとして設定されたポートでは、ネイティブ VLAN(仮想 LAN)のトラフィックを除くすべてのトラフィックが IEEE 802.1Q フレームに収められます。
• 他のフレーム タイプでレイヤ 2 CoS 値を伝達することはできません。
• レイヤ 2 CoS 値の範囲は、0(ロー プライオリティ)~ 7(ハイ プライオリティ)です。
(注) IPv6 QoS はこのリリースでサポートされていません。
図27-1 フレームおよびパケットにおける QoS 分類レイヤ
インターネットにアクセスするすべてのスイッチおよびルータはクラス情報に基づいて、同じクラス情報が与えられているパケットは同じ扱いで転送を処理し、異なるクラス情報のパケットはそれぞれ異なる扱いをします。パケットのクラス情報は、設定されているポリシー、パケットの詳細な検証、またはその両方に基づいて、エンド ホストが割り当てるか、または伝送中にスイッチまたはルータで割り当てることができます。パケットの詳細な検証は、コア スイッチおよびルータの負荷が重くならないように、ネットワークのエッジ付近で行います。
パス上のスイッチおよびルータは、クラス情報を使用して、個々のトラフィック クラスに割り当てるリソースの容量を制限できます。DiffServ アーキテクチャでトラフィックを処理するときの、各デバイスの動作をホップ単位動作といいます。パス上のすべてのデバイスに一貫性のあるホップ単位動作をさせることによって、エンドツーエンドの QoS ソリューションを構築できます。
ネットワーク上で QoS を実装する作業は、インターネットワーキング デバイスが提供する QoS 機能、ネットワークのトラフィック タイプおよびパターン、さらには着信および発信トラフィックに求める制御のきめ細かさによって、簡単にも複雑にもなります。
QoS の基本モデル
QoS を実装するには、スイッチ上でパケットまたはフローを相互に区別し(分類)、パケットがスイッチを通過するときに所定の QoS を指定するラベルを割り当て、設定されたリソース使用率制限にパケットを適合させ(ポリシングおよびマーキング)、リソース競合が発生する状況に応じて異なる処理(キューイングおよびスケジューリング)を行う必要があります。また、スイッチから送信されたトラフィックが特定のトラフィック プロファイルを満たすようにする必要もあります(シェーピング)。
図27-2に、QoS の基本モデルを示します。入力ポートでのアクションには、トラフィックの分類、およびキューイングがあります。
• パケットと QoS ラベルを関連付けて、パケットごとに異なるパスを分類します。スイッチはパケット内の CoS を QoS ラベルにマッピングして、トラフィックの種類を区別します。生成された QoS ラベルは、このパケットでこれ以降に実行されるすべての QoS アクションを識別します。詳細については、「分類」を参照してください。
• キューイングでは、QoS ラベルおよび対応する CoS 値を評価して、パケットを 2 つの入力キューのどちらに格納するかを選択します。キューイングは、輻輳回避メカニズムである Weighted Tail-Drop(WTD)アルゴリズムによって拡張されます。しきい値を超過している場合、パケットは廃棄されます。詳細については、「キューイングの概要」を参照してください。
出力ポートでのアクションにはキューイングがあります。
4 つの出力キューのどれを使用するかを選択する前に、キューイングでは、QoS パケット ラベルおよび対応する CoS 値を評価します。複数の入力ポートが 1 つの出力ポートに同時にデータを送信すると輻輳が発生することがあるため、WTD を使用してトラフィック クラスを区別し、QoS ラベルに基づいてパケットに別々のしきい値を適用します。しきい値を超過している場合、パケットは廃棄されます。詳細については、「キューイングの概要」を参照してください。
図27-2 QoS の基本モデル
分類
分類とは、パケットのフィールドを検証して、トラフィックの種類を区別するプロセスです。QoS がスイッチ上でグローバルにイネーブルになっている場合のみ、分類はイネーブルです。デフォルトでは、QoS はグローバルにディセーブルになっているため、分類は実行されません。
分類中に、スイッチは検索処理を実行し、パケットに QoS ラベルを割り当てます。QoS ラベルは、パケットに対して実行するすべての QoS アクション、およびパケットの送信元キューを識別します。
QoS ラベルは、パケット内の CoS 値に基づいて、パケットに実行されるキューイングおよびスケジューリング アクションを決定します。QoS ラベルは信頼設定およびパケット タイプに従ってマッピングされます。
着信トラフィックの分類に、フレームまたはパケットのどのフィールドを使用するかは、ユーザ側で指定します。非 IP トラフィックには、次の分類オプションを使用できます。
着信フレームの CoS 値を信頼します(ポートが CoS を信頼するように設定します)。レイヤ 2 の ISL フレーム ヘッダーは、1 バイトのユーザ フィールドの下位 3 ビットで CoS 値を伝達します。レイヤ 2 IEEE 802.1Q フレームのヘッダーは、タグ制御情報フィールドの上位 3 ビットで CoS 値を伝達します。CoS 値の範囲は 0(ロー プライオリティ)~ 7(ハイ プライオリティ)です。
ポートの信頼状態の設定情報については、「ポートの信頼状態による分類の設定」を参照してください。
分類されたパケットは、入力キューイングとスケジューリングの各段階に送られます。
CoS 入力キューしきい値マップの詳細については、「入力キューでのキューイング」を参照してください。CoS 出力キューしきい値マップの詳細については、「出力キューでのキューイング」を参照してください。
キューイングの概要
スイッチは特定のポイントにキューを配置し、輻輳防止に役立てます(図27-3を参照)。
図27-3 入力および出力キューの位置
すべてのポートの入力帯域幅の合計が内部リングの帯域幅を超えることがあるため、入力キューはパケットの分類、ポリシング、およびマーキングのあと、パケットがスイッチ ファブリックに転送される前の位置に配置されています。複数の入力ポートから 1 つの出力ポートに同時にパケットが送信されて、輻輳が発生することがあるため、出力キューは内部リングのあとに配置されています。
WTD
入力および出力キューは両方とも、WTD と呼ばれるテールドロップ輻輳回避メカニズムの拡張バージョンを使用します。WTD はキュー長を管理したり、トラフィック分類ごとに廃棄優先順位を設定したりするために実装されています。
フレームが特定のキューにキューイングされると、WTD はフレームに割り当てられた QoS ラベルを使用して、それぞれ異なるしきい値を適用します。この QoS ラベルのしきい値を超えると(宛先キューの空きスペースがフレーム サイズより小さくなると)、フレームは廃棄されます。
詳細については、「入力キューへの CoS 値のマッピング」および「出力キューおよびしきい値 ID への CoS 値のマッピング」を参照してください。
入力キューでのキューイング
図27-4に、入力ポートのキューイングおよびスケジューリング フローチャートを示します。
図27-4 入力ポートのキューイング フローチャート
(注) 共有が設定されている場合、Shaped Round Robin(SRR)はプライオリティ キューを処理してから、他のキューを処理します。
スイッチは、共有モードの SRR のみによって処理される、設定可能な入力キューを 2 つサポートしています。 表27-1 にこれらのキューの説明を示します。
表27-1 入力キューのタイプ
|
|
標準 |
標準プライオリティとみなされるユーザ トラフィック。各フローを区別するために、3 つの異なるしきい値を設定できます。mls qos srr-queue input cos-map グローバル コンフィギュレーション コマンドを使用できます。 |
緊急 |
Differentiated Services(DF)緊急転送または音声トラフィックなどのハイプライオリティ ユーザ トラフィック。このトラフィックに必要な帯域幅は、合計トラフィックの割合として設定できます。このトラフィックに必要な帯域幅は、mls qos srr-queue input priority-queue グローバル コンフィギュレーション コマンドを使用して、合計トラフィックの割合として設定できます。緊急キューには帯域幅が保証されています。 |
キューおよびしきい値にスイッチを通過する各パケットを割り当てます。特に、入力キューには CoS 値、しきい値 ID には CoS 値をそれぞれマッピングします。それには、 mls qos srr-queue input cos-map queue queue-id { cos1...cos8 | threshold threshold-id cos1...cos8 } グローバル コンフィギュレーション コマンドを使用します。CoS 入力キューしきい値マップを表示するには、 show mls qos maps 特権 EXEC コマンドを使用します。
WTD しきい値
キューは WTD を使用して、トラフィック クラスごとに異なる廃棄割合をサポートします。各キューには、変更できない定義済みの 3 つのデフォルトの廃棄しきい値があります。WTD の仕組みの詳細については、「WTD」を参照してください。
プライオリティ キューイング
プライオリティ キューは内部リングの負荷に関わらず帯域幅の一部が保証されているため、確実な配信を必要とするトラフィック(音声など)に使用する必要があります。
SRR は mls qos srr-queue input priority-queue queue-id bandwidth weight グローバル コンフィギュレーション コマンドの bandwidth キーワードで指定された設定済みの重みに従って、プライオリティ キューを処理します。
ここに記載されたコマンドを組み合わせると、特定の CoS を持つパケットを特定のキューに格納し、トラフィックのプライオリティを設定できます。設定情報については、「入力キューの特性の設定」を参照してください。
出力キューでのキューイング
図27-5に、出力ポートのキューイングおよびスケジューリング フローチャートを示します。
(注) 緊急キューがイネーブルの場合、SRR によって空になるまで処理されてから、他の 3 つのキューが処理されます。
図27-5 出力ポートのキューイング フローチャート
各ポートは、そのうち 1 つ(キュー 1)を出力緊急キューにできる、4 つの出力キューをサポートしています。これらのキューはキュー セットに割り当てられます。スイッチに存在するすべてのトラフィックは、パケットに割り当てられた QoS ラベルに基づいて、これらの 4 つのキューのいずれかを通過し、しきい値の影響を受けます。
バッファ スペースは共通プールと専用プールからなります。スイッチはバッファ割り当て方式を使用して、出力キューごとに最小バッファ サイズを確保します。これにより、いずれかのキューまたはポートがすべてのバッファを消費して、その他のキューのバッファが不足することがなくなり、要求元のキューにバッファ スペースを割り当てるかどうかが制御されます。スイッチは、目的のキューが確保された量(限度内)を超えるバッファを消費していないかどうか、最大バッファ(限度超)をすべて消費しているかどうか、および共通プールが空である(空きバッファなし)か、または空でない(空きバッファあり)かを検出します。キューが限度を超えていない場合、スイッチは専用プールまたは共通プール(空でない場合)からバッファ スペースを割り当てます。共通プールに空きバッファがない場合、またはキューが限度を超えている場合は、フレームが廃棄されます。
WTD しきい値
スイッチを通過する各パケットをキューおよびしきい値に割り当てることができます。特に、出力キューには CoS 値、しきい値 ID には CoS 値をそれぞれマッピングします。それには、
mls qos srr-queue output cos-map queue queue-id { cos1...cos8 | threshold threshold-id cos1...cos8 } グローバル コンフィギュレーション コマンドを使用します。CoS 出力キューしきい値マップを表示するには、 show mls qos maps 特権 EXEC コマンドを使用します。
キューは WTD を使用して、トラフィック クラスごとに異なる廃棄割合をサポートします。各キューには、変更できない定義済みの 3 つのデフォルトの廃棄しきい値があります。WTD の仕組みの詳細については、「WTD」を参照してください。
パケットの変更
QoS を設定するには、パケットの分類、ポリシング、キューイングを行います。パケットはこのプロセスの間に変更されることがあります。IP パケットおよび非 IP パケットの分類では、受信パケットの CoS に基づいて、パケットに QoS ラベルが割り当てられます。ただし、この段階ではパケットは変更されません。割り当てられた CoS 値の指定のみがパケットとともに伝達されます。
標準 QoS の設定
標準 QoS を設定する前に、次の事項を十分に理解しておく必要があります。
• 使用するアプリケーションのタイプおよびネットワークのトラフィック パターン
• トラフィックの特性およびネットワークのニーズ。バースト性の高いトラフィックかどうかの判別。音声およびビデオ ストリーム用の帯域幅確保の必要性
• ネットワークの帯域幅要件および速度
• ネットワーク上の輻輳発生箇所
ここでは、次の設定情報について説明します。
• 「標準 QoS のデフォルト設定」
• 「QoS のグローバルなイネーブル化」(必須)
• 「ポートの信頼状態による分類の設定」(必須)
• 「入力キューの特性の設定」(任意)
• 「出力キューの特性の設定」(任意)
標準 QoS のデフォルト設定
QoS はディセーブルに設定されています。パケット(パケットの CoS 値および IP precedence 値)は変更されないため、trusted (信頼性のある)ポート、または untrusted (信頼性のない)ポートの概念はありません。トラフィックはパススルー モードでスイッチングされます(書き換えられずにスイッチングされ、ポリシングを伴わないベストエフォート型として分類されます)。
mls qos グローバル コンフィギュレーション コマンドを使用して QoS をイネーブルにし、その他のすべての QoS 設定がデフォルトである場合、トラフィックはポリシングを伴わないベストエフォート型として分類されます(CoS 値は 0 に設定されます)。デフォルトでは、すべてのポートの信頼状態は untrusted です。入力および出力キューのデフォルト設定については、「入力キューのデフォルト設定」および「出力キューのデフォルト設定」を参照してください。
入力キューのデフォルト設定
表27-2 に、QoS がイネーブルの場合の入力キューのデフォルト設定を示します。
表27-2 入力キューのデフォルト設定
|
|
|
バッファ割り当て |
90% |
10% |
帯域幅割り当て |
4 |
4 |
プライオリティ キューの帯域幅 |
0 |
10 |
WTD 廃棄しきい値 1 |
100% |
100% |
WTD 廃棄しきい値 2 |
100% |
100% |
表27-3 に、QoS がイネーブルの場合のデフォルトの CoS 入力キューしきい値マップを示します。
表27-3 デフォルトの CoS 入力キューしきい値マップ
|
|
0 ~ 4 |
1 ~ 1 |
5 |
2 ~ 1 |
6、7 |
1 ~ 1 |
出力キューのデフォルト設定
表27-4 に、QoS がイネーブルの場合における、各キューセットの出力キューのデフォルト設定を示します。すべてのポートはキューセット 1 にマッピングされます。ポートの帯域幅限度は 100% に設定され、レートは制限されません。
表27-4 出力キューのデフォルト設定
|
|
|
|
|
バッファ割り当て |
25% |
25% |
25% |
25% |
WTD 廃棄しきい値 1 |
100% |
200% |
100% |
100% |
WTD 廃棄しきい値 2 |
100% |
200% |
100% |
100% |
専用しきい値 |
50% |
50% |
50% |
50% |
最大しきい値 |
400% |
400% |
400% |
400% |
SRR シェーピング重み(絶対) |
25 |
0 |
0 |
0 |
SRR 共有重み |
25 |
25 |
25 |
25 |
表27-5 に、QoS がイネーブルの場合のデフォルトの CoS 出力キューしきい値マップを示します。
表27-5 デフォルトの CoS 出力キューしきい値マップ
|
|
0、1 |
2 ~ 1 |
2、3 |
3 ~ 1 |
4 |
4 ~ 1 |
5 |
1 ~ 1 |
6、7 |
4 ~ 1 |
一般的な QoS の注意事項
一般的な QoS の注意事項を次に示します。
• QoS を設定できるのは物理ポートのみです。VLAN と Switch Virtual Interface(SVI; スイッチ仮想インターフェイス)のレベルでは QoS はサポートされていません。
• スイッチで受信された制御トラフィック(スパニングツリー Bridge Protocol Data Unit[BPDU; ブリッジ プロトコル データ ユニット]やルーティング アップデート パケットなど)には、入力 QoS 処理がすべて行われます。
• キュー設定を変更すると、データが失われることがあります。したがって、トラフィックが最小のときに設定を変更するようにしてください。
QoS のグローバルなイネーブル化
デフォルトでは、QoS はスイッチ上でディセーブルに設定されています。
QoS をイネーブルにするには、特権 EXEC モードで次の手順を実行します。この手順は必須です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos |
QoS をグローバルにイネーブルにします。 デフォルト設定における QoS の動作については、「標準 QoS のデフォルト設定」、「入力キューでのキューイング」、および「出力キューでのキューイング」を参照してください。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show mls qos |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
QoS をディセーブルにするには、 no mls qos グローバル コンフィギュレーション コマンドを使用します。
QoS ドメイン内のポートの信頼状態の設定
QoS ドメインに入るパケットは、QoS ドメインのエッジで分類されます。パケットがエッジで分類されると、QoS ドメイン内の各スイッチでパケットを分類する必要がないので、QoS ドメイン内のスイッチ ポートをいずれか 1 つの信頼状態に設定できます。図27-6に、ネットワーク トポロジーの例を示します。
図27-6 QoS ドメイン内のポートの信頼状態
ポートが受信したトラフィックの分類を信頼するようにポートを設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
信頼するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 指定できるインターフェイスとして、物理ポートも含まれます。 |
ステップ 3 |
mls qos trust [ cos ] |
ポートの信頼状態を設定します。 デフォルトでは、ポートは trusted ではありません。キーワードを指定しない場合、デフォルトは cos です。 キーワードの意味は次のとおりです。 cos -- パケットの CoS 値を使用して入力パケットを分類します。タグなしパケットの場合は、ポートのデフォルトの CoS 値が使用されます。デフォルトのポート CoS 値は 0 です。 |
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show mls qos interface |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
untrusted ステートにポートを戻す場合は、 no mls qos trust インターフェイス コンフィギュレーション コマンドを使用します。
デフォルトの CoS 値を変更する方法については、「インターフェイスの CoS 値の設定」を参照してください。
インターフェイスの 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 キーワードを使用します。ポートがすでに 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 } インターフェイス コンフィギュレーション コマンドを使用します。
DSCP 透過モードのイネーブル化
スイッチは透過的な Differentiated Services Code Point(DSCP; DiffServ コード ポイント)機能をサポートします。この機能は発信パケットの DSCP フィールドのみに作用します。透過的な DSCP 機能のデフォルト設定はディセーブルです。スイッチは着信パケットの DSCP フィールドを変更します。発信パケットの DSCP フィールドは、ポートの信頼設定、ポリシングとマーキング、および DSCP/DSCP 変換マップを含め、QoS 設定によって異なります。
no mls qos rewrite ip dscp コマンドを用いて透過的な DSCP 機能をイネーブルにした場合、スイッチは着信パケットの DSCP フィールドを変更しません。そのため、発信パケットの DSCP フィールドの内容はパケットの着信時と同じです。
透過的な DSCP 設定にかかわらず、スイッチはパケット内部の DSCP 値を変更し、トラフィックのプライオリティを提示する CoS 値を生成します。また、スイッチは内部の DSCP 値を使用して、出力キューおよびしきい値も選択します。
特権 EXEC モードを開始して、透過的な DSCP 機能をスイッチでイネーブルにするには、次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos |
QoS をグローバルにイネーブルにします。 |
ステップ 3 |
no mls qos rewrite ip dscp |
透過的な DSCP 機能をイネーブルにします。スイッチが IP パケットの DSCP フィールドを変更しないよう設定されます。 |
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show mls qos interface [ interface-id ] |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
透過的な DSCP 機能をディセーブルにして、信頼設定に基づいてスイッチに 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 透過はイネーブルのままとなります。
入力キューの特性の設定
ネットワークおよび QoS ソリューションの複雑さに応じて、次に示す作業をすべて実行しなければならない場合があります。次の特性を決定する必要があります。
• 各キューに(CoS 値によって)割り当てるパケット
• ハイ プライオリティを設定する必要があるトラフィック(音声など)の有無
ここでは、次の設定情報について説明します。
• 「入力キューへの CoS 値のマッピング」(任意)
• 「入力プライオリティ キューの設定」(任意)
入力キューへの CoS 値のマッピング
トラフィックにプライオリティを設定するには、特定の CoS を持つパケットを特定のキューに格納し、より低いプライオリティを持つパケットが廃棄されるようにキューのしきい値を調整します。
CoS 値を入力キューにマッピングして、WTD しきい値を設定するには、特権 EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos srr-queue input cos-map queue queue-id threshold threshold-id cos1...cos8 |
CoS 値を入力キューおよびしきい値 ID にマッピングします。 デフォルトでは、CoS 値 0 ~ 4、6、および 7 はキュー 1 およびしきい値 1 にマッピングされます。CoS 値 5 はキュー 2 およびしきい値 1 にマッピングされます。 • queue-id に指定できる範囲は、1 ~ 2 です。 • threshold-id の範囲は、1 ~ 3 です。しきい値 3 の廃棄しきい値の割合は定義済みであり、キューフル ステートに設定されます。 • cos1...cos8 には、最大 8 つの値をスペース区切りで入力します。指定できる範囲は 0 ~ 7 です。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show mls qos maps |
設定を確認します。 CoS 入力キューしきい値マップでは、先頭行に CoS 値、2 番めの行に対応するキュー ID およびしきい値 ID が示されます。たとえば、キュー 2 およびしきい値 2(2-2)のようになります。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
デフォルトの CoS 入力キューしきい値マップに戻すには、 no mls qos srr-queue input cos-map グローバル コンフィギュレーション コマンドを使用します。デフォルトの WTD しきい値の割合に戻すには、 no mls qos srr-queue input threshold queue-id グローバル コンフィギュレーション コマンドを使用します。
入力プライオリティ キューの設定
プライオリティ キューは、迅速な処理が必要なトラフィック(遅延およびジッタを最小に抑える必要のある音声トラフィックなど)にのみ使用します。
プライオリティ キューは、オーバーサブスクライブ リングに激しいネットワーク トラフィックが発生している状況で(バックプレーンが伝達できるトラフィックよりも多くのトラフィックが発生し、キューがいっぱいになって、フレームが廃棄されている場合)、遅延およびジッタを軽減するように帯域幅の一部が保証されています。
SRR は mls qos srr-queue input priority-queue queue-id bandwidth weight グローバル コンフィギュレーション コマンドの bandwidth キーワードで指定された設定済みの重みに従って、プライオリティ キューを処理します。次に、SRR は mls qos srr-queue input bandwidth weight1 weight2 グローバル コンフィギュレーション コマンドによって設定された重みに従い、残りの帯域幅を両方の入力キューと共有し、キューを処理します。
プライオリティ キューを設定するには、特権 EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos srr-queue input priority-queue queue-id bandwidth weight |
キューをプライオリティ キューとして割り当て、内部リングが輻輳している場合にリングの帯域幅を保証します。 デフォルトのプライオリティ キューはキュー 2 です。このキューには帯域幅の 10% が割り当てられています。 • queue-id に指定できる範囲は、1 ~ 2 です。 • bandwidth weight には、内部リングの帯域幅に対する割合を割り当てます。指定できる範囲は 0 ~ 40 です。値が大きい場合はリング全体に影響が及び、パフォーマンスが低下することがあるため、保証できる帯域幅は制限されています。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show mls qos interface queueing または show mls qos input-queue |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
デフォルト設定に戻すには、 no mls qos srr-queue input priority-queue queue-id グローバル コンフィギュレーション コマンドを使用します。プライオリティ キューイングをディセーブルにするには、帯域幅の重みを 0 に設定します。たとえば、 mls qos srr-queue input priority-queue queue-id bandwidth 0 を入力します。
次に、キューに入力帯域幅を割り当てる例を示します。キュー 1 は、帯域幅の 10% が割り当てられているプライオリティ キューです。キュー 1 および 2 に割り当てられている帯域幅比率は 4/(4+4) です。SRR は、10% の帯域幅が設定されたキュー 1(プライオリティ キュー)を最初に処理します。次に、SRR は残りの 90% の帯域幅をキュー 1 と 2 にそれぞれ 45% ずつ割り当てて、各キューで等しく共有します。
Switch(config)# mls qos srr-queue input priority-queue 1 bandwidth 10
Switch(config)# mls qos srr-queue input bandwidth 4 4
出力キューの特性の設定
ネットワークおよび QoS ソリューションの複雑さに応じて、次に示す作業をすべて実行しなければならない場合があります。次の特性を決定する必要があります。
• CoS 値によって各キューおよびしきい値 ID にマッピングされるパケット
• キューセット(ポートごとの 4 つの出力キュー)に適用される廃棄しきい値の割合、およびトラフィック タイプに必要なメモリの確保量および最大メモリ
• キュー セットに割り当てる固定バッファ スペースの量
• ポートの帯域幅に関するレート制限の必要性
• 出力キューの処理頻度、および使用する技術(シェーピング、共有、または両方)
ここでは、次の設定情報について説明します。
• 「設定時の注意事項」
• 「出力キューおよびしきい値 ID への CoS 値のマッピング」(任意)
• 「出力緊急キューの設定」(任意)
• 「標準 QoS 情報の表示」(任意)
設定時の注意事項
緊急キューをイネーブルにする、または SRR の重みに基づいて出力キューを処理する場合は、次の注意事項に従ってください。
• 出力緊急キューがイネーブルの場合、キュー 1 に対応する SRR シェーピング重みおよび共有重みは上書きされます。
• 出力緊急キューがディセーブルで、SRR シェーピング重みおよび共有重みが設定されている場合、シェーピング モードはキュー 1 の共有モードを無効にし、SRR はこのキューをシェーピング モードで処理します。
• 出力緊急キューがディセーブルで、SRR シェーピング重みが設定されていない場合、SRR はこのキューを共有モードで処理します。
出力キューおよびしきい値 ID への CoS 値のマッピング
トラフィックにプライオリティを設定するには、特定の CoS を持つパケットを特定のキューに格納し、より低いプライオリティを持つパケットが廃棄されるようにキューのしきい値を調整します。
(注) ほとんどの場合は、出力キューのデフォルト設定が最適です。デフォルト設定の変更が必要となるのは、出力キューについて完全に理解している場合、およびこれらの設定がご使用の QoS ソリューションを満たしていない場合のみです。
CoS 値を出力キューおよびしきい値 ID にマッピングするには、特権 EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos srr-queue output cos-map queue queue-id threshold threshold-id cos1...cos8 |
CoS 値を出力キューおよびしきい値 ID にマッピングします。 デフォルトでは、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 の廃棄しきい値の割合は定義済みであり、キューフル ステートに設定されます。 • cos1...cos8 には、最大 8 つの値をスペースで区切って入力します。指定できる範囲は 0 ~ 7 です。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show mls qos maps |
設定を確認します。 CoS 出力キューしきい値マップでは、先頭行に CoS 値、2 番めの行に対応するキュー ID およびしきい値 ID が示されます。たとえば、キュー 2 およびしきい値 2(2-2)のようになります。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
デフォルトの CoS 出力キューしきい値マップに戻すには、 no mls qos srr-queue output cos-map グローバル コンフィギュレーション コマンドを使用します。
出力緊急キューの設定
出力緊急キューにパケットを入れることにより、特定のパケットのプライオリティを他のパケットより高くできます。SRR は、このキューが空になるまで処理してから他のキューを処理します。
出力緊急キューをイネーブルにするには、特権 EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
mls qos |
スイッチ上で QoS をイネーブルにします。 |
ステップ 3 |
interface interface-id |
出力ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 4 |
priority-queue out |
デフォルトでディセーブルに設定されている出力緊急キューをイネーブルにします。 このコマンドを設定すると、SRR に参加するキューは 1 つ少なくなるため、SRR 重みおよびキュー サイズの比率が影響を受けます。 |
ステップ 5 |
end |
特権 EXEC モードに戻ります。 |
ステップ 6 |
show running-config |
設定を確認します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
出力緊急キューをディセーブルにするには、 no priority-queue out インターフェイス コンフィギュレーション コマンドを使用します。
次に、出力緊急キューをイネーブルにする例を示します。
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# priority-queue out