Catalyst 4500 シリーズ スイッチでの QoS の概要
ネットワークは通常、 ベスト エフォート型 の配信方式で動作します。したがって、すべてのトラフィックに等しいプライオリティが与えられるため、正しいタイミングで配信される可能性はどのトラフィックでも同等です。輻輳が発生した場合にドロップされる可能性についても、すべてのトラフィックで同等です。
QoS は、ネットワーク トラフィック(ユニキャストおよびマルチキャスト)を選択して、トラフィックの相対的な重要度に従ってプライオリティを与え、プライオリティ ベースの処理を実行して、輻輳を回避します。QoS はさらに、ネットワーク トラフィックが使用する帯域幅を制限します。QoS を実装すると、ネットワーク パフォーマンスが予測可能になり、帯域幅をより効率的に利用できます。
ここでは、次の内容について説明します。
• 「プライオリティ」
• 「QoS の用語」
• 「QoS の基本モデル」
• 「分類」
• 「ポリシングおよびマーキング」
• 「マッピング テーブル」
• 「キューイングおよびスケジューリング」
• 「パケットの変更」
• 「PVQoS」
• 「QoS およびソフトウェア処理されるパケット」
プライオリティ
QoS の実装は、DiffServ アーキテクチャに基づきます。このアーキテクチャでは、ネットワークの入口で各パケットを分類すると規定されています。この分類は、IP パケット ヘッダーで伝送され、現在ほとんど使用されていない IP Type of Service(ToS; サービス タイプ)フィールドの 6 ビットを使用して分類( クラス )情報が伝送されます。分類は、レイヤ 2 フレームで伝送される場合もあります。レイヤ 2 フレームまたはレイヤ 3 パケットのこのような特殊ビットについては、図34-1 を参照してください。
• レイヤ 2 フレーム内のプライオリティ値:
レイヤ 2 の ISL(スイッチ間リンク)フレーム ヘッダーには、1 バイトのユーザ フィールドがあり、Least Significant Bit(LSB; 最下位ビット)3 ビットで IEEE(米国電気電子学会)802.1p Class of Service(CoS; サービス クラス)値が伝送されます。レイヤ 2 ISL トランクとして設定されたインターフェイス上では、すべてのトラフィックが ISL フレームを使用します。
レイヤ 2 802.1Q フレーム ヘッダーには、2 バイトのタグ制御情報フィールドがあり、Most Significant Bit(MSB; 最上位ビット)3 ビット(ユーザ プライオリティ ビットと呼ばれる)で CoS 値が伝送されます。レイヤ 2 802.1Q トランクとして設定されたインターフェイスでは、ネイティブ VLAN のトラフィックを除き、すべてのトラフィックが 802.1Q フレームに収められます。
その他のフレーム タイプでは、レイヤ 2 CoS 値は伝送されません。
レイヤ 2 CoS 値の範囲は、0(ロー プライオリティ)~7(ハイ プライオリティ)です。
• レイヤ 3 パケット内の優先順位ビット:
レイヤ 3 IP パケットは、IP precedence 値または Differentiated Services Code Point(DSCP; DiffServ コード ポイント)値のいずれかを伝送します。DSCP 値は IP precedence 値と下位互換性があるので、QoS ではどちらの値でも使用できます。
IP precedence 値の範囲は、0 ~ 7 です。
DSCP 値の範囲は 0 ~ 63 です。
図34-1 フレームおよびパケット内の QoS 分類レイヤ
インターネット上のすべてのスイッチおよびルータはクラス情報に基づき、同じクラス情報を持ったパケットに対しては転送上、同じ取り扱いを行い、クラス情報が異なるパケットに対しては異なった取り扱いを行います。設定されたポリシー、パケットの詳しい検証、またはその両方に基づき、エンド ホストあるいは途中にあるスイッチまたはルータによって、パケット内のクラス情報が割り当てられる場合があります。パケットの詳しい検証は、コア スイッチおよびルータが過負荷にならないように、ネットワーク エッジに近い位置で行われることが前提になります。
パス上にあるスイッチおよびルータは、クラス情報を使用して、トラフィック クラスごとに割り当てられるリソースの量を制限できます。DiffServ アーキテクチャで個々の装置がトラフィックを処理するときの動作を、Per-Hop Behavior(PHB)といいます。パス上のすべての装置が一貫性のある PHB を提供する場合、エンドツーエンドの QoS ソリューションを構築できます。
ネットワークに QoS を実装する作業は、インターネットワーキング装置が提供する QoS 機能、ネットワーク上のトラフィック タイプおよびトラフィック パターン、着信トラフィックおよび発信トラフィックに対して適用すべき制御の粒度に応じて、簡単なものにも複雑なものになります。
QoS の用語
QoS 機能についての説明では、次の用語が使用されます。
• パケット ― レイヤ 3 でトラフィックを伝送します。
• フレーム ― レイヤ 2 でトラフィックを伝送します。レイヤ 2 フレームは、レイヤ 3 パケットを伝送します。
• ラベル ― レイヤ 3 パケットおよびレイヤ 2 フレームで伝送されるプライオリティ値です。
–レイヤ 2 CoS 値。範囲は 0(ロー プライオリティ)~ 7(ハイ プライオリティ)です。
レイヤ 2 ISL フレーム ヘッダーには、1 バイトのユーザ フィールド(LSB 3 ビットで IEEE 802.1p CoS 値を伝送)があります。
レイヤ 2 802.1Q フレーム ヘッダーには、2 バイトのタグ制御情報フィールドがあり、MSB 3ビット(ユーザ プライオリティ ビット)でCoS値が伝送されます。
その他のフレーム タイプでは、レイヤ 2 CoS 値は伝送されません。
(注) レイヤ 2 ISL トランクとして設定されたインターフェイスでは、すべてのトラフィックが ISL フレームに収められます。レイヤ 2 802.1Q トランクとして設定されたインターフェイスでは、ネイティブ VLAN のトラフィックを除き、すべてのトラフィックが 802.1 Qフレームに収められます。
–レイヤ 3 IP precedence 値 ― IPv4 の仕様では、1 バイトの ToS フィールドの MSB 3 ビットを IP precedence と定義しています。IP precedence 値の範囲は、0(ロー プライオリティ)~ 7(ハイ プライオリティ)です。
–レイヤ 3 DSCP 値 ― Internet Engineering Tasks Force(IETF; インターネット技術特別調査委員会) は、1 バイトの IP ToS フィールドのうち MSB 6 ビットを DSCP と定義しています。個々の DSCP 値が表す PHB は、設定変更可能です。DSCP 値の範囲は 0 ~ 63 です。「DSCP マップの設定」を参照してください。
(注) レイヤ 3 の IP パケットは、IP precedence 値または DSCP 値のいずれかを伝送します。DSCP 値は IP precedence 値と下位互換性があるので、QoS ではどちらの値でも使用できます。表34-1 を参照してください。
表34-1 IP precedence 値および DSCP 値
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 0 0 |
|
0 0 0 0 1 1 1 1 |
0 0 1 1 0 0 1 1 |
0 1 0 1 0 1 0 1 |
0 1 2 3 4 5 6 7 |
|
4 |
1 1 1 1 1 1 1 1 |
0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 0 0 |
|
0 0 0 0 1 1 1 1 |
0 0 1 1 0 0 1 1 |
0 1 0 1 0 1 0 1 |
32 33 34 35 36 37 38 39 |
1 |
0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 0 0 |
1 1 1 1 1 1 1 1 |
|
0 0 0 0 1 1 1 1 |
0 0 1 1 0 0 1 1 |
0 1 0 1 0 1 0 1 |
8 9 10 11 12 13 14 15 |
|
5 |
1 1 1 1 1 1 1 1 |
0 0 0 0 0 0 0 0 |
1 1 1 1 1 1 1 1 |
|
0 0 0 0 1 1 1 1 |
0 0 1 1 0 0 1 1 |
0 1 0 1 0 1 0 1 |
40 41 42 43 44 45 46 47 |
2 |
0 0 0 0 0 0 0 0 |
1 1 1 1 1 1 1 1 |
0 0 0 0 0 0 0 0 |
|
0 0 0 0 1 1 1 1 |
0 0 1 1 0 0 1 1 |
0 1 0 1 0 1 0 1 |
16 17 18 19 20 21 22 23 |
|
6 |
1 1 1 1 1 1 1 1 |
1 1 1 1 1 1 1 1 |
0 0 0 0 0 0 0 0 |
|
0 0 0 0 1 1 1 1 |
0 0 1 1 0 0 1 1 |
0 1 0 1 0 1 0 1 |
48 49 50 51 52 53 54 55 |
3 |
0 0 0 0 0 0 0 0 |
1 1 1 1 1 1 1 1 |
1 1 1 1 1 1 1 1 |
|
0 0 0 0 1 1 1 1 |
0 0 1 1 0 0 1 1 |
0 1 0 1 0 1 0 1 |
24 25 26 27 28 29 30 31 |
|
7 |
1 1 1 1 1 1 1 1 |
1 1 1 1 1 1 1 1 |
1 1 1 1 1 1 1 1 |
|
0 0 0 0 1 1 1 1 |
0 0 1 1 0 0 1 1 |
0 1 0 1 0 1 0 1 |
56 57 58 59 60 61 62 63 |
• 分類 ― マーク付けするトラフィックを選択することです。
• マーキング ― RFC 2475 に従い、レイヤ 3 の DSCP 値をパケットに設定する処理です。このマニュアルでは、マーキングの定義を拡大して、レイヤ 2 CoS 値の設定までを含めています。
• スケジューリング ― レイヤ 2 フレームをキューに割り当てることです。QoS は、内部 DSCP 値(内部 DSCP 値を参照)に基づいて、キューにフレームを割り当てます。
• ポリシング ― トラフィック フローが使用する帯域幅を制限する処理です。ポリシングによって、トラフィックのマーキングまたはドロップが可能になります。
QoS の基本モデル
図34-2 に、QoS の基本モデル(スイッチ QoS モデルとも呼びますが、MQC 準拠ではありません)を示します。入力インターフェイスおよび出力インターフェイスで行われるアクションには、トラフィックの分類、ポリシング、およびマーキングがあります。
• 分類は、トラフィックの種類を区別します。このプロセスによって、パケットの内部 DSCP が生成されます。内部 DSCP は、今後このパケットに対して実行されるすべての QoS アクションを表します。詳細については、「分類」を参照してください。
• ポリシングは、トラフィック レートを設定済みのポリサーと比較することによって、パケットがイン プロファイルであるか、それともアウト オブ プロファイルであるかを判別します。ポリサーは、トラフィック フローが消費する帯域幅を制限します。この判別の結果が、マーカーに引き渡されます。詳細については、「ポリシングおよびマーキング」を参照してください。
• マーキングは、パケットがアウト オブ プロファイルのときに行われるアクションに関してポリサーの設定情報を評価し、パケットの処置(変更なしにパケットを通過させるか、パケット内の DSCP 値をマーク ダウンするか、パケットをドロップするか)を決定します。詳細については、「ポリシングおよびマーキング」を参照してください。
出力インターフェイスで行われるアクションには、キューイングおよびスケジューリングがあります。
• キューイングは、内部 DSCP を評価し、4 つの出力キューのどれにパケットを入れるかを決定します。
• スケジューリングは、出力(送信)ポートの共有およびシェーピング設定に基づいて、4 つの出力(送信)キューを処理します。共有およびシェーピング設定については、「キューイングおよびスケジューリング」を参照してください。
図34-2 QoS の基本モデル
分類
分類は、パケットの各フィールドを検証することで、トラフィックの種類を区別するプロセスです。スイッチ上でQoSがグローバルにイネーブルに設定されている場合に限り、分類がイネーブルになります。デフォルトでは、QoSはグローバルでディセーブルに設定されているため、分類は行われません。
フレームまたはパケットの、どのフィールドを使用して着信トラフィックを分類するかを、ユーザが指定します。
図34-3 に、さまざまな分類オプションを示します。
IP 以外のトラフィックについては、次の分類オプションがあります。
• ポート デフォルトを使用します。パケットがIP以外のパケットである場合、デフォルトのポートDSCP値を着信パケットに割り当てます。
• 着信フレームのCoS値を信頼します(ポートをTrust CoSに設定する)。この場合、設定変更可能なCoS/DSCPマップを使用して、内部DSCP値を生成します。レイヤ 2 ISL フレーム ヘッダーでは、1 バイトのユーザ フィールドの LSB 3 ビットを使用して CoS 値を伝送します。レイヤ 2 802.1Q フレーム ヘッダーでは、タグ制御情報フィールドの MSB 3 ビットを使用して CoS 値を伝送します。CoS 値の範囲は、0(ロー プライオリティ)~ 7(ハイ プライオリティ)です。フレームに CoS 値が含まれていない場合は、着信フレームにデフォルトのポート CoS を割り当てます。
Trust DSCPの設定は、IP以外のトラフィックに対しては無意味です。ポートをTrust DSCPに設定し、IP以外のトラフィックを受信した場合、スイッチはデフォルトのポートDSCPを割り当てます。
IPトラフィックについては、次の分類オプションがあります。
• 着信パケットのIP DSCPを信頼し(ポートをTrust DSCPに設定し)、パケットに同じDSCPを割り当てて内部的に使用します。IETF は、1 バイトの ToS フィールドの MBB 6 ビットを DSCP として定義しています。個々の DSCP 値が表すプライオリティは、設定変更可能です。DSCP 値の範囲は 0 ~ 63 です。
• 着信パケットの CoS 値(存在する場合)を信頼し、CoS/DSCP マップを使用して DSCP を生成します。
• 設定された IP 標準 Access Control List(ACL; アクセス コントロール リスト)または拡張 ACL(IP ヘッダーの各種のフィールドを検証する)に基づいて、分類を実行します。ACL を設定していない場合は、入力ポートの信頼状態に基づいてデフォルトの DSCP がパケットに割り当てられます。ACL を設定している場合は、ポリシー マップによって着信フレームに割り当てる DSCP が指定されます。
(注) 入力QoSポリシーが実行するマーキングに基づいてトラフィックを分類することはできません。Catalyst 4500プラットフォームでは、入力および出力QoSの検索が平行して実行されるため、出力QoSポリシーでトラフィックを分類するのに入力時にマーク付けされたDSCP値を使用できません。
(注) 内部 DSCP に基づいてトラフィックを分類することはできません。内部 DSCP は、すべてのパケットで送信キューおよび送信CoS値を決定するのにのみ使用される純粋な内部分類メカニズムです。
ここで説明するマップについての詳細は、「マッピング テーブル」を参照してください。ポートの信頼状態の設定手順については、「インターフェイスの信頼状態の設定」を参照してください。
図34-3 分類のフローチャート
QoS ACL に基づく分類
QoS のパケット分類は、複数の一致基準を使用して行うことができ、指定された一致基準をパケットがすべて満たしている必要があるか、または少なくとも 1 つの一致基準を満たしていればよいかを指定できます。QoS 分類基準を定義するには、クラス マップで一致(match)文を使用して一致基準を指定します。一致文では、マッチングの対象になるパケットのフィールドを指定することも、IP 標準 ACL または IP 拡張 ACL を使用することもできます。詳細については、「クラス マップおよびポリシー マップに基づく分類」を参照してください。
すべての一致基準に一致するようにクラス マップを設定した場合、パケットがクラス マップ内のすべての一致文を満たしていないと、QoS アクションは実行されません。パケットがクラス マップの一致基準を 1 つでも満たさない場合、そのパケットについて QoS アクションは実行されません。
最低 1 つの一致基準に一致するようにクラス マップを設定した場合、パケットがクラス マップ内の少なくとも 1 つの一致文を満たしていれば、QoS アクションが実行されます。パケットがクラス マップの一致基準をどれも満たしていない場合、そのパケットについて QoS アクションは実行されません。
(注) IP 標準 ACL および IP 拡張 ACL を使用する場合、QoS コンテキストでは、ACL の中の許可(permit)Access Control Entry(ACE; アクセス コントロール エントリ)と拒否(deny)ACE の意味は多少異なります。
• [permit] を指定している ACE を検出し、なおかつパケットがそれを満たしている場合、そのパケットは QoS 分類の一致基準に「一致した」ことになります。
• [deny] を指定している ACE を検出し、なおかつパケットがそれを満たしている場合、そのパケットは QoS 分類の一致基準に「一致しない」ことになります。
• 一致する許可(permit)アクションが検出されないまま、すべての ACE の検証が終わった場合、そのパケットは QoS 分類の基準に「一致しない」ことになります。
(注) アクセス リストを作成するとき、アクセス リストの末尾にはデフォルトで、リストの末尾に達しても一致が見つからなかった場合に使用される、暗黙の拒否(deny)文がある点に留意してください。
クラス マップを使用してトラフィック クラスを定義したあとで、トラフィック クラスに対するQoSアクションを定義するポリシーを作成できます。ポリシーでは、複数のクラスのそれぞれについて、アクションを指定できます。ポリシーには、クラスを集約的に分類する(たとえば、DSCP を割り当てる)コマンド、またはクラスをレート制限するコマンドを組み込めます。このポリシーを特定のポートに付加して、そのポート上でポリシーを有効にします。
IP トラフィックを分類するための IP ACL を実装するには、 access-list グローバル コンフィギュレーション コマンドを使用します。詳しい設定手順については、「QoS ポリシーの設定」を参照してください。
クラス マップおよびポリシー マップに基づく分類
クラス マップは、特定のトラフィック フロー(クラス)を、他のすべてのトラフィックから切り離して名前を付けるためのメカニズムです。クラス マップは、特定のトラフィック フローを分類する目的で使用する一致基準を定義します。基準としては、ACL で定義されるアクセス グループとのマッチング、または特定の DSCP 値、IP precedence 値、または L2 CoS 値のリストとのマッチングを指定できます。複数のタイプのトラフィックを分類する必要がある場合は、別のクラス マップを別の名前で作成します。クラス マップの基準に関するパケットのマッチングが終わったあとで、ポリシー マップを使用してQoSアクションを指定できます。
ポリシー マップは、各トラフィック クラスに対するQoSアクションを指定します。アクションとしては、トラフィック クラスのCoS値またはDSCP値を信頼すること、トラフィック クラスの特定のDSCP値またはIP precedence値の設定、またはトラフィックの帯域幅制限の指定およびトラフィックがアウト オブ プロファイルであるときのアクションを含めることができます。ポリシー マップを有効にするには、インターフェイスにポリシー マップを付加する必要があります。
クラス マップを作成するには、 class-map グローバル コンフィギュレーション コマンドを使用します。 class-map コマンドを入力すると、スイッチはクラス マップ コンフィギュレーション モードになります。このモードでは、 match クラス マップ コンフィギュレーション コマンドを使用して、トラフィックの一致基準を定義します。
ポリシー マップを作成して名前を付けるには、 policy-map グローバル コンフィギュレーション コマンドを使用します。このコマンドを入力すると、スイッチはポリシー マップ コンフィギュレーション モードになります。このモードで、 trust または set ポリシー マップ コンフィギュレーション コマンドおよびポリシー マップ クラス コンフィギュレーション コマンドを使用して、特定のトラフィック クラスに対して実行すべきアクションを指定します。ポリシー マップを有効にするには、 service-policy インターフェイス コンフィギュレーション コマンドを使用して、ポリシー マップをインターフェイスに対応付けます。
ポリシー マップには、ポリサーを定義するコマンド(トラフィックの帯域幅制限)および制限を超過した場合に実行するアクションを含めることもできます。詳細については、「ポリシングおよびマーキング」を参照してください。
ポリシー マップには、次のような特性もあります。
• 1 つのポリシー マップに、最大 255 のクラス文を指定できます。
• 1つのポリシー マップで異なるクラスを指定できます。
• ポリシー マップの信頼状態は、インターフェイスの信頼状態を上書きします。
詳しい設定手順については、「QoS ポリシーの設定」を参照してください。
ポリシングおよびマーキング
パケットが分類され、パケットに内部 DSCP 値が割り当てられると、ポリシングおよびマーキングのプロセスが開始可能になります(図34-4 を参照)。
ポリシングを行うには、トラフィックの帯域幅制限を指定するポリサーを作成します。この制限を超過するパケットは、 アウト オブ プロファイル つまり 不適合 パケットです。各ポリサーは、イン プロファイルまたはアウト オブ プロファイル パケットに対して実行すべきアクションを指定します。これらのアクション(マーカーによって実行される)では、パケットを変更せずにそのまま通過させること、パケットをドロップすること、または、設定変更可能なポリシング済み DSCP マップから得られる新しい DSCP 値にパケットをマークダウンすることが可能です。ポリシング済み DSCP マップの詳細については、「マッピング テーブル」を参照してください。
次の種類のポリサーを作成できます。
• 個別
ポリシー マップが付加されている各ポート/VLANに対して、QoSがポリサーで指定される帯域幅制限を一致する各トラフィック クラスに個別に適用します。ポリシー マップでこのタイプのポリサーを設定するには、ポリシー マップ クラス コンフィギュレーション モードで police コマンドを使用します。
• 集約
一致するすべてのトラフィック フローに、集約ポリサーで指定される帯域幅制限をQoSが累積的に適用します。ポリシー マップで、集約ポリサー名を指定してこのタイプのポリサーを設定するには、 police aggregate ポリシー マップ コンフィギュレーション コマンドを使用します。ポリサーの帯域幅制限を指定するには、 qos aggregate-policer グローバル コンフィギュレーション コマンドを使用します。集約ポリサーは、1つのポリシー マップ内で複数のトラフィック クラスによって共有されます。
• フローまたはマイクロフロー
フローベースのポリシングでは、識別されたすべてのフローが、指定したレートに個別にポリシングされます。フローはダイナミックなので、キー識別フィールドをクラス マップで設定する必要があります。2 つのフロー一致オプション、送信元 IP ベース(送信元 IP アドレスが一意であるそれぞれのフローを新しいフローとして扱う)および宛先 IP ベース(宛先 IP アドレスが一意であるそれぞれのフローを新しいフローとして扱う)を指定できます。フローベースのポリサーの設定については、「UBRL の設定」を参照してください。
ポリシングおよびポリサーを設定する場合、次の点に注意してください。
• IPパケットでは、IPペイロードの長さ(IPヘッダーの全長フィールド)だけがポリシング演算でポリサーに使用されます。レイヤ2ヘッダーとトレーラーの長さは計上されていません。たとえば、64バイトのEthernet II IPパケットでは、46バイトだけがポリシングに計上されます(64バイト-14バイトのイーサネット ヘッダー-4バイトのイーサネットCRC)。
IP以外のパケットでは、レイヤ2ヘッダーに指定されたレイヤ2の長さは、ポリシング演算でポリサーに使用されます。IP パケットをポリシングする場合、さらにレイヤ 2 カプセル化の長さを指定するには、qos account layer2 encapsulationコマンドを使用します。
• デフォルトで設定されるポリサーはありません。
• 設定できるのは、平均レートおよび認定バースト パラメータだけです。
• 個別ポリサーおよび集約ポリサーのポリシングは、入力インターフェイスと出力インターフェイスのどちらでも行えます。
–Supervisor Engine V-10GE(WS-X4516-10GE)の場合は、8192 個のポリサーが入力および出力でサポートされます。
–その他のスーパーバイザ エンジンでは、1024 個のポリサーが入力および出力でサポートされます。
(注) 入力および出力の方向で 4 個のポリサーが予約されています。
• ポリサーは、個別タイプか集約タイプにすることができます。Supervisor Engine V-10GEでは、フローベース ポリサーがサポートされます。
• フロー ポリサーのポリシングは、入力レイヤ 3 インターフェイスのみで行えます。
–Supervisor Engine V-10GE では、512 個の一意のフロー ポリサーを設定できます。
(注) 1 つのフロー ポリサーがソフトウェアによって予約されているので、511 個の一意のフロー ポリサーを定義できます。
–100,000 より多いフローをマイクロフロー ポリシングできます。
(注) マイクロフローでは、現在のところ 2 つのフロー一致オプション(送信元 IP アドレス ベースおよび宛先 IP アドレス ベース)がサポートされます。マイクロフロー ポリシングを Netflow 統計情報収集と併用するとき、送信元 IP アドレスか宛先 IP アドレスが一致するフローの完全なフロー統計は使用できません。Netflow 統計の設定については、「NetFlow 統計情報収集機能のイネーブル化」を参照してください。
• QoSを設定したインターフェイス上では、そのインターフェイス経由で送受信されるすべてのトラフィックが、インターフェイスに付加されたポリシー マップに従って、分類、ポリシング、およびマーク付けされます。ただし、インターフェイスがqos vlan-basedコマンドによって VLAN ベース QoS を使用するように設定されている場合は、そのインターフェイス経由で送受信されるトラフィックは、パケットの所属先 VLAN に付加されたポリシー マップ(VLAN インターフェイス上に設定されている)に従って、分類、ポリシング、およびマーク付けされます。パケットの所属先VLANにポリシー マップが付加されていない場合には、インターフェイスに付加されたポリシー マップが使用されます。
ポリシー マップおよびポリシング アクションを設定したあと、 service-policy インターフェイス コンフィギュレーション コマンドを使用して、入力インターフェイスまたは出力インターフェイスにポリシーを付加します。詳しい設定手順については、「QoS ポリシーの設定」および「名前付き集約ポリサーの作成」を参照してください。
図34-4 ポリシングおよびマーキングのフローチャート
内部 DSCP の作成元
QoSは処理中、すべてのトラフィック(IP以外のトラフィックを含む)のプライオリティを、内部DSCP値で表します。QoSは、以下に基づいて内部DSCP値を導き出します。
• Trust CoSトラフィックの場合、受信したレイヤ2 CoS値または入力インターフェイスのレイヤ2 CoS値
• Trust DSCPトラフィックの場合、受信したDSCP値または入力インターフェイスのDSCP値
• 信頼されない(untrusted)トラフィックの場合、入力インターフェイスのDSCP値
トラフィックの信頼状態は、入力インターフェイスの信頼状態です。ただし、ポリシー アクションによりトラフィック クラスに対して別の設定が行われる場合を除きます。
QoS は、設定変更可能な各種のマッピング テーブルを使用して、3 ビットの CoS から 6 ビットの内部 DSCP 値を導き出します(DSCP マップの設定を参照)。
出力 ToS および CoS の作成元
出力 IP トラフィックについては、QoS は内部 DSCP 値から ToS バイトを作成して、出力インターフェイスに送信し、それが IP パケットに書き込まれます。 trust dscp および untrusted IP トラフィックの場合、ToS バイトには、受信した ToS バイトの元の LSB 2 ビットが含まれます。
(注) 内部 ToS 値は IP precedence 値を使用します(IP precedence 値および DSCP 値を参照)。
すべての出力トラフィックについて、QoS は設定変更可能なマッピング テーブルを使用して、トラフィックと対応付けられた内部 ToS 値から CoS 値を導き出します(DSCP/CoS マップの設定を参照)。
すべての出力トラフィックについて、QoS は設定変更可能なマッピング テーブルを使用して、トラフィックと対応付けられた内部 ToS 値から CoS 値を導き出します(DSCP/CoS マップの設定を参照)。QoS は CoS 値を送信して、ISL フレームおよび 802.1Q フレームに書き込ませます。
qos trust cos コマンドを使用してtrust cos に設定された入力インターフェイスに着信したトラフィックの場合、送信される CoS は、常に着信パケットの CoS(または、パケットをタグなしで受信した場合には、入力インターフェイスのデフォルト CoS)です。
qos trust dscp コマンドを使用してインターフェイスの信頼状態を trust dscp に設定していない場合、セキュリティおよび QoS ACL 分類では、常にインターフェイス DSCP が使用され、着信パケットの DSCP は使用されません。
マッピング テーブル
QoS の処理中、スイッチはすべてのトラフィック(IP 以外のトラフィックを含む)のプライオリティを、内部 DSCP 値で表します。
• 分類の際、QoS は設定変更可能なマッピング テーブルを使用して、受信した CoS から内部 DSCP(6 ビット値)を導き出します。これらのマップには、CoS/DSCP マップが含まれます。
• ポリシングの際、QoS は IP パケットまたは IP 以外のパケットに別の DSCP 値を割り当てることがあります(パケットがアウト オブ プロファイルであり、なおかつポリサーでマークダウン後の DSCP 値が指定されている場合)。この設定変更可能なマップを、ポリシング済み DSCP マップといいます。
• トラフィックがスケジューリング段階に達する前に、QoS は内部 DSCP を使用して、4 つの出力キューのうち 1 つを出力処理用に選択します。DSCP から出力キューへのマッピングは、qos map dscp to tx-queue コマンドを使用して設定します。
CoS/DSCP および DSCP/CoS マップのデフォルト値は、ネットワークに適している場合も、適していない場合もあります。
詳しい設定手順については、「DSCP マップの設定」を参照してください。
キューイングおよびスケジューリング
各物理ポートには、4 つの送信キュー(出力キュー)があります。送信する必要がある各パケットは、いずれかの送信キューに格納されます。各送信キューは、送信キュー スケジューリング アルゴリズムに基づいて処理されます。
(DSCP のマークダウンも含めて)最終的な送信 DSCP が算出されると、送信 DSCP と送信キューのマッピング設定によって、送信キューが決定されます。パケットは、送信 DSCP から決定された送信ポートの送信キューに格納されます。送信 DSCP と送信キューのマッピングを設定するには、qos map dscp to tx-queue コマンドを使用します。パケットが入力ポートおよび出力ポートの QoS ポリシーおよび信頼状態の設定によって判別された IP 以外のパケットである場合、送信 DSCP は内部 DSCP 値です。
詳しい設定手順については、「送信キューの設定」を参照してください。
AQM
Active Queue Management(AQM)は、バッファ オーバーフローが発生する前に輻輳に関して通知する先行型の手法です。AQMは、Dynamic Buffer Limiting(DBL)を使用して実行されます。DBL はスイッチ内の各トラフィックのキュー長を追跡します。フローのキュー長が制限を超えると、DBL はパケットをドロップするか、パケット ヘッダーの Explicit Congestion Notification(ECN; 明示的輻輳通知)ビットを設定します。
DBL は、フローをアダプティブとアグレッシブの 2 つのカテゴリに分類します。アダプティブ フローは、輻輳通知を受信するとパケット伝送レートを減らします。アグレッシブ フローは、輻輳通知に対してどのような修正措置も行いません。すべてのアクティブ フローに対して、スイッチは [buffersUsed] および [credits] という 2 つのパラメータを保持します。すべてのフローは、グローバル パラメータの [max-credits] から開始されます。credits が [aggressive-credits](別のグローバル パラメータ)より少ないフローの場合、アグレッシブ フローとみなされ、[aggressiveBufferLimit] と呼ばれる小さなバッファ制限が指定されます。
キュー長は、パケット数によって測定されます。キュー内のパケット数により、フローに与えられるバッファ スペースのサイズが決定します。フローのキュー長が長い場合、算出値は低下します。これにより、新規着信フロー用のバッファ スペースがキュー内に確保されます。この結果、すべてのフローが、キュー内につり合いがとれた割合のパケットを置くことができます。
インターフェイスごとに 4 つの送信キューがあり、DBL はキュー単位のメカニズムであるため、DSCP 値により DBL の適用がさらに複雑になる可能性があります。
次の表に、デフォルトの DSCP と送信キューのマッピングを示します。
|
|
0 ~ 15 |
1 |
16 ~ 31 |
2 |
32 ~ 48 |
3 |
49 ~ 63 |
4 |
たとえば、2 つのストリームを送信するとき、1 つのストリームは 16 の DSCP で、もう 1 つのストリームは値が 0 の場合、これらのストリームは別々のキューから送信されます。txQueue 2 のアグレッシブ フロー(16 の DSCP を持つパケット)がリンクを飽和させる可能性があっても、0 の DSCP のパケットは txQueue 1 から送信されるため、アグレッシブ フローでブロックされません。したがって、DBL がなくても、DSCP 値によって txQueue 1、3、4 に配置されるパケットはアグレッシブ フローによって廃棄されません。
送信キュー間のリンク帯域幅の共有
送信ポートの 4 つの送信キューは、その送信ポートで使用できるリンク帯域幅を共有します。送信キュー間でリンク帯域幅を共有する方法を変更するには、インターフェイス送信キュー コンフィギュレーション モードで bandwidth コマンドを使用します。このコマンドを使用して、各送信キューに最低限保証される帯域幅を指定します。
デフォルトでは、すべてのキューがラウンド ロビン方式でスケジューリングされています。
Supervisor Engine II-Plus、Supervisor Engine II-Plus TS、Supervisor Engine III、Supervisor Engine IVを使用するシステムの場合、帯域幅を設定できるのは次のポートに限られます。
• スーパーバイザ エンジン上のアップリンク ポート
• WS-X4306-GB GBIC モジュール上のポート
• WS-X4506-GB-T CSFP モジュール上のポート
• WS-X4232-GB-RJ モジュール上の 2 つの 1000BASE-X ポート
• WS-X4418-GB モジュール上の最初の 2 つのポート
• WS-X4412-2GB-TX モジュール上の 2 つの 1000BASE-X ポート
Supervisor Engine Vを使用するシステムの場合、帯域幅はすべてのポート(10/100 ファスト イーサネット、10/100/1000BASE-T、1000BASE-X)で設定できます。
ストリクト プライオリティ/低遅延キューイング
インターフェイスコンフィギュレーション モードで priority high 送信キュー コンフィギュレーション コマンドを使用し、各ポートの送信キュー 3 に高いプライオリティを設定できます。送信キュー 3 に高いプライオリティを設定した場合、送信キュー 3 のパケットは、他のキューのパケットよりも優先的にスケジューリングされます。
送信キュー 3 に高いプライオリティを設定した場合、パケットが他の送信キューよりも優先的にスケジューリングされるのは、割り当てられた帯域幅共有の設定を超えていない場合に限られます。設定されたシェープ レートを超過するトラフィックは、キューに格納されたあと、設定された速度で送信されます。バースト トラフィックによってキューの容量を超過した場合には、設定されたシェープ レートを維持するために、パケットがドロップされます。
トラフィック シェーピング
トラフィック シェーピングは、トラフィックが設定上の最大送信速度に従うように、発信トラフィックの速度を制御する能力を提供します。ある制限に適合するトラフィックを、ダウンストリーム トラフィックの速度要件を満たすようにシェーピングし、データ速度の不一致を解消できます。
各送信キューに最大速度を設定するには、shape コマンドを使用します。この設定により、トラフィックの最大速度を指定できます。設定されたシェープ レートを超過するトラフィックは、キューに格納されたあと、設定された速度で送信されます。バースト トラフィックによってキューの容量を超過した場合には、設定されたシェープ レートを維持するために、パケットがドロップされます。
パケットの変更
パケットの分類、ポリシング、およびキューイングによって、QoS が提供されます。次のプロセスで、パケットの変更が行われることがあります。
• IP パケットの場合、分類によって、パケットに DSCP が割り当てられます。ただし、この段階でパケットは変更されません。割り当てられた DSCP が伝送されるだけです。その理由は、QoS の分類と ACL の検索が並行して実行され、ACL によってパケットの拒否とロギングが指示される場合があるためです。この状況では、パケットは元の DSCP 付きで CPU に転送され、CPU で再び ACL ソフトウェアによって処理されます。
• IP 以外のパケットの場合、分類によってパケットに内部 DSCP が割り当てられますが、非 IP パケットに DSCP はないので、上書きは行われません。代わりに、内部 DSCP がキューイングおよびスケジューリング決定の両方で使用され、さらにパケットが ISL または 802.1Q トランク ポートのいずれかで送信される場合、タグへの CoS プライオリティ値の書き込みに使用されます。
• ポリシングでは、IP パケットおよびIP以外のパケットに別の DSCP が割り当てられます(パケットがアウト オブ プロファイルであり、なおかつポリサーでマークダウン DSCP が指定されている場合)。この場合にも、パケットの DSCP は変更されませんが、マークダウン後の値が伝えられます。IP パケットの場合、あとの段階でパケットの変更が行われます。
PVQoS
PVQoS により、トランク ポート上の個別の VLAN に差別化された QoS が提供されます。この機能により、サービス プロバイダーはビジネスまたは住宅への各トランク ポートの個々の VLAN ベース サービスをレート制限できるようになります。企業の Voice over IP(VoIP)環境で、攻撃者が IP Phone になりすましている場合でも、この機能を使用して音声 VLAN をレート制限できます。ポート単位/VLAN 単位サービス ポリシーは、入力トラフィックまたは出力トラフィックのいずれかに別々に適用できます。
QoS およびソフトウェア処理されるパケット
Catalyst 4500 プラットフォームは、Cisco IOS ソフトウェアによって転送または生成されるパケットに、QoS マーキングまたはポリシング コンフィギュレーションを適用しません。これは、Cisco IOS がパケットを転送または生成している場合、ポートあるいは VLAN で設定された入力または出力 QoS ポリシーはパケットに適用されないためです。
ただし、Cisco IOS は生成された制御パケットすべてを正しくマーク付けし、内部 IP DSCP を使用して出力送信インターフェイスで送信キューを判断します。IP パケットの場合、内部 IP DSCP は IP パケットの IP DSCP フィールドにあります。IP 以外のパケットの場合、Cisco IOS は内部でパケット プライオリティを割り当て、内部 IP DSCP 値にマッピングします。
Cisco IOS は IP precedence 値 6 をコントロール プレーン上のルーティング プロトコル パケットに割り当てます。RFC 791 での記載のとおり、「インターネットワークの制御指定は、ゲートウェイ制御発信元が使用するためだけのものです」。つまり、Cisco IOS は IP ベースの制御パケット(Open Shortest Path First [OSPF]、Routing Information Protocol [RIP]、Enhanced Interior Gateway Routing Protocol [EIGRP] hello、キープアライブ)をマーク付けします。ルータへの、およびルータからの Telnet パケットにも IP precedence 値 6 が与えられます。出力インターフェイスがパケットをネットワークに送信した場合、割り当てられた値はパケットとともに残ります。
レイヤ 2 制御プロトコルの場合、ソフトウェアは内部 IP DSCP を割り当てます。通常、レイヤ 2 制御プロトコル パケットは、内部 DSCP 値 48(IP precedence 値 6 に対応)が割り当てられます。
内部 IP DSCP は、送信インターフェイス上で待機状態のパケットの送信キューを特定するために使用します。キューを送信するよう DSCP を設定する方法については、「送信キューの設定」を参照してください。
内部 IP DSCP は、トランク インターフェイス上でパケットが IEEE 802.1Q または ISL タグ付きで送信される場合、送信 CoS マーキングを決定するのにも使用します。DSCP/CoS マッピングを設定する方法については、「DSCP/CoS マップの設定」を参照してください。
Supervisor Engine II-Plus、II+10GE、VI、V、V-10GE、4924、4948、および 4948-10GE での QoS の設定
QoS を設定する前に、次の事項を完全に理解する必要があります。
• 使用するアプリケーションのタイプ、およびネットワーク上のトラフィック パターン
• トラフィックの特性およびネットワークの要件。バースト性のトラフィックかどうか。音声およびビデオ ストリーム用に帯域幅を予約する必要があるかどうか
• 帯域幅の要件およびネットワークの速度
• ネットワーク上の輻輳発生箇所
ここでは、Catalyst 4000 ファミリ スイッチ上で QoS を設定する手順について説明します。
• 「QoS のデフォルト設定」
• 「設定時の注意事項」
• 「QoS のグローバルなイネーブル化」
• 「信頼境界の設定によるポート セキュリティの確保」
• 「DBL のイネーブル化」
• 「名前付き集約ポリサーの作成」
• 「QoS ポリシーの設定」
• 「CoS 変換の設定」
• 「UBRL の設定」
• 「PVQoS のイネーブル化」
• 「インターフェイス上での QoS のイネーブル化またはディセーブル化」
• 「レイヤ 2 インターフェイス上での VLAN ベース QoS の設定」
• 「インターフェイスの信頼状態の設定」
• 「インターフェイスの CoS 値の設定」
• 「インターフェイスの DSCP 値の設定」
• 「送信キューの設定」
• 「DSCP マップの設定」
• 「レイヤ 2 制御パケット QoS のイネーブル化」
QoS のデフォルト設定
表34-3 に、QoS のデフォルト設定を示します。
表34-3 QoS のデフォルト設定
|
|
QoS のグローバルな設定 |
ディセーブル |
インターフェイス QoS の設定(ポート単位) |
QoS がグローバルにイネーブルの場合、イネーブル |
インターフェイス CoS 値 |
0 |
インターフェイス DSCP 値 |
0 |
CoS/DSCP マップ(CoS 値から設定された DSCP) |
CoS 0 = DSCP 0 CoS 1 = DSCP 8 CoS 2 = DSCP 16 CoS 3 = DSCP 24 CoS 4 = DSCP 32 CoS 5 = DSCP 40 CoS 6 = DSCP 48 CoS 7 = DSCP 56 |
DSCP/CoS マップ(DSCP 値から設定された CoS) |
DSCP 0 ~ 7 = CoS 0 DSCP 8 ~ 15 = CoS 1 DSCP 16 ~ 23 = CoS 2 DSCP 24 ~ 31 = CoS 3 DSCP 32 ~ 39 = CoS 4 DSCP 40 ~ 47 = CoS 5 DSCP 48 ~ 55 = CoS 6 DSCP 56 ~ 63 = CoS 7 |
DSCP からマークダウンされた DSCP へのマッピング(ポリシング後の DSCP) |
マークダウンされた DSCP 値は元の DSCP 値(マークダウンなし)と等しい |
ポリサー |
なし |
ポリシー マップ |
なし |
送信キューの共有 |
リンク帯域幅の 1/4 |
送信キュー容量 |
ポートの送信キュー エントリの 1/4。ポートの送信キュー容量はポートのタイプによって異なり、送信キュー 1 つ当たり 240 ~ 1920 パケット |
送信キューのシェーピング |
なし |
DCSP/送信キュー マップ |
DSCP 0 ~ 15 キュー 1 DSCP 16 ~ 31 キュー 2 DSCP 32 ~ 47 キュー 3 DSCP 48 ~ 63 キュー 4 |
ハイ プライオリティ送信キュー |
ディセーブル |
|
|
インターフェイスの信頼状態 |
trust dscp |
|
QoS がイネーブルに設定され、その他の QoS パラメータがすべてデフォルト値である場合、送信されるすべてのトラフィックで IP DSCP が 0、レイヤ 2 CoS が 0 に設定される |
インターフェイスの信頼状態 |
untrusted(信頼性がない) |
設定時の注意事項
QoS の設定を始める前に、次の点を理解する必要があります。
• スイッチ上に EtherChannel ポートを設定している場合、EtherChannel に QoS の分類およびポリシングを設定する必要があります。EtherChannel を形成する個々の物理ポートに、送信キューの設定が必要です。
• IP フラグメントが、QoS 用にトラフィックを分類するために使用される ACL で設定された送信元および宛先に一致するが、ACL のレイヤ 4 ポート番号には一致しない場合、ACL とは引き続き一致するとされ、優先されます。意図する動作が IP フラグメントにベスト エフォートのサービスを提供する場合、次の 2 つの ACE が、トラフィックの分類に使用される ACL に追加される必要があります。
access-list xxx deny udp any any fragments
access-list xxx deny tcp any any fragments
• 設定されているIP拡張ACLとIPオプションのマッチングによって、QoSを強制することはできません。これらのパケットはCPUに送信され、ソフトウェアによって処理されます。IPオプションは、IPヘッダー内のフィールドで示されます。
• スイッチが受信した制御トラフィック(スパニングツリーBridge Protocol Data Unit[BPDU; ブリッジ プロトコル データ ユニット]、ルーティング アップデート パケットなど)は、すべての入力 QoS 処理の対象になります。
• IP ルーティングがディセーブルの場合、set コマンドをポリシー マップで使用することはできません(デフォルトではイネーブル)。
• dot1q トンネル ポートでは、レイヤ 2 一致基準だけがタグ付きパケットに適用できます。ただし、タグなしパケットにはすべての一致基準を適用できます。
• トランク ポートでは、レイヤ 2 一致基準のみを複数の 802.1q タグを持つパケットに適用できます。
(注) QoS は、ユニキャスト トラフィックとマルチキャスト トラフィックの両方を処理します。
QoS のグローバルなイネーブル化
QoS をグローバルにイネーブルにするには、次の作業を行います。
|
|
|
ステップ 1 |
Switch# conf terminal |
コンフィギュレーション モードを開始します。 |
ステップ 2 |
|
スイッチ上で QoS をイネーブルにします。 QoS をグローバルにディセーブルにするには、 no qos コマンドを使用します。 |
ステップ 3 |
|
コンフィギュレーション モードを終了します。 |
ステップ 4 |
|
設定を確認します。 |
次に、QoS をグローバルにイネーブルにし、設定を確認する例を示します。
信頼境界の設定によるポート セキュリティの確保
通常のネットワークでは、Cisco IP Phone をスイッチ ポートに接続します(「音声インターフェイスの設定」を参照)。通常の場合、電話機からスイッチに送信されたトラフィックは、802.1Q ヘッダーを使用するタグによってマーク付けされます。このヘッダーには VLAN 情報、およびパケットのプライオリティを決定する CoS の 3 ビット フィールドが格納されます。ほとんどの Cisco IP Phone 設定では、電話機からスイッチに送信されたトラフィックは信頼され、音声トラフィックがネットワーク内の他のタイプのトラフィックよりも適切に優先されます。 qos trust cos インターフェイス コンフィギュレーション コマンドを使用することにより、ポートで受信されたすべてのトラフィックの CoS ラベルを信頼するように、電話機の接続先であるスイッチ ポートを設定できます。
(注) Cisco IOS Release 12.2(31)SG 以降では、Supervisor Engine V-10GE を使用すれば、ポートの信頼状態に関わらずパケットの IP DSCP 値に基づいてトラフィックを分類できます。このため、Cisco IP Phone が検出されない場合でも、データ トラフィックは IP DSCP 値に基づいて分類されます。これにより出力キュー選択が影響されることはありません。出力キュー選択はこれまでと同じく着信ポート信頼設定に基づきます。送信キューの設定については、「送信キューの設定」を参照してください。
場合により、IP Phone に PC またはワークステーションを接続することもできます。この場合は、 switchport priority extend cos インターフェイス コンフィギュレーション コマンドを使用して、PC から受信したトラフィックよりも優先するように、スイッチ CLI(コマンドライン インターフェイス)を通して電話機を設定できます。このコマンドを使用すると、PC がハイプライオリティのデータ キューを利用しないように設定できます。
ただし、ユーザが電話機を省略して PC を直接スイッチに接続した場合、スイッチは PC によって生成された CoS ラベルを信頼し(信頼された CoS 設定のため)、ハイプライオリティ キューが誤って使用される可能性があります。信頼境界機能は、CDP を使用してスイッチ ポート上で Cisco IP Phone(Cisco IP Phone 7910、7935、7940、7960)の存在を検出することにより、この問題を解決します。
(注) スイッチまたは該当するポートで CDP がグローバルに稼働していない場合、信頼境界は機能しません。
ポート上に信頼境界を設定する場合、信頼がディセーブルにされます。電話機が接続されて検出されると、信頼がイネーブルになります(電話機を検出するには数分かかります)。そして、電話機が取り外され(検出されなければ)、信頼境界機能はスイッチ ポートの trusted 設定をディセーブルにし、ハイ プライオリティのキューの誤使用を防ぎます。
(注) 指定ポートでは、Cisco IP Phone 検出情報がスタンバイ スーパーバイザ エンジンで更新されません。スタンバイ エンジンがアクティブになると、CDP を通じて Cisco IP Phone を差異検出します。したがって、SSO スイッチオーバー後に短期間ポートが信頼状態になりません。
ポート上の信頼境界をイネーブルにするには、次の作業を行います。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)# interface interface-id |
インターフェイス コンフィギュレーション モードを開始し、IP Phone に接続されているインターフェイスを指定します。 有効なインターフェイスは物理インターフェイスなどです。 |
ステップ 3 |
Switch(config)# qos trust [cos | dscp] |
受信したトラフィックの CoS 値を信頼するように、インターフェイスを設定します。デフォルトで、ポートは trusted になっていません。 |
ステップ 4 |
Switch(config)# qos trust device cisco-phone |
Cisco IP Phone が信頼できるデバイスであることを指定します。 信頼境界と Auto-QoS( auto qos voip インターフェイス コンフィギュレーション コマンド)は相互に排他的なので、同時にイネーブルにできません。 |
ステップ 5 |
Switch(config)# end |
特権 EXEC モードに戻ります。 |
ステップ 6 |
Switch# show qos interface interface-id |
入力を確認します。 |
ステップ 7 |
Switch# copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
信頼境界機能をディセーブルにするには、 no qos trust device cisco-phone インターフェイス コンフィギュレーション コマンドを使用します。
DBL のイネーブル化
(注) Supervisor Engine 6-E は、この機能をサポートしていません。
DBL は、Catalyst 4500 プラットフォームでのアクティブ キュー管理を提供します(詳細については、AQMを参照してください)。
「選択的」DBL を介して、DBL アルゴリズムの対象となる(または対象とならない)フローを選択できます。特定の IP DSCP 値で、または特定の CoS 値で、DBL をグローバルにイネーブルにできます。
ここでは、次の作業について説明します。
• 「DBL のグローバルなイネーブル化」
• 「DBL の選択的イネーブル化」
DBL のグローバルなイネーブル化
DBL をグローバルにイネーブルにするには、次の作業を行います。
|
|
|
ステップ 1 |
|
スイッチ上で DBL をイネーブルにします。 AQM をディセーブルにするには、 no qos dbl コマンドを使用します。 |
ステップ 2 |
|
コンフィギュレーション モードを終了します。 |
ステップ 3 |
|
設定を確認します。 |
次に、DBL をグローバルにイネーブルにし、設定を確認する例を示します。
Switch# configure terminal
DBL is enabled globally on DSCP values:
DBL flow includes layer4-ports
DBL does not use ecn to indicate congestion DBL exceed-action probability: 15% DBL max credits: 15 DBL aggressive credit limit: 10 DBL aggressive buffer limit: 2 packets
サービスポリシーを適用して、出力インターフェイス方向で DBL をイネーブルにできます。
Switch(config)# policy-map dbl
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# dbl
Switch(config-pmap-c)# end
00:08:12: %SYS-5-CONFIG_I: Configured from console by console
Switch(config)# int gig 1/2
Switch(config-if)# service-policy output dbl
特定 IP DSCP 値での DBL のイネーブル化
DBL アクションは、送信キュー(インターフェイスごとに 4 つ)で実行されます。キューを送信するために IP DSCP からのマッピングを操作するには、qos map dscp dscp-values to tx-queue queue-id コマンドを使用します(方法については、送信キューの設定を参照)。
特定の IP DSCP 値で DBL をイネーブルにするには、次の作業を実行します。
|
|
|
ステップ 1 |
Switch(config)# [no]
qos dbl dscp-based <value, value_range>
|
特定の IP DSCP 値で DBL をイネーブルにします。 |
ステップ 2 |
|
コンフィギュレーション モードを終了します。 |
ステップ 3 |
|
設定を確認します。 |
次に、DSCP 値 1 ~ 10 で DBL を選択的にイネーブルにする例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# qos dbl dscp-based 1-10
DBL is enabled globally on DSCP values:
DBL flow includes layer4-ports
DBL does not use ecn to indicate congestion DBL exceed-action probability: 15%
DBL aggressive credit limit: 10
DBL aggressive buffer limit: 2 packets
次に、DSCP 値 1 ~ 10 で DBL を選択的にディセーブルにし、設定を確認する例を示します。
Switch# configure terminal
Switch(config)# no qos dbl dscp-based 1-5, 7
DBL is enabled globally on DSCP values:
DBL flow includes layer4-ports
DBL does not use ecn to indicate congestion DBL exceed-action probability: 15% DBL max credits: 15 DBL aggressive credit limit: 10 DBL aggressive buffer limit: 2 packets
DSCP 以外のクラス属性に基づいて DBL を適用しても、引き続きポリシーマップを出力インターフェイスに付加する必要があります(ポリシー マップ クラス アクションの設定)。
ネットワーク ポリシーに従って値が設定されている場合、DBL が抑圧するアグレッシブ フローの出力インターフェイスで「Trust DSCP」を設定する必要があります。
特定 CoS 値での DBL のイネーブル化
非 IP パケットまたは二重タグ付きパケット(たとえば、Q-in-Q)を使用するつもりであれば、CoS 値を使用して、選択的に DBL を適用する必要があります。
一重タグ付き IP パケットの場合は、次のアプローチを使用します。「特定 IP DSCP 値での DBL のイネーブル化」に示すように、グローバル qos dbl dscp-based コマンドを指定します。
非 IP パケットまたは二重タグ付きパケットの場合、次の方法を使用します。
|
|
|
ステップ 1 |
|
DBL をグローバルにイネーブルにします。 |
ステップ 2 |
|
コンフィギュレーション モードを終了します。 |
ステップ 3 |
Switch(config)# class-map cos
|
トラフィック クラスを定義します。 |
ステップ 4 |
Switch(config-cmap)# match cos x y
|
一致基準として使用する CoS 値を指定します。 |
ステップ 5 |
Switch(config-cmap)# exit
|
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 6 |
Switch(config)# policy-map cos
|
ユーザが指定する名前でポリシー マップを作成します。 |
ステップ 7 |
Switch(config-pmap)# class cos
|
ポリシー マップが使用するクラス マップを指定します。 |
ステップ 8 |
Switch(config-pmap-c)# dbl
|
ポリシー上で DBL をイネーブルにします。 |
ステップ 9 |
Switch(config-pmap-c)# end
|
EXEC モードに戻ります。 |
ステップ 10 |
Switch# show policy-map cos
|
設定を確認します。 |
ステップ 11 |
Switch# configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 12 |
Switch(config)# interface gigabitEthernet 1/20
|
設定をインターフェイスに適用します。 |
ステップ 13 |
Switch(config-if)# service-policy output cos
|
ポリシー マップをインターフェイスに付加します。 |
ステップ 14 |
Switch# show policy-map interface
|
設定を確認します。 |
(注) CoS 変換の使用の詳細については、「CoS 変換の設定」を参照してください。
CoS 値 2 および 3 で DBL を選択的にイネーブルにするには、次の手順を実行します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch# configure terminal
Switch(config)# class-map cos
Switch(config-cmap)# match cos 2 3
Switch(config-cmap)# exit
Switch(config)# policy-map cos
Switch(config-pmap)# class cos
Switch(config-pmap-c)# dbl
Switch(config-pmap-c)# end
Switch# show policy-map cos
Switch# configure terminal
Switch(config)# interface gigabitEthernet 1/20
Switch(config-if)# service-policy output cos
Switch# show policy-map interface
Service-policy output: cos
Class-map: cos (match-all)
Class-map: class-default (match-any)
名前付き集約ポリサーの作成
名前付き集約ポリサーを作成するには、次の作業を行います。
|
|
Switch(config)# qos aggregate-policer policer_name rate burst [[ conform-action { transmit | drop }] [ exceed-action { transmit | drop | policed-dscp-transmit}]] |
名前付き集約ポリサーを作成します。 |
集約ポリサーは、1 つまたは複数のインターフェイスに適用できます。ただし、あるインターフェイスの入力方向と、別のインターフェイスの出力方向に同じポリサーを適用すると、スイッチング エンジン上で 2 つの異なる同等の集約ポリサーを作成したことになります。各ポリサーは同じポリシング パラメータを使用し、1 つのポリサーは 1 つのインターフェイスの入力トラフィックのポリシング、もう 1 つのポリサーは別のインターフェイスの出力トラフィックのポリシングを行います。集約ポリサーを複数のインターフェイスに同じ方向で適用した場合、スイッチング エンジン上に作成されるそのポリサーのインスタンスは 1 つだけです。
同様に、集約ポリサーをポートまたはVLANに適用できます。同じ集約ポリサーをポートおよび VLAN に適用した場合、スイッチング エンジン上で 2 つの異なる同等の集約ポリサーを作成したことになります。各ポリサーは同じポリシング パラメータを使用し、1 つのポリサーは設定されたポート上のトラフィックのポリシング、もう 1 つのポリサーは設定された VLAN 上のトラフィックのポリシングを行います。集約ポリサーを複数のポートのみ、または複数の VLAN のみに適用した場合、スイッチング エンジン上に作成されるそのポリサーのインスタンスは 1 つだけです。
1 つの集約ポリサーを複数のポートおよび VLAN に異なる方向で適用した場合、実質的には、同等の 4 つの集約ポリサー(入力方向でポリサーを共有するすべてのポート用、出力方向でポリサーを共有するすべてのポート用、入力方向でポリサーを共有するすべての VLAN 用、および出力方向でポリサーを共有するすべての VLAN 用の集約ポリサー)を作成したことになります。
名前付き集約ポリサーを作成する場合、次の点に注意してください。
• rate パラメータ値の有効範囲は、次のとおりです。
–最小 ― 32 Kbps(キロビット/秒)
–最大 ― 32 Gbps(ギガビット/秒)
「設定時の注意事項」を参照してください。
• 速度(rate)はビット/秒で入力できますが、次の簡略表記を使用することもできます。
–k は、1,000 bps を表します。
–m は、1,000,000 bps を表します。
–g は、1,000,000,000 bps を表します。
(注) 小数点を使用することもできます。たとえば、1,100,000 bps という速度は、1.1m と入力できます。
• burst パラメータ値の有効範囲は、次のとおりです。
–最小 ― 1 KB
–最大 ― 512 MB
• バースト サイズ(burst)はバイトで入力できますが、次の簡略表記を使用することもできます。
–k は、1,000 バイトを表します。
–m は、1,000,000 バイトを表します。
–g は、1,000,000,000 バイトを表します。
(注) 小数点を使用することもできます。たとえば、1,100,000 バイトのバーストは、1.1m と入力できます。
• 一致するイン プロファイルトラフィックに対する conform アクションを、任意で次のように指定できます。
–デフォルトの conform アクションは、 transmit です。
–一致するトラフィックをすべてドロップするには、 drop キーワードを入力します。
(注) dropを conform アクションとして設定すると、QoS はdropを exceed アクションとして設定します。
• Committed Information Rate(CIR;認定情報レート)を超過するトラフィックについて、exceed アクションを任意で次のように指定できます。
–デフォルトの exceed アクションは、 drop です。
–一致するアウト オブ プロファイルトラフィックを、マークダウン マップの指定に従ってマークダウンするには、 policed-dscp-transmit キーワードを入力します。
–ポリシングをまったく行わないようにするには、 transmit キーワードを入力して、一致したアウト オブ プロファイルトラフィックをすべて送信します。
• 名前付き集約ポリサーを削除するには、 no qos aggregate-policer policer_name コマンドを使用します。
次に、10 Mbps のレート制限および 1 MB のバースト サイズを指定し、適合するトラフィックを送信して、不適合トラフィックをマークダウンする、名前付き集約ポリサーの作成例を示します。
Switch(config)# qos aggregate-policer aggr-1 10000000 1000000 conform-action transmit exceed-action policed-dscp-transmit
次に、設定を確認する例を示します。
Switch# show qos aggregate-policer aggr-1
Rate(bps):10000000 Normal-Burst(bytes):1000000
conform-action:transmit exceed-action:policed-dscp-transmit
Policymaps using this policer:
QoS ポリシー設定の概要
QoS ポリシーを設定するには、トラフィック クラスを設定して、それらのトラフィック クラスに適用するポリシーを設定し、さらに、次のコマンドを使用してポリシーをインターフェイスに付加する必要があります。
• access-list (IP トラフィックに対して任意 ― class-map コマンドを使用して IP トラフィックをフィルタリングできます。)
–QoS では、次のアクセス リスト タイプがサポートされています。
|
|
|
|
IP |
あり: 1 ~ 99 1300 ~ 1999 |
あり: 100 ~ 199 2000 ~ 2699 |
含まれる |
–Catalyst 4500 シリーズ スイッチ上の ACL については、「ACL によるネットワーク セキュリティの設定」を参照してください。
• class-map (任意) ― class-map コマンドを使用してトラフィックの分類基準を指定し、1 つまたは複数のトラフィック クラスを定義します(クラス マップの設定(任意)を参照)。
• policy-map ― 各トラフィック クラスに以下を定義するには、 policy-map コマンドを使用します。
–内部 DSCP の作成元
–集約または個別のポリシングおよびマーキング
• service-policy ― service-policy コマンドを使用して、ポリシー マップをインターフェイスに付加します。
クラス マップの設定(任意)
ここでは、クラス マップの設定手順について説明します。
• 「クラス マップの作成」
• 「クラス マップでのフィルタリングの設定」
• 「クラス マップの設定の確認」
トラフィック クラスを定義し、そのクラスに属するトラフィックを識別するための一致基準を指定するには、 class-map コンフィギュレーション コマンドを使用します。一致文には、ACL、IP precedence 値、DSCP 値などの基準を指定できます。一致基準は、クラス マップ コンフィギュレーション モードで 1 つの一致文を入力して定義します。
クラス マップの作成
クラス マップを作成するには、次の作業を行います。
|
|
Switch(config)# [
no ]
class-map [match-all | match-any]
class_name
|
名前付きクラス マップを作成します。 クラス マップを削除するには、 no キーワードを使用します。 |
クラス マップでのフィルタリングの設定
クラス マップにフィルタリングを設定するには、次のいずれかの作業を行います。
|
|
Switch(config-cmap)# [
no ]
match access-group {
acl_index |
name
acl_name }
|
(任意)トラフィックのフィルタリングに使用する ACL の名前を指定します。 クラス マップから文を削除するには、 no キーワードを使用します。
(注) アクセス リストについては、このマニュアルでは説明しません。「QoS ポリシーの設定」に記載されている access-list の説明を参照してください。
|
Switch (config-cmap)# [
no ]
match ip precedence
ipp_value1 [
ipp_value2 [
ipp_valueN ]]
|
(任意 ― IP トラフィックのみ)一致基準として使用する IP precedence値(最大 8 つ)を指定します。クラス マップから文を削除するには、 no キーワードを使用します。 |
Switch (config-cmap)# [
no ]
match ip dscp
dscp_value1 [
dscp_value2 [
dscp_valueN ]]
|
(任意 ― IP トラフィックのみ)一致基準として使用する DSCP 値(最大 8 つ)を指定します。クラス マップから文を削除するには、 no キーワードを使用します。 |
Switch (config-cmap)# [
no ]
match cos
value1 [
value2] [
value3 } [
value4 }
|
+(任意 ― 非 IPv4 トラフィックのみ)一致基準として使用する CoS 値(最大 8 つ)を指定します。クラス マップから文を削除するには、 no キーワードを使用します。 非 IPv4 トラフィックについては、「設定時の注意事項」を参照してください。 |
Switch (config-cmap)# [
no ]
match any
|
(任意)すべての IP トラフィックまたは IP 以外のトラフィックを一致させます。 |
Switch (config-cmap)#
match flow ip {source-address | destination-address
|
(任意)IP 送信元アドレスまたは宛先アドレスが一意であるそれぞれのフローを新しいフローとして扱います。 |
(注) match ip precedence または match ip dscp クラス マップ コマンドを指定したクラス マップを使用する入力ポリシーまたは出力ポリシーでは、パケットを受信するポートが trust dscp に設定されている必要があります。設定されていない場合、IP パケット DSCP/IP precedence はトラフィックのマッチングには使用されず、受信ポートのデフォルト DSCP が使用されます。Cisco IOS Release 12.2(31)SG 以降では、Supervisor Engine V-10GE を使用すれば、ポートの信頼状態に関わらずパケットの IP DSCP 値に基づいてトラフィックを分類できます。
(注) Cisco IOS Release 12.2(31) では、Catalyst 4500 シリーズ スイッチは match cos をサポートします。
(注) Catalyst 4000 ファミリ スイッチ上のインターフェイスは、match classmap、match destination-
address、match input-interface、match mpls、match not、match protocol、match qos-group、および match source-address キーワードをサポートしていません。
クラス マップの設定の確認
クラス マップの設定を確認するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch (config-cmap)#
end
|
コンフィギュレーション モードを終了します。 |
ステップ 2 |
Switch#
show class-map
class_name
|
設定を確認します。 |
次に、 ipp5 という名前のクラス マップを作成し、IP precedence 5 のトラフィックと一致するようにフィルタリングを設定する例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# class-map ipp5
Switch(config-cmap)# match ip precedence 5
次に、設定を確認する例を示します。
Switch# show class-map ipp5
Class Map match-all ipp5 (id 1)
次に、非 IPv4 トラフィックの CoS マッチングを設定する例を示します。ここでは、CoS 値が 5 のトラフィックをフィルタリングします。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# class-map maptwo
Switch(config-cmap)# match cos 5
次に、設定を確認する例を示します。
Switch# show class-map maptwo
Class Map match-all maptwo (id 1)
ポリシー マップの設定
1 つのインターフェイスに付加できるポリシー マップは、1 つに限られます。ポリシー マップには、一致基準およびポリサーがそれぞれ異なる 1 つまたは複数のポリシー マップ クラスを含めることができます。
インターフェイスで受信するトラフィック タイプごとに、個別のポリシー マップ クラスをポリシー マップ内に設定します。各トラフィック タイプ用のすべてのコマンドを、同一のポリシー マップ クラスに入れます。QoS が、一致したトラフィックに複数のポリシー マップ クラスのコマンドを適用することはありません。
ここでは、ポリシー マップの設定手順について説明します。
• 「ポリシー マップの作成」
• 「ポリシー マップ クラス アクションの設定」
ポリシー マップの作成
ポリシー マップを作成するには、次の作業を行います。
|
|
Switch(config)# [
no ]
policy-map
policy_name
|
ユーザが指定する名前でポリシー マップを作成します。 ポリシー マップを削除するには、 no キーワードを使用します。 |
ポリシー マップ クラス アクションの設定
ここでは、ポリシー マップ クラスのアクションを設定する手順について説明します。
• 「ポリシー マップ マーキング状態の設定」
• 「ポリシー マップ クラスの信頼状態の設定」
• 「ポリシー マップ クラスの DBL 状態の設定」
• 「ポリシー マップ クラスのポリシングの設定」
• 「名前付き集約ポリサーの使用」
• 「インターフェイス別ポリサーの設定」
ポリシー マップ マーキング状態の設定
ポリシー マップを設定してパケットに IP precedence または DSCP をマーク付けするには、次の作業を実行します。
|
|
Switch(config-pmap-c)# [
no ]
set ip [precedence prec_value |
dscp dscp_value ]
|
ポリシー マップ マーキング状態を設定します。この設定によって、後続処理のためにパケットの内部 DSCP が決定します。 設定した値をクリアし、デフォルトに戻すには、no キーワードを使用します。 |
ポリシー マップ クラスの信頼状態の設定
ポリシー マップ クラスの信頼状態を設定するには、次の作業を行います。
|
|
Switch(config-pmap-c)# [
no ]
trust {
cos |
dscp ]
|
ポリシー マップ クラスの信頼状態を設定します。この設定によって、QoS が内部 DSCP 値の作成元として使用する値が選択されます(内部 DSCP 値を参照)。 設定した値をクリアし、デフォルトに戻すには、 no キーワードを使用します。 |
ポリシー マップ クラスの信頼状態を設定する際、次の点に注意してください。
• no trust コマンドを入力すると、入力インターフェイス上に設定されている信頼状態を使用できます(これがデフォルトです)。
• cos キーワードを使用すると、QoS は受信した CoS またはインターフェイス CoS に基づいて、内部 DSCP 値を設定します。
• dscp キーワードを使用すると、QoS は受信した DSCP を使用します。
ポリシー マップ クラスの DBL 状態の設定
ポリシー マップ クラスの DBL 状態を設定するには、次の作業を行います。
|
|
Switch(config-pmap-c)# [
no ]
dbl
|
ポリシー マップ クラスの DBL 状態を設定します。この設定によって、トラフィック フローのキュー長を追跡します(AQMを参照)。 DBL 値をクリアし、デフォルトに戻すには、 no キーワードを使用します。 |
ポリシー マップ クラスの DBL 状態を設定する場合、次の点に注意してください。
• 名前付き集約ポリサーを使用しているクラスは、機能するために同じ DBL 設定でなければなりません。
ポリシー マップ クラスのポリシングの設定
ここでは、ポリシー マップ クラスによるポリシングを設定する手順について説明します。
• 「名前付き集約ポリサーの使用」
• 「インターフェイス別ポリサーの設定」
名前付き集約ポリサーの使用
名前付き集約ポリサーを使用するには(名前付き集約ポリサーの作成を参照)、次の作業を行います。
|
|
Switch(config-pmap-c)# [
no ]
police aggregate
aggregate_name
|
あらかじめ定義されている集約ポリサーを使用します。 ポリシー マップ クラスからポリサーを削除するには、 no キーワードを使用します。 |
インターフェイス別ポリサーの設定
インターフェイスにインターフェイス単位のポリサーを設定するには(ポリシングおよびマーキングを参照)、次の作業を行います。
|
|
Switch(config-pmap-c)# [ no ] police rate burst [[ conform-action { transmit | drop }] [ exceed-action { transmit | drop | policed-dscp-transmit}]] |
インターフェイス別のポリサーを設定します。 ポリシー マップ クラスからポリサーを削除するには、 no キーワードを使用します。 |
インターフェイス別ポリサーを設定する際、次の点に注意してください。
• rate パラメータ値の有効範囲は、次のとおりです。
–最小 ― 32 Kbps(32000 と入力)
–最大 ― 32 Gbps(32000000000 と入力)
(注) 「設定時の注意事項」を参照してください。
• 速度(rate)はビット/秒で入力できますが、次の簡略表記を使用することもできます。
–k は、1,000 bps を表します。
–m は、1,000,000 bps を表します。
–g は、1,000,000,000 bps を表します。
(注) 小数点を使用することもできます。たとえば、1,100,000 bps という速度は、1.1m と入力できます。
• burst パラメータ値の有効範囲は、次のとおりです。
–最小 ― 1 KB
–最大 ― 512 MB
• バースト サイズ(burst)はバイトで入力できますが、次の簡略表記を使用することもできます。
–k は、1,000 バイトを表します。
–m は、1,000,000 バイトを表します。
–g は、1,000,000,000 バイトを表します。
(注) 小数点を使用することもできます。たとえば、1,100,000 バイトのバーストは、1.1m と入力できます。
• 一致するイン プロファイルトラフィックに対する conform アクションを、任意で次のように指定できます。
–デフォルトの conform アクションは、 transmit です。
–一致するトラフィックをすべてドロップするには、 drop キーワードを入力します。
• 任意で、CIR を超過するトラフィックについて、一致するアウト オブ プロファイルトラフィックをすべてマークダウン マップの指定に従ってマークダウンするには、 policed-dscp-transmit キーワードを入力します。「ポリシング済み DSCP マップの設定」を参照してください。
–ポリシングをまったく行わないようにするには、 transmit キーワードを入力して、一致するアウト オブ プロファイルトラフィックをすべて送信します。
次の例は、 ipp5 という名前のクラス マップを使用する、 ipp5-policy という名前のポリシー マップを作成する方法を示しています。クラス マップ ipp5 は、パケット優先順位を 6 に書き換えて、IP precedence 値の 5 と一致するトラフィックを集約ポリシングするように設定されています。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# policy-map ipp5-policy
Switch(config-pmap)# class ipp5
Switch(config-pmap-c)# set ip precedence 6
Switch(config-pmap-c)# dbl
Switch(config-pmap-c)# police 2000000000 2000000 conform-action transmit exceed-action policed-dscp-transmit
Switch(config-pmap-c)# end
次の例は、cs2 という名前のクラス マップを使用する、cs2-policy という名前のポリシー マップを作成する方法を示しています。クラス マップ cos5 は CoS 5 で一致するように設定されており、トラフィックを集約ポリシングするように設定されています。
Switch(config)# class-map cs2
Switch(config-cmap)# match cos 5
Switch(config-cmap)# exit
Switch(config)# policy-map cs2-policy
Switch(config-pmap)# class cs2
police 2000000000 2000000 conform-action transmit exceed-action policed-dscp-transmit
Switch(config-if)# service-policy input cs2-policy
Class Map match-all cs2 (id 2)
Switch# sh policy-map cs2-policy
police 2000000000 bps 2000000 byte conform-action transmit exceed-action policed-dscp-transmit Switch#
ポリシー マップの設定の確認
ポリシー マップの設定を確認するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config-pmap-c)#
end
|
ポリシー マップ クラス コンフィギュレーション モードを終了します。
(注) ポリシー マップに別のクラスを作成するには class コマンドを入力します。
|
ステップ 2 |
Switch#
show policy-map
policy_name
|
設定を確認します。 |
次に、設定を確認する例を示します。
Switch# show policy-map ipp5-policy
police 2000000000 2000000 conform-action transmit exceed-action
インターフェイスへのポリシー マップの付加
ポリシー マップをインターフェイスに付加するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config)#
interface {
vlan
vlan_ID | {
fastethernet |
gigabitethernet }
slot/interface
|
Port-channel
number }
|
設定するインターフェイスを選択します。 |
ステップ 2 |
Switch(config-if)# [
no ]
service-policy input
policy_map_name
|
ポリシー マップをインターフェイスの入力方向に付加します。インターフェイスからポリシー マップの付加を解除するには、 no キーワードを使用します。 |
ステップ 3 |
|
コンフィギュレーション モードを終了します。 |
ステップ 4 |
Switch#
show policy-map interface {
vlan
vlan_ID | {
fastethernet |
gigabitethernet }
slot/interface }
|
設定を確認します。 |
(注) IP ルーティングをグローバルにイネーブルにするまでは、インターフェイスのマーキング コマンドをイネーブルにできません。IP ルーティングがグローバルにディセーブルのときインターフェイスにサービス ポリシーを設定すると、設定は受け付けられても有効にはなりません。このような場合には、[Set command will not take effect since CEF is disabled.Please enable IP routing and CEF globally."(CEF がディセーブルなので設定されたコマンドは有効になりません。IP ルーティングおよび CEF をグローバルにイネーブルにしてください。)]というエラー メッセージが表示されます。IP ルーティングをグローバルにイネーブルにするには、ip routing および ip cef global コンフィギュレーション コマンドを実行します。その後、マーキング コマンドが有効になります。
次に、ポリシー マップ pmap1 をインターフェイス FastEthernet 5/36 に付加し、設定を確認する例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# interface fastethernet 5/36
Switch(config-if)# service-policy input pmap1
Switch# show policy-map interface fastethernet 5/36
Conform:383934 bytes Exceed:949888 bytes
class-map:class-default (match-any)
CoS 変換の設定
(注) Supervisor Engine 6-E は、この機能をサポートしていません。
レイヤ 2 VPN を提供するサービス プロバイダーは、サービス プロバイダーの VLAN を示す外部タグと顧客の VLAN を示す内部タグを持つ二重タグ トラフィックまたは Q-in-Q トラフィックを伝送します。外部タグの CoS に基づいて、SP ネットワーク内に Differentiated Service(diffserv; ディファレンシエーテッド サービス)を提供できます。
dot1q トンネル ポートで CoS 変換を使用すると、プロバイダーのコア ネットワークに入る dot1q トンネル パケットの外部タグの CoS 値を顧客の VLAN タグの CoS から導き出すことができます。その結果、プロバイダーは顧客の QoS セマンティックスをネットワーク内で保つことができます。
CoS 変換は、特定の着信 CoS 値に一致させ、一致したパケットに関連付けられている内部 DSCP を指定するようにユーザーが明示的に設定することによって実現されます。この内部 DSCP は、スイッチからの送信時に DSCP/CoS マッピングを通じて CoS に変換されます。外部 VLAN タグにはこの CoS 値がマーク付けされます。
このプロセス中に内部タグの CoS が保存され、サービス プロバイダーのネットワーク内で伝送されます。
次に、ポリシー マップが顧客の VLAN ID と CoS 値をネットワーク内で保つ例を示します。
interface GigabitEthernet5/1
switchport access vlan 100
switchport mode dot1q-tunnel
service-policy input cos_mutation
UBRL の設定
User Based Rate Limiting(UBRL)ではマイクロフロー ポリシング機能が採用され、トラフィック フローがダイナミックに学習されて、それぞれの一意のフローが個別レートにレート制限されます。UBRL は、内蔵 NetFlow がサポートされている Supervisor Engine V-10GE で使用できます。UBRL は、送信元または宛先フローマスクを持つルーテッド インターフェイス上の入力トラフィックに適用できます。最大 85,000 の個別フローおよび 511 の異なるレートをサポートできます。UBRL は、通常ユーザ単位のきめ細かいレート制限メカニズムが必要な環境(ユーザ単位の発信トラフィック レートがユーザ単位の着信トラフィック レートと異なる場合など)で使用されます。
(注) デフォルトでは、UBRL はルーティングされた IP トラフィックのみをポリシングします。スイッチングされる IP トラフィックをポリシングするには、ip flow ingress layer2-switched グローバル コマンドを使用します。ただし、レイヤ 3 インターフェイス上に UBRL 設定を残す必要があります。UBRL 設定と ip flow ingress layer2-switched グローバル コマンドを使用すれば、VLAN 間フローをポリシングできます( スイッチド/ブリッジド IP フローの設定を参照)。ip flow ingress コマンドを入力する必要はありません。
フローは 5 タプルとして定義されます(IP 送信元アドレス、IP 宛先アドレス、IP ヘッド プロトコル フィールド、レイヤ 4 送信元ポート、宛先ポート)。フローベース ポリサーでは、フローごとにトラフィックをポリシングできます。フローはダイナミックなので、クラス マップで識別値が必要です。
source-address キーワードを使用して match flow コマンドを指定すると、送信元アドレスが一意であるそれぞれのフローは、新しいフローとして扱われます。destination-address キーワードを使用してmatch flow コマンドを指定すると、宛先アドレスが一意であるそれぞれのフローは、新しいフローとして扱われます。ポリシー マップによって使用されるクラス マップは、フロー オプションが設定されている場合、フローベース ポリシー マップとして扱われます。 ip destination-address ip protocol L4 source-address L4 destination-address キーワードを使用してmatch flow コマンドを指定すると、一意の IP 送信元、IP 宛先、IP プロトコル、およびレイヤ 4 送信元、宛先アドレスを含む各フローは、新しいフローとして扱われます。
(注) マイクロフローは、Supervisor Engine V-10GE でのみサポートされます。
フローベース クラス マップとポリシー マップを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config)# class-map match-all class_name |
名前付きクラス マップを作成します。 |
ステップ 2 |
Switch(config-cmap)# match flow ip {source-address | ip destination-address ip protocol L4 source-address L4 destination-address | destination-address} |
フローのキーフィールドを指定します。 |
ステップ 3 |
Switch(config-cmap)# end |
クラスマップ コンフィギュレーション モードを終了します。 |
ステップ 4 |
Switch# show class-map class-name |
設定を確認します。 |
例 1
次の例では、送信元アドレスに関連付けられたフローベース クラス マップを生成する方法を示します。
Switch(config)# class-map match-all c1
Switch(config-cmap)# match flow ip {source-address [ip destination_address ip protocol L4 source-address L4 destination address]}
Switch# show class-map c1
Class Map match-all c1 (id 2)
Match flow ip source-address
例 2
次の例では、宛先アドレスに関連付けられたフローベース クラス マップを生成する方法を示します。
Switch(config)# class-map match-all c1
Switch(config-cmap)# match flow ip destination-address
Switch# show class-map c1
Class Map match-all c1 (id 2)
Match flow ip destination-address
例 3
インターフェイス FastEthernet 6/1 に 2 つのアクティブなフローがあり、送信元アドレスが 192.168.10.20と192.168.10.21 であるとします。次の例は、許可されるバースト値を 9000 バイトにして 1 Mbps でそれぞれのフローを維持する方法を示しています。
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# class-map c1
Switch(config-cmap)# match flow ip source-address
Switch(config-cmap)# exit
Switch(config)# policy-map p1
Switch(config-pmap)# class c1
Switch(config-pmap-c)# police 1000000 9000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fa6/1
Switch(config-if)# service-policy input p1
Switch# show policy-map interface
Class-map: c1 (match-all)
Match: flow ip source-address
Conform: 64995654 bytes Exceed: 2376965424 bytes
Class-map: class-default (match-any)
例 4
インターフェイス FastEthernet 6/1 に 2 つのアクティブなフローがあり、宛先アドレスが 192.168.20.20 と 192.168.20.21 であるとします。次の例は、許可されるバースト値を 9000 バイトにして 1 Mbps でそれぞれのフローを維持する方法を示しています。
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# class-map c1
Switch(config-cmap)# match flow ip destination-address
Switch(config-cmap)# exit
Switch(config)# policy-map p1
Switch(config-pmap)# class c1
Switch(config-pmap-c)# police 1000000 9000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fa6/1
Switch(config-if)# service-policy input p1
Switch# show policy-map interface
Class-map: c1 (match-all)
Match: flow ip destination-address
Conform: 6105636 bytes Exceed: 476652528 bytes
Class-map: class-default (match-any)
例 5
インターフェイス FastEthernet 6/1 上に 2 つのアクティブ フローが存在すると想定します。
SrcIp DstIp IpProt SrcL4Port DstL4Port
--------------------------------------------------------
192.168.10.10 192.168.20.20 20 6789 81
192.168.10.10 192.168.20.20 20 6789 21
次の設定の場合、各フローは許可されるバースト値を 9000 にして1000000 bps にポリシングされます。
(注) match flow ip source-address|destination-address コマンドを使用する場合、これら 2 つのフローは同じ送信元および宛先アドレスを持つため、1 つのフローに統合されます。
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# class-map c1
Switch(config-cmap)# match flow ip source-address ip destination-address ip protocol l4 source-port l4 destination-port
Switch(config-cmap)# exit
Switch(config)# policy-map p1
Switch(config-pmap)# class c1
Switch(config-pmap-c)# police 1000000 9000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastEthernet 6/1
Switch(config-if)# service-policy input p1
Switch# show policy-map interface
match flow ip source-address ip destination-address ip protocol l4 source-port l4 destination-port
police 1000000 bps 9000 byte conform-action transmit exceed-action drop
interface FastEthernet 6/1
Switch# show class-map c1
Class Map match-all c1 (id 2)
Match flow ip source-address ip destination-address ip protocol l4 source-port l4 destination-port
Switch# show policy-map p1
police 1000000 bps 9000 byte conform-action transmit exceed-action drop
Switch# show policy-map interface
Class-map: c1 (match-all)
Match: flow ip source-address ip destination-address ip protocol l4 source-port l4 destination-port
Conform: 64995654 bytes Exceed: 2376965424 bytes
Class-map: class-default (match-any)
階層型ポリサーの設定
(注) 階層型ポリサーは、Supervisor Engine V-10GE 上でのみサポートされます。
フロー ポリサーを既存ポリサーと結合し、2 つのポリシング レートをインターフェイスで作成できます。たとえばデュアル ポリシングを使用すると、特定インターフェイスのすべての着信トラフィック レートを 50 Mbps に制限し、このトラフィックの一部であるそれぞれのフローのレートを 2 Mbps に制限できます。
階層型ポリサーは、service-policyポリシーマップ設定コマンドで設定できます。ポリシー マップで使用されるクラス マップが、フローベース一致基準(match flow ip source-addressなど)と一致する場合、ポリシー マップはフローベースと呼ばれます。それぞれの子ポリシー マップは、親のすべての match access-group コマンドを継承します。
(注) フローベース ポリシー マップのみを子ポリシー マップとして設定できます。親ポリシー マップをフローベース ポリシー マップにすることはできません。子ポリシー マップと親ポリシー マップの両方で、クラスマップ設定にmatch-all が含まれている必要があります。
個別ポリサーか集約ポリサーの子としてフローベース ポリシー マップを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config)# policy-map policy_name |
個別ポリシーマップ名か集約ポリシーマップ名を指定します。 |
ステップ 2 |
Switch(config-pmap)# class class_name |
このポリシー マップのクラスマップ名を指定します。 |
ステップ 3 |
Switch(config-flow-cache)# service-policy service_policy_name |
フローベース ポリシー マップの名前を指定します。 |
(注) 親が集約ポリサー、子がマイクロフロー ポリサーである階層型ポリサー設定では、子のマイクロフロー ポリサーに一致するパケットはイン プロファイルであるパケットだけを報告します(つまり、ポリシング レートを一致させます)。ポリシング レートを超過するパケットは、クラスマップ パケット一致統計情報では報告されません。
次の例は、階層型ポリシー マップの作成方法を示しています。名前が aggregate-policy であるポリシー マップには、名前が aggregate-class であるクラス マップが含まれます。名前が flow-policy であるフローベース ポリシー マップは、子ポリシー マップとしてこのポリシー マップに付加されます。
Switch(config)# policy-map aggregate-policy
Switch(config-pmap)# class aggregate-class
Switch(config-pmap-c)# service-policy flow-policy
Switch(config-pmap-c)# end
次の例では、IP アドレス範囲が 101.237.0.0 ~ 101.237.255.255 であるトラフィックが 50 Mbps にポリシングされます。101.237.10.0 ~ 101.237.10.255 の範囲のフローは、2 Mbps の速度で個別にポリシングされます。このトラフィックは、集約ポリサーとその他のフローベース ポリサーという 2 つのポリサーを通過します。
次の例は、このシナリオの設定を示しています。
class-map match-all flow-class
match flow ip source-address
class-map match-all aggregate-class
police 2000000 bps 10000 byte conform-action transmit exceed-action drop
policy-map aggregate-policy
police 50000000 bps 40000 byte conform-action transmit exceed-action drop
service-policy flow-policy
access-list 10 permit 101.237.0.0 0.0.255.255
access-list 20 permit 0.0.10.0 255.255.0.255
次に、設定を確認する例を示します。
Switch# show policy-map flow-policy
police 2000000 bps 10000 byte conform-action transmit exceed-action drop
Switch# show policy-map aggregate-policy
Policy Map aggregate-policy
police 50000000 bps 40000 byte conform-action transmit exceed-action drop
service-policy flow-policy
Switch# show policy-map interface
Service-policy input: aggregate-policy
Class-map: aggregate-class (match-all)
Conform: 3627000 bytes Exceed: 0 bytes
Service-policy : flow-policy
Class-map: flow-class (match-all)
Match: flow ip source-address
Conform: 1649262 bytes Exceed: 59601096 bytes
Class-map: class-default (match-any)
Class-map: class-default (match-any)
PVQoS のイネーブル化
PVQoS 機能により、所定のインターフェイスの異なる VLAN 上で異なる QoS 設定を指定できます。通常、この機能はトランク ポートまたは音声 VLAN(Cisco IP Phone)ポートなど、複数の VLAN に所属するポート上で使用します。
PVQoS を設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config)#
interface {
fastethernet |
gigabitethernet | tengigabitethernet }
slot/interface
|
Port-channel
number
|
設定するインターフェイスを選択します。 |
ステップ 2 |
Switch(config-if)#
vlan-range vlan_range
|
関連する VLAN を指定します。 |
ステップ 3 |
Switch(config-if-vlan-range)# service-policy {input | output} policy-map |
ポリシーマップおよび方向を指定します。 |
ステップ 4 |
Switch(config-if-vlan-range)# exit |
クラスマップ コンフィギュレーション モードを終了します。 |
ステップ 5 |
Switch(config-if)# end |
インターフェイス コンフィギュレーション モードを終了します。 |
ステップ 6 |
Switch# show policy-map interface interface_name |
設定を確認します。 |
例 1
図34-6 に、PVQoS 構成のトポロジ例を示します。トランク ポート gi3/1 は、複数の VLAN(101 および 102)で構成されています。ポート内部には、独自のサービス ポリシーを VLAN 単位で作成できます。このポリシーはハードウェアで実行され、入力および出力ポリシング、DSCP の信頼、またはデータよりも音声パケットへの優先制御で構成されます。
図34-6 PVQoS 構成のトポロジ
次のコンフィギュレーション ファイルでは、ポート GigabitEthernet 3/1 に適用されるポリシーマップ P31_QOS を使用して、VLAN 単位で入力および出力ポリシングを実行する方法について示しています。
ip access-list 101 permit ip host 1.2.2.2 any
ip access-list 103 permit ip any any
match ip access-group 101
match ip access-group 103
Police 200m 16k conform transmit exceed drop
Police 100m 16k conform transmit exceed drop
Switchport trunk encapsulation dot1q
Switchport trunk allowed vlan 101-102
Service-policy input P31_QoS
Service-policy output P31_QoS
Service-policy input P32_QoS
Service-policy output P32_QoS
例 2
たとえば、インターフェイス GigabitEthernet 6/1 はトランク ポートで、VLAN 20、300 ~ 301、および 400 に属していると仮定します。次に、VLAN 20 と VLAN 400 のトラフィックにポリシーマップ p1、VLAN 300 ~ 301 のトラフィックにポリシーマップ p2 を適用する例を示します。
Switch# configure terminal
Switch(config)# interface gigabitethernet 6/1
Switch(config-if)# vlan-range 20,400
Switch(config-if-vlan-range)# service-policy input p1
Switch(config-if-vlan-range)# exit
Switch(config-if)# vlan-range 300-301
Switch(config-if-vlan-range)# service-policy output p2
Switch(config-if-vlan-range)# end
例 3
次に、インターフェイス GigabitEthernet 6/1 上で設定された VLAN 20 のポリシーマップの統計情報を表示する例を示します。
Switch# show policy-map interface gigabitethernet 6/1 vlan 20
GigabitEthernet6/1 vlan 20
Class-map: class-default (match-any)
Conform: 0 bytes Exceed: 0 bytes
例 4
次に、インターフェイス GigabitEthernet 6/1 上で設定されたすべての VLAN のポリシーマップの統計情報を表示する例を示します。
Switch# show policy-map interface gigabitethernet 6/1
GigabitEthernet6/1 vlan 20
Class-map: class-default (match-any)
Conform: 0 bytes Exceed: 0 bytes
GigabitEthernet6/1 vlan 300
Service-policy output: p2
Class-map: class-default (match-any)
Conform: 0 bytes Exceed: 0 bytes
GigabitEthernet6/1 vlan 301
Service-policy output: p2
Class-map: class-default (match-any)
Conform: 0 bytes Exceed: 0 bytes
GigabitEthernet6/1 vlan 400
Class-map: class-default (match-any)
Conform: 0 bytes Exceed: 0 bytes
インターフェイス上での QoS のイネーブル化またはディセーブル化
qos インターフェイス コマンドを使用すると、設定されている QoS 機能が再びイネーブルになります。 qos インターフェイス コマンドは、インターフェイスのキュー設定に影響しません。
インターフェイスからのトラフィックに対して QoS 機能をイネーブルまたはディセーブルにするには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config)#
interface {
vlan
vlan_ID | {
fastethernet |
gigabitethernet }
slot/interface
|
Port-channel
number }
|
設定するインターフェイスを選択します。 |
ステップ 2 |
Switch(config-if)# [
no ]
qos
|
インターフェイス上で QoS をイネーブルにします。 インターフェイス上で QoS をディセーブルにするには、 no キーワードを使用します。 |
ステップ 3 |
|
コンフィギュレーション モードを終了します。 |
ステップ 4 |
Switch#
show qos interface
|
設定を確認します。 |
次に、インターフェイス VLAN 5 上で QoS をディセーブルにする例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# interface vlan 5
Switch(config-if)# no qos
次に、設定を確認する例を示します。
Switch# show qos | begin QoS is disabled
QoS is disabled on the following interfaces:
レイヤ 2 インターフェイス上での VLAN ベース QoS の設定
デフォルトでは、QoS は物理インターフェイスに付加されたポリシー マップを使用します。レイヤ 2 インターフェイスについては、VLAN に付加されたポリシー マップを使用するように QoS を設定できます。(インターフェイスへのポリシー マップの付加を参照)。
レイヤ 2 インターフェイス上で VLAN ベースの QoS を設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config)#
interface {
fastethernet |
gigabitethernet }
slot/interface
|
Port-channel
number
|
設定するインターフェイスを選択します。 |
ステップ 2 |
Switch(config-if)# [
no ]
qos vlan-based
|
レイヤ 2 インターフェイス上で VLAN ベースの QoS を設定します。 インターフェイス上で VLAN ベース QoS をディセーブルにするには、 no キーワードを使用します。 |
ステップ 3 |
|
コンフィギュレーション モードを終了します。 |
ステップ 4 |
|
設定を確認します。 |
(注) レイヤ 2 インターフェイスに入力 QoS ポリシーが付加されていない場合、ポートが VLAN ベースで設定されていなくても、(パケットが着信する)VLAN に付加された入力 QoS ポリシーがあればそれが使用されます。このデフォルトが望ましくない場合には、レイヤ 2 インターフェイスにプレースホルダの入力 QoS ポリシーを付加します。同様に、レイヤ 2 インターフェイスに出力 QoS ポリシーが付加されていない場合、ポートが VLAN ベースで設定されていなくても、(パケットを送信する)VLAN に付加された出力 QoS ポリシーがあればそれが使用されます。このデフォルトが望ましくない場合には、レイヤ 2 インターフェイスにプレースホルダの出力 QoS ポリシーを付加します。
次に、インターフェイス FastEthernet 5/42 で VLAN ベースの QoS を設定する例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# interface fastethernet 5/42
Switch(config-if)# qos vlan-based
次に、設定を確認する例を示します。
Switch# show qos | begin QoS is vlan-based
QoS is vlan-based on the following interfaces:
(注) レイヤ 2 インターフェイスに VLAN ベース QoS が設定されている場合に、QoS ポリシーがない VLAN のポートにパケットが着信すると、ポートに付加された QoS ポリシーがある場合はそれが使用されます。これは、入力および出力 QoS ポリシーの両方に適用されます。
インターフェイスの信頼状態の設定
このコマンドは、インターフェイスの信頼状態を設定します。デフォルトでは、すべてのインターフェイスが untrusted です。
インターフェイスの信頼状態を設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config)#
interface {
vlan
vlan_ID | {
fastethernet |
gigabitethernet }
slot/interface
|
Port-channel
number }
|
設定するインターフェイスを選択します。 |
ステップ 2 |
Switch(config-if)# [
no ]
qos trust [
dscp |
cos ]
|
インターフェイスの信頼状態を設定します。 設定した値をクリアし、デフォルトに戻すには、 no キーワードを使用します。 |
ステップ 3 |
|
コンフィギュレーション モードを終了します。 |
ステップ 4 |
|
設定を確認します。 |
インターフェイスの信頼状態を設定する際、次の点に注意してください。
• インターフェイスの状態を untrusted に戻すには、 no qos trust コマンドを使用します。
• qos trust cos コマンドを使用してtrust cos に設定された入力インターフェイスに着信したトラフィックの場合、送信される CoS は、常に着信パケットの CoS(または、パケットをタグなしで受信した場合には、入力インターフェイスのデフォルト CoS)です。
• qos trust dscp コマンドを使用してインターフェイスの信頼状態を trust dscp に設定していない場合、セキュリティおよび QoS ACL 分類では、常にインターフェイス DSCP が使用され、着信パケットの DSCP は使用されません。
• Cisco IOS Release 12.2(31)SG 以降では、Supervisor Engine V-10GE を使用すれば、ポートの信頼状態に関わらずパケットの IP DSCP 値に基づいてパケットを分類できます。パケット送信キューイングは影響を受けません。送信キューについては、「送信キューの設定」を参照してください。
次に、 trust cos キーワードを使用してインターフェイス GigabitEthernet 1/1 を設定する例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# interface gigabitethernet 1/1
Switch(config-if)# qos trust cos
次に、設定を確認する例を示します。
Switch# show qos interface gigabitethernet 1/1 | include trust
インターフェイスの CoS 値の設定
QoS は、trusted として設定された入力インターフェイスからのタグなしフレーム、および untrusted として設定された入力インターフェイスからのすべてのフレームに、このコマンドで指定された CoS 値を割り当てます。
入力インターフェイスの CoS 値を設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config)#
interface {
fastethernet |
gigabitethernet }
slot/interface
|
Port-channel
number }
|
設定するインターフェイスを選択します。 |
ステップ 2 |
Switch(config-if)# [
no ]
qos cos
default_cos
|
入力インターフェイスの CoS 値を設定します。 設定した値をクリアし、デフォルトに戻すには、 no キーワードを使用します。 |
ステップ 3 |
|
コンフィギュレーション モードを終了します。 |
ステップ 4 |
Switch#
show qos interface {
fastethernet |
gigabitethernet }
slot/interface
|
設定を確認します。 |
次に、インターフェイス FastEthernet 5/24 にデフォルトとして CoS 5 を設定する例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# interface fastethernet 5/24
Switch(config-if)# qos cos 5
次に、設定を確認する例を示します。
Switch# show qos interface fastethernet 5/24 | include Default COS
インターフェイスの DSCP 値の設定
QoS は、trust dscp に設定されたインターフェイスで受信した非 IPv4 フレーム、および untrusted として設定されたインターフェイスで受信したすべてのフレームに、このコマンドで指定された DSCP 値を割り当てます。
入力インターフェイスの DSCP 値を設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config)#
interface {
fastethernet |
gigabitethernet }
slot/interface
|
Port-channel
number
|
設定するインターフェイスを選択します。 |
ステップ 2 |
Switch(config-if)# [
no ]
qos dscp
default_dscp
|
入力インターフェイスの DSCP 値を設定します。 設定した値をクリアし、デフォルトに戻すには、 no キーワードを使用します。 |
ステップ 3 |
|
コンフィギュレーション モードを終了します。 |
ステップ 4 |
Switch#
show qos interface {
fastethernet |
gigabitethernet }
slot/interface
|
設定を確認します。 |
次に、インターフェイス FastEthernet 5/24 のデフォルトとして DSCP 5 を設定する例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# interface fastethernet 5/24
Switch(config-if)# qos dscp 5
次に、設定を確認する例を示します。
Switch# show qos interface fastethernet 6/1
Default DSCP:0 Default CoS:0
Tx-Queue Bandwidth ShapeRate Priority QueueSize
1 31250000 disabled N/A 240
2 31250000 disabled N/A 240
3 31250000 disabled normal 240
4 31250000 disabled N/A 240
DSCP 値から特定の送信キューへのマッピング
DSCP 値を送信キューにマッピングするには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config)# [
no ] qos map
dscp dscp-values to tx-queue queue-id
|
DSCP 値を送信キューにマッピングします。 dscp-valuesには、最大 8 つの DSCP 値を指定できます。queue-idの範囲は、1 ~ 4 です。 送信キューから DSCP 値を削除するには、 no qos map dscp to tx-queue コマンドを使用します。 |
ステップ 2 |
|
コンフィギュレーション モードを終了します。 |
ステップ 3 |
Switch#
show qos maps dscp tx-queues
|
設定を確認します。 |
次に、送信キュー 2 に DSCP 値をマッピングする例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# qos map dscp 50 to tx-queue 2
次に、設定を確認する例を示します。
Switch# show qos maps dscp tx-queue
DSCP-TxQueue Mapping Table (dscp = d1d2)
d1 :d2 0 1 2 3 4 5 6 7 8 9
-------------------------------------
0 : 02 02 02 01 01 01 01 01 01 01
1 : 01 01 01 01 01 01 02 02 02 02
2 : 02 02 02 02 02 02 02 02 02 02
3 : 02 02 03 03 03 03 03 03 03 03
4 : 03 03 03 03 03 03 03 03 04 04
5 : 04 04 04 04 04 04 04 04 04 04
送信キュー間での帯域幅の割り当て
送信キューの帯域幅を設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config)#
interface
gigabitethernet
slot/interface
|
設定するインターフェイスを選択します。 |
ステップ 2 |
Switch(config-if)#
tx-queue queue_id
|
設定する送信キューを選択します。 |
ステップ 3 |
Switch(config-if-tx-queue)# [no] [
bandwidth rate | percent percent]
|
送信キューの帯域幅レートを設定します。 送信キューの帯域幅の比率をデフォルト値に戻すには、 no キーワードを使用します。 |
ステップ 4 |
Switch(config-if-tx-queue)#
end
|
コンフィギュレーション モードを終了します。 |
ステップ 5 |
Switch#
show qos interface
|
設定を確認します。 |
帯域幅レートは、インターフェイスによって異なります。
帯域幅を設定できるのは、次のインターフェイスに限られます。
• Supervisor Engine III(WS-X4014)上のアップリンク ポート
• WS-X4306-GB モジュール上のポート
• WS-X4232-GB-RJ モジュール上の 2 つの 1000BASE-X ポート
• WS-X4418-GB モジュール上の最初の 2 つのポート
• WS-X4412-2GB-TX モジュール上の 2 つの 1000BASE-X ポート
次に、送信キュー 2 に 1 Mbps の帯域幅を設定する例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# interface gigabitethernet 1/1
Switch(config-if)# tx-queue 2
Switch(config-if-tx-queue)#bandwidth 1000000
Switch(config-if-tx-queue)# end
送信キューのトラフィック シェーピングの設定
送信キューから送信されるパケットが指定の最大速度を超えないように設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config)#
interface {
fastethernet |
gigabitethernet }
slot/interface
|
設定するインターフェイスを選択します。 |
ステップ 2 |
Switch(config-if)#
tx-queue queue_id
|
設定する送信キューを選択します。 |
ステップ 3 |
Switch(config-if-tx-queue)# [
no ] [
shape rate | percent percent]
|
送信キューの送信レートを設定します。 送信キューの最大速度を削除するには、 no キーワードを使用します。 |
ステップ 4 |
Switch(config-if-tx-queue)#
end
|
コンフィギュレーション モードを終了します。 |
ステップ 5 |
Switch#
show qos interface
|
設定を確認します。 |
次に、送信キュー 2 のシェープ レートを 1 Mbps に設定する例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# interface gigabitethernet 1/1
Switch(config-if-tx-queue)# tx-queue 2
Switch(config-if-tx-queue)# shape 1000000
Switch(config-if-tx-queue)# end
ハイ プライオリティ送信キューの設定
送信キュー 3 をハイ プライオリティに設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch(config)#
interface {
fastethernet |
gigabitethernet }
slot/interface
|
設定するインターフェイスを選択します。 |
ステップ 2 |
Switch(config-if)#
tx-queue 3
|
設定する送信キュー 3 を選択します。 |
ステップ 3 |
Switch(config-if)# [
no ]
priority high
|
この送信キューをハイ プライオリティに設定します。 送信キューのプライオリティをクリアするには、 no キーワードを使用します。 |
ステップ 4 |
|
コンフィギュレーション モードを終了します。 |
ステップ 5 |
Switch#
show qos interface
|
設定を確認します。 |
次に、送信キュー3をハイ プライオリティに設定する例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# interface gigabitethernet 1/1
Switch(config-if-tx-queue)# tx-queue 3
Switch(config-if-tx-queue)# priority high
CoS/DSCP マップの設定
CoS/DSCP マップは、着信パケットの CoS 値を、DSCP 値(トラフィックのプライオリティを表すために QoS が内部的に使用する)にマッピングする目的で使用します。
表34-4 に、デフォルトの CoS/DSCP マップを示します。
表34-4 デフォルトの CoS/DSCP マップ
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
0 |
8 |
16 |
24 |
32 |
40 |
48 |
56 |
これらの値がネットワークに適さない場合は、値を変更する必要があります。
CoS/DSCP マップを変更するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch# configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)#
qos map cos cos1 ... cos8 to dscp dscp
|
CoS/DSCP マップを変更します。 cos1...cos8には、最大 8 つの CoS を入力できます。指定できる値の範囲は 0 ~ 7 です。各 CoS 値をスペースで区切ります。 dscpの範囲は 0 ~ 63 です。 |
ステップ 3 |
|
特権 EXEC モードに戻ります。 |
ステップ 4 |
Switch#
show qos maps cos-dscp
|
入力を確認します。 |
ステップ 5 |
Switch#
copy running-config startup-config
|
(任意)コンフィギュレーション ファイルに設定を保存します。 |
次に、入力 CoS/DSCP マッピングで CoS を 0 に設定する例を示します。
Switch# configure terminal
Switch(config)# qos map cos 0 to dscp 20
Switch# show qos maps cos dscp
--------------------------------
DSCP: 20 8 16 24 32 40 48 56
(注) デフォルトのマップに戻すには、no qos cos to dscp グローバル コンフィギュレーション コマンドを使用します。
次に、CoS/DSCP マッピング テーブル全体をクリアする例を示します。
Switch(config)# no qos map cos to dscp
ポリシング済み DSCP マップの設定
ポリシング済み DSCP マップは、ポリシングおよびマーキング アクションの結果、DSCP 値を新しい値にマークダウンする目的で使用します。
デフォルトのポリシング済み DSCP マップはヌルで、着信 DSCP 値が同じ DSCP 値にマッピングされます。
CoS/DSCP マップを変更するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)#
qos map dscp policed dscp-list to
dscp mark-down-dscp
|
ポリシング済み DSCP マップを変更します。 • dscp-listには、最大 8 つの DSCP 値をスペースで区切って入力します。その後ろに、 to キーワードを入力します。 • mark-down-dscp には、対応するポリシング済み(マークダウンされた)DSCP 値を入力します。 |
ステップ 3 |
|
特権 EXEC モードに戻ります。 |
ステップ 4 |
Switch#
show qos maps dscp policed
|
入力を確認します。 |
ステップ 5 |
Switch#
copy running-config startup-config
|
(任意)コンフィギュレーション ファイルに設定を保存します。 |
デフォルトのマップに戻すには、 no qos dscp policed グローバル コンフィギュレーション コマンドを使用します。
次に、DSCP 50 ~ 57 を、マークダウンされた DSCP 値 0 にマッピングする例を示します。
Switch# configure terminal
Switch(config)# qos map dscp policed 50 51 52 53 54 55 56 57 to dscp 0
Switch# show qos maps dscp policed
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 マップの設定
DSCP/CoS マップは、CoS 値を生成する目的で使用します。
表34-5 に、デフォルトの DSCP/CoS マップを示します。
表34-5 デフォルトの DSCP/CoS マップ
|
0 ~ 7 |
8 ~ 15 |
16 ~ 23 |
24 ~ 31 |
32 ~ 39 |
40 ~ 47 |
48 ~ 55 |
56 ~ 63 |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
これらの値がネットワークに適さない場合は、値を変更する必要があります。
DSCP/CoS マップを変更するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)# [no]
qos map dscp dscp-list to cos cos
|
DSCP/CoS マップを変更します。 • dscp-listには、最大 8 つの DSCP 値をスペースで区切って入力します。その後ろに、 to キーワードを入力します。 • cos には、一連の DSCP 値を対応させる CoS 値を 1 つだけ入力します。 DSCP の範囲は 0 ~ 63、CoS の範囲は 0 ~ 7 です。 デフォルトのマップに戻すには、 no qos dscp to cos グローバル コンフィギュレーション コマンドを使用します。 |
ステップ 3 |
|
特権 EXEC モードに戻ります。 |
ステップ 4 |
Switch#
show qos maps dscp to cos
|
入力を確認します。 |
ステップ 5 |
Switch#
copy running-config startup-config
|
(任意)コンフィギュレーション ファイルに設定を保存します。 |
次に、DSCP 値 0、8、16、24、32、40、48、および 50 を CoS 値 0 にマッピングし、マップを表示する例を示します。
Switch# configure terminal
Switch(config)# qos map dscp 0 8 16 24 32 40 48 50 to cos 0
Switch# show 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 値 08 は CoS 値 0 に対応しています。
レイヤ 2 制御パケット QoS のイネーブル化
(注) レイヤ 2 制御パケット QoS は、Supervisor Engine 6-E ではサポートされていません。
この機能では、大量の制御パケットの入力による高 CPU 利用率の問題を解決します。問題の解決は、制御したいプロトコル(QoS CAM にインストール済み)に対応する QoS スタティック エントリを無効にすることで行われます。
解決法では、ハードウェアは、レイヤ 2 制御トラフィックに一致するユーザ定義サービス ポリシーに対応するアクションを適用します。この制御モードは、デフォルト モードが既存のモードであるため、CLI を介して展開できます。
必須レイヤ 2 パケットに一致するようにポリシーを設定し、希望するレベルにポリシングする必要があります。レイヤ 2 制御パケットは、基本的に宛先 MAC アドレスで識別されます。この機能が、そのパケット タイプでイネーブルになっていると、目的の制御パケットに一致する MACL およびそれらの MACL に一致する対応クラスマップがまだ存在しない場合、自動生成されます。
制御パケットのポリシングを行うには、ポリシーマップでこれらのクラスマップを使用する必要があるだけです。その後他のポリシーマップと同様に、ポート単位、VLAN 単位、またはポート単位/VLAN 単位でポリシーマップを適用できます。
レイヤ 2 制御パケット QoS をイネーブルにするには、次の作業を実行します。
|
|
|
ステップ 1 |
|
コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)#
qos control-packets [bpdu-range | cdp-vtp | sstp]
|
レイヤ 2 制御ポリシングをイネーブルにします。 この機能をイネーブルにするパケット タイプを指定できます。 デフォルトでは、すべてのパケット タイプが選択されます。 |
ステップ 3 |
|
コンフィギュレーション モードを終了します。 |
ステップ 4 |
Switch#
show run | inc qos control-packets
|
設定を確認します。 |
次の表では、この機能で影響を受けるパケット タイプを一覧にします。
表34-6 パケット タイプとアクション可能なアドレス範囲
|
|
BPDU 範囲 |
0180.C200.0000 BPDU 0180.C200.0002 OAM、LACP 0180.C200.0003 Eapol |
CDP-VTP |
0100.0CCC.CCCC |
SSTP |
0100.0CCC.CCCD |
次に、レイヤ 2 制御パケット QoS を CDP-VTP パケットに設定する例を示します。
Switch(config)# qos control-packets cdp-vtp
Switch# show run | inc qos control-packets
qos control-packets cdp-vtp
すべてのパケット タイプでこの機能がイネーブルになっているとき、show running コマンドの出力には、qos control-packets 文字列が表示されます。
Switch# show running | inc qos control-packets
ここで、SSTP パケットに対してこの機能をディセーブルにしている場合、次の出力が表示されます。
Switch# show running | inc qos control-packets
qos control-packets bpdu-range
qos control-packets cdp-vtp
show running コマンドおよび一般的な関連コマンドで、目的の制御パケットをキャプチャ、ドロップ、およびポリシングする、MACL およびユーザ設定ポリシーのステータスを確認できます。
この機能をディセーブルにするには、no qos control-packets [bpdu-range | cdp-vtp | sstp] コマンドを実行します。たとえば、CDP-VTP パケットで機能をディセーブルにするには、no qos control-packets cdp-vtp コマンドを実行します。
(注) 指定したプロトコルタイプに対してこの機能の設定を解除すると、そのプロトコルタイプを処理するユーザ設定ポリシーは、直ちに無効な状態になります。TCAM リソースを保存するには、MACL およびクラスマップ(自動生成またはユーザ定義)とともにポリシーも削除します。
次の表に、対応パケット タイプで機能がイネーブルになっているときに作成されるクラスマップを示します。
表34-7 パケット タイプおよび自動生成 MACL/クラスマップ
|
|
BPDU 範囲 |
mac access-list extended system-control-packet-bpdu-range permit any 0180.c200.0000 0000.0000.000c class-map match-any system-control-packet-bpdu-range match access-group name system-control-packet-bpdu-range |
SSTP |
mac access-list extended system-control-packet-sstp permit any host 0100.0ccc.cccd class-map match-any system-control-packet-sstp match access-group name system-control-packet-sstp |
CDP-VTP |
mac access-list extended system-control-packet-cdp-vtp permit any host 0100.0ccc.cccc class-map match-any system-control-packet-cdp-vtp match access-group name system-control-packet-cdp-vtp |
次に、BPDU 範囲パケットに MACL およびポリサー設定を適用する例を示します。
• BPDU 範囲でこの機能をイネーブルにします。
qos control-packets bpdu-range
• 対応 MACL/クラスマップを作成します(自動的に実行)。
mac access-list extended system-control-packet-bpdu-range
permit any 0180.C200.0000 0000.0000.000C
class-map match-any system-control-packet-bpdu-range
match access-group name system-control-packet-bpdu-range
• ポリシーマップを作成し、目的のインターフェイス/VLAN に付加します。
class system-control-packet-bpdu-range
police 32000 bps 1000 byte conform-action transmit exceed-action drop
interface GigabitEthernet 1/1
switchport trunk encapsulation dot1q
service-policy input police_bpdu
システムが生成したクラスマップおよび MACL を変更しないでください。変更すると、スイッチがリロードを行うとき、または実行コンフィギュレーションをファイルから更新するとき、予期せぬ動作になることがあります。
これらのシステム生成クラスマップまたは MACL を調整または変更する必要がある場合、ユーザ定義クラスマップおよび MACL を作成する必要があります。次に、作成した新しいユーザ定義 MACL/クラスマップを使用して、目的のポリシングを実行します。
(注) ユーザ定義クラスマップ名をプレフィクス system-control-packet- で始める必要がある点だけが唯一の制限事項です。クラスマップが system-control-packet- で始まらない場合、特定のスーパーバイザ エンジンでは、設定された QoS アクションが実行されないことがあります。
(注) ユーザ定義 MACL に使用する名前には、制限事項はありません。
たとえば、次に挙げる名前は、制御パケットをポリシングする、有効なユーザ定義クラスマップ名です。
system-control-packet-bpdu1
system-control-packet-control-packet
system-control-packet-bla
たとえば、EAPOL、OAM、または BPDU パケットに異なるクラスマップを定義する予定である場合、自動生成クラスマップの system-control-packet-bpdu-range はすべてのパケットに一致するため、ユーザ定義 MACL/クラスマップ(前述の例)の作成が役立ちます。
mac access-list extended system-control-packet-bpdu
permit any 0180.c200.0000
class-map match-any system-control-packet-bpdu
match access-group name system-control-packet-bpdu
mac access-list extended system-control-packet-eapol
permit any 0180.c200.0003
class-map match-any system-control-packet-eapol
match access-group name system-control-packet-eapol
mac access-list extended system-control-packet-oam
permit any 0180.c200.0002
class-map match-any system-control-packet-oam
match access-group name system-control-packet-oam
次にこれらのクラスマップを使用して、共通ポリサーを system-control-packet-bpdu-range に適用する代わりに、各パケットに異なるポリサーを定義できます。
使用上の注意事項
この機能がイネーブルになっているとき、ポートおよび VLAN に適用された既存のポリシーは、制御したいレイヤ 2 制御パケットが偶発的に希望しない QoS アクションの対象になることがなく、この機能がスイッチ上で設定された他のポリシーから影響を受けることがないというポリシーであることを確認する必要があります。
前述の制御パケットで QoS をイネーブルにする前に、新規および既存のポリシーを調べて編集し、選択した制御パケットに一致するポリシーマップの分類子が正しい順番で定義および設定されていることを確認する必要があります。同じポリシーマップ内の後半に出現する別の分類子のアクションで意図しない結果になることを避けるため、制御パケットに一致する分類子をポリシーマップの冒頭に配置する必要があります。
class-default クラスに関連付けられたアクションの場合、その動作はスーパーバイザ エンジンの種類によって変わります。
• 内蔵 NetFlow がサポートされている Supervisor Engine V-10GE
class-default に関連付けられたアクションは、一致しない制御パケットには適用されず、control-packet クラスマップがそれより前に制御パケットを取得していない場合、デフォルトの許可アクションは適用されません。system-control-packet- で始まるクラスマップを使用するポリサーに関連付けられたアクションだけが、制御パケットに適用されます。
• 他のすべてのスーパーバイザ エンジン
class-default に関連付けられたアクションは、一致しない制御パケットに適用されます。
(注) 内蔵 NetFlow がサポートされている Supervisor Engine V-10GE では、これらのタイプのパケットでマイクロフロー統計は使用できません。
(注) BPDU 範囲でこの機能がイネーブルになっている場合、最初の 802.1X 認証フェーズが完了した後でのみ EAPOL パケットをポリシングできます。
(注) フォワーディング スパニングツリー ステートになっているポートでポート セキュリティがイネーブルになっているとき、レイヤ 2 制御パケットはそのポート上でポリシングできません。
機能の相互作用
各単一フローにユーザ設定ポリシーを適用したあと、レイヤ 2 制御パケット QoS の最初にある CoPP ポリシーを設定し、CPU へ送信される集約フローをレート制限します。その場合、基本的に CoPP は、ユーザ定義ポリシーによりポート単位/VLAN 単位ベースですでに入力側でフィルタされたパケットの出力側でさらにレート制限を行って、CPU のための別レベルの保護を提供します。CoPP は、ポート上にユーザ定義ポリシーが適用されている間は、第 2 レベルの防御となり、VLAN は第 1 レベルの防御になります。
たとえば、ポリシーマップマッチングおよびインターフェイス GigabitEthernet 1/1 から送信される BPDU 範囲トラフィックのポリシングを設定する場合、VLAN 1 は次のようになります。
class system-control-packet-bpdu-range
police 32000 bps 1000 byte conform-action transmit exceed-action drop
interface GigabitEthernet1/1
switchport trunk encapsulation dot1q
service-policy input police_bpdu_1
さらに、インターフェイス GigabitEthernet 1/2 VLAN 2 で 2 番めを設定すると、BPUD 範囲パケットのマッチングおよびポリシングは次のようになります。
class system-control-packet-bpdu-range
police 34000 bps 1000 byte conform-action transmit exceed-action drop
interface GigabitEthernet1/2
switchport trunk encapsulation dot1q
service-policy input police_bpdu_2
CoPP は次のように設定します。
policy-map system-cpp-policy
class system-cpp-bpdu-range
police 50000 bps 1000 byte conform-action transmit exceed-action drop
次の点に注意してください。
• インターフェイス 1/1、VLAN 1 では、BPDU 範囲パケットは、police_bpdu_1 に従って毎秒 32000 ビットのレートでポリシングされます。
• インターフェイス 1/2、VLAN 2 では、BPDU 範囲パケットは、police_bpdu_2 に従って毎秒 34000 ビットのレートでポリシングされます。
• 集約フローは、毎秒 50000 ビットのレートで CPU ポートの CoPP からポリシングされます。
また、ポートまたは VLAN のグループに適用された名前付き集約ポリサーを使用して、ポリサー リソースの消費を減らすこともできます。
(注) フォワーディング スパニングツリー ステートになっているポートでポート セキュリティがイネーブルになっているとき、レイヤ 2 制御パケットはそのポート上でポリシングできません。
Supervisor Engine 6-E での QoS の設定
次の内容について説明します。
• 「MQC ベースの QoS の設定」
• 「概要」
• 「プラットフォームでサポートされる分類基準および QoS 機能」
• 「プラットフォーム ハードウェアの機能」
• 「QoS サービス ポリシーを適用するための前提条件」
• 「QoS サービス ポリシーの適用に関する制約事項」
• 「分類」
• 「ポリシング」
• 「ネットワーク トラフィックのマーク付け」
• 「シェーピング、共有(帯域幅)、プライオリティ キュー、キュー制限、および DBL」
MQC ベースの QoS の設定
Cisco IOS Release 12.2(40)SG 以降では、Supervisor Engine 6-E を使用している Catalyst 4500 シリーズ スイッチは、QoS の MQC モデルを採用しています。QoS を適用するには、次の作業を完了できる CLI 構造であるモジュラ QoS コマンドライン インターフェイス(MQC)を使用します。
• トラフィック クラスの定義に使用する一致基準を指定します。
• トラフィック ポリシー(ポリシー マップ)を作成します。トラフィック ポリシーは、各トラフィック クラスに実行する QoS ポリシー アクションを定義します。
• ポリシー マップで指定されたポリシー アクションをインターフェイス、VLAN、またはポートおよび VLAN に適用します。
MQC についての詳細は、『Cisco IOS Quality of Service Solutions Configuration Guide』Release 12.3 の「Modular Quality of Service Command-Line Interface」を参照してください。
(注) MQC モデルでは、Supervisor Engines II-Plus から V-10GE のスイッチ QoS モデルで利用可能な信頼 機能がサポートされていません。Supervisor Engine 6-E でサポートされている MQC モデルでは、着信トラフィックはデフォルトで信頼できると見なされます。インターフェイスで信頼境界機能がイネーブルの場合のみ、ポートを非信頼モードにすることができます。このモードでは、スイッチは IP パケットの DSCP 値とイーサネット フレーム上にある VLAN タグの Cos 値を「0」とマークします。
概要
Supervisor Engine 6-E は、ベスト エフォートと QoS の DiffServ タイプの展開(RFC 2597、2598、2474、2475 は DiffServ 基準を定義)をサポートします。高レベル Supervisor Engine 6-E の QoS モデルは次のとおりです。
ステップ 1 着信パケットは、異なるパケットフィールド、受信ポートおよび/または VLAN に基づいてトラフィック クラスに割り当てられます。
ステップ 2 トラフィック クラスによっては、パケットはレート制限またはポリシングされ、低プライオリティ パケットがドロップされるか、パケット フィールド(DSCP および CoS)に低プライオリティのマークが付くように、任意で(通常はネットワークのエッジで)マーク付けされます。
ステップ 3 パケットがマーク付けされると、転送用に検索されます。このアクションでは、送信ポートとパケットを送信する VLAN が取得されます。
ステップ 4 パケットは、送信ポートおよび VLAN に基づいて出力方向で分類されます。分類では、入力 QoS によるパケットのマーキングが考慮されます。
ステップ 5 出力分類によって、パケットはポリシングされ、そのプライオリティは任意で(再び)マーク付けされて、パケットの送信キューがトラフィック クラスに従って決定されます。
ステップ 6 送信キューのステートは、AQM アルゴリズムおよびドロップしきい値設定を介してダイナミックに監視され、そのパケットをドロップするか、送信用にキューに入れるかが判別されます。
ステップ 7 伝送に適格である場合、パケットは送信キューに入れられます。送信キューは、出力 QoS 分類基準に基づいて選択されます。選択されたキューは、遅延および帯域幅に関して目的の動作を行います。
図34-7 に、Supervisor Engine 6-E の高レベル モデルを示します。
図34-7 QoS パケットの処理
プラットフォームでサポートされる分類基準および QoS 機能
次の表に、Supervisor Engine 6-E でサポートされるさまざまな分類基準およびアクションのまとめを示します。詳細については、『Catalyst 4500 Series Switch Command Reference』を参照してください。
|
|
match access-group |
指定した ACL をベースにクラス マップに対して一致基準を設定します。 |
match any |
すべてのパケットに一致する一致基準を、クラス マップに対して設定します。 |
match cos |
レイヤ 2 の CoS マーキングに基づいてパケットを照合します。 |
match destination-address mac |
宛先 MAC アドレスを一致基準として使用します。 |
match source-address mac |
送信元 MAC アドレスを一致基準として使用します。 |
match [ip] dscp |
特定の DSCP 値を一致基準として指定します。1 つの一致文に 8 つまでの DSCP 値を含めることができます。 |
match [ip] precedence |
IP Precedence 値を一致基準として指定します。 |
match protocol |
指定したプロトコルに基づいてクラス マップに対して一致基準を設定します。 |
match qos-group |
特定の QoS グループ値を一致基準として指定します。出力方向でのみ適用されます。 |
|
|
police |
トラフィック ポリシングを設定します。 |
police (percent) |
インターフェイスで使用可能な帯域幅のパーセンテージに基づいてトラフィック ポリシングを設定します。 |
police (two rates) |
CIRと PIR(Peak Information Rate; 最大情報レート)の 2 つのレートを使用して、トラフィック ポリシングを設定します。 |
service-policy |
(互いの内部でトラフィック ポリシーをネスト化[階層型トラフィック ポリシー]するための)一致基準として使用されるトラフィック ポリシーの名前を指定します。最大 2 レベルがサポートされます。 |
set cos |
発信パケットのレイヤ 2 CoS 値を設定します。 |
set dscp |
IPv4 の ToS バイトまたは IPv6 パケットのトラフィック クラス バイトで DSCP 値を設定して、パケットにマークを付けます。 |
set precedence |
パケット ヘッダーに Precedence 値を設定します。 |
set qos-group |
あとでパケットの分類に使用できる QoS グループの ID を設定します。 |
table map support |
別のパケット フィールドに基づいてパケット フィールドに無条件にマーク付けします。 |
priority |
ポリシー マップに属しているトラフィックのクラスにプライオリティを設定します。 |
shape |
指定したアルゴリズムに基づいて、指示されたビット レートにトラフィックをシェーピングします。 |
bandwidth |
8 つのキューそれぞれに、保障されている最小帯域幅を提供します。 |
dbl |
Dynamic Buffer Limiting です。 |
queue-limit |
送信キューが保持できるパケットの最大数を指定します。 |
プラットフォーム ハードウェアの機能
|
|
分類 |
64k 入力および 64k 出力分類エントリがサポートされます。 1 つのポリシーでは、最大 24k ACL を使用できます。 |
ポリシング |
16K ポリサーがサポートされています。ポリサーは、2k のブロックの指定方向に割り当てられます。たとえば、2k ポリサーを入力に、14k ポリサーを出力に、それぞれ使用できます。単一レート ポリサーは、1 つのポリサー エントリを使用します。Single Rate Three Color Marker(srTCM)(RFC 2697)および Two Rate Three Color Marker(trTCM)(RFC 2698)は、2 つのポリサー エントリを使用します。 |
マーキング |
CoS および DSCP/Precedence は、それぞれが 512 エントリをサポートできる 2 つの マーキング テーブルを介してサポートされます。各方向にそれぞれ別個のテーブルがあります。 |
キューイング |
キュー サイズは、シャーシおよびライン カードのタイプに応じてポートごとに設定可能な最大エントリ数で設定されます。 |
DBL |
設定されたすべてのクラスマップで DBL アクションをイネーブルにできます。 |
QoS サービス ポリシーを適用するための前提条件
スイッチ QoS モデルとは異なり、さまざまなターゲットで QoS をイネーブルにするための前提条件はありません。サービス ポリシーを適用すれば QoS がイネーブルになり、そのポリシーの適用を解除すると、ターゲット上で QoS がディセーブルになります。
QoS サービス ポリシーの適用に関する制約事項
インターフェイス、VLAN、またはポートおよび VLAN 上で、トラフィック マーキングを設定できます。インターフェイスは、レイヤ 2 アクセス ポート、レイヤ 2 スイッチ トランク、レイヤ 3 ルーテッド ポート、または EtherChannnel が考えられます。ポリシーは、vlan configuration モードを使用して VLAN に付加されます。
(注) ポリシーの SVI への付加はサポートされていません。
分類
Supervisor Engine 6-E は、レイヤ 2、IP および IPv6 パケットの分類をサポートします。入力で実行されるパケット マーキングは、出力方向で照合できます。前述の表では、すべての機能が一覧になっています。デフォルトでは、Supervisor Engine 6-E は、分類リソースも共有します。
デフォルトでは、ポート、VLAN、またはポート単位/VLAN 単位 ターゲットに同じポリシーが付加されている場合、ACL エントリが Supervisor Engine 6-E で共有されます。CAM エントリが共有されていたとしても、QoS アクションは各ターゲットで一意です。
次に例を示します。
police rate 1 m burst 200000
ポリシーマップ p1 がインターフェイス Gig 1/1 および Gig 1/2 に適用されている場合、1 つの CAM エントリ(IP パケットに一致する 1 つの ACE)が使用されますが、2 つのポリサー(ターゲットごとに 1 つずつ)が割り当てられます。したがって、すべての IP パケットがインターフェイス Gig 1/1 で 1 mbps にポリシングされ、インターフェイス Gig 1/2 上のパケットも 1 mbps にポリシングされます。
ポリシング
Supervisor Engine 6-E は、次の操作モードでポリサーをサポートします。
• Single Rate Policer Two Color Marker
この種類のポリサーは、CIR と通常バーストでのみ設定され、conform アクションと exceed アクションのみがあります。
これは、Supervisor Engine II-Plus から V-10GE ベース システムでサポートされる唯一の形式です。
• srTCM(RFC 2697)
• trTCM(RFC 2698)
• Color Blind Mode
設定済みポリサー レートの 0.75% のポリシング精度
Supervisor Engine 6-E は、16384(16 × 1024、16K)単一レート、単一バースト ポリサーをサポートします。16K ポリサーは、2K ポリサーの バンク 8 個で編成されています。ポリサー バンクは、QoS 設定に従い、ソフトウェアによってダイナミックに割り当てられます(入力または出力ポリサー バンク)。したがって、16K ポリサーは、次のようにダイナミックにソフトウェアで分割されます。
–0 入力ポリサーと 16K 出力ポリサー
–2K 入力ポリサーと 14K 出力ポリサー
–4K 入力ポリサーと 12K 出力ポリサー
–6K 入力ポリサーと 10K 出力ポリサー
–8K 入力ポリサーと 8K 出力ポリサー
–10K 入力ポリサーと 6K 出力ポリサー
–12K 入力ポリサーと 4K 出力ポリサー
–14K 入力ポリサーと 2K 出力ポリサー
–16K 入力ポリサーと 0 出力ポリサー
これらの数値は、単一レートおよびバースト パラメータをサポートするハードウェア内の個々のポリサー エントリを表します。この数値に基づき、Supervisor Engine 6-E は、次の数のポリサーをサポートします。
• 単一バースト付き 16K 単一レート ポリサー(Two Color Marker)
• 8K srTCM
• 8K trTCM
これらのポリサーは、2K ポリサー バンクの塊で、入力と力の間で分割されます。さまざまなタイプのポリサーは、すべてシステム内に共存できます。ただし、ポリサーの特定タイプ(srTCM、trTCM など)は、128 個のポリサーのブロックとして設定可能です。
プラットフォームの制約事項
プラットフォームの制約事項は、次のとおりです。
• マルチポリサー アクションを指定できます(CoS および IP DSCP の設定がサポートされています)。
• 無条件マーキングとポリサー ベース マーキングは同時にはサポートされません。
• ポリサー ベースのサービスポリシーがポートと VLAN の両方に付加されている場合、ポートベースのポリシングがデフォルトで優先されます。特定の VLAN ポリシーを指定ポートで優先させるには、ポート単位/VLAN 単位ポリシーを設定する必要があります。
• PVQoS ポリシーのあるポートチャネルを削除すると、スイッチはクラッシュします。
回避策:ポートチャネルを削除する前に、次の作業を実行します。
1. 存在する場合は PVQoS ポリシーを削除します。
2. no vlan-range コマンドを使用して、ポートチャネル上の VLAN 設定を削除します。
ネットワーク トラフィックのマーク付けの目的
トラフィック マーキングは、特定のトラフィック タイプを識別して個別に処理し、ネットワーク トラフィックを異なるカテゴリに分割するために使用されます。
トラフィック分類でネットワーク トラフィックをクラスに編成したあとには、トラフィック マーキングにより特定クラスに属するトラフィックに対して値(属性)をマーク付け(設定または変更)できます。たとえば、あるクラスで CoS 値を 2 から 1 に変更したり、別のクラスで DSCP 値を 3 から 2 に変更したりします。ここでは、これらの値は属性またはマーキング フィールドと呼ばれています。
設定および変更可能な属性は、次のとおりです。
• タグ付きイーサネット フレームの CoS 値
• IPv4 の ToS バイトでの DSCP/Precedence 値
• QoS グループ ID
• IPv6 のトラフィック クラス バイトでの DSCP/Precedence 値
ネットワーク トラフィックのマーク付けの利点
トラフィック マーキングにより、ネットワーク上のトラフィックの属性を細かく調整できます。より細かく調整できるようになったことで、特別な処理が必要なトラフィックを分離し、それによって最適なアプリケーション パフォーマンスの実現に役立ちます。
トラフィック マーキングにより、ネットワーク トラフィックの属性がどのように設定されているのかに基づき、トラフィックを処理する方法を決定できます。これにより、ネットワーク トラフィックは、次のように属性に基づいて複数のプライオリティ レベルまたは CoS にセグメント化できます。
• トラフィック マーキングは、ネットワークに入っていくトラフィックの IP Precedence 値または IP DSCP 値の設定によく使用されます。ネットワーク内のネットワーク デバイスは、新たにマーク付けされた IP Precedence 値を使用して、トラフィックの処理方法を決定します。たとえば、音声トラフィックには特定の IP Precedence または DSCP でマーク付けし、そのマーキングのすべてのパケットをキューに入れるように完全優先を設定できます。この場合、マーキングは完全優先キューのトラフィックを識別するために使用されます。
• トラフィック マーキングは、クラスベースの QoS 機能(一部、制約事項があるものの、ポリシー マップ クラス設定モードで使用可能な機能)のトラフィックを識別するために使用できます。
• トラフィック マーキングは、スイッチ内の QoS グループにトラフィックを割り当てるために使用できます。スイッチは QoS グループを使用し、送信用にトラフィックのプライオリティを設定する方法を決定します。通常 QoS グループ値は、次の 2 つの理由のうちいずれかのために使用されます。
–広範囲のトラフィック クラスを利用するため。QoS グループ値には、DSCP に類似する、64 の異なる個別マーキングがあります。
–Precedence または DSCP 値の変更が望ましくない場合にこれらを変更するため
トラフィック属性をマーク付けする 2 つの方法
(注) ここでは、ポリサー ベースのマーキングとは異なる無条件マーキングを説明します。無条件マーキングは、分類にのみ基づきます。
方法 1:無条件明示的マーキング(set コマンドを使用)
ポリシー マップで設定された set コマンドを使用して、変更するトラフィック属性を指定します。次の表に、使用可能な set コマンドと対応する属性を示します。set コマンドの詳細については、『Catalyst 4500 Series Switch Command Reference』を参照してください。
表34-8 set コマンドおよび適用可能なパケット タイプ
|
|
|
set cos |
発信トラフィックのレイヤ 2 CoS 値 |
イーサネット IPv4、IPv6 |
set dscp |
ToS バイトの DSCP 値 |
IPv4、IPv6 |
set precendence |
パケット ヘッダーの Precedence 値 |
IPv4、IPv6 |
set qos-group |
QoS グループ ID |
イーサネット、IPv4、IPv6 |
個別の set コマンドを使用している場合、それらの set コマンドはポリシー マップで指定されます。次に、 表34-8 に一覧になっている set コマンドの 1 つで設定されたポリシー マップの例を示します。
この設定例では、set cos コマンドがポリシー マップ(policy1)で設定され、CoS 属性をマーク付けしています。
ポリシー マップの設定の詳細については、「ポリシー マップの作成」を参照してください。
最後の作業として、インターフェイスにポリシー マップを付加します。インターフェイスへのポリシー マップの付加の詳細については、「インターフェイスへのポリシー マップの付加」を参照してください。
方法 2:無条件テーブルマップベース マーキング
トラフィック属性のマーク付けに使用できるテーブル マップを作成できます。テーブル マップとは、1 つのトラフィック属性を別のトラフィック属性にリストしてマップする、一種の 2 方向変換チャートです。テーブル マップは、多数対 1 タイプの変換とマッピング スキームをサポートします。テーブル マップは、トラフィック属性の to-from 関係を確立し、属性に行われる変更を定義します。つまり属性は、別の値から取得された 1 つの値に設定されます。値は、変更される特定の属性に基づきます。たとえば、Precedence 属性は 0 ~ 7 の数値に、一方 DSCP 属性は 0 ~ 63 の数値にそれぞれ設定できます。
次に、テーブル マップ設定の例を示します。
次の表に、テーブル マップを使用して to-from 関係を確立できるトラフィック属性の一覧を示します。
表34-9 to-from 関係を確立できるトラフィック属性
|
|
Precedence |
CoS、QoS グループ、DSCP、Precedence |
DSCP |
CoS、QoS グループ、DSCP、Precedence |
CoS |
DSCP、QoS グループ、CoS、Precedence |
次に、前に作成したテーブル マップ(table-map1)を使用するように設定されたポリシー マップ(policy2)の例を示します。
set cos dscp table table-map
この例では、テーブル マップで定義されたように、CoS 属性と DSCP 属性の間にマッピング関係が確立されています。
テーブル マップを使用するためのポリシー マップの設定の詳細については、「ポリシー マップの設定」を参照してください。
最後の作業として、インターフェイスにポリシー マップを付加します。インターフェイスへのポリシー マップの付加の詳細については、「インターフェイスへのポリシー マップの付加」を参照してください。
アクション ドライバのマーク付け
マーキング アクションは、2 つの QoS 処理手順のうちの 1 つに基づいてトリガーされます。
• 分類ベース:この場合、クラスに一致するすべてのトラフィックは、明示的方法またはテーブルマップ ベースの方法のいずれかを使用してマーク付けされます。この方法は、無条件マーキングと呼ばれます。
• ポリサー結果ベース:この場合、トラフィックのクラスは、パケットで使用可能なポリサー結果(conform/exceed/violate)に基づいて、別にマーキングされます。この方法は、条件付きマーキングと呼ばれます。
トラフィック マーキング手順のフローチャート
図34-8 に、トラフィック マーキングの設定手順の順番を示します。
図34-8 トラフィック マーキング手順のフローチャート
ネットワーク トラフィックのマーク付けに関する制約事項
パケット マーキング アクションには、次の制約事項が適用されます。
• QoS グループは、入力方向でのみマーク付けでき、無条件明示的マーキングのみをサポートします。
• 明示的マーキングは、ポリサーベース マーキングに対してのみサポートされます。
マルチ属性マーキングのサポート
Supervisor Engine 6-E は、トラフィックのクラスに一致するパケットの複数の QoS 属性をマーク付けできます。たとえば、DSCP、CoS、および QoS グループは、明示的マーキングまたはテーブルマップベース マーキングのいずれかを使用して、すべて一緒に設定できます。
(注) 複数フィールドまたはポリサーベース マルチフィールドの無条件明示的マーキングを使用するとき、ToS または CoS マーキング テーブルで設定可能なテーブルマップ数をマーク付けするマルチリージョン(conform/exceed/violate)は、サポートされる最大数より少なくなります。
マーキング用のハードウェア機能
Supervisor Engine 6-E は、パケットを送信、マークダウン、ドロップするポリサー アクションだけでなく、CoS および DSCP/Precedence フィールドでのマーキング アクションの種類を各エントリが指定する、128 エントリのマーキング アクション テーブルを提供します。このテーブルは、入力および出力の各方向でサポートされます。このテーブルは、無条件マーキングとポリサーベース マーキングの両方に使用されます。128 の一意のマーキング アクションまたは 32 の一意のポリサーベース アクション、またはこの 2 つの組み合わせをサポートするために使用可能です。
各マーキング フィールド(CoS および DSCP)のために、Supervisor Engine 6-E は、各方向に 512 エントリのマーキング テーブルを提供します。これらのテーブルは、スイッチ QoS モデルをサポートするスーパーバイザ エンジンで使用可能なマッピング テーブルに類似しています。ただし、ユーザが設定する複数の固有マッピング テーブルを保持する機能を持ちます。
たとえば、ToS マーキング テーブルは、DSCP/Precedence フィールド マーキングを提供し、次のいずれかとして使用できます。
• それぞれが 64 の DSCP または QoS グループ値を他の DSCP にマッピングする 8 つの異なるテーブルマップ
• それぞれが 8 つの CoS(16 の CoS および CFi)値を入力(出力)方向の DSCP にマッピングする 64(32) の異なるテーブルマップ
• 上記 2 種類のテーブルマップの組み合わせ
512 エントリの CoS マーキング テーブルでは、同様のマッピングが使用可能です。
テーブルマップベース無条件マーキングの設定
テーブルマップ ベースの無条件マーキングを設定するには、次の作業を実行します。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)# table-map name
|
テーブルマップを設定します。 |
ステップ 3 |
Switch(config-tablemap)# map from from_value to to_value
|
from_value から to_value へマップを作成します。 |
ステップ 4 |
Switch(config-tablemap)#
exit
|
テーブルマップ コンフィギュレーション モードを終了します。 |
ステップ 5 |
Switch(config)# policy-map name
|
ポリシーマップ コンフィギュレーション モードを開始します。 |
ステップ 6 |
Switch(config-p)# class name
|
QoS アクションのクラスを選択します。 |
ステップ 7 |
Switch(config-p-c)# set cos | dscp | prec cos | dscp | prec | qos-group [table name]
|
暗黙の、または明示的テーブルマップに基づいて、マーキング アクションを選択します。 |
ステップ 8 |
|
コンフィギュレーション モードを終了します。 |
ステップ 9 |
Switch#
show policy-map name
|
ポリシーマップの設定を確認します。 |
ステップ 10 |
Switch#
show table-map name
|
テーブルマップの設定を確認します。 |
次に、テーブルマップを使用してマーキング アクションをイネーブルにする例を示します。
Switch(config)# table-map dscp2Cos
Switch(config-tablemap)# map from 8 to 1
Switch(config-tablemap)# exit
Switch(config)# policy-map p1
Switch(config-pmap)# class ipp5
Switch(config-pmap-c)# set cos dscp table dscp2Cos
Switch(config-pmap-c)# end
Switch# show policy-map p1
set cos dscp table dscp2Qos
Switch# show table-map dscp2Cos
ポリサー結果ベースの条件付きマーキングの設定
ポリサー結果ベースの条件付きマーキングを設定するには、単一レートまたはデュアル レート ポリサーを設定します。「ポリシングの実装方法」を参照してください。
次に、各ポリサー リージョンの明示的アクションで Two Rate Three Color ポリサーを設定する例を示します。
Switch# configure terminal
Switch(config-pmap-c)# policer cir percent 20 pir percent 30
Switch(config-pmap-c-policer)# conform-action set-cos-transmit 3 set-dscp-transmit 10
Switch(config-pmap-c-policer)# exceed-action set-cos-transmit 4 set-dscp-transmit 20
Switch(config-pmap-c-policer)# violate action drop
Switch# show policy-map p1
police cir percent 20 pir percent 30
conform-action set-cos-transmit 3
conform-action set-dscp-transmit af11
exceed-action set-cos-transmit 4
exceed-action set-dscp-transmit af22
マーキング統計
マーキング統計では、マーク付けされたパケット数を示します。
無条件マーキングの場合、分類エントリは、マーク付けされたパケットにあるフィールドを代わりに示すマーキング アクション テーブルのエントリを示します。したがって、分類統計はそれ自身で無条件マーキング統計を示します。
ポリサーを使用する条件付きマーキングでは、ポリサーがパケット レート ポリサーである場合、ポリサーは異なるポリシング結果のバイト統計のみを提供するため、マーク付けされたパケット数は判別できません。
シェーピング、共有(帯域幅)、プライオリティ キュー、キュー制限、および DBL
Supervisor Engine 6-E は、送信キューの選択にあたり、分類ベース(クラスベース)モードをサポートします。このモードでは、送信キューは、出力 QoS 分類検索に基づいて選択されます。
(注) 出力キューのみがサポートされます。
Supervisor Engine 6-E ハードウェアは、ポートごとに 8 つの送信キューをサポートします。パケットをポートから転送することが決定されると、出力 QoS 分類により、パケットが入れられる必要がある送信キューが決定されます。
デフォルトでは、ポートにサービス ポリシーが関連付けられていない Supervisor Engine 6-E には、帯域幅または一種のプライオリティに関して保証のない 2 つのキュー(制御パケット キューおよびデフォルト キュー)があります。唯一の例外は、制御トラフィックに多少の最小リンク帯域幅が与えられるように、システム生成制御パケットが制御パケット キューに入れられることです。
出力ポリシーが、1 つまたは複数のトラフィックのクラスに対する 1 つまたは複数のキューイング関連アクションでポートに付加されるとき、キューが割り当てられます。ポートごとに 8 つのキューしかないので、キューイング アクションを持つトラフィック クラスは最大でも 8 つ(予約クラス、class-default を含む)となります。キュー アクションを持たないトラフィックのクラスは、キューイングなしクラスと呼ばれます。キューイングなしのクラス トラフィックは、最終的にクラス class-default に対応するキューを使用します。
キューイング ポリシー(キューイング アクションを持つポリシー)が付加されると、制御パケット キューが削除され、制御パケットは、分類ごとに関連キューに入れられます。
キューのダイナミックなサイズ変更(キュー制限クラスマップ アクション)は、 queue-limit コマンドを使用することでサポートされています。シャーシとライン カードの種類に基づいて、ポート上の 8 つのキューすべては、同じキュー サイズで設定されます。
シェーピング
シェーピングにより、キューにあるアウト オブ プロファイル パケットを遅延させるて指定のプロファイルに適合させることができます。シェーピングは、ポリシングとは異なります。ポリシングは、設定したしきい値を超えたパケットをドロップしますが、シェーピングは、パケットをバッファし、トラフィックを指定のしきい値内に保ちます。シェーピングでは、トラフィックの処理がポリシングよりも滑らかに行われます。policy-map クラス コンフィギュレーション コマンドを使用して、トラフィック クラスの平均レート トラフィック シェーピングをイネーブルにします。
Supervisor Engine 6-E は、約 1.5% の精度で 32 kbps ~ 10 gbps の範囲のシェーピングをサポートします。
キューイング クラスが明示的シェーピング設定を使用せずに設定されているとき、キュー シェーピングはリンク レートに設定されます。
サービス ポリシーにクラスレベル シェーピングを設定するには、次の手順を実行します。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)# policy-map policy-map-name
|
ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。 デフォルト設定では、ポリシー マップは定義されていません。 |
ステップ 3 |
Switch(config-pmap)# class class-name
|
トラフィック ポリシーを作成または変更するクラスの名前を指定し、ポリシーマップ クラス コンフィギュレーション モードを開始します。 デフォルト設定では、トラフィック クラスは定義されていません。 |
ステップ 4 |
Switch(config-pmap-class)# shape average {cir-bps kbps | percent percent}
|
平均レート トラフィック シェーピングをイネーブルにします。 帯域幅は、kbps またはパーセンテージで指定できます。 • cir-bps の場合、トラフィックがシェーピングされる ビット レートである、CIR を bps で指定します。有効範囲は 32000 ~ 10000000000 bps です。 • percent の場合、トラフィックのクラスをシェーピングするリンク レートのパーセンテージを指定します。有効範囲は 1 ~ 100 です。 デフォルト設定では、平均レート トラフィック シェーピングはディセーブルになっています。 |
ステップ 5 |
Switch(config-pmap-class)# exit
|
ポリシーマップ コンフィギュレーション モードに戻ります。 |
ステップ 6 |
Switch(config-pmap)# exit
|
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 7 |
Switch(config)# interface interface-id
|
物理ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 8 |
Switch(config-interface)#
service-policy output policy-map-name
|
ポリシーマップ名を指定し、物理インターフェイスに適用します。 |
ステップ 9 |
Switch(config-interface)#
end
|
特権 EXEC モードに戻ります。 |
ステップ 10 |
[policy-map-name [class class-map-name]]
Switch#
show policy-map interface interface-id
|
入力を確認します。 |
ステップ 11 |
Switch# copy running-config startup-config
|
(任意)コンフィギュレーション ファイルに設定を保存します。 |
既存のポリシー マップを削除するには、no policy-map policy-map-name グローバル コンフィギュレーション モードを使用します。既存のクラスを削除するには、no class class-name policy-map コンフィギュレーション コマンドを使用します。平均レート トラフィック シェーピングをディセーブルにするには、no shape average policy-map クラス コンフィギュレーション コマンドを使用します。
次に、クラスレベル、平均レート シェーピングを設定する例を示します。ここでは、トラフィック クラス class1 をデータ伝送レート 256 kbps に制限します。
Switch# configure terminal
Switch(config)# policy-map policy1
Switch(config-pmap)# class class1
Switch(config-pmap-c)# shape average 256000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1
Switch(config-if)# service-policy output policy1
Switch# show policy-map policy1
次に、queuing-class トラフィックについて、クラスレベル、平均シェーピング パーセンテージを、リンク帯域幅の 32% に設定する例を示します。
Switch# configure terminal
Switch(config)# policy-map queuing-policy
Switch(config-pmap)# class queuing-class
Switch(config-pmap-c)# shape average percent 32
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1
Switch(config-if)# service-policy output policy1
Switch# show policy-map queuing-policy
Policy Map queuing-policy
Average Rate Traffic Shaping
共有(帯域幅)
トラフィックのクラスに割り当てられた帯域幅は、輻輳中にクラスに対して保証される最小帯域幅です。送信キュー シェーピングは、出力リンク帯域幅が指定ポートの複数キューで共有されるプロセスです。
Supervisor Engine 6-E は、約 1.5% の精度で 32 kbps ~ 10 gbps の範囲の共有をサポートします。すべてのキューイング クラスにわたる設定帯域幅の合計は、リンク帯域幅を超えないようにしてください。
サービス ポリシーにクラスレベル帯域幅アクションを設定するには、次の手順を実行します。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)# policy-map policy-map-name
|
ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。 デフォルト設定では、ポリシー マップは定義されていません。 |
ステップ 3 |
Switch(config-pmap)# class class-name
|
トラフィック ポリシーを作成または変更するクラスの名前を指定し、ポリシーマップ クラス コンフィギュレーション モードを開始します。 デフォルト設定では、トラフィック クラスは定義されていません。 |
ステップ 4 |
Switch(config-pmap-class)# bandwidth {bandwidth-kbps | percent percent}
|
スイッチにトラフィックの輻輳があるとき、このポリシー マップに属するクラスに提供される最小帯域幅を指定します。スイッチが輻輳していない場合、クラスは bandwidth コマンドで指定した以上の帯域幅が与えられます。 デフォルト設定では、帯域幅は指定されていません。 帯域幅は、kbps またはパーセンテージで指定できます。 ・ bandwidth-kbps では、クラスに割り当てられる帯域幅を kbps で指定します。有効範囲は 32 ~ 10000000 です。 ・ percent では、クラスに割り当てられる使用可能帯域幅のパーセンテージを指定します。有効範囲は 1 ~ 100 です。 すべてのクラス帯域幅を kbps またはパーセンテージ(混在は不可)で指定します。 |
ステップ 5 |
Switch(config-pmap-class)# exit
|
ポリシーマップ コンフィギュレーション モードに戻ります。 |
ステップ 6 |
Switch(config-pmap)# exit
|
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 7 |
Switch(config)# interface interface-id
|
物理ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 8 |
Switch(config-interface)#
service-policy output policy-map-name
|
ポリシーマップ名を指定し、物理インターフェイスに適用します。 |
ステップ 9 |
Switch(config-interface)#
end
|
特権 EXEC モードに戻ります。 |
ステップ 10 |
[policy-map-name [class class-map-name]]
Switch#
show policy-map interface interface-id
|
入力を確認します。 |
ステップ 11 |
Switch# copy running-config startup-config
|
(任意)コンフィギュレーション ファイルに設定を保存します。 |
既存のポリシー マップを削除するには、no policy-map policy-map-name グローバル コンフィギュレーション モードを使用します。既存のクラスを削除するには、no class class-name policy-map コンフィギュレーション コマンドを使用します。デフォルトの帯域幅に戻すには、no bandwidth policy-map クラス コンフィギュレーション コマンドを使用します。
次に、prec1、prec2、および prec3 という 3 つのクラスに対して、policy11 という名前のクラスレベル ポリシー マップを作成する例を示します。これらのクラスのポリシーでは、最初のクラスのキューに 30%、2 番めのクラスのキューに 20%、3 番めのクラスのキューに 10% の使用可能帯域幅が、それぞれ割り当てられます。
Switch # configure terminal
Switch(config)# policy-map policy11
Switch(config-pmap)# class prec1
Switch(config-pmap-c)# bandwidth percent 30
Switch(config-pmap-c)# exit
Switch(config-pmap)# class prec2
Switch(config-pmap-c)# bandwidth percent 20
Switch(config-pmap-c)# exit
Switch(config-pmap)# class prec3
Switch(config-pmap-c)# bandwidth percent 10
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1
Switch(config-if)# service-policy output policy11
Switch# show policy-map policy11
次に、prec1、prec2、および prec3 という 3 つのクラスに対して、policy11 という名前のクラスレベル ポリシー マップを作成する例を示します。これらのクラスのポリシーでは、最初のクラスのキューに 300 mbps、2 番めのクラスのキューに 200 mbps、3 番めのクラスのキューに 100 mbps の使用可能帯域幅が、それぞれ割り当てられます。
Switch # configure terminal
Switch(config)# policy-map policy11
Switch(config-pmap)# class prec1
Switch(config-pmap-c)# bandwidth 300000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class prec2
Switch(config-pmap-c)# bandwidth 200000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class prec3
Switch(config-pmap-c)# bandwidth 100000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1
Switch(config-if)# service-policy output policy11
Switch# show policy-map policy11
キューで最小帯域幅が保証されない場合、明示的な帯域幅設定にキューが設定されると、ポート上の未割当帯域幅の一部を受け取るとプログラミングされます。以下の例を参照してください。
新しいキューに対して帯域幅が残っていない場合、または明示的共有/帯域幅設定を持たないすべてのキューの最小設定可能レート(32 kbps)を満たすのに未割り当て帯域幅が十分でない場合、ポリシーの関連付けは拒否されます。
たとえば、次のような 2 つのキューがあるとします。
そのキューの帯域幅割り当ては次のようになります。
同様に、もう 1 つのキューイング クラス(q3 とします)が明示的帯域幅なしで(たとえば、shape コマンドだけで)追加されると、帯域幅割り当ては次のようになります。
q3 = min(35%, q3-shape-rate)
class-default = max(35%, (100 - (q1 + q2 + q3 )))
プライオリティ キューイング
Supervisor Engine 6-E では、ポート上の伝送キューを 1 つだけ、完全優先(低遅延キューまたは LLQ)として設定できます。
LLQ では、トラフィック クラスに対して完全優先キューイングが提供されます。これにより、他のキューのパケットの前に、音声など遅延の影響を受けやすいデータを送信できます。プライオリティ キューは、空になるまでまたはシェーピング レートを下回るまで、最初に処理されます。クラスレベル ポリシーごとのプライオリティ キューの宛先にできるのは、1 つのトラフィック ストリームだけです。トラフィック クラスのプライオリティ キューをイネーブルにするには、クラス モードで priority policy-map class コンフィギュレーション コマンドを使用します。
LLQ は、レート制限されていないかぎり、他のキューを停止させることがあります。Supervisor Engine 6-E は、キューが輻輳すると(キュー長に基づく)、2 パラメータ ポリサー(レート、バースト)が有効になる条件付きポリシングをサポートしません。ただし、完全優先 キューに入れられたパケットのレート制限のための無条件ポリサーの適用はサポートします。
サービス ポリシーにクラスレベル プライオリティ キューイングを設定するには、次の手順を実行します。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)# policy-map policy-map-name
|
ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。 デフォルト設定では、ポリシー マップは定義されていません。 |
ステップ 3 |
Switch(config-pmap)# class class-name
|
トラフィック ポリシーを作成または変更するクラスの名前を指定し、ポリシーマップ クラス コンフィギュレーション モードを開始します。 デフォルト設定では、トラフィック クラスは定義されていません。 |
ステップ 4 |
Switch(config-pmap-class)# priority
|
完全優先 キューをイネーブルにし、トラフィックのクラスのプライオリティを設定します。 デフォルト設定では、完全優先 キューイングはディセーブルになっています。 |
ステップ 5 |
Switch(config-pmap-class)# exit
|
ポリシーマップ コンフィギュレーション モードに戻ります。 |
ステップ 6 |
Switch(config-pmap)# exit
|
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 7 |
Switch(config)# interface interface-id
|
物理ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 8 |
Switch(config-interface)#
service-policy output policy-map-name
|
ポリシーマップ名を指定し、物理インターフェイスに適用します。 |
ステップ 9 |
Switch(config-interface)#
end
|
特権 EXEC モードに戻ります。 |
ステップ 10 |
[policy-map-name [class class-map-name]]
Switch#
show policy-map interface interface-id
|
入力を確認します。 |
ステップ 11 |
Switch# copy running-config startup-config
|
(任意)コンフィギュレーション ファイルに設定を保存します。 |
既存のポリシー マップを削除するには、no policy-map policy-map-name グローバル コンフィギュレーション モードを使用します。既存のクラスを削除するには、no class class-name policy-map コンフィギュレーション コマンドを使用します。プライオリティ キューをディセーブルにするには、no priority policy-map class コンフィギュレーション コマンドを使用します。
次に、policy1 というクラスレベル ポリシーを設定する例を示します。class 1 は、プライオリティ キューとして設定され、空になるまで最初に処理されます。
Switch# configure terminal
Switch(config)# policy-map policy1
Switch(config-pmap)# class class1
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1
Switch(config-if)# service-policy output policy1
Switch# show policy-map policy1
キュー制限
クラスベース キューが物理ポートでインスタンス化される際に、デフォルト サイズで設定されます。このサイズは、このトラフィック クラスに属するパケットがキューイング可能なキュー エントリの数を表します。スケジューラは、キュー シェーピング、帯域幅、およびプライオリティ設定に基づいて、すでに送信可能なキューからパケットを移動します。
キュー制限は、指定時間内のキュー内にあるパケットの最大数を指定します。キューが一杯になった場合に、後続のパケットをキューイングしようとするとテール ドロップになります。ただし、DBL がキューでイネーブルである場合は、キューが一杯になっていなくても DBL アルゴリズムに基づいてパケットが確率的に廃棄されます。
帯域幅、シェーピング、またはプライオリティなどのキュー スケジューリングがすでに設定されている場合のみ、 queue-limit コマンドをクラスの下に設定できます。この要件の例外は、クラスデフォルト クラス上でスタンドアロン queue-limit コマンドをサポートしている場合です。
キュー メモリ
割当可能なキュー エントリ数は 8 の倍数でなければならず、16 ~ 8184 の範囲です。クラスベース キューが物理ポートでインスタンス化される際に、エントリのデフォルト数が指定されます。このデフォルト キュー サイズは、シャーシ内のスロット数と、各スロットの前面パネル ポート数に基づいています。
Supervisor Engine 6-E には、512K(524,288)キュー エントリがあり、そのうち 100K (102,400)キュー エントリが空いているリザーブ プール内に保留されています。残りの 412K(421,88)のうち、ドロップ ポートに 8184 エントリが提供され、CPU ポートに 11704 エントリが割り当てられます。残りのエントリは、シャーシ内のスロットへ均等に分けられます。冗長シャーシ内では、このエントリ分配のために 2 つのスーパーバイザ スロットが 1 つとして扱われます。各スロット内では、そのスロットにあるライン カード上に存在する前面パネルのポート間でキュー エントリの数が均等に分割されます。
インターフェイス上にあるキュー エントリのユーザ設定が専用割当分を越えた場合、システムが空いているリザーブ プールを活用して設定に対応しようとします。空いているリザーブ プールからのエントリは、先着順でインターフェイスに割り当てられます。
サーバ ポリシーの関連付け
キューイング アクションのある QoS サービス ポリシーが設定されているものの、明示的に queue-limit コマンドが物理インターフェイスの出方向に添付されていない場合、クラスベースの各キューはその物理ポートの専用割当分から同数のキュー エントリを取得します。queue-limit コマンドを使用してキューに明示的にサイズが指定されている場合、スイッチはインターフェイスの専用割当から全エントリを割り当てようとします。必要なエントリ数がインターフェイスの専用割当分を越える場合、スイッチは空いているリザーブからエントリを割り当てようとします。
キューに関連付けられたキュー エントリは常に連続している必要があります。この要件により、スイッチ間で共有されている 512K のキューエントリにフラグメンテーションが発生する可能性があります。たとえば、あるインターフェイスで専用割当分のキュー エントリが十分ない場合、そのキューを設定するために空いているリザーブ分を使用することになります。この場合、他のポートやスロットと共有できないため、専用割当分のキュー エントリは未使用のままになります。
インターフェイスに関連付けられている QoS サービスポリシーが削除された場合、空いているリザーブ分から取得したキュー エントリは空いているリザーブ プールに戻されます。インターフェイス キューイング コンフィギュレーションは、2 つのキュー(デフォルトのシェーピング、帯域幅、サイズを有するクラスデフォルトおよび制御パケット キュー)に戻ります。制御パケットキューはサイズ 16 で設定されていて、デフォルト キューはインターフェイスの専用割当分に基づいて可能な最大サイズに設定されています。
キュー割当障害
キュー メモリのフラグメンテーションや十分な空いているリザーブ エントリがないために、スイッチがインターフェイス上の 1 つまたは複数のキューで必要な明示的キュー サイズを満たすことができない場合があります。このシナリオでは、スイッチはエラー メッセージをログして、ユーザに障害を通知します。QoS サービス ポリシーはインターフェイス上に設定されたままになります。QoS サービスポリシーを削除し、スイッチ上の他のポートで、空いているリザーブ分からキュー エントリの現在の利用率を調査することで、エラーを修復することができます。
サービス ポリシーにクラスレベル queue-limit を設定するには、次の手順を実行します。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)# policy-map policy-map-name
|
ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。 デフォルト設定では、ポリシー マップは定義されていません。 |
ステップ 3 |
Switch(config-pmap)# class class-name
|
トラフィック ポリシーを作成または変更するクラスの名前を指定し、ポリシーマップ クラス コンフィギュレーション モードを開始します。 デフォルト設定では、トラフィック クラスは定義されていません。 |
ステップ 4 |
Switch(config-pmap-class)# shape average {cir-bps kbps | percent percent}
|
平均レート トラフィック シェーピングをイネーブルにします。 帯域幅は、kbps またはパーセンテージで指定できます。 • cir-bps の場合、トラフィックがシェーピングされる ビット レートである、CIR を bps で指定します。有効範囲は 32000 ~ 10000000000 bps です。 • percent の場合、トラフィックのクラスをシェーピングするリンク レートのパーセンテージを指定します。有効範囲は 1 ~ 100 です。 デフォルト設定では、平均レート トラフィック シェーピングはディセーブルになっています。 |
ステップ 5 |
Switch(config-pmap-class)# queue-limit
number-of-packets
|
パケット内の明示的なキュー サイズを提示します。サイズは 8 の倍数で、16 ~ 8184 の範囲にする必要があります。 |
ステップ 6 |
Switch(config-pmap-class)# exit
|
ポリシーマップ コンフィギュレーション モードに戻ります。 |
ステップ 7 |
Switch(config-pmap)# exit
|
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 8 |
Switch(config)# interface interface-id
|
物理ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 9 |
Switch(config-interface)#
service-policy output policy-map-name
|
ポリシーマップ名を指定し、物理インターフェイスに適用します。 |
ステップ 10 |
Switch(config-interface)#
end
|
特権 EXEC モードに戻ります。 |
ステップ 11 |
[policy-map-name [class class-map-name]]
Switch#
show policy-map interface interface-id
|
入力を確認します。 |
ステップ 12 |
Switch# copy running-config startup-config
|
(任意)コンフィギュレーション ファイルに設定を保存します。 |
明示的キュー サイズを削除するには、ポリシーマップ内のクラスで no queue-limit コマンドを使用します。
次に、明示的な queue-limit コマンドを使用してクラスベースのキューを設定する例を示します。ここでは、トラフィック クラス class1 をキュー サイズ 4048 に制限します。
Switch# configure terminal
Switch(config)# policy-map policy1
Switch(config-pmap)# class class1
Switch(config-pmap-c)# shape average 256000
Switch(config-pmap-c)# queue-limit 4048Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1
Switch(config-if)# service-policy output policy1
Switch# show policy-map policy1
DBL を経由した AQM
AQM は、パケットをポートの伝送キューに入れる前の、トラフィック フローのバッファ制御を提供します。この機能は、共有メモリ スイッチで非常に役立ち、特定のフローによるスイッチ パケット メモリの占有が行われないようにします。
(注) Supervisor Engine 6-E は、DBL 経由のアクティブ スイッチ バッファ管理をサポートします。
トラフィックのデフォルト クラス(クラス class-default)を除き、他のキューイング アクションが少なくとも 1 つ設定されている場合にのみ DBL アクションを設定できます。
サービス ポリシーのシェーピングとともにクラスレベル DBL アクションを設定するには、次の手順を実行します。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)# policy-map policy-map-name
|
ポリシーマップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。 デフォルト設定では、ポリシー マップは定義されていません。 |
ステップ 3 |
Switch(config-pmap)# class class-name
|
トラフィック ポリシーを作成または変更するクラスの名前を指定し、ポリシーマップ クラス コンフィギュレーション モードを開始します。 デフォルト設定では、トラフィック クラスは定義されていません。 |
ステップ 4 |
Switch(config-pmap-class)# shape average cir-bps
|
平均レート トラフィック シェーピングをイネーブルにします。 トラフィックがシェーピングされるビット レートである、CIR を bps で指定します。有効範囲は 32000 ~ 10000000000 bps です。 デフォルト設定では、平均レート トラフィック シェーピングはディセーブルになっています。 |
ステップ 5 |
Switch(config-pmap-class)# dbl
|
トラフィックのこのクラスに関連付けられたキューで DBL をイネーブルにします。 |
ステップ 6 |
Switch(config-pmap-class)# exit
|
ポリシーマップ コンフィギュレーション モードに戻ります。 |
ステップ 7 |
Switch(config-pmap)# exit
|
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 8 |
Switch(config)# interface interface-id
|
物理ポートを指定し、インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 9 |
Switch(config-interface)#
service-policy output policy-map-name
|
ポリシーマップ名を指定し、物理インターフェイスに適用します。 |
ステップ 10 |
Switch(config-interface)#
end
|
特権 EXEC モードに戻ります。 |
ステップ 11 |
[policy-map-name [class class-map-name]]
Switch#
show policy-map interface interface-id
|
入力を確認します。 |
ステップ 12 |
Switch# copy running-config startup-config
|
(任意)コンフィギュレーション ファイルに設定を保存します。 |
既存のポリシー マップを削除するには、no policy-map policy-map-name グローバル コンフィギュレーション モードを使用します。既存のクラスを削除するには、no class class-name policy-map コンフィギュレーション コマンドを使用します。関連付けられたキューで DBL をディセーブルにするには、no dbl policy-map class コンフィギュレーション コマンドを使用します。
次に、クラスレベルの DBL アクションを平均レート シェーピングとともに設定する例を示します。トラフィッククラス class1 に関連付けられたキューで DBL をイネーブルにします。
Switch# configure terminal
Switch(config)# policy-map policy1
Switch(config-pmap)# class class1
Switch(config-pmap-c)# shape average 256000
Switch(config-pmap-c)# dbl
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet1/1
Switch(config-if)# service-policy output policy1
Switch# show policy-map policy1
伝送キューの統計
伝送キューの統計情報を表示するには、show policy-map interface コマンドを使用します。
階層型ポリシー
論理 QoS セマンティクスをサポートするには、階層型ポリシーのサポートが必要です。次に、階層型ポリシーを設定して異なる動作を実現するためのさまざまな方法の例を示します。
例 1
次の例では、特定のキューに送信されたトラフィックのポリシングまたはマーキングされたサブネットと、デフォルト キューにポリシングまたはマーキングされた残りのトラフィックがあるとします。
service-policy police-and-mark-traffic-class-1
service-policy police-and-mark-traffic-class-2
policy-map police-and-mark-traffic-class-1
例 2
次の例では、すべてのトラフィックが集約でポリシングまたはマーキングされ、同じキュー分類ポリシーを使用するとします。MQC セマンティックスのように、クラスがキューイング アクションを使用しない場合、class-default は、そのトラフィックのクラスのキューとして動作します。
policy-map port-level-policy
service-policy police-and-mark-traffic-class-2
例 1 とは対照的に、例 2 はキュー設定の標準的な方法です。
例 3
次に、指定ポートをサブレートにシェーピングして、キューイングまたはポリシング ポリシーを適用する例を示します。
(注) ポート シェーピングは、Supervisor Engine 6-E ではサポートされていません。
この設定モデルには、次の手順が含まれます。
ステップ 1 ポリシングまたはマーキング ポリシー アクションの設定(最下位の子ポリシー)
ステップ 2 ステップ 1 で設定した各キューでのキューイング アクションおよびポリシングまたはマーキング パケットの設定(中位子ポリシー)
ステップ 3 ポート レベル シェーピングの設定(親ポリシー)
ポリシー設定は、次のようになります。
Policy-map port-level-policy
service-policy queuing-policy
Policy-map queuing-policy
service-policy police-and-mark-traffic-class-1
service-policy police-and-mark-traffic-class-default
Policy-map police-and-mark-traffic-class-1
QoS アクションの制約事項
• 異なるターゲット上で指定した方向に同じアクションを複数回実行することはできません。入力方向で、ポートと VLANの両方にパケットをポリシングすることはできません。ただし、入力ポートと出力 VLAN 上ではポリシングできます。
• キューイング アクションは、物理ポートの出力方向でのみ許可されます。
QoS ポリシーのプライオリティ
• ポートおよび VLAN 上のポリシーが、競合アクション(ポートと VLAN の両方でのポリシングまたはマーキング アクションなど)で設定されている場合、ポート ポリシーが取得されます。
• 指定ポートの VLAN 上でのポリシーが上書きされる必要がある場合、ユーザは PV ポリシーを設定できます。
QoS ポリシーの統合
適用可能ポリシーは、指定方向の指定パケットに適用されます。たとえば、出力 VLAN ベース ポリシングおよびマーキングを設定し、さらにそのポートでの選択的キューイングを設定すると、このパケットに対し、両方のポリシーからのアクションが適用されます。
ソフトウェア QoS
最高レベルには、ローカルで送信された、スイッチからの 2 種類のトラフィック(制御プロトコル パケット、ping、および Telnet)があります。この 2 種類とは、高プライオリティ トラフィック(通常は、OSPF Hello や STP などの制御プロトコル パケット)と低プライオリティ パケット(他のすべてのパケット タイプ)です。
ローカルで送信されたパケットの QoS 処理には、次の 2 つの方法があります。
Supervisor Engine 6-E には、ソフトウェア パスで処理されたパケットに QoS を適用する方法が用意されています。ソフトウェアでのこの QoS 処理を受けるパケットは、ソフトウェア スイッチド パケットとソフトウェア生成パケットの 2 つの種類に分類できます。
受信時には、ソフトウェア スイッチド パケットは、パケットを代わりに別のインターフェイスから送信する CPU に送信されます。そういったパケットの場合、入力ソフトウェア QoS は入力マーキングを提供し、出力ソフトウェア QoS は出力マーキングとキュー選択を提供します。
ソフトウェア生成パケットは、スイッチによりローカルで送信されたパケットです。これらのパケットに適用された出力ソフトウェア QoS 処理のタイプは、ソフトウェア スイッチド パケットに適用されたタイプと同じです。これら 2 つの処理タイプの唯一の違いは、ソフトウェア スイッチド パケットが、出力分類を目的として、パケットの入力マーキングを考慮する点です。
高プライオリティ パケット
高プライオリティ パケットは、次のいずれかとしてマーク付けされます。
• PAK_PRIORITY を使用して内部的に
• IP Precedence 6 を使用して(IP パケット用)
• CoS 6 を使用して(VLAN タグ付きパケット用)
これらのパケットは、次のように動作します。
• これらのパケットは、出力サービス ポリシーのように設定されたポリシング、AQM、ドロップしきい値(またはパケットをドロップすることができる機能)が原因でドロップされることはありません。ただし、ハードウェア リソースの制約(パケット バッファ、キューが満杯など)が原因でドロップされることはあります。
• これらのパケットは、ポートまたは VLAN である出力サービス ポリシーのマーキング設定に従って、分類およびマーク付けされます(ポリシーの関連付けを参照)。
• これらの高プライオリティ パケットは、次の基準に従って出力ポートのキューに入れられます。
–ポートに出力キューイング ポリシーがない場合、パケットは、デフォルト キューとは別に設定され、5% のリンク帯域幅が予約されている制御パケット キューに入れられます。
–ポートに出力キューイング ポリシーがある場合、そのパケットに適用可能な分類基準に基づいてキューが選択されます。
低プライオリティ パケット
高プライオリティ(前述)と見なされないパケットは、重要ではないと見なされます。これらのパケットには、ローカルで送信された ping、Telnet、およびその他のプロトコル パケットが含まれます。これらのパケットは、指定の伝送ポートを通過する他のパケットと同様に(出力分類、マーキングおよびキューイングを含む)、処理されます。