Cisco NX-OS Quality of Service コンフィギュレーション ガイド Release 4.0
キューイングおよびスケジューリング の設定
キューイングおよびスケジューリングの設定
発行日;2012/02/05 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 2MB) | フィードバック

目次

キューイングおよびスケジューリングの設定

キューイングおよびスケジューリングについて

入力ポートの CoS の設定

クラス マップの変更

輻輳回避

輻輳管理

仮想化サポート

キューイングおよびスケジューリングのライセンス要件

キューイングおよびスケジューリングの前提条件

注意事項および制約事項

キューイングおよびスケジューリングの設定

入力ポートの CoS の設定

キューイング クラス マップの変更

輻輳回避の設定

テール ドロップの設定

WRED の設定

輻輳管理の設定

帯域幅および帯域幅の残量の設定

プライオリティの設定

シェーピングの設定

キュー制限の設定

キューイングおよびスケジューリングの設定の確認

設定例

入力ポートの CoS の設定例

プライオリティおよびキュー制限の設定例

シェーピングおよびテール ドロップの設定例

帯域幅および WRED の設定例

キューイングおよびスケジューリングの設定

この章では、デバイス上で QoS のキューイングおよびスケジューリング機能を設定する方法について説明します。

ここでは、次の内容を説明します。

「キューイングおよびスケジューリングについて」

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

「キューイングおよびスケジューリングの前提条件」

「注意事項および制約事項」

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

「キューイングおよびスケジューリングの設定の確認」

「設定例」

キューイングおよびスケジューリングについて

トラフィックのキューイングとは、パケットの順序を設定して、データの入力と出力の両方に適用することです。デバイス モジュールでは複数のキューをサポートできます。これらのキューを使用することで、さまざまなトラフィック クラスでのパケットのシーケンスを制御できます。また、Weighted Random Early Detection(WRED; 重み付きランダム早期検出)およびテール ドロップしきい値を設定することもできます。デバイスでは、設定したしきい値を超えた場合にのみパケットが廃棄されます。

トラフィックのスケジューリングとは、トラフィックの一貫したフローを実現するために、パケットを望ましい周期で秩序正しく出力することです。トラフィックのスケジューリングをさまざまなトラフィック クラスに適用することで、プライオリティよってトラフィックに重み付けを行うことができます。

キューイングおよびスケジューリングのプロセスによって、トラフィック クラスに割り当てられる帯域幅を制御することができるので、ネットワークにおけるスループットと遅延の望ましいトレードオフを実現できます。

表7-1 に、キューイングおよびスケジューリングの実行に使用できるシステム定義のキューを示します。

 

表7-1 システム定義のキューのタイプ

キューのタイプ
方向
説明

2q4t

入力

2 つのキュー、キューあたり 4 つの WRED またはテール ドロップしきい値

1p3q4t

出力

1 つの完全優先キューと 3 つの標準キュー、または 4 つの標準キュー、キューあたり 4 つの WRED またはテール ドロップしきい値

8q2t

入力

8 つのキュー、キューあたり 2 つのテール ドロップしきい値

1p7q4t

出力

1 つの完全優先キューと 7 つの標準キュー、または 8 つの標準キュー、キューあたり 4 つの WRED またはテール ドロップしきい値

キューでは、Class of Service(CoS; サービス クラス)フィールドについて照合が行われます。デバイスでは、0 ~ 7 のすべての CoS 値がキュー タイプごとにキューにマッピングされることが保証されます。キュー タイプのキューに対して、特定の CoS 値を 1 つだけ割り当てることができます。システム定義のキューについては、 表2-3 を参照してください。

ここでは、次の内容について説明します。

「入力ポートの CoS の設定」

「クラス マップの変更」

「輻輳回避」

「輻輳管理」

「仮想化サポート」

入力ポートの CoS の設定

信頼できないポートに対するすべての入力パケット内の CoS フィールドを設定できます。デフォルトでは、ポートは信頼されており、CoS フィールドは変更されません(この方式は、ポートの状態を信頼または非信頼に設定するのに使用します)。

入力ポートの CoS の設定については、「入力ポートの CoS の設定」を参照してください。

クラス マップの変更

システム定義のキューイング クラス マップによって照合される CoS 値を変更できます。これにより、CoS からキューへのマッピングが変更されます。デフォルトのシステム定義の CoS 値については、表2-3を参照してください。CoS 値はそれぞれ、同じタイプのキュー内に 1 回だけ出現します。


) システム定義のクラス キューイング マップを変更すると、直ちに変更が行われます。そのため、すべての VDC でトラフィックが中断されることがあります。


クラス マップの設定については、「キューイング クラス マップの変更」を参照してください。

輻輳回避

次の方式を使用して、デバイス上のトラフィックの輻輳を予防的に回避できます。

WRED をトラフィックのクラスに適用する方式。これにより、デバイスで CoS フィールドに基づいてパケットを廃棄できるようになります。WRED は TCP トラフィックで機能するように設計されています。

テール ドロップをトラフィックのクラスに適用する方式。これにより、デバイスで CoS フィールドに基づいてパケットを廃棄できるようになります。

輻輳回避の設定については、「輻輳回避の設定」を参照してください。

輻輳管理

入力パケットについては、最小データ レートをキューに割り当てる帯域幅を指定することによって、輻輳管理を設定できます。

出力パケットについては、次のいずれかの輻輳管理方式を選択できます。

最小データ レートをキューに割り当てる帯域幅を指定する方式

トラフィックのクラスに対して最大データ レートを強制する方式。これにより、余分なパケットがキューに保持され、出力レートがシェーピングされます。

トラフィックのクラスに対するすべてのデータをプライオリティ キューに割り当てる方式。残りの帯域幅は、デバイスによって他のキュー間で分配されます。

輻輳管理の設定については、「輻輳管理の設定」を参照してください。

仮想化サポート

Virtual Device Context(VDC; 仮想デバイス コンテキスト)とは、システム リソースのセットを論理的に表現したものです。クラス マップの設定以外に、キューイングおよびスケジューリングが、コマンドが入力される VDC にのみ適用されます。クラス マップの設定については、「キューイング クラス マップの変更」を参照してください。

VDC の設定については、『 Cisco NX-OS Virtual Device Context Configuration Guide 』を参照してください。

キューイングおよびスケジューリングのライセンス要件

次の表に、この機能のライセンス要件を示します。

 

製品
ライセンス要件

NX-OS

QoS にはライセンスは不要です。ライセンス パッケージに含まれていない機能は、Cisco NX-OS システム イメージにバンドルされて提供されます。追加料金は発生しません。NX-OS ライセンス方式の詳細については、『 Cisco NX-OS Licensing Guide 』を参照してください。

ただし、VDC の使用には Advanced Services ライセンスが必要です。

キューイングおよびスケジューリングの前提条件

キューイングおよびスケジューリングの前提条件は、次のとおりです。

「MQC の使用」に精通している。

スイッチにログオンしている。

正しい Virtual Device Context(VDC; 仮想デバイス コンテキスト)内にいる。VDC とは、システム リソースのセットを論理的に表現したものです。 switchto vdc コマンドでは VDC 番号を使用できます。

注意事項および制約事項

キューイングおよびスケジューリングを設定する際は、次の注意事項に従ってください。

システム定義のクラス マップを設定する際は注意が必要です。直ちに変更が行われるため、すべての VDC でトラフィックが中断される可能性があります。

10 ギガビット イーサネット ポートを共有モードで使用している場合、出力キューイング ポリシーはポート グループのすべてのポートに適用されます。共有モードの 10 ギガビット イーサネット ポートでは、ポート グループのすべてのポートが同じ VDC 内に存在する必要があります。共有モードと専用モードについては、『 Cisco NX-OS Interfaces Configuration Guide 』を参照してください。また、ポート グループについては、『 Cisco Nexus 7000 Series Hardware Installation and Reference Guide 』を参照してください。

入力の 10 ギガビット イーサネット ポートでは、キュー制限も WRED も設定できません。

キューイングおよびスケジューリングの設定

キューイングおよびスケジューリングを設定するには、インターフェイスの一方のトラフィック方向に適用する、タイプ キューイングのポリシー マップを作成します。システム定義のクラス マップを変更することができ、それらをポリシー マップ内で使用して、ポリシーの適用先となるトラフィックのクラスを定義します。ポリシー マップおよびクラス マップの設定については、「MQC の使用」を参照してください。

任意のキューで、輻輳回避機能(テール ドロップおよび WRED が含まれる)を設定できます。出力キューではいずれかの出力輻輳管理機能(プライオリティ、シェーピング、帯域幅が含まれる)を設定でき、入力キューでは帯域幅を設定できます。

ポリシー マップを作成する 前に CoS 値を変更することを推奨します。デバイス定義のクラス マップ キューによって照合される CoS 値を変更できます。0 ~ 7 の各 CoS 値を、各キュー タイプのキューの 1 つまたは複数に割り当てる必要があります。各 CoS 値はキュー タイプごとに 1 回だけ使用できます。

システム定義のポリシー マップである default-in-policy および default-out-policy は、キューイング ポリシー マップを適用しないすべてのポートに付加されます。デフォルトのポリシー マップは設定できません。デフォルトのポリシー マップについては、 表2-5 を参照してください。

Cisco NX-OS 4.0(3)以降のリリースでは、default-in-policy の WRR が 50/50 から 80/20 に変更されました。

Release 4.0(3)から Release 4.0(2)にダウングレードした場合、 show running-configuration コマンドを入力すると、次のように、入力のデフォルトのキューイング ポリシーで unknown enum と表示されます。

switch# show running-config
version 4.0(2)
...
...
policy-map type queuing default-in-policy
class type queuing unknown enum 0
queue-limit percent 50
bandwidth percent 80
class type queuing unknown enum 0
queue-limit percent 50
bandwidth percent 20
 

この設定をコピーして任意の NX-OS ソフトウェア リリースにペーストした場合、 policy-map type queuing default-in-policy コマンドから始まるすべてのコマンドの実行中にデバイスからエラーが送られます。これらのエラーは無害であり、デバイスの実行に影響を与えることはありません。

ここでは、次の内容について説明します。

「入力ポートの CoS の設定」

「キューイング クラス マップの変更」

「輻輳回避の設定」

「輻輳管理の設定」

「キュー制限の設定」

入力ポートの CoS の設定

ポートを非信頼にするには、DSCP 値に静的な値を設定します。


) デフォルトでは、ポートは信頼されており(信頼 CoS)、CoS フィールドは変更されません入力ポートの CoS 値を設定すると、ポートは非信頼になります。


入力のデフォルトのキューには、ポリシー マップの適用先となるモジュールのタイプに対応したシステム定義のキュー クラスからのものを使用します。各モジュール タイプに対応したシステム定義のクラス マップの一覧については、表2-3を参照してください。

ここでの手順を使用して設定した CoS 値は、class-default のパケットにだけでなく、指定したインターフェイスに入力されるすべてのパケットに適用されます。CoS 値を設定した場合、入力のキューイングおよびスケジューリングが行われる前に、デバイスによって値が変更されます。したがって、CoS が変更されたパケットは分類のされ方が異なります。


) システム定義のキューイング クラス マップを変更する必要がある場合は、設定済みのキューイング ポリシーを変更するか、キューイング ポリシーを新規に作成して、影響を受けるインターフェイスにそれらを付加する必要があります。システム定義のキューイング クラス マップを変更しない場合は、デフォルトのキューイング ポリシーまたは設定済みのキューイング ポリシーを無効にすることができます。この場合、複数の VDC のインターフェイスが影響を受ける可能性があります。


コマンドの一覧

1. config t

2. policy-map type queuing [ match-first ] policy-map-name

3. class type queuing class-queuing-name

4. set cos value

5. exit

6. show policy-map type queuing policy-map-name

7. copy running-config startup-config

詳細な手順

 

コマンド
目的

ステップ 1

config t

 

Example:

switch# config t

switch(config)#

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

ステップ 2

policy-map type queuing [ match-first ] policy-map-name

 

Example:

switch(config)# policy-map type queuing untrusted_port_cos

switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定したポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名には、アルファベット、ハイフン、またはアンダースコア文字を含めることができます。ポリシー マップ名は大文字と小文字が区別され、最大 40 文字まで設定できます。

ステップ 3

class type queuing class-queuing-name

 

Example:

switch(config)# class type queuing 2q4t-in-q-default

switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名については、 表2-3 を参照してください。


) ポートの CoS を設定する場合、使用できるのは入力のデフォルトのシステム定義のキュー タイプのみです。


ステップ 4

set cos value

 

Example:

switch(config-pmap-c-que)# set cos 5

すべての入力パケット内の CoS フィールドを、指定した値に設定します。範囲は 0 ~ 7 です。

ステップ 5

exit

 

Example:

switch(config-cmap-que)# exit

switch(config)#

ポリシー マップ キュー モードを終了し、コンフィギュレーション モードを開始します。

ステップ 6

show policy-map type queuing policy-map-name

 

Example:

switch(config)# show policy-map type untrusted_port_cos

(任意)設定済みのすべてのタイプ キューイングのポリシー マップ、または選択したタイプ キューイングのポリシー マップについて、情報を表示します。

ステップ 7

copy running-config startup-config

 

Example:

switch(config)# copy running-config startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

キューイング クラス マップの変更

システム定義のクラス マップによって照合される CoS 値を変更できます。デフォルトのシステム定義の CoS 値については、表2-3を参照してください。

システム定義のクラス マップは、デフォルトの VDC からのみ変更できます。変更は直ちに実行され、変更されたクラス マップを使用しているすべての VDC 上のすべてのポートに適用されます。


) システム定義のクラス マップを変更すると、直ちに変更が行われます。そのため、変更されたクラス マップを使用しているすべての VDC でトラフィックが中断される可能性があります。


デバイスでは、ユーザが他のキュー内で設定した CoS 値が自動的に変更されます。そのため、CoS 値はそれぞれ、同じタイプのキュー内に 1 回だけ出現します。


) システム定義のキューイング クラス マップを変更する必要がある場合は、設定済みのキューイング ポリシーを変更するか、キューイング ポリシーを新規に作成して、影響を受けるインターフェイスにそれらを付加する必要があります。システム定義のキューイング クラス マップを変更しない場合は、デフォルトのキューイング ポリシーまたは設定済みのキューイング ポリシーを無効にすることができます。この場合、複数の VDC のインターフェイスが影響を受ける可能性があります。


操作の前に

デバイスのデフォルトの VDC にいることを確認します。

コマンドの一覧

1. config t

2. class-map type queuing match-any class-queuing-name

3. match cos value-range

4. 他のキューの CoS 値を変更するには、手順 2 および 3 を繰り返します。

5. exit

6. show class-map type queuing [ class-queuing-name ]

7. copy running-config startup-config

詳細な手順

 

コマンド
目的

ステップ 1

config t

 

Example:

switch# config t

switch(config)#

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

ステップ 2

class-map type queuing match-any class-queuing-name

 

Example:

switch(config)# class-map type queuing match-any 1p3q4t-out-pq1

switch(config-cmap-que)#

タイプ キューイングのクラス マップを設定し、クラス マップ キューイング モードを開始します。クラス キューイング名については、 表2-3 を参照してください。

ステップ 3

match cos value-range

 

Example:

switch(config-cmap-que)# match 0-3,7

このキューによって照合される CoS 値の範囲を設定します。値の範囲を指定するには、開始値と終了値をハイフンでつなぎ、値どうしをカンマで区切ります。範囲は 0 ~ 7 です。

ステップ 4

他のキューの CoS 値を変更するには、手順 2 および 3 を繰り返します。

--

ステップ 5

exit

 

Example:

switch(config-cmap-que)# exit

switch(config)#

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

ステップ 6

show class-map type queuing [class-queuing-name]

 

Example:

switch(config)# show class-map type queuing

(任意)設定済みのすべてのタイプ キューイングのクラス マップ、または選択したタイプ キューイングのクラス マップについて、情報を表示します。クラス キューイング名については、 表2-3 を参照してください。

ステップ 7

copy running-config startup-config

 

Example:

switch(config)# copy running-config startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

輻輳回避の設定

テール ドロップまたは WRED の機能を使用して輻輳回避を設定できます。どちらの機能も、入力および出力のポリシー マップで使用できます。


) WRED およびテール ドロップを同じクラス内で設定することはできません。


ここでは、次の内容について説明します。

「テール ドロップの設定」

「WRED の設定」

テール ドロップの設定

CoS 値によるしきい値を設定することにより、入力キューおよび出力キューの両方でテール ドロップを設定できます。しきい値を超えるパケットはデバイスによって廃棄されます。しきい値はキューで使用されるキュー サイズまたはバッファ メモリに基づいて指定できます。


) 入力の 10 ギガビット イーサネット ポートでは、キュー サイズを設定できません。


ポリシー マップの適用先となるモジュールのタイプに対応した、システム定義のキュー クラスを使用します。表2-3を参照してください。


) WRED およびテール ドロップを同じクラス内で設定することはできません。


コマンドの一覧

1. config t

2. policy-map type queuing [ match-first ] policy-map-name

3. class type queuing class-queuing-name

4. queue-limit cos value { threshold [ packets | bytes | kbytes | mbytes | ms | us ] | percent percent_of_queuelimit }

5. 他の CoS 値に対するテール ドロップしきい値を割り当てるには、手順 4 を繰り返します。

6. 他のキュー クラスに対するテール ドロップしきい値を割り当てるには、手順 3 ~ 5 を繰り返します。

7. exit

8. show policy-map type queuing policy-map-name

9. copy running-config startup-config

詳細な手順

 

コマンド
目的

ステップ 1

config t

 

Example:

switch# config t

switch(config)#

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

ステップ 2

policy-map type queuing [ match-first ] policy-map-name

 

Example:

switch(config)# policy-map type queuing shape_queues

switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定するポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名には、アルファベット、ハイフン、またはアンダースコア文字を含めることができます。ポリシー マップ名は大文字と小文字が区別され、最大 40 文字まで設定できます。

ステップ 3

class type queuing class-queuing-name

 

Example:

switch(config)# class type queuing 1p3q4t-out-pq1

switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名については、 表2-3 を参照してください。

ステップ 4

queue-limit cos value { threshold [ packets | bytes | kbytes | mbytes | ms | us ] | percent percent_of_queuelimit }

 

Example:

switch(config-pmap-c-que)# queue-limit cos 5 10 mbytes

キューで使用されるキュー サイズまたはバッファ メモリの割合に基づいて、テール ドロップしきい値を割り当てます。指定したしきい値を超えるパケットはデバイスによって廃棄されます。しきい値は、パケット数、バイト数、または基になるインターフェイスで最低限保証されたリンク レートでの時間間隔で設定できます。デフォルトのしきい値はパケット数です。サイズは 1 ~ 83886080 です。時間間隔は 1 ~ 83886080 です。割合は 1 ~ 100 です。

この例では、CoS が 5 のパケットのテール ドロップしきい値を最大サイズの 10 MB に設定しています。

ステップ 5

(任意)他の CoS 値に対するテール ドロップしきい値を割り当てるには、手順 4 を繰り返します。

--

ステップ 6

(任意)他のキュー クラスに対するテール ドロップしきい値を割り当てるには、手順 3 ~ 5 を繰り返します。

--

ステップ 7

exit

 

Example:

switch(config-cmap-que)# exit

switch(config)#

ポリシー マップ キュー モードを終了し、コンフィギュレーション モードを開始します。

ステップ 8

show policy-map type queuing policy-map-name

 

Example:

switch(config)# show policy-map type queuing shape_queues

(任意)設定済みのすべてのタイプ キューイングのポリシー マップ、または選択したタイプ キューイングのポリシー マップについて、情報を表示します。

ステップ 9

copy running-config startup-config

 

Example:

switch(config)# copy running-config startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

WRED の設定

WRED を設定する場合は、その前に、CoS 値が存在することを確認してください(キューイング クラス マップの変更を参照)。

入力キューおよび出力キューの両方で WRED を設定し、最小および最大のパケット廃棄しきい値を設定できます。キュー サイズが最小しきい値を超えるにつれて、廃棄されるパケットの頻度が高くなります。最大しきい値を超えると、CoS 値に対するすべてのパケットが廃棄されます。


) 入力の 10 ギガビット イーサネット ポートでは、WRED を設定できません。


WRED のしきい値は CoS 値別に設定でき、特に設定しなかったすべての CoS 値で単一の WRED しきい値を使用するように設定できます。


) WRED およびテール ドロップを同じクラス内で設定することはできません。


ポリシー マップの適用先となるモジュールのタイプに対応した、システム定義のキュー クラスを使用します。表2-3を参照してください。

コマンドの一覧

1. config t

2. policy-map type queuing [ match-first ] policy-map-name

3. class type queuing class-queuing-name

4. random-detect cos-based [ aggregate [ minimum-threshold ] { min-threshold [ packets | bytes | kbytes | mbytes | ms | us ] | percent min-percent-of-qsize } [ maximum-threshold ] { max-threshold [ packets | bytes | kbytes | mbytes | ms | us ] | percent max-percent-of-qsize }]

5. random-detect { cos cos-list [ minimum-threshold ] { min-threshold [ packets | bytes | kbytes | mbytes | ms | us ] | percent min-percent-of-qsize } [ maximum-threshold ] { max-threshold [ packets | bytes | kbytes | mbytes | ms | us ] | percent max-percent-of-qsize }}

6. 他の CoS 値に対する WRED を設定するには、手順 5 を繰り返します。

7. 他のキューイング クラスに対する WRED を設定するには、手順 3 ~ 6 を繰り返します。

8. exit

9. show policy-map type queuing policy-map-name

10. copy running-config startup-config

詳細な手順

 

コマンド
目的

ステップ 1

config t

 

Example:

switch# config t

switch(config)#

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

ステップ 2

policy-map type queuing [ match-first ] policy-map-name

 

Example:

switch(config)# policy-map type queuing shape_queues

switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定したポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名には、アルファベット、ハイフン、またはアンダースコア文字を含めることができます。ポリシー マップ名は大文字と小文字が区別され、最大 40 文字まで設定できます。

ステップ 3

class type queuing class-queuing-name

 

Example:

switch(config)# class type queuing 1p3q4t-out-pq1

switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名については、 表2-3 を参照してください。

ステップ 4

random-detect cos-based [ aggregate [ minimum-threshold ] { min-threshold [ packets | bytes | kbytes | mbytes | ms | us ] | percent min-percent-of-qsize } [ maximum-threshold ] { max-threshold [ packets | bytes | kbytes | mbytes | ms | us ] | percent max-percent-of-qsize }]

 

Example 1:

switch(config-pmap-c-que)# random-detect cos-based aggregate 10 mbytes 20 mbytes

 

Example 2:

switch(config-pmap-c-que)# random-detect cos-based aggregate percent 10 percent 20

CoS 固有の random-detect コマンドによって設定されないすべての CoS 値に対する WRED を設定します。パケットをキューから廃棄するのに使用する最小および最大のしきい値を指定できます。しきい値は、パケット数、バイト数、または基になるインターフェイスで最低限保証されたリンク レートでの時間間隔で設定するか、あるいはキュー サイズの割合として設定できます。最小および最大のしきい値は同じタイプにする必要があります。集約引数を指定しない場合は、集約 WRED は設定されません。デフォルトのしきい値はパケット数です。しきい値は 1 ~ 83886080 です。割合は 1 ~ 100 です。


) 値をまったく指定せずにコマンドを入力する場合でも、このコマンドは必ず入力する必要があります。


例 1 では、未設定のトラフィック クラスの集約 WRED しきい値として、最小を 10 MB に、最大を 20 MB に設定しています。

例 2 では、未設定のトラフィック クラスの集約 WRED しきい値として、最小をキュー サイズの 10% に、最大を 20% に設定しています。


) クラス内では random-detect cos-based コマンドを 1 つだけ指定できます。


ステップ 5

random-detect { cos cos-list [ aggregate [ minimum-threshold ] { min-threshold [ packets | bytes | kbytes | mbytes | ms | us ] | percent min-percent-of-qsize } [ maximum-threshold ] { max-threshold [ packets | bytes | kbytes | mbytes | ms | us ] | percent max-percent-of-qsize }}

 

Example 1:

switch(config-pmap-c-que)# random-detect cos 5,7 15 mbytes 20 mbytes

 

Example 2:

switch(config-pmap-c-que)# random-detect cos 5 percent 5 percent 15

(任意)特定の CoS 値に対する WRED を設定します。パケットをキューから廃棄するのに使用する最小および最大のしきい値を指定できます。しきい値は、パケット数、バイト数、または基になるインターフェイスで最低限保証されたリンク レートでの時間間隔で設定するか、あるいはキュー サイズの割合として設定できます。最小および最大のしきい値は同じタイプにする必要があります。デフォルトのしきい値はパケット数です。しきい値は 1 ~ 83886080 です。割合は 1 ~ 100 です。

例 1 では、CoS 値 5 ~ 7 に対する集約 WRED しきい値として、最小を 15 MB に、最大を 20 MB に設定しています。

例 2 では、CoS 値 5 に対する集約 WRED しきい値として、最小をキュー サイズの 5% に、最大を 15% に設定しています。

ステップ 6

(任意)他の CoS 値に対する WRED を設定するには、手順 5 を繰り返します。

--

ステップ 7

(任意)他のキューイング クラスに対する WRED を設定するには、手順 3 ~ 6 を繰り返します。

--

ステップ 8

exit

 

Example:

switch(config-cmap-que)# exit

switch(config)#

ポリシー マップ キュー モードを終了し、コンフィギュレーション モードを開始します。

ステップ 9

show policy-map type queuing policy-map-name

 

Example:

switch(config)# show policy-map type queuing shape_queues

(任意)設定済みのすべてのタイプ キューイングのポリシー マップ、または選択したタイプ キューイングのポリシー マップについて、情報を表示します。

ステップ 10

copy running-config startup-config

 

Example:

switch(config)# copy running-config startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

輻輳管理の設定

次の輻輳管理方式のうちいずれか 1 つだけをポリシー マップで設定できます。

bandwidth および bandwidth remaining コマンドを使用して、最小のデータ レートをキューに割り当てる方式

priority コマンドを使用して、トラフィックのクラスに対するすべてのデータをプライオリティ キューに割り当てる方式。 bandwidth remaining コマンドを使用して、残りのトラフィックを非プライオリティ キュー間で分配できます。デフォルトでは、残りの帯域幅はシステムによって非プライオリティ キュー間で均等に分配されます。

shape コマンドを使用して、最大のデータ レートをキューに割り当てる方式

選択する輻輳管理機能に加えて、次のいずれかのキュー機能をポリシー マップの各クラスで設定できます。

キュー サイズとキュー制限の使用に基づくテール ドロップしきい値。詳細については、「テール ドロップの設定」を参照してください。

CoS に基づく優先パケットの廃棄に対する WRED。詳細については、「WRED の設定」を参照してください。

ここでは、次の内容について説明します。

「帯域幅および帯域幅の残量の設定」

「プライオリティの設定」

「シェーピングの設定」

帯域幅および帯域幅の残量の設定

入力キューおよび出力キューの両方で帯域幅および帯域幅の残量を設定して、インターフェイス帯域幅の最小の割合をキューに割り当てることができます。ポリシー マップの適用先となるモジュールのタイプに対応した、システム定義の入力または出力キュー クラスを使用します。各モジュール タイプに対応したシステム定義の入力または出力キュー クラスの一覧については、表2-3を参照してください。


) 帯域幅を設定した場合、同じポリシー マップ内でプライオリティやシェーピングを設定することはできません。


コマンドの一覧

1. config t

2. policy-map type queuing [ match-first ] policy-map-name

3. class type queuing class-queuing-name

4. bandwidth { rate [ bps | kbps | mbps | gbps ] | percent percent }
または
bandwidth remaining percent percent

5. 他のキューイング クラスに対する帯域幅および帯域幅の残量を割り当てるには、手順 3 ~ 4 を繰り返します。

6. exit

7. show policy-map type queuing policy-map-name

8. copy running-config startup-config

詳細な手順

 

コマンド
目的

ステップ 1

config t

 

Example:

switch# config t

switch(config)#

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

ステップ 2

policy-map type queuing [ match-first ] policy-map-name

 

Example:

switch(config)# policy-map type queuing shape_queues

switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定したポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名には、アルファベット、ハイフン、またはアンダースコア文字を含めることができます。ポリシー マップ名は大文字と小文字が区別され、最大 40 文字まで設定できます。

ステップ 3

class type queuing class-queuing-name

 

Example:

switch(config)# class type queuing 1p3q4t-out-pq1

switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。システム定義の出力キューのいずれかを選択する必要があります。クラス キューイング名については、 表2-3 を参照してください。

ステップ 4

bandwidth { rate [ bps | kbps | mbps | gbps ] | percent percent }

 

Example 1:

switch(config-pmap-c-que)# bandwidth 10 mbps

 

Example 2:

switch(config-pmap-c-que)# bandwidth percent 25

インターフェイス帯域幅の最小レートを出力キューに割り当てます。データ レートをビット レートで、または基になるインターフェイスのリンク レートの割合として設定できます。デフォルトの単位は kbps です。データ レートは 1 ~ 10,000,000,000 です。割合は 1 ~ 100 です。


) 自動ネゴシエーションに設定されたインターフェイスに対しては、percent キーワードのみ使用できます。


例 1 では、帯域幅を最小レートの 100 Mbps に設定しています。

例 2 では、帯域幅を、基になるリンク レートの最小 25% に設定しています。

bandwidth remaining percent percent

 

Example:

switch(config-pmap-c-que)# bandwidth remaining percent 25

(任意)残りの帯域幅の割合をこのキューに割り当てます。範囲は 0 ~ 100 です。

この例では、このキューの帯域幅を残りの帯域幅の 25% に設定しています。

ステップ 5

(任意)他のキューイング クラスに対する帯域幅および帯域幅の残量を割り当てるには、手順 3 ~ 4 を繰り返します。

--

ステップ 6

exit

 

Example:

switch(config-cmap-que)# exit

switch(config)#

ポリシー マップ キュー モードを終了し、コンフィギュレーション モードを開始します。

ステップ 7

show policy-map type queuing policy-map-name

 

Example:

switch(config)# show policy-map type queuing shape_queues

(任意)設定済みのすべてのタイプ キューイングのポリシー マップ、または選択したタイプ キューイングのポリシー マップについて、情報を表示します。

ステップ 8

copy running-config startup-config

 

Example:

switch(config)# copy running-config startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

プライオリティの設定

プライオリティを指定しない場合、システム定義の出力 pq キューは標準キューと同様に動作します(システム定義のタイプ キューイング クラス マップの詳細については、「MQC の使用」を参照してください)。

出力プライオリティ キューで設定できるプライオリティのレベルは 1 レベルのみです。ポリシー マップの適用先となるモジュールのタイプに対応した、システム定義のプライオリティ キュー クラスを使用します。各モジュール タイプに対して使用可能なシステム定義のクラス マップの一覧については、表2-3を参照してください。

非プライオリティ キューについては、各キューに割り当てる残りの帯域幅の量を設定できます。デフォルトでは、残りの帯域幅はデバイスによって非プライオリティ キュー間で均等に分配されます。


) プライオリティを設定した場合、同じポリシー マップ内で帯域幅やシェーピングを設定することはできません。


コマンドの一覧

1. config t

2. policy-map type queuing [ match-first ] policy-map-name

3. class type queuing class-queuing-name

4. priority [ level value ]

5. class type queuing class-queuing-name

6. bandwidth remaining percent percent

7. 他の非プライオリティ キューに対する帯域幅の残量を割り当てるには、手順 5 ~ 6 を繰り返します。

8. exit

9. show policy-map type queuing policy-map-name

10. copy running-config startup-config

詳細な手順

 

コマンド
目的

ステップ 1

config t

 

Example:

switch# config t

switch(config)#

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

ステップ 2

policy-map type queuing [ match-first ] policy-map-name

 

Example:

switch(config)# policy-map type queuing priority_queue1

switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定したポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名には、アルファベット、ハイフン、またはアンダースコア文字を含めることができます。ポリシー マップ名は大文字と小文字が区別され、最大 40 文字まで設定できます。

ステップ 3

class type queuing class-queuing-name

 

Example:

switch(config-pmap-que)# class type queuing 1p3q4t-out-pq1

switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。システム定義のプライオリティ キューのいずれかを選択する必要があります。クラス キューイング名については、 表2-3 を参照してください。

ステップ 4

priority [level value ]

 

Example:

switch(config-pmap-c-que)# priority

このキューをプライオリティ キューとして選択します。サポートされているプライオリティ レベルは 1 レベルのみです。

ステップ 5

class type queuing class-queuing-name

 

Example:

switch(config-pmap-c-que)# class type queuing 1p3q4t-out-q2

(任意)タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名については、 表2-3 を参照してください。

残りの帯域幅を設定する非プライオリティ キューを選択します。デフォルトでは、残りの帯域幅はシステムによって非プライオリティ キュー間で均等に分配されます。

ステップ 6

bandwidth remaining percent percent

 

Example:

switch(config-pmap-c-que)# bandwidth remaining percent 25

(任意)残りの帯域幅の割合をこのキューに割り当てます。範囲は 1 ~ 100 です。

ステップ 7

(任意)他の非プライオリティ キューに対する残りの帯域幅を割り当てるには、手順 5 ~ 6 を繰り返します。

--

ステップ 8

exit

 

Example:

switch(config-cmap-que)# exit

switch(config)#

ポリシー マップ キュー モードを終了し、コンフィギュレーション モードを開始します。

ステップ 9

show policy-map type queuing policy-map-name

 

Example:

switch(config)# show policy-map type queuing priority_queue1

(任意)設定済みのすべてのタイプ キューイングのポリシー マップ、または選択したタイプ キューイングのポリシー マップについて、情報を表示します。

ステップ 10

copy running-config startup-config

 

Example:

switch(config)# copy running-config startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

シェーピングの設定


) デバイスでは、シェイプ レートが、100、50、25、12.5、6.25、3.13、1.07 の割合間隔のうち最も近い値に強制されます。


出力キューでシェーピングを設定し、出力キューで最大レートを強制することができます。ポリシー マップの適用先となるモジュールのタイプに対応した、システム定義の出力キュー クラスを使用します。各モジュール タイプに対して使用可能なシステム定義のクラス マップの一覧については、表2-3を参照してください。


) シェーピングを設定した場合、同じポリシー マップ内で帯域幅やプライオリティを設定することはできません。


コマンドの一覧

1. config t

2. policy-map type queuing [ match-first ] policy-map-name

3. class type queuing class-queuing-name

4. shape [ average ] { rate [ bps | kbps | mbps | gbps ] | percent percent }

5. 他のキューイング クラスに対するシェーピングを設定するには、手順 3 ~ 4 を繰り返します。

6. exit

7. show policy-map type queuing policy-map-name

8. copy running-config startup-config

詳細な手順

 

コマンド
目的

ステップ 1

config t

 

Example:

switch# config t

switch(config)#

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

ステップ 2

policy-map type queuing [ match-first ] policy-map-name

 

Example:

switch(config)# policy-map type queuing shape_queues

switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定したポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名には、アルファベット、ハイフン、またはアンダースコア文字を含めることができます。ポリシー マップ名は大文字と小文字が区別され、最大 40 文字まで設定できます。

ステップ 3

class type queuing class-queuing-name

 

Example:

switch(config)# class type queuing 1p3q4t-out-pq1

switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。システム定義の出力キューのいずれかを選択する必要があります。クラス キューイング名については、 表2-3 を参照してください。

ステップ 4

shape [ average ] { rate [ bps | kbps | mbps | gbps ] | percent percent }

 

Example 1:

switch(config-pmap-c-que)# shape 10 mbps

 

Example 2:

switch(config-pmap-c-que)# shape percent 25

出力キューでの最大レートを割り当てます。データ レートをビット レートで、または基になるインターフェイスのリンク レートの割合として設定できます。デフォルトのビット レートは bps です。データ レートは 8000 bps ~ 10 Gbps です。割合は 1 ~ 100 です。


) 自動ネゴシエーションに設定されたインターフェイスに対しては、percent キーワードのみ使用できます。


例 1 では、トラフィックを最大レートの 100 Mbps にシェーピングしています。

例 2 では、トラフィックを、基になるリンク レートの最大 25% にシェーピングしています。

ステップ 5

(任意)他のキューイング クラスに対するシェーピングを設定するには、手順 3 ~ 4 を繰り返します。

--

ステップ 6

exit

 

Example:

switch(config-cmap-que)# exit

switch(config)#

ポリシー マップ キュー モードを終了し、コンフィギュレーション モードを開始します。

ステップ 7

show policy-map type queuing policy-map-name

 

Example:

switch(config)# show policy-map type queuing shape_queues

(任意)設定済みのすべてのタイプ キューイングのポリシー マップ、または選択したタイプ キューイングのポリシー マップについて、情報を表示します。

ステップ 8

copy running-config startup-config

 

Example:

switch(config)# copy running-config startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

キュー制限の設定

入力キューおよび出力キューの両方でキュー制限を設定できます。キュー制限を超えるパケットはすべて、デバイスによって廃棄されます。ポリシー マップの適用先となるモジュールのタイプに対応した、システム定義のキュー クラスを使用します。表2-3を参照してください。

コマンドの一覧

1. config t

2. policy-map type queuing [ match-first ] policy-map-name

3. class type queuing class-queuing-name

4. queue-limit { threshold [ packets | bytes | kbytes | mbytes | ms | us ] | percent percent_of_queuelimit }

5. exit

6. exit

7. show policy-map type queuing policy-map-name

8. copy running-config startup-config

詳細な手順

 

コマンド
目的

ステップ 1

config t

 

Example:

switch# config t

switch(config)#

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

ステップ 2

policy-map type queuing [ match-first ] policy-map-name

 

Example:

switch(config)# policy-map type queuing shape_queues

switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定したポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名には、アルファベット、ハイフン、またはアンダースコア文字を含めることができます。ポリシー マップ名は大文字と小文字が区別され、最大 40 文字まで設定できます。

ステップ 3

class type queuing class-queuing-name

 

Example:

switch(config)# class type queuing 1p3q4t-out-pq1

switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名については、 表2-3 を参照してください。

ステップ 4

queue-limit { threshold [ packets | bytes | kbytes | mbytes | ms | us ] | percent percent_of_queuelimit }

 

Example:

switch(config-pmap-c-que)# queue-limit 10 mbytes

キューで使用されるキュー サイズまたはバッファ メモリの割合に基づいて、キュー制限を割り当てます。指定したしきい値を超えるパケットはデバイスによって廃棄されます。しきい値は、パケット数、バイト数、または基になるインターフェイスで最低限保証されたリンク レートでの時間間隔で設定できます。デフォルトのしきい値はパケット数です。サイズは 1 ~ 83886080 です。時間間隔は 1 ~ 83886080 です。割合は 1 ~ 100 です。

この例では、キュー制限を最大サイズの 10 MB に設定しています。

ステップ 5

exit

 

Example:

switch(config-pmap-c-que)# exit

switch(config-pmap-que)#

 

クラス マップ キュー モードを終了し、ポリシー マップ キュー モードを開始します。

ステップ 6

exit

 

Example:

switch(config-pmap-que)# exit

switch(config)#

ポリシー マップ キュー モードを終了し、コンフィギュレーション モードを開始します。

ステップ 7

show policy-map type queuing policy-map-name

 

Example:

switch(config)# show policy-map type queuing shape_queues

(任意)設定済みのすべてのタイプ キューイングのポリシー マップ、または選択したタイプ キューイングのポリシー マップについて、情報を表示します。

ステップ 8

copy running-config startup-config

 

Example:

switch(config)# copy running-config startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

キューイングおよびスケジューリングの設定の確認

キューイングおよびスケジューリングの設定情報を表示するには、次の作業のいずれかを行います。

 

コマンド
目的

show class-map type queuing [ class-queuing-name ]

設定済みのすべてのタイプ キューイングのクラス マップ、または選択したタイプ キューイングのクラス マップについて、情報を表示します。クラス キューイング名については、 表2-3 を参照してください。

show policy-map type queuing policy-map-name

設定済みのすべてのタイプ キューイングのポリシー マップ、または選択したタイプ キューイングのポリシー マップについて、情報を表示します。

各コマンド出力のフィールドの詳細については、『 Cisco NX-OS Quality of Service Command Reference 』を参照してください。

設定例

ここでは、キューイングおよびスケジューリングの設定例を示します。

ここでは、次の内容について説明します。

「入力ポートの CoS の設定例」

「プライオリティおよびキュー制限の設定例」

「シェーピングおよびテール ドロップの設定例」

「帯域幅および WRED の設定例」

入力ポートの CoS の設定例


) 入力ポートの CoS 値を設定すると、指定したインターフェイスが非信頼になります。



) 設定しようとしているポート タイプのデフォルトのキューを使用していることを確認してください。ポート タイプのデフォルトのキューの詳細については、「MQC の使用」を参照してください。


次に、1 ギガビット イーサネット ポートで入力ポートの CoS を設定する例を示します。

config t

policy-map type queuing untrusted_port_cos

class type queuing 2q4t-in-q-default
set cos 5
interface ethernet 2/1
service-policy type queuing input untrusted_port_cos
 

次に、10 ギガビット イーサネット ポートで入力ポートの CoS を設定する例を示します。

config t

policy-map type queuing untrusted_port_cos

class type queuing 8q2t-in-q-default
set cos 5
interface ethernet 2/1
service-policy type queuing input untrusted_port_cos

プライオリティおよびキュー制限の設定例

次に、プライオリティおよびキュー制限の機能の設定例を示します。

config t
class-map type queuing match-any 1p3q4t-out-pq1
match cos 5-7
class-map type queuing match-any 1p3q4t-out-q2
match cos 3-4
class-map type queuing match-any 1p3q4t-out-q3
match cos 0-2
policy-map type queuing priority_queue1
class type queue 1p3q4t-out-pq1
priority
class type queue 1p3q4t-out-q2
bandwidth remaining percent 60
queue-limit 1 mbytes
class type queue 1p3q4t-out-q3
bandwidth remaining percent 40
queue-limit 2 mbytes

シェーピングおよびテール ドロップの設定例

次に、シェーピングおよびテール ドロップの機能の設定例を示します。

config t
class-map type queuing match-any 1p3q4t-out-pq1
match cos 5-7
class-map type queuing match-any 1p3q4t-out-q2
match cos 3-4
policy-map type queuing shape_dt
class type queue 1p3q4t-out-pq1
shape percent 50
queue-limit cos 5 percent 10
queue-limit cos 6 percent 10
class type queue 1p3q4t-out-q2
shape percent 25
queue-limit cos 4 percent 15

pq1 キューに対して priority キーワードを指定しない場合、そのキューはプライオリティ キューではなく単なる標準キューになります。


帯域幅および WRED の設定例

次に、帯域幅および WRED の機能の設定例を示します。

config t
class-map type queuing match-any 1p3q4t-out-pq1
match cos 5-7
class-map type queuing match-any 1p3q4t-out-q2
match cos 3-4
policy-map type queuing bandwidth_wred
class type queuing 1p3q4t-out-pq1
bandwidth percent 50
random-detect cos-based
random-detect cos 5 minimum-threshold percent 10 maximum-threshold percent 30
random-detect cos 6 minimum-threshold percent 40 maximum-threshold percent 60
class type queuing 1p3q4t-out-q2
bandwidth percent 25
random-detect cos-based
random-detect cos 4 minimum-threshold percent 20 maximum-threshold percent 40