QoS の概要
ネットワークは通常、ベストエフォート型の配信方式で動作します。この場合、すべてのトラフィックに同じプライオリティが与えられ、送信されるタイミングも同じです。輻輳が発生すると、すべてのトラフィックが等しくドロップされます。
QoS 機能を設定すると、特定のネットワーク トラフィックを選択し、相対的な重要性に応じてプライオリティを指定し、トラフィック管理技術を使用して、優先処理を行うことができます。ネットワークに QoS を実装すると、ネットワーク パフォーマンスがさらに予測しやすくなり、帯域幅をより効率的に利用できるようになります。
図 78に、MQC のモデルを示します。
図 78 MQC のモデル
基本的な QoS には、次のアクションが含まれます。
■パケット分類:トラフィックが特定の基準に一致するかどうかに基づいて、トラフィックを組織化します。スイッチはパケットを受信すると、すべての主要なパケット フィールド(サービス クラス(CoS)、Diffserv コード ポイント(DSCP)、または IP precedence)を識別します。スイッチは、この内容またはアクセス コントロール リスト検索に基づいて、パケットを分類します。詳細については、「分類」を参照してください。
■パケットポリシングは着信トラフィックのレートを設定済みポリサーと比較して、パケットが適合か不適合かを決定します。設定されたポリサーに適合する、または超過するパケットのトラフィック フローを制御できます。認定情報レート(CIR)および最大情報レート(PIR)を設定し、CIR および PIR に適合するパケット(conform-action)、PIR には適合するが CIR には適合しないパケット(exceed-action)、および PIR 値を超えるパケット(violate-action)で実行するアクションを設定できます。詳細については、ポリシングを参照してください。
■パケットの優先順位付けまたはマーキングは、分類およびポリサー情報を評価して、実行するアクションを決定します。分類に属するすべてのパケットを、マーキングできます。ポリサーを設定した場合、許可された帯域幅要件(bps)に一致するまたは超過するパケットを条件付きで通過、廃棄、または再分類できます。詳細については、マーキングを参照してください。
■輻輳管理は、キューイングおよびスケジューリング アルゴリズムを使用して、ポートから発信されるトラフィックをキューイングおよびソートします。スイッチは、スケジューリングおよびトラフィック制限機能(クラスベース均等化キューイング(CBWFQ)、クラスベース トラフィック シェーピング、ポート シェーピング、およびクラスベース プライオリティ キューイング)をサポートします。他のトラフィック キューの処理中でも、特定のトラフィック クラスに保証された帯域幅を割り当てることができます。詳細については、「輻輳管理およびスケジューリング」を参照してください。
■スイッチ上でのキューイングは輻輳回避メカニズムである Weighted Tail-Drop(WTD)アルゴリズムによって拡張されます。WTD では、分類に基づいてトラフィック クラスを区別し、キュー サイズ(パケット数)を調整します。詳細については、「輻輳回避およびキューイング」を参照してください。
ここでは、次の情報について説明します。
■MQC
■入力ポリシーおよび出力ポリシー
■分類
■テーブル マップ
■ポリシング
■マーキング
■輻輳管理およびスケジューリング
■輻輳回避およびキューイング
MQC
MQC により、ユーザはトラフィック ポリシーを作成し、それらをインターフェイスに適用できます。1 つのトラフィック ポリシーには、1 つのトラフィック クラスと 1 つ以上の QoS 機能が含まれます。トラフィックの分類には、トラフィック クラスを使用します。また、トラフィック ポリシーの QoS 機能により、分類されたトラフィックの処理方法を決定します。
MQC を設定する手順は、次のとおりです。
1. トラフィック クラスを定義します。
class-map [ match-all | match-any ] class-map-name グローバル コンフィギュレーション コマンドを使用して、トラフィッククラスを定義し、クラスマップ コンフィギュレーション モードを開始します。トラフィッククラスは、名前、設定済み match コマンドの評価方法の指示(クラスマップで複数の match コマンドが設定されている場合)、および一連の match コマンドの 3 つの要素で構成されます。
■ class-map コマンドラインで、トラフィッククラスの名前を指定し、クラスマップ コンフィギュレーション モードを開始します。
■ class-map match-any または class-map match-all を入力することにより、次の match コマンドを評価するためのキーワードを任意で指定できます。 match-any を指定した場合、評価されるトラフィックは指定の基準のいずれか 1 つに一致する必要があります。 match-all を指定した場合、評価されるトラフィックは指定の基準のすべてに一致する必要があります。 match-all クラスマップには、1 つの match 文しか含めることができませんが、 match-any クラスマップには複数の match 文を含めることができます。
match-all または match-any を入力しない場合、デフォルトは match-all になります。
■パケット分類のための基準を指定するには、 match クラスマップ コンフィギュレーション コマンドを使用します。指定された基準に合っていれば、パケットはクラスのメンバーと見なされ、トラフィックポリシーで設定された QoS 仕様に従って転送されます。一致基準を満たさないパケットは、デフォルトのトラフィッククラスのメンバーとして分類されます。
2. トラフィック ポリシーを作成し、1 つまたは複数の QoS 機能にトラフィック クラスを関連付けます。
policy-map policy-map-name グローバル コンフィギュレーション コマンドを使用して、トラフィックポリシーを作成し、ポリシーマップ コンフィギュレーション モードを開始します。トラフィック ポリシーでは、QoS 機能を定義して、指定されたトラフィック クラスに関連付けます。トラフィックポリシーは、名前、トラフィッククラス( class ポリシーマップ コンフィギュレーション コマンドにより指定される)、およびそのクラスで設定された QoS ポリシーの 3 つの要素で構成されます。
■ policy-map コマンドラインで、トラフィックポリシーの名前を指定し、ポリシーマップ コンフィギュレーション モードを開始します。
■ポリシーマップ コンフィギュレーション モードで、指定のポリシーに対するトラフィックの分類で使用されるトラフィック クラス名を入力して、ポリシーマップ クラス コンフィギュレーション モードを開始します。
■ポリシーマップ クラス コンフィギュレーション モードで、QoS 機能を開始すると、分類されたトラフィックに適用できます。たとえば、入力ポリシーマップに、 set 、 police 、または police aggregate コマンドを使用したり、出力ポリシーマップに、 bandwidth 、 priority 、 queue-limit 、または shape average コマンドを使用できます。
注: パケットは、トラフィックポリシー内のいずれかのトラフィッククラスだけに一致します。パケットがトラフィック ポリシー内の複数のトラフィック クラスに一致する場合、ポリシーで定義された最初のトラフィック クラスが使用されます。パケットに複数の一致基準を設定するには、単一のトラフィック ポリシーに複数のトラフィック クラスを関連付けます。
3. インターフェイスにトラフィック ポリシーを付加します。
service-policy インターフェイス コンフィギュレーション コマンドを使用すると、インターフェイスで送受信されるパケット用にポリシーマップをインターフェイスに付加できます。トラフィック ポリシーの特性を着信または発信パケットに適用するかどうかを指定する必要があります。たとえば、 service-policy output class1 インターフェイス コンフィギュレーション コマンドを入力すると、 class1 という名前のトラフィックポリシーのすべての特性が、指定されたインターフェイスに付加されます。指定されたインターフェイスから発信されるすべてのパケットは、 class1 という名前のトラフィックポリシーで指定された基準に従って評価されます。
入力ポリシーおよび出力ポリシー
ポリシー マップは、入力ポリシー マップまたは出力ポリシー マップのいずれかになり、スイッチでパケットが送受信される際に、インターフェイスに適用されたサービス ポリシーによって付加されます。入力ポリシー マップは、受信されたトラフィック上でポリシングおよびマーキングを実行します。ポリシングされたパケットが最大許容レートを超過している場合、廃棄されるか、またはプライオリティが低くなります(マーク ダウン)。出力ポリシー マップは、スイッチから発信されるトラフィック上でスケジューリングおよびキューイングを実行します。
入力ポリシーと出力ポリシーは、基本構造は同じですが規制する特性が異なります。図 79に、入力ポリシーと出力ポリシーの関係を示します。
最大 256 のポリシー マップを定義できます。
スイッチで設定可能なポリサープロファイルの数は 256 です。スイッチでサポートされているポリサーインスタンスの数は 1024 - 1 で、スイッチ上のインターフェイス数より多い数です。24 ポート スイッチでは、使用できるポリサー インスタンスの数は 999 です。ポリサー プロファイルは複数のインスタンスで使用できます。
1 つのインターフェイスには、入力ポリシー マップと出力ポリシー マップを 1 つずつ適用できます。
CPU 保護がイネーブルになっている場合(デフォルト)、ポート当たり 45 の入力ポリサーを設定できます。 no policer cpu uni all グローバル コンフィギュレーション コマンドを入力し、スイッチをリロードして CPU 保護をディセーブルにすると、ユーザ定義クラスにはポート当たり最大 63 のポリサー(すべての 4 番目のポート上で 62)および class-default に 1 つのポリサーを設定できます。show policer cpu uni-eni {drop | rate} 特権 EXEC コマンドを入力し、CPU 保護がイネーブルになっているかどうか確認できます。
図 79 入力ポリシーおよび出力ポリシーの関係
入力ポリシー マップ
入力ポリシーマップの分類基準には、CoS、DSCP、または IP precedence 値のマッチング、またはアクセスコントロールリスト(ACL)か VLAN ID(ポート単位、VLAN QoS 単位)のマッチングが含まれます。入力ポリシー マップでは、次のいずれかのアクションを実行できます。
■CoS、DSCP、IP precedence、または QoS グループ値の設定、もしくはマーキング
■個別のポリシング
■集約ポリシング
アクセス グループまたは VLAN ID の照合は入力ポリシーだけで実行され、QoS グループの照合は出力ポリシーでだけ実行されます。入力ポリシーに割り当てられた QoS グループ番号を、出力ポリシーで照合できます。クラスの class-default は、ポリシーマップで他のいずれのクラスとも明示的に一致しない任意のトラフィックに対して、ポリシーマップで使用されます。入力ポリシーマップでは、 bandwidth 、 queue-limit 、 priority 、および shape average などのキューイングおよびスケジューリングキーワードはサポートされていません。
入力ポリシーマップの最大クラス数は 64 + class-default です。入力ポリシーには、最大 64 のクラスを設定できます。
出力ポリシー マップ
出力ポリシー マップの分類基準には、CoS、DSCP、IP Precedence、または QoS グループ値のマッチングが含まれます。出力ポリシー マップでは、次のいずれかのアクションを実行できます。
■キューイング( queue-limit )
■スケジューリング( bandwidth 、 priority 、 shape average )
出力ポリシー マップでは、アクセス グループのマッチングをサポートしません。その代わり、入力ポリシー マップの該当するアクセス グループを照合し、QoS グループを設定することにより、QoS グループを使用できます。出力ポリシー マップでは、QoS グループを照合できます。詳細については、「QoS グループ に基づく分類」を参照してください。
出力ポリシーは、マーキングまたはポリシングをサポートしません(ポリシングのあるプライオリティの場合は除く)。スイッチ上では、出力パケットのマーキングは実行されません(出力ポリシーには set コマンドが含まれません)。
クラスの class-default は、ポリシーマップで他のいずれのクラスとも明示的に一致しない任意のトラフィックに対して、ポリシーマップで使用されます。出力ポートには最大 4 つのキューがあるため、出力ポリシー マップには最大 4 つのクラスを設定できます(class-defalt を含む)。
出力ポートに付加される出力ポリシー マップは、パケットの入力ポートに付加された入力ポリシー マップですでに一致しているパケットだけを照合できます。スイッチ上の任意のポートまたはすべてのポートに、出力ポリシー マップを付加できます。スイッチは各ポートに固有の出力ポリシー マップの設定および付加をサポートしています。ただし、これらの出力ポリシー マップには、それぞれ固有のキュー制限を 3 つしか設定できません。これら 3 つの固有のキュー制限設定は、スイッチ上にあるポート数に応じた数の出力ポリシー マップに含まれます。帯域幅、プライオリティ、またはシェーピングの設定には制限はありません。
cpu traffic qos [cos value | dscp value | precedence value | qos-group value] グローバル コンフィギュレーション コマンドを使用して、CPU が生成したトラフィックの出力ポリシー分類基準を設定できます。
分類
分類では、パケット ヘッダーのフィールドを検査して、トラフィックの種類を区別します。スイッチはパケットを受信すると、ヘッダーを検査して、すべての主要なパケット フィールドを識別します。パケットは、パケットの ACL、DSCP 値、CoS 値、IP precedence 値、または VLAN ID に基づいて分類されます。図 80に、分類情報を伝達するのに、非推奨 IP タイプ オブ サービス(ToS)フィールドから 6 ビットを使用する、レイヤ 2 またはレイヤ 3 IP パケット ヘッダーで伝達される分類情報の例を示します。
■レイヤ 2 の IEEE 802.1Q トランクとして設定されたポートでは、ネイティブ VLAN(仮想 LAN)のトラフィックを除き、すべてのトラフィックが 802.1Q フレームに収められます。レイヤ 2 802.1Q フレームヘッダーには、2 バイトのタグ制御情報フィールドがあり、上位 3 ビット(ユーザプライオリティビット)で CoS 値を、下位 12 ビットで VLAN ID 値を伝達します。他のフレーム タイプでレイヤ 2 CoS 値を伝達することはできません。
レイヤ 2 CoS 値の範囲は 0 ~ 7 です。
■レイヤ 3 IP パケットは、IP precedence 値または DSCP 値のいずれかを伝達します。DSCP 値は IP precedence 値と下位互換性があるので、QoS ではどちらの値も使用できます。
IP precedence 値の範囲は 0 ~ 7 です。DSCP 値の範囲は 0 ~ 63 です。
■出力は、レイヤ 2 またはレイヤ 3 のマーキング タイプ、マーキング値、およびパケット タイプに基づいて再マーキングされます。
図 80 フレームおよびパケットにおける QoS 分類レイヤ
ここでは、分類に関するその他の情報について説明します。
■クラス マップ
■match コマンド
■レイヤ 2 CoS に基づく分類
■IP precedence に基づく分類
■IP DSCP に基づく分類
■分類の比較
■QoS ACL に基づく分類
■QoS グループ に基づく分類
■VLAN ID に基づく分類
クラス マップ
前述のとおり、MQC クラス マップを使用して、特定のトラフィック フロー(またはクラス)に名前を付けて、他のすべてのトラフィックと区別します。クラス マップでは、特定のトラフィック フローとの比較を行い、さらにそれを分類するために使用する基準を定義します。複数のトラフィック タイプを分類する場合は、別のクラス マップを作成し、異なる名前を使用できます。クラスマップ名を指定して class-map コマンドを入力すると、クラスマップ コンフィギュレーション モードが開始されます。このモードで、 match クラス マップ コンフィギュレーション コマンドを使用して、トラフィックの一致条件を定義します。パケットはクラスマップ基準に照合されてから、ポリシー マップで指定された関連アクションが実行されます。
分類では、複数の基準に照合できます。また、 class map match-all class-map name グローバル コンフィギュレーション コマンドを使用して、クラスマップ コンフィギュレーション モードを開始することにより、パケットヘッダー内にクラスマップのすべての一致基準が存在する必要があるクラスマップを作成できます。
注: match-all クラスマップで設定できる match エントリは 1 つだけです。
class map match-any class-map name グローバル コンフィギュレーション コマンドを使用すると、リストされた基準のいずれかを使用する分類を定義できます。
注: match-all または match-any を入力しない場合、デフォルトは match-all になります。match-all クラス マップでは、複数の分類基準(match 文)を設定できません。一致条件を含まないクラスマップは、デフォルトで match-all となります。
match コマンド
パケットの分類に使用される内容の種類を設定するには、 match クラスマップ コンフィギュレーション コマンドを使用して、分類基準を指定します。設定された基準に一致するパケットは、特定のクラスに属し、指定されたポリシーに従って転送されます。たとえば、CoS 値、IP DSCP 値、および IP precedence 値で match クラスマップコマンドを使用できます。これらの値は、パケット上で マーキング と呼ばれます。また、アクセス グループ、QoS グループ、または VLAN ID、またはポート単位、VLAN QoS 単位の ID 範囲と照合できます。
■入力ポリシーマップでは、同一ポリシーマップまたはクラスマップ内に IP 分類( match ip dscp 、 match ip precedence 、IP ACL の match access-group )と非 IP 分類( match cos 、または MAC ACL の match access-group )を設定できません。
■レイヤ 2 だけ分類が設定された入力ポリシーマップが、ルーテッド ポートまたはルーテッド スイッチ仮想インターフェイス(SVI)を含むスイッチ ポートに付加されている場合、サービス ポリシーはルーティング適格トラフィック上ではなく、スイッチング適格トラフィック上でだけ機能します。
■802.1Q トンネル ポート上でトラフィックを分類するには、MAC ACL に基づくレイヤ 2 分類を含む入力ポリシー マップだけが使用できます。レイヤ 3 分類、match レイヤ 2 CoS 分類、またはポート単位、VLAN 単位のポリシーが設定された入力ポリシー マップは、トンネル ポート上でサポートされません。
■出力ポリシー マップでは、異なるクラス マップで同じ分類基準(つまり、同じ match 修飾子および match 値)を使用できません。
次に、クラスマップ example を作成して、リストされた基準のいずれかに一致するクラスを定義する例を示します。この例では、DSCP 値 が 32 または 40 のパケットが受信された場合、このパケットはクラス マップにより識別(分類)されます。
Switch(config)# class-map match-any example
Switch(config-cmap)# match ip dscp 32
Switch(config-cmap)# match ip dscp 40
Switch(config-cmap)# exit
レイヤ 2 CoS に基づく分類
match コマンドを使用することにより、CoS 値(0 ~ 7 の範囲)に基づいてレイヤ 2 トラフィックを分類できます。
注: match cos コマンドは、レイヤ 2 802.1Q トランクポートでだけサポートされます。
次に、CoS 値 5 に一致するクラス マップを作成する例を示します。
Switch(config)# class-map premium
Switch(config-cmap)# match cos 5
Switch(config-cmap)# exit
IP precedence に基づく分類
IPv4 トラフィックは、パケットの IP precedence 値(0 ~ 7 の範囲)に基づいて分類できます。
次に、IP precedence 値 4 に一致するクラス マップを作成する例を示します。
Switch(config)# class-map sample
Switch(config-cmap)# match ip precedence 4
Switch(config-cmap)# exit
IP DSCP に基づく分類
IP DSCP 値に基づいて IPv4 トラフィックを分類し、 match ip dscp クラスマップ コンフィギュレーション コマンドを入力する場合、次のいくつかの分類オプションがあります。
■特定の DSCP 値(0 ~ 63)の入力
■IP precedence 値および DSCP 値 0 に対応するデフォルト サービスの使用。デフォルトの Per Hop Behavior(PHB)は通常、ベストエフォート サービスです。
■DSCP 値をバイナリ形式で入力する、保証型転送(AF)の使用。AF では、輻輳が発生し、トラフィックが最大許容レートを超過していない場合に、パケットの特定のクラスが転送される相対的な確率を設定します。AF per-hop behavior により、IP パケットが異なる 4 つの AF クラス(AF11 ~ 13 [最高]、AF21 ~ 23、AF31 ~ 33、および AF41 ~ 43 [最低])で配信されます。各 AF クラスには、特定のバッファ スペース容量および廃棄確立が割り当てられ、DSCP 番号がバイナリ形式で指定されます。輻輳が発生すると、パケットの廃棄優先順位により、クラス内のパケットの相対的な重要性が決定されます。AF41 では、パケットがネットワークの端から端へ転送される確立が最も高くなります。
■1 ~ 7 の範囲の Class Selector(CS;クラス セレクタ)サービス値の入力(パケットの ToS フィールドの IP precedence ビットに対応)
■急送型転送(EF)の使用による低遅延パスの指定。これは、DSCP 値 46 に対応します。EF サービスでは、プライオリティ キューイングを使用して、プライオリティの低いトラフィック クラスをプリエンプトします。
次に、使用可能な分類オプションを表示します。
Switch(config-cmap)# match ip dscp ?
<0-63> Differentiated services codepoint value
af11 Match packets with AF11 dscp (001010)
af12 Match packets with AF12 dscp (001100)
af13 Match packets with AF13 dscp (001110)
af21 Match packets with AF21 dscp (010010)
af22 Match packets with AF22 dscp (010100)
af23 Match packets with AF23 dscp (010110)
af31 Match packets with AF31 dscp (011010)
af32 Match packets with AF32 dscp (011100)
af33 Match packets with AF33 dscp (011110)
af41 Match packets with AF41 dscp (100010)
af42 Match packets with AF42 dscp (100100)
af43 Match packets with AF43 dscp (100110)
cs1 Match packets with CS1(precedence 1) dscp (001000)
cs2 Match packets with CS2(precedence 2) dscp (010000)
cs3 Match packets with CS3(precedence 3) dscp (011000)
cs4 Match packets with CS4(precedence 4) dscp (100000)
cs5 Match packets with CS5(precedence 5) dscp (101000)
cs6 Match packets with CS6(precedence 6) dscp (110000)
cs7 Match packets with CS7(precedence 7) dscp (111000)
default Match packets with default dscp (000000)
ef Match packets with EF dscp (101110)
DSCP のプライオリティ設定の詳細については、RFC-2597(AF PHB)、RFC-2598(EF)、または RFC-2475(DSCP)を参照してください。
802.1Q トンネリング CoS マッピング
スイッチでは、カスタマー VLAN(C-VLAN)からサービスプロバイダー VLAN(S-VLAN)への VLAN マッピングがサポートされています。QoS の場合、スイッチはカスタマー CoS(C-CoS)またはカスタマー DSCP(C-DSCP)値からサービス プロバイダー CoS(S-CoS)を設定でき、従来の 802.1Q トンネリング(QinQ)または選択した QinQ VLAN マッピングにより任意のトラフィックについて内部 CoS を外部 CoS にマッピングできます。このデフォルトにより、カスタマー CoS がサービス プロバイダー ネットワークにコピーされます。
スイッチでは、トランクポートで従来の QinQ および選択した QinQ について C-CoS から S-CoS への伝播がサポートされています。これはデフォルト動作であり、設定は必要ありません。1 対 2 VLAN マッピングを使用し、レイヤ 2 トランク ポートで従来の QinQ または選択した QinQ を設定する場合、またスイッチで C-DSCP から S-CoS を設定できます。
VLAN マッピングに設定された 802.1Q トンネル ポートまたはトランク ポート上のスイッチを開始するトラフィックについては、スイッチは、カスタマー パケット ヘッダーを検査し、カスタマー CoS 値またはカスタマー DSCP 値からサービス プロバイダー CoS 値(S-CoS)を設定する機能を備えています。
802.1Q マップ ポートでの CoS マッチングは、次のように設定されます。
■(トンネル ポートまたはトランク ポート上の)802.1Q トンネリングまたは(トランク ポート上の)選択した 802.1Q に設定されたインターフェイスで、インターフェイス(C-CoS)上で受信した VLAN タグ(内部 VLAN または C-VLAN)の CoS 値は、デフォルトでトンネル VLAN タグ(外部 VLAN または S-VLAN)に自動的に反映されます。
■ set cos ポリシーマップ クラス コンフィギュレーション コマンドは常に、処理が完了した後、最も外側の VLAN タグである S-VLAN-ID に適用されます。たとえば、802.1Q トンネルでは、 set cos コマンドを入力すると、カプセル化されたパケットの外部タグの CoS 値だけ変更されます。
■ match dscp クラス マップ コンフィギュレーション コマンドを入力してポリシーを設定し、QinQ および選択した QinQ マッピングインターフェイスの set cos ポリシーマップ クラス コンフィギュレーション コマンドを入力すると、DSCP の一致によりカプセル化値の外部 CoS が設定されます。
■外部 VLAN が一致した場合に DSCP を設定できます。
■従来の QinQ マッピングまたは選択した QinQ マッピングに設定したインターフェイスで match cos コマンドを入力すると、外部 CoS、つまり反映された内部 Cos(C-CoS)に対して一致します。
分類の比較
表 56に、一般的なトラフィックタイプに推奨される IP DSCP 値、IP precedence 値、および CoS 値を示します。
表 56 一般的なトラフィック分類
|
|
|
|
|
音声ベアラ:プライオリティ キュー、または最高のサービス ウェイトおよび最低の廃棄プライオリティを持つキューのトラフィック |
EF |
46 |
5 |
5 |
音声制御:音声ゲートウェイまたは音声アプリケーション サーバからの、コール セットアップに関連したシグナリング トラフィック |
AF31 |
26 |
3 |
3 |
ビデオ会議:ほとんどのネットワークで、IP 上でのビデオ会議には、損失、遅延、および遅延の種類に関して Voice over IP(VoIP)トラフィックと同様な要件があります。 |
AF41 |
34 |
4 |
4 |
ストリーミング ビデオ:損失、遅延、および遅延の種類に関して高い耐性を持つ、比較的高い帯域幅のアプリケーション。通常、E メールおよび Web 参照のような日常的なバックグラウンド アプリケーションよりも重要と見なされます。 |
AF13 |
18 |
1 |
1 |
ミッション クリティカル データ(ゴールド データ):企業の業務上重要な、遅延に影響されやすいアプリケーション レベル 1 レベル 2 レベル 3 |
AF21 AF22 AF23 |
18 20 22 |
2 2 2 |
2 2 2 |
重要度が低いデータ(シルバー データ):クリティカルではないが、比較的重要なデータ レベル 1 レベル 2 レベル 3 |
AF11 AF12 AF13 |
10 12 18 |
1 1 1 |
1 1 1 |
ベストエフォート データ(ブロンズ データ):重要度に関係なく、すべての非対話型トラフィックを含むその他のトラフィック |
デフォルト |
0 |
0 |
0 |
ベストエフォート データよりも重要でないデータ:クリティカルでなく、優先度が低い、帯域幅を消費するデータ トラフィック。これは、最初に廃棄されるトラフィック タイプです。 レベル 1 レベル 2 レベル 3 |
|
2 4 6 |
0 0 0 |
0 0 0 |
QoS ACL に基づく分類
パケットは、入力ポリシー マップで ACL 検索に基づいても分類されます。ACL 分類は、入力ポリシー マップの QoS グループまたは QoS 番号を割り当てることにより、出力ポリシーに伝達されます。ACL 検索に基づいて分類する場合は、まず IP ACL または MAC ACL を作成します。クラスマップを設定し、 match access-group { acl-number | acl name } クラスマップ コンフィギュレーション コマンドを使用して、ポリシーマップにクラスマップを付加します。
注: 出力ポリシーマップには、 match access-group を設定できません。
IP 標準、IP 拡張、またはレイヤ 2 MAC ACL を使用すると、同じ特性(クラス)を持つパケットのグループを定義できます。レイヤ 3 およびレイヤ 4 パラメータに基づいて IP トラフィックを分類する IP ACL を設定するには、 access-list グローバル コンフィギュレーション コマンドを使用します。レイヤ 2 パラメータに基づいて IP および 非 IP トラフィックを分類するレイヤ 2 MAC ACL を設定するには、 mac access-list extended グローバル コンフィギュレーション コマンドを使用します。
注: IP フラグメントを設定済みの IP 拡張 ACL に照合して、QoS を実行できません。IP フラグメントはベストエフォート型として送信されます。IP フラグメントは IP ヘッダーのフィールドで示されます。
match access-group コマンドでは、許可アクションが含まれる ACL だけを使用できます。拒否アクションが含まれる ACL は、QoS ポリシーで照合されません。
注: 入力ポリシーマップのクラスごとに 1 つのアクセスグループだけがサポートされます。
QoS グループ に基づく分類
QoS グループは、スイッチがパケットを特定のクラスのメンバーとして識別するのに使用する内部ラベルです。このラベルはパケット ヘッダーには含まれず、ラベルを設定するスイッチに制限されています。QoS グループにより、明示的にパケットをマーキング(変更)しない後続の QoS アクションにパケットのタグ付け方法が提供されます。次に、入力ポリシー マップから出力ポリシー マップに ACL 一致を伝達できます。
QoS グループは、入力側で識別されて出力側で使用されます。また、入力ポリシーに割り当てられて、出力ポリシーのパケットを識別します。を参照してください。QoS グループにより、出力ポリシーの特定のアクションに対して、入力トラフィックの異なるクラスが集約されます。
図 81 QoS グループ
QoS グループを使用すると、出力ポート上での同じ QoS 処理に対する入力クラス間およびポリシー マップ間の複数の入力ストリームを集約できます。同じ出力処理が必要なすべてのストリームに、入力ポリシー マップ内の同一の QoS グループ番号を割り当てて、出力ポリシー マップの QoS グループ番号に照合して、必要なキューイングおよびスケジューリング アクションを指定します。
また、QoS グループを使用すると、トラフィックが入力インターフェイスに基づいて出力側で異なる方法で処理される必要がある場合に、特定のインターフェイスに着信するトラフィックを識別できます。
QoS グループを使用すると、VLAN 上のブリッジド トラフィックに対して、出力インターフェイス上でポート単位、VLAN 単位の QoS 出力ポリシーを設定できます。ポート単位、VLAN 単位の入力ポリシーを設定することにより、入力インターフェイス上の VLAN に QoS グループ番号を割り当てます。次に、出力側での分類に同一の QoS グループ番号を使用します。ブリッジド トラフィックの VLAN は、スイッチを介して転送される間は変更されないため、入力 VLAN に割り当てられる QoS グループ番号は、出力インターフェイスで同じ VLAN を識別するのに使用できます。
cpu traffic qos [cos value | dscp value | precedence value | qos-group value] グローバル コンフィギュレーション コマンドを使用して、CPU が生成したトラフィックの QoS グループ番号を設定できます。
QoS グループ番号は、入力側でインターフェイス、VLAN、トラフィック フロー、および集約トラフィックの任意の組み合わせに個別に割り当てできます。QoS グループ番号を割り当てるには、入力ポリシー マップの QoS グループ マーキングと同時に、入力ポリシー マップ内の同一サービス クラスに必要なその他のマーキングまたはポリシング アクションを設定します。出力分類では QoS グループだけを使用する必要があるため、これにより、入力マーキングおよび入力ポリシング機能を出力分類機能(必要な場合)から切り離すことができます。
ACL 分類を出力ポリシーに伝達するには、入力側でパケットを指定する QoS 番号を割り当てます。次の例では、出力ポリシーであとで処理できるように、特定のパケットを QoS グループ 1 の一部として識別します。
Switch(config)# policy-map in-gold-policy
Switch(config-pmap)# class in-class1
Switch(config-pmap-c)# set qos-group 1
Switch(config-cmap-c)# exit
Switch(config-cmap)# exit
set qos-group コマンドは、入力ポリシーでだけ使用します。割り当てられた QoS グループ識別子は、パケットにマーキングまたは変更を行わずに出力ポリシーであとで使用されます。 match qos-group は、出力ポリシーで使用します。
注: 入力ポリシーマップには、 match qos-group を設定できません。
次に、出力ポリシーを作成して、入力ポリシーマップ in-gold-policy で作成された QoS グループを照合する例を示します。 qos-group 1 として内部的にタグ付けされたトラフィックは、出力ポリシーで識別され、処理されます。
Switch(config)# class-map out-class1
Switch(config-cmap)# match qos-group 1
Switch(config-cmap)# exit
スイッチは、最大 100 の QoS グループをサポートします。
VLAN ID に基づく分類
VLAN ID に基づく分類により、所定のインターフェイスにユーザが指定した VLAN 上で送信されるフレームに QoS ポリシーを適用できます。アクセス ポートでは単一 VLAN のトラフィックを伝送するため、VLAN 単位の分類は必要ありません。トランク ポートではないポートに、ポート単位、VLAN 単位の階層型ポリシーを付加しようとすると、設定は拒否されます。
スイッチでは、 parent レベルおよび child レベルの 2 つのポリシーレベルがサポートされています。QoS の親子構造により、親ポリシー内の子ポリシーを参照して、特定のトラフィック タイプをさらに細かく制御できるようになります。ポート単位、VLAN 単位の QoS の場合、親レベルのクラス マップは VLAN 一致基準だけを指定し、子レベルのクラス マップは親レベルのクラス マップに一致するフレームをより詳細に分類します。親レベルで複数のサービス クラスを設定して、各種 VLAN の組み合わせを照合し、任意の子ポリシー マップを使用して、親のサービス クラスごとに個別の QoS ポリシーを適用できます。
注: ポート単位 VLAN 単位の親レベルのクラスマップでは、子ポリシーアソシエーションだけをサポートします。いずれのアクションも設定できません。さらに、親レベルのクラスマップでは、クラスの class-default のアクションまたは子ポリシーアソシエーションを設定できません。
ポート単位、VLAN 単位 QoS には、次の制限事項があります。
■ポート単位、VLAN 単位の階層型ポリシー マップは、トランク ポートにだけ適用できます。
■VLAN ID に基づく分類は、ポート単位、VLAN 単位の階層型ポリシー マップの親レベルでだけ設定できます。
■VLAN または VLAN のセットに付加されている子ポリシーマップに、レイヤ 3 分類( match ip dscp 、 match ip precedence 、 match IP ACL )だけが含まれる場合、これらの VLAN は、必ずポート単位、VLAN 単位ポリシーが付加されているポート上でだけ実行されることに注意する必要があります。この制限事項に従わない場合は、これらの VLAN 上のスイッチに着信するトラフィックの QoS 動作が不適切になる場合があります。
■また、ポート単位 VLAN 単位が適用されるトランクポート上で、 switchport trunk allowed vlan インターフェイス コンフィギュレーション コマンドを使用して、VLAN メンバーシップを制限することも推奨します。レイヤ 3 分類が設定されたポート単位、VLAN 単位のポリシーが含まれるトランク ポート間で VLAN メンバーシップが重複した場合も、予期せぬ QoS 動作が発生する可能性があります。
次の例では、子レベルのポリシー マップのクラス マップが音声、データ、およびビデオ トラフィックの一致基準を指定して、子ポリシー マップが各トラフィック タイプの入力ポリシングに対するアクションを設定します。親レベルのポリシー マップは、指定されたポート上の子ポリシー マップが適用される VLAN を指定します。
Switch(config)# class-map match-any dscp-1 data
Switch(config-cmap)# match ip dscp 1
Switch(config-cmap)# exit
Switch(config)# class-map match-any dscp-23 video
Switch(config-cmap)# match ip dscp 23
Switch(config-cmap)# exit
Switch(config)# class-map match-any dscp-63 voice
Switch(config-cmap)# match ip dscp-63
Switch(config-cmap)# exit
Switch(config)# class-map match-any customer-1-vlan
Switch(config-cmap)# match vlan 100
Switch(config-cmap)# match vlan 200
Switch(config-cmap)# match vlan 300
Switch(config-cmap)# exit
注: また、一致基準を match vlan 100 200 300 と入力した場合でも、同じ結果になります。
Switch(config)# policy-map child policy-1
Switch(config-pmap)# class dscp-63 voice
Switch(config-pmap-c)# police cir 10000000 bc 50000
Switch(config-pmap-c)# conform-action set-cos-transmit 5
Switch(config-pmap-c)# exceed-action drop
Switch(config-pmap-c)# exit
Switch(config-pmap)# class dscp-1 data
Switch(config-pmap-c)# set cos 0
Switch(config-pmap-c)# exit
Switch(config-pmap)# class dscp-23 video
Switch(config-pmap-c)# set cos 4
Switch(config-pmap-c)# set ip precedence 4
Switch(config-pmap-c)# exit
Switch(config)# policy-map parent-customer-1
Switch(config-pmap)# class customer-1-vlan
Switch(config-pmap-c)# service-policy ingress-policy-1
Switch(config-pmap-c)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# switchport mode trunk
Switch(config-if)# service-policy input customer-1-ingress
Switch(config-pmap-c)# exit
注: 各ポート単位、VLAN 単位の親ポリシークラス( class-default を除く)には、子ポリシーアソシエーションを設定できます。
設定上の注意事項および制限事項を含む設定情報については、階層型入力ポリシー マップを含むポート単位、VLAN 単位 QoS の設定を参照してください。
テーブル マップ
テーブル マップを使用すると、単一のコマンドで多数のトラフィック フローを管理できます。 set コマンドで指定したテーブルマップを、ポリシーのマークダウンマッピングとして使用できます。また、テーブル マップを使用すると、多数の明示的な match および set を設定せずに、着信 QoS マーキングを代わりのマーキングにマッピングできます。テーブル マップは、入力ポリシー マップでだけ使用します。
テーブル マップは、次の用途に使用します。
■特定の CoS、DSCP、または IP precedence 値と特定の CoS、DSCP、または IP precedence 値を相互に関連付ける
■CoS、DSCP、または IP precedence 値をマーク ダウンする
■マッピングされていない値に、デフォルトを割り当てる
テーブル マップには、次のデフォルト アクションのいずれかが含まれます。
■ default default-value :すべてのマッピングされていない値に特定のデフォルト値(0 ~ 63)を適用します。
■ default copy :すべてのマッピングされていない値を別の修飾子の同等な値にマッピングします。
■ default ignore :マッピングされていない値を変更しません。
次に、特定の CoS 値を DSCP 値にマッピングするテーブルを作成する例を示します。 default コマンドにより、すべてのマッピングされていない CoS 値が DSCP 値 63 にマッピングされます。
Switch(config)# table-map cos-dscp-tablemap
Switch(config-tablemap)# map from 5 to 46
Switch(config-tablemap)# map from 6 to 56
Switch(config-tablemap)# map from 7 to 57
Switch(config-tablemap)# default 63
Switch(config-tablemap)# exit
スイッチでは、最大 256 の一意のテーブル マップをサポートしています。テーブルマップでは、最大 64 の異なる map from - to エントリを入力できます。スイッチでは、次のテーブル マップがサポートされます。
■DSCP から CoS へ
■DSCP/precedence
■DSCP/DSCP
■CoS から DSCP へ
■CoS/precedence
■CoS/CoS
■precedence から CoS へ
■precedence/DSCP
■precedence/precedence
テーブルマップは、1 つのパラメータ(CoS、IP precedence、または DSCP のいずれか設定されているもの)だけを変更し、ポリシーマップで set コマンドにより設定されている場合、またはポリシング機能で conform-action コマンドか、 exceed-action コマンドにより設定されている場合にだけ有効です。個々のポリサーはまた、 violate-action コマンドをサポートしていますが、集約ポリサーは violate-action によるテーブルマップはサポートしていません。
テーブル マップは、出力ポリシー マップでサポートされません。詳細については、テーブル マップの設定を設定してください。
ポリシング
パケットが分類されたあと、図 82に示されるポリシングを使用して、トラフィック クラスを規制できます。ポリシング機能では、特定のトラフィック フローで使用可能な帯域幅量を制限するか、または任意のトラフィック タイプが過剰な帯域幅およびシステム リソースを使用しないようにします。ポリサーは、ポリサーおよびトラフィック クラスの設定プロファイルと着信トラフィックのレートを比較することにより、パケットを適合または不適合として識別します。許容平均レートまたはバーストレートを超過するパケットは、 不適合 または 非適合 となります。これらのパケットは、ポリサーの設定に応じて、廃棄されるかまたは変更(追加処理用にマーキング)されます。
ポリシングは、主に受信インターフェイス上で使用されます。ポリサーを含むポリシー マップは、入力サービス ポリシーに限り付加できます。出力ポリシー マップでは、プライオリティ クラスのポリシングだけが許可されます。無条件のプライオリティ ポリシングを参照してください。
図 82 分類されたパケットのポリシング
ここでは、スイッチでサポートされるポリシング タイプについて説明します。
■個別のポリシング
■集約ポリシング
■無条件のプライオリティ ポリシング
個別のポリシング
個別のポリシングは、入力ポリシー マップにだけ適用されます。ポリシーマップ コンフィギュレーション モードで、 class コマンドのあとにクラスマップ名を入力して、ポリシーマップ クラス コンフィギュレーション モードを開始します。
シスコ産業用イーサネットスイッチは、個別ポリシングまたは集約ポリシングについて 1-rate、2-color 入力ポリシングおよび 2-rate、3-color のポリシングをサポートします。
1-rate、2-color ポリシングについては、 police ポリシーマップ クラス コンフィギュレーション コマンドを使用して、ポリサー、トラフィックの認定速度制限、トラフィックの認定バーストサイズ制限、または制限未満( conform-action )および制限を越える( exceed-action )トラフィックに対して実行するアクションを定義します。バースト サイズ(bc)を指定しない場合は、システムにより適切なバースト サイズ値が算出されます。算出された値は、ほとんどのアプリケーションに適しています。詳細については、「トラフィック ポリシーのインターフェイスへの適用」を参照してください。
最初のトークン バケットを更新するため、認定情報レート(CIR)の設定を含む、2-rate ポリサーを設定する場合、2 番目のトークン バケットが更新される最大情報レート(PIR)も設定します。PIR を設定しない場合、ポリサーは標準 1-rate、2-color ポリサーです。
2-rate、3-color ポリシングについては、指定の CIR および PIR に適合するパケット(conform-action)、PIR には適合するが CIR には適合しないパケット(exceed-action)、および PIR 値を超えるパケット(violate-action)で実行するアクションを任意に設定できます。
■PIR に等しい CIR 値を設定している場合、CIR 以下のトラフィック レート速度は適合範囲内です。CIR を超えるトラフィックは違反範囲に入ります。
■PIR を CIR よりも大きな値に設定すると、CIR を下回るトラフィック レートは適合になります。CIR を超過し、PIR 以下のトラフィック レートは超過になります。PIR を超過するトラフィック レートは違反になります。
■PIR を設定しない場合、ポリサーは 1-rate、2-color ポリサーとして設定されます。
バースト サイズの設定が低すぎると、バースト トラフィックがある状況でスループットが低下する場合があります。バースト サイズの設定が高すぎると、トラフィック レートが高くなりすぎる場合があります。
注: スイッチでは、 show policy-map interface 特権 EXEC コマンド出力で conform、exceed、および violate の各クラスのバイトレベル統計情報がバイト カウンタでサポートされています。
ポリシーマップを有効にするには、 service-policy input インターフェイス コンフィギュレーション コマンドを使用し、ポリシーマップを物理ポートに付加します。ポリシングは、受信トラフィックでだけ行われるため、ポリサーは入力サービス ポリシーにだけ付加できます。
conform-action および exceed-action ポリシーマップ クラス コンフィギュレーション コマンド、または conform-action および exceed-action ポリシーマップ クラス ポリシング コンフィギュレーション コマンドを使用すると、パケットが指定のトラフィックレートに適合するまたは超過する場合に実行するアクションを指定できます。
適合アクションとは、パケットを変更しないで送信する、新しい CoS 値、DSCP 値、IP precedence 値を設定する、または出力側での分類用に QoS グループ値を設定することです。超過アクションとは、パケットを廃棄する、パケットを変更しないで送信する、新しい CoS 値、DSCP 値、IP precedence 値を設定する、または出力側での分類用に QoS グループ値を設定することです。
conform-action 、 exceed-action 、および violate-action ポリシーマップ クラス コンフィギュレーション コマンド、または conform-action 、 exceed-action 、および violate-action ポリシーマップ クラス ポリシング コンフィギュレーション コマンドを使用すると、パケットが指定のトラフィックレートに適合するまたは超過する場合に実行するアクションを指定できます。適合アクション、超過アクション、および違反アクションは、パケットを廃棄する、パケットを変更しないで送信する、新しい CoS 値、DSCP 値、IP precedence 値を設定する、または出力側での分類用に QoS グループ値を設定することです。
明示的な値、テーブル マップ、またはその両方を組み合わせて、各マーキング アクションを設定できます。テーブル マップでは、特定のトラフィック属性を示し、それらを他の属性にマッピング(変換)します。
各サービス クラスで複数の適合アクションおよび超過アクションを同時に設定できます。各サービス クラスで複数の適合アクション、超過アクション、および違反アクションを同時に設定できます。 violate-action を設定しない場合、デフォルトで違反クラスが exceed-action と同じアクションに割り当てられます。
テーブル マップの作成後、ポリシーマップ ポリサーを設定して、テーブル マップを使用します。
注: 入力ポリシーマップでテーブルマップを使用する場合、テーブルマップの from - アクションのプロトコルタイプは、対応する分類のプロトコルタイプと同じである必要があります。たとえば、クラスマップが IP 分類を表す場合、テーブルマップの from - タイプアクションは、 dscp または precedence である必要があります。クラスマップが非 IP 分類を表す場合、テーブルマップの from - タイプアクションは、 cos である必要があります。
クラスで複数の動作を設定する場合、ポリシーマップ クラス ポリシング コンフィギュレーション モードで複数の適合または超過の各アクションのエントリ適合、超過、または違反の各アクションのエントリを入力する必要があります(次の例を参照)。
Switch(config)# policy-map map1
Switch(config-pmap)# class class1
Switch(config-pmap-c)# police 100000 500000
Switch(config-pmap-c-police)# conform-action set-cos-transmit 4
Switch(config-pmap-c-police)# conform-action set-dscp-transmit dscp table conform-dscp-to-dscp-mutation
Switch(config-pmap-c-police)# conform-action set-qos-transmit 10
Switch(config-pmap-c-police)# exceed-action set-cos-transmit 2
Switch(config-pmap-c-police)# exceed-action set-dscp-transmit dscp table exceed-dscp-to-dscp-mutation
Switch(config-pmap-c-police)# exceed-action set-qos-transmit 20
Switch(config-pmap-c-police)# exit
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
集約ポリシング
集約ポリシングは、入力ポリシー マップにだけ適用されます。集約ポリサーは、個別のポリサーとは異なり、ポリシー マップ内の複数のトラフィック クラスで共有されます。シスコ産業用イーサネットスイッチは、集約ポリシングについて 1-rate、2-color 入力ポリシングおよび 2-rate、3-color のポリシングをサポートします。
policer aggregate グローバル コンフィギュレーション コマンドを使用して、物理インターフェイスで送受信されるすべてのトラフィックのポリサーを設定できます。集約ポリサーを設定すると、特定のバースト サイズおよび適合アクションと超過アクションを設定できます。バーストサイズ( bc )を指定しない場合は、システムにより適切なバーストサイズ値が算出されます。算出された値は、ほとんどのアプリケーションに適しています。
最初のトークン バケットを更新するため、認定情報レート(CIR)の設定を含む、2-rate ポリサーを設定する場合、2 番目のトークン バケットが更新される最大情報レート(PIR)も設定します。PIR を設定しない場合、ポリサーは標準 1-rate、2-color ポリサーです。
2-rate、3-color ポリシングについては、指定の CIR および PIR に適合するパケット(conform-action)、PIR には適合するが CIR には適合しないパケット(exceed-action)、および PIR 値を超えるパケット(violate-action)で実行するアクションを任意に設定できます。
注: 適合アクションが drop に設定されている場合、超過アクションおよび違反アクションは自動的に drop に設定されます。超過アクションが drop に設定されている場合、違反アクションは自動的に drop に設定されます。
■PIR に等しい CIR 値を設定している場合、CIR 以下のトラフィック レート速度は適合範囲内です。CIR を超えるトラフィックは違反範囲に入ります。
■PIR を CIR よりも大きな値に設定すると、CIR を下回るトラフィック レートは適合になります。CIR を超過し、PIR 以下のトラフィック レートは超過になります。PIR を超過するトラフィック レートは違反になります。
■PIR を設定しない場合、ポリサーは 1-rate、2-color ポリサーとして設定されます。
バースト サイズの設定が低すぎると、予想よりトラフィックが少なくなる場合があります。バースト サイズの設定が高すぎると、予想よりトラフィックが多くなる場合があります。
各サービス クラスで複数の適合アクションおよび超過アクションを同時に設定できます。適合アクションとは、パケットを変更しないで送信する、出力側での分類用に QoS グループ値を設定する、または新しい CoS 値、DSCP 値、IP precedence 値を設定することです。超過アクションとは、パケットを廃棄する、パケットを変更しないで送信する、出力側での分類用に QoS グループを設定する、または新しい CoS 値、DSCP 値、IP precedence 値を設定することです。明示的な値、テーブル マップ、またはその両方を組み合わせて、マーキングの適合アクションまたは超過アクションをそれぞれ設定できます。テーブル マップでは、特定のトラフィック属性を示し、それらを他の属性にマッピング(変換)します。
各サービス クラスで複数の適合アクション、超過アクション、および違反アクションを同時に設定できます。 conform-action 、 exceed-action 、および violate-action ポリシーマップ クラス コンフィギュレーション コマンド、または conform-action 、 exceed-action 、および violate-action ポリシーマップ クラス ポリシング コンフィギュレーション コマンドを使用すると、パケットが指定のトラフィックレートに適合するまたは超過する場合に実行するアクションを指定できます。適合アクション、超過アクション、および違反アクションは、パケットを廃棄する、パケットを変更しないで送信する、新しい CoS 値、DSCP 値、IP precedence 値を設定する、または出力側での分類用に QoS グループ値を設定することです。
注: 適合アクションが drop に設定されている場合、超過アクションおよび違反アクションは自動的に drop に設定されます。超過アクションが drop に設定されている場合、違反アクションは自動的に drop に設定されます。
明示的な値、テーブル マップ、またはその両方を組み合わせて、マーキングの適合アクション、超過アクション、または違反アクションをそれぞれ設定できます。 violate-action を設定しない場合、デフォルトで違反クラスが exceed-action と同じアクションに割り当てられます。
テーブル マップでは、特定のトラフィック属性を示し、それらを他の属性にマッピング(変換)します。超過アクションのテーブルマップを設定し、違反アクションのアクションが明示的に設定されていない限り、集約ポリシングの violate-action に対するテーブルマップはサポートされません。
テーブル マップの作成後、ポリシーマップ ポリサーを設定して、テーブル マップを使用します。
注: 入力ポリシーマップでテーブルマップを使用する場合、テーブルマップの from - アクションのプロトコルタイプは、対応する分類のプロトコルタイプと同じである必要があります。たとえば、クラスマップが IP 分類を表す場合、テーブルマップの from - タイプアクションは、 dscp または precedence である必要があります。クラスマップが非 IP 分類を表す場合、テーブルマップの from - タイプアクションは、 cos である必要があります。
複数の適合および超過アクション適合、超過、違反アクションを集約ポリサーに policer aggregate グローバル コンフィギュレーション コマンドのパラメータとして同時に設定できますが、次の順序でアクションを入力する必要があります。集約ポリシングを含む入力ポリシー マップの設定の設定ガイドラインを参照してください。
集約ポリサーを設定したあとで、ポリシー マップおよび対応するクラス マップを作成し、集約ポリサーにポリシー マップを関連付けて、サービス ポリシーをポートに適用します。
注: 1 つのポリシーマップだけが、任意の特定の集約ポリサーを使用できます。集約ポリシングは、複数のインターフェイス上のトラフィック ストリームの集約には使用できません。集約ポリシングは、インターフェイスに付加されるポリシー マップの複数のクラスにまたがるトラフィック ストリームの集約、およびポート単位、VLAN 単位ポリシー マップのポート上の複数の VLAN にまたがるストリームの集約にだけ使用できます。
ポリシーマップおよびポリシングアクションを設定した後で、 service-policy インターフェイス コンフィギュレーション コマンドを使用して、入力ポートにポリシーを統合します。
次の例のクラス マップとは、アクセス リストを意味します。
Switch(config)# policer aggregate agg1 cir 23000 bc 10000 conform-action set-dscp-transmit 46 exceed-action drop
Switch(config)# class-map testclass
Switch(config-cmap)# match access-group 1
Switch(config-cmap)# exit
Switch(config)# class-map videoclass
Switch(config-cmap)# match access-group 2
Switch(config-cmap)# exit
Switch(config)# policy-map testexample
Switch(config-pmap)# class testclass
Switch(config-pmap-c)# police aggregate agg1
Switch(config-pmap-c)# exit
Switch(config-pmap)# class video-class
Switch(config-pmap-c)# police aggregate agg1
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy input testexample
設定情報については、集約ポリシングを含む入力ポリシー マップの設定を参照してください。
集約ポリシングを使用して、複数の VLAN にまたがるトラフィック ストリームの規制もできます(次の例を参照)。
Switch(config)# policer aggregate agg1 cir 23000 bc 10000 conform-action set-dscp-transmit af31 set-cos-transmit 3 exceed-action set-dscp-transmit af11 set-cos-transmit 1
Switch(config)# class-map video-provider-1
Switch(config-cmap)# match access-group 1
Switch(config-cmap)# exit
Switch(config)# class-map video-provider-2
Switch(config-cmap)# match access-group 2
Switch(config-cmap)# exit
Switch(config)# class-map match-any customer1-provider-100
Switch(config-cmap)# match vlan 100
Switch(config-cmap)# exit
Switch(config)# class-map match-any customer1-provider-200
Switch(config-cmap)# match vlan 200
Switch(config-cmap)# exit
Switch(config)# policy-map child-policy-1
Switch(config-pmap)# class video-provider-1
Switch(config-pmap-c)# set dscp af41
Switch(config-pmap-c)# exit
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# police aggregate agg1
Switch(config-pmap-c)# exit
Switch(config)# policy-map child-policy-2
Switch(config-pmap)# class video-provider-2
Switch(config-pmap-c)# set dscp cs4
Switch(config-pmap-c)# exit
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# police aggregate agg1
Switch(config-pmap-c)# exit
Switch(config)# policy-map customer-1-ingress
Switch(config-pmap)# class customer1-provider-100
Switch(config-pmap-c)# service-policy child-policy-1
Switch(config-pmap-c)# exit
Switch(config-pmap)# class customer1-provider-200
Switch(config-pmap-c)# service-policy child-policy-2
Switch(config-pmap-c)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# switchport mode trunk
Switch(config-if)# service-policy input customer-1-ingress
Switch(config-pmap-c)# exit
無条件のプライオリティ ポリシング
プライオリティ ポリシングは、出力ポリシー マップにだけ適用されます。出力ポリシーマップで priority ポリシーマップ クラス コンフィギュレーション コマンドを使用すると、特定のトラフィッククラスに対して低遅延パスまたはクラスベース プライオリティ キューイングを指定できます。完全プライオリティ キューイングを使用すると、プライオリティ キューのパケットは、キューが空になるまで他のキューよりも優先的にスケジューリングされ、送信されます。高いプライオリティ キューイングを過剰に使用すると、下位のプライオリティ トラフィックで輻輳が発生する場合があります。
このような輻輳を排除するには、ポリシング機能があるプライオリティ(プライオリティ ポリシング)を使用すると、プライオリティ キューで使用される帯域幅を削減し、他のキューにトラフィック レートを割り当てることができます。ポリシング機能があるプライオリティは、出力ポリシー マップでサポートされるポリシング形式だけになります。
注:プライオリティで出力ポリシーマップの 1-rate、2-color ポリサーを設定できます。出力ポリシーの 2-rate、3-color ポリサーは設定できません。
クラスベース プライオリティ キューイングを含む出力ポリシー マップの設定も参照してください。
注: 無条件のプライオリティポリサー用にバーストサイズが認定されたポリサーは、設定できません。設定されたバースト サイズは、いずれも無視されます。
次に、 priority コマンドと police コマンドを併用して、 out-class1 をプライオリティキューとして設定し、キューに着信するトラフィックを 20,000,000 bps に制限して、プライオリティキューがそれを超えるレートを使用しないようにする例を示します。このレートを超えるトラフィックは、廃棄されます。これにより、他のトラフィック キューはポート帯域幅の一部を受け取ります。この場合、最小帯域幅保証は、500,000 および 200,000 kbps です。クラスの class-default キューは、残りのポート帯域幅を受け取ります。
Switch(config)# policy-map policy1
Switch(config-pmap)# class out-class1
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# police 200000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class out-class2
Switch(config-pmap-c)# bandwidth 500000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class out-class3
Switch(config-pmap-c)# bandwidth 200000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface GigabitEthernet1/17
Switch(config-if)# service-policy output policy1
マーキング
入力ポリシー マップでパケット マーキングを使用すると、特定のクラスに属するトラフィックの属性を設定または変更できます。ネットワーク トラフィックがクラス内に組み込まれたあとで、マーキングを使用して、特定のトラフィック タイプを識別して固有の処理を行います。たとえば、クラスの CoS 値を変更したり、特定のトラフィック タイプの IP DSCP 値または IP precedence 値を設定できます。その後、これらの新しく設定された値を使用して、トラフィックの処理方法を決定します。また、マーキングを使用すると、スイッチ内の QoS グループにトラフィックを割り当てることもできます。
トラフィック マーキングは通常、入力ポートの特定のトラフィック タイプで実行されます。マーキング アクションにより、CoS、DSCP、または precedence ビットは、設定に応じて書き換えられるか、またはそのまま変更されません。これにより、QoS ドメインで使用されるポリシーに従って、パケットのプライオリティが高くなるかまたは低くなります。そのため、他の QoS 機能ではマーキング情報を使用して、パケットの相対的および絶対的な重要性を判断できます。マーキング機能では、ポリシング機能から取得した情報または分類機能から直接取得した情報を使用できます。
ポリシーマップで、すべてのサポート対象の QoS マーキング(CoS、IP DSCP、IP precedence、および QoS グループ)に対して set コマンドを使用することにより、トラフィックを指定およびマーキングできます。 set コマンドにより、特定クラスに一致するパケットは無条件にマーキングされます。その後、インターフェイスにポリシー マップを入力ポリシー マップとして付加します。
また、テーブルマップと set コマンドを併用しても、トラフィックをマーキングできます。テーブルマップでは、特定トラフィックの属性を表示し、他の属性にそれらをマッピング(変換)します。テーブル マップでは、属性の to-from 関係を確立し、行われた変更を定義します。
QoS グループ マーキング アクションと同一サービスのパケットの DSCP、precedence、および CoS マーキングを変更するアクションを同時に設定できます。出力分類に関してマーキング アクションで定義された QoS グループ番号を使用できます。
注: 入力ポリシーマップでテーブルマップを使用する場合、テーブルマップの from - アクションのプロトコルタイプは、対応する分類のプロトコルタイプと同じである必要があります。たとえば、クラスマップが IP 分類を表す場合、テーブルマップの from - タイプアクションは、 dscp または precedence である必要があります。クラスマップが非 IP 分類を表す場合、テーブルマップの from - タイプアクションは、 cos である必要があります。
テーブル マップの作成後、ポリシーマップを設定して、テーブル マップを使用します。輻輳管理およびスケジューリングを参照してください。図 83に、トラフィックのマーキングの手順を示します。
図 83 分類されたトラフィックのマーキング
次に、ポリシー マップを使用してパケットをマーキングする例を示します。最初のマーキング( set コマンド)は、クラス AF31 ~ AF33 によって一致しなかったすべてのトラフィックを照合する QoS デフォルトクラスマップに適用され、すべてのトラフィックの IP DSCP 値を 1 に設定します。2 番目のマーキングは、クラス AF31 ~ AF33 のトラフィックの IP DSCP を 3 に設定します。
Switch(config)# policy-map Example
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# set dscp 1
Switch(config-pmap-c)# exit
Switch(config-pmap)# class AF31-AF33
Switch(config-pmap-c)# set ip dscp 3
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy input Example
パフォーマンス モニタリング プロトコル用の QoS 処理
■TWAMP
■IP-SLA および TWAMP プローブ用の QoS 処理
■CPU によって生成されたトラフィックの QoS マーキング
■CPU によって生成されたトラフィックの QoS キューイング
■設定のガイドライン
TWAMP
Two-Way Active Measurement Protocol(TWAMP)の詳細については、「 TWAMP の概要 」(41-14 ページ)および「 TWAMP の設定 」(41-15 ページ)を参照してください。
IP-SLA および TWAMP プローブ用の QoS 処理
IP-SLA および TWAMP のプローブ用の QoS 処理は、デバイスを通過する通常のデータ トラフィックに発生する影響を正確に反映する必要があります。
生成元デバイスはプローブのマーキングを変更してはいけません。これらのプローブは、設定されている通常トラフィックのキューイング ポリシーに基づいてキューに格納される必要があります。
マーキング
デフォルトでは、CFM トラフィックの Class of Service(CoS)マーキング(CFM プローブを使用する IP SLA を含む)は変更されません。この機能ではこの動作を変更できません。
デフォルトでは、IP トラフィック マーキング(IP SLA および TWAMP プローブを含む)は変更されません。この機能では、この動作は変更できます。
キューイング
通常のトラフィックと同様、CFM トラフィック(CFM プローブを使用する IP SLA を含む)は、このトラフィックの CoS 値および出力ポートに設定された出力ポリシー マップに応じてキューに格納されます。この機能ではこの動作を変更できません。
(IP SLA および TWAMP プローブを含む)IP トラフィックは、 cpu traffic qos グローバル コンフィギュレーション コマンドおよび出力ポートの出力ポリシーマップで指定されたマーキングにしたがってキューイングされます。このコマンドが設定されていない場合、すべての IP トラフィックは、出力ポートのキューにスタティックにマッピングされます。
CPU によって生成されたトラフィックの QoS マーキング
QoS マーキングを使用して、CPU からのトラフィックの属性を設定または変更できます。QoS マーキング アクションにより、パケット内の CoS、DSCP、または IP precedence ビットは書き換えられるか、またはそのまま変更されません QoS はパケット マーキングを使用して、あるトラフィック タイプおよびローカル スイッチおよびネットワーク上でのそれらのタイプの処理方法を識別します。
また、マーキングを使用すると、スイッチ内の QoS グループにトラフィックを割り当てることもできます。この QoS グループは、パケットを変更しない内部ラベルですが、ネットワーク ポートで出力キューイングを設定する場合のトラフィック タイプの識別に使用できます。
CPU によって生成されたトラフィックを指定してマーキングするには、次のグローバル コンフィギュレーション コマンドを使用します。
cpu traffic qos cos { cos_value | cos [ table-map table-map-name ] | dscp [ table-ma p table-map-name ] | precedence [ table-map table-map-name ]}
cpu traffic qos dscp { dscp_value | cos [ table-map table-map-name ] | dscp [ table-map table-map-name ] | precedence [ table-map table-map-name ]}
cpu traffic qos precedence { precedence_value | cos [ table-map table-map-name ] | dscp [ table-map table-map-name ] | precedence [ table-map table-map-name ]}
cpu traffic qos qos-group value
明示的な値を設定するか、またはキーワード table-map を使用して、CoS、IP-DSCP、IP precedence、および QoS グループをマークできます。テーブル マップでは、特定のトラフィック属性を示し、それらを別の属性にマッピング(変換)します。テーブル マップでは、属性の to-from 関係を確立し、行われた変更を定義します。
■IP CPU パケットの CoS、 または IP-DSCP、または IP precedence を使用した CoS のマーキング
■非 IP CPU パケットの CoS を使用した CoS のマーキング
■CPU パケットの CoS、または IP-DSCP、または IP precedence を使用した IP DSCP のマーキング
■CPU パケットの CoS、または IP-DSCP、または IP precedence を使用した IP precedence のマーキング
IP-DSCP または IP precedence いずれかのマーキングを設定できます。
また同時に、CoS、IP-DSCP または IP precedence、および QoS グループを修正するマーキング アクションを設定できます。
cpu traffic qos コマンドは、適用先となるトラフィックを指定します。それらは、すべての CPU トラフィック、CPU IP トラフィックだけ、または CPU 非 IP トラフィックだけです。その他のすべてのトラフィックは、その QoS マーキングを保持しています。この機能は CFM トラフィック(CFM を使用したレイヤ 2 IP SLA プローブを含む)には影響を与えません。
注: スイッチには、テーブルマップを使用して CPU が生成したトラフィックの CoS、IP-DSCP および IP precedence をマーキングする機能が搭載されています。
CPU によって生成されたトラフィックの QoS キューイング
cpu traffic qos グローバル コンフィギュレーション コマンドにより、出力ポリシーマップのクラスマップでパケット ID として CPU 生成トラフィックに確立された QoS マーキングを使用して、CPU トラフィックを出力ポートの出力ポリシーマップのクラスキューにマッピングできます。出力ポートの出力ポリシー マップを使用して、そのポートのスイッチから発信されるトラフィックのキューイングおよびスケジューリングを設定できます。
CoS、IP DSCP、または IP-precedence パケットマーキングを変更せずに、すべての CPU 生成トラフィックを出力ポリシーマップの 1 つのクラスにマッピングする場合、CPU 生成グループのマーキングに QoS グループを使用できます。
IP DSCP または IP-precedence に基づき、それらのパケットマーキングを変更せずに、すべての CPU 生成 IP トラフィックを出力ポリシーマップの複数クラスにマッピングする場合、テーブルマップを使用できます。
■テーブルマップを指定せず、 DSCP または precedence を map from 値として使用することで、IP-DSCP または IP precedence マーキングを設定します。
■ default および copy の各キーワードだけを使用したテーブルマップを指定し、 DSCP または precedence を map from 値として使用することで、IP-DSCP または IP precedence マーキングを設定します。
CoS に基づき、CoS パケットマーキングを変更せずに、すべての CPU 生成トラフィックを出力ポリシーマップの複数クラスにマッピングする場合、テーブルマップを使用できます。
■テーブルマップを指定せず、CoS を map from 値として使用することで、 CoS マーキングを設定します。
■ default および copy の各キーワードだけを使用したテーブルマップを指定し、 CoS を map from 値として使用することで、CoS マーキングを設定します。
テーブルマップの詳細については、テーブル マップを参照してください。
テーブルマッピングで cpu traffic qos グローバル コンフィギュレーション コマンドを使用すると、複数のマーキングポリシーおよびキューイングポリシーがともに動作、または個別に動作するよう設定できます。 cpu traffic qos グローバル コンフィギュレーション コマンドを使用して設定された CoS マーキングに基づき、ネイティブ VLAN トラフィックをキューイングできます。
cpu traffic qos コマンドは、適用先となるトラフィックを指定します。それらは、すべての CPU トラフィック、CPU IP トラフィックだけ、または CPU 非 IP トラフィックだけです。その他のトラフィックは、出力ポートの CPU デフォルト キューにスタティックにマッピングされます。すべての CFM トラフィック(CFM を使用したレイヤ 2 IP SLA プローブを含む)は、出力ポリシー マップのクラスにマッピングされ、その CoS 値に基づいてキューイングされます。
注: スイッチには、テーブルマップを使用して CPU が生成したトラフィックの CoS、IP-DSCP および IP precedence に基づいてキューイングする機能が搭載されています。
設定のガイドライン
■この機能はスイッチでグローバルに設定する必要があります。ポート単位またはプロトコル単位では設定できません。
■個別の回線上でそれぞれ cpu traffic qos マーキングアクションを入力します。
■ cpu traffic qos cos グローバル コンフィギュレーション コマンドは、特定の CoS 値またはテーブルマップの両方ではなく、いずれかを使用して、CPU 生成トラフィックの CoS マーキングを設定します。新しく設定を行うと、既存の設定は置き換えられます。
■ cpu traffic qos dscp グローバル コンフィギュレーション コマンドは、特定の DSCP 値またはテーブルマップの両方ではなく、いずれかを使用して、CPU 生成 IP トラフィックの IP-DSCP マーキングを設定します。新しく設定を行うと、既存の設定は置き換えられます。
■ cpu traffic qos precedence グローバル コンフィギュレーション コマンドは、特定の precedence 値またはテーブルマップの両方ではなく、いずれかを使用して、CPU 生成 IP トラフィックの IP-precedence マーキングを設定します。新しく設定を行うと、既存の設定は置き換えられます。
■ cpu traffic qos dscp グローバル コンフィギュレーション コマンドと cpu traffic qos precedence グローバル コンフィギュレーション コマンドは相互に排他的です。新しく設定を行うと、既存の設定は置き換えられます。
■ cpu traffic qos dscp グローバル コンフィギュレーション コマンドがテーブルマップで設定されている場合、一度に 1 つの map from 値(DSCP、precedence、または CoS)しか設定できません。新しく設定を行うと、既存の設定は置き換えられます。このコマンドでマーキングされたパケットは、マーキングされた DSCP 値または precedence 値に基づいて、出力ポリシー マップで分類し、キューイングできます。
■ cpu traffic qos precedence グローバル コンフィギュレーション コマンドがテーブルマップで設定されている場合、一度に 1 つの map from 値(DSCP、precedence、または CoS)しか設定できません。新しく設定を行うと、既存の設定は置き換えられます。このコマンドでマーキングされたパケットは、マーキングされた precedence 値または DSCP 値に基づいて、出力ポリシー マップで分類し、キューイングできます。
■DSCP および precedence 両方の map from 値は設定できません。新しく設定を行うと、既存の設定は置き換えられます。
■ cpu traffic qos cos グローバル コンフィギュレーション コマンドがテーブルマップで設定されている場合、一度に 2 つの map from 値(CoS と DSCP または precedence のいずれか)を設定できます。
■ cpu traffic qos cos グローバル コンフィギュレーション コマンドが DSCP または precedence の map from 値だけで設定されている場合、次のようになります。
–IP パケットの CoS 値は、パケットの DSCP(または precedence)値および設定されたテーブル マップを使用してマッピングされています。パケットは、マーキングされた CoS 値に基づいて、出力ポリシー マップで分類し、キューイングできます。
–非 IP パケットの CoS 値は変わりません。
■ cpu traffic qos cos グローバル コンフィギュレーション コマンドが CoS の map from 値で設定されている場合、次のようになります。
–IP パケットの CoS 値は、パケットの CoS 値および設定されたテーブル マップを使用してマッピングされています。パケットは、マーキングされた CoS 値に基づいて、出力ポリシー マップで分類し、キューイングできます。
–非 IP パケットの CoS 値は、パケットの CoS 値および設定されたテーブル マップを使用してマッピングされています。パケットは、マーキングされた CoS 値に基づいて、出力ポリシー マップで分類し、キューイングできます。
■ cpu traffic qos cos グローバル コンフィギュレーション コマンドが DSCP または precedence および CoS の map from 値で設定されている場合、次のようになります。
–IP パケットの CoS 値は、パケットの DSCP または precedence 値および設定されたテーブル マップを使用してマッピングされています。パケットは、マーキングされた CoS 値に基づいて、出力ポリシー マップで分類し、キューイングできます。
–非 IP パケットの CoS 値は、パケットの CoS 値および設定されたテーブル マップを使用してマッピングされています。パケットは、マーキングされた CoS 値に基づいて、出力ポリシー マップで分類し、キューイングできます。
■ cpu traffic qos qos-group グローバル コンフィギュレーション コマンドを使用して、特定の QoS グループの CPU 生成トラフィックだけの QoS グループマーキングを設定できます。 table-map オプションは使用できません。
輻輳管理およびスケジューリング
Cisco Modular QoS CLI(MQC)は、発信トラフィック フローを制御する関連メカニズムをいくつか備えています。これらのメカニズムは、出力ポリシー マップに実装され、出力トラフィック キューを制御します。スケジューリング ステージでは、該当する時間までパケットを保有してから、4 つのトラフィック キューのいずれかに送信します。キューイングは、パケット クラスに基づいて特定のキューにパケットを割り当てて、輻輳を回避するため、WTD アルゴリズムにより拡張されます。異なるスケジューリング メカニズムを使用すると、他のトラフィックを均等に処理しながら、特定のトラフィック クラスに保証された帯域幅を割り当てることができます。特定のトラフィック クラスで消費される最大帯域幅を制限して、低遅延キューの遅延の影響を受けやすいトラフィックが他のキューよりも先に送信されるように保証できます。
スイッチでは、次のスケジューリング メカニズムをサポートします。
■トラフィック シェーピング
shape average ポリシーマップ クラス コンフィギュレーション コマンドを使用すると、特定のトラフィッククラスで最大許容平均レートを使用するように指定できます。最大レートは bps で指定します。
■CBWFQ
bandwidth ポリシーマップ クラス コンフィギュレーション コマンドを使用すると、特定のクラスに割り当てられる帯域幅を制御できます。最小帯域幅は、ビット レート、または総帯域幅もしくは残りの帯域幅との割合で指定できます。
■プライオリティ キューイングまたはクラスベース プライオリティ キューイング
priority ポリシーマップ クラス コンフィギュレーション コマンドを使用して、他のトラフィックタイプよりも優先されるトラフィックタイプを指定します。プライオリティの高いトラフィックには、完全プライオリティを指定して、その他のトラフィック キューには余剰の帯域幅を割り当てたり、またはプライオリティの高いトラフィックの無条件のポリシングを含むプライオリティを指定して、その他のトラフィック キュー間に既知の残りの帯域幅を割り当てることができます。
–完全プライオリティを設定するには、 priority ポリシーマップ クラス コンフィギュレーション コマンドだけを使用して、プライオリティキューを設定します。その他のトラフィッククラスには、 bandwidth remaining percent ポリシーマップ クラス コンフィギュレーション コマンドを使用して、必要な比率で余剰の帯域幅を割り当てます。
–無条件のポリシングを含むプライオリティを設定するには、 priority ポリシーマップ クラス コンフィギュレーション コマンドおよび police ポリシーマップ クラス コンフィギュレーション コマンドを使用して、プライオリティキューを無条件にレート制限します。この場合、他のトラフィッククラスは、要件に応じて bandwidth または shape average により設定できます。
ここでは、スケジューリングに関するその他の情報について説明します。
■トラフィック シェーピング
■CBWFQ
■プライオリティ キューイング
トラフィック シェーピング
トラフィック シェーピングは、トラフィック ポリシングと同様のトラフィック制御メカニズムです。入力ポリシー マップでトラフィック ポリシングが使用されている場合、トラフィック シェーピングはインターフェイスからトラフィックを発信するときに実行されます。スイッチは、インターフェイスから発信されるトラフィックのクラスにはクラスベース シェーピングを、およびインターフェイスから発信されるすべてのトラフィックにはポート シェーピングを適用できます。トラフィック シェーピングのキュー設定により、キューの最大帯域幅および Peak Information Rate(PIR)が設定されます。
注: 出力ポリシーマップ内の同一のクラスに、トラフィックシェーピング( shape average )と CBWFQ( bandwidth )、またはプライオリティキューイング( priority )を設定できません。出力ポリシー マップ内の別のクラスに、完全プライオリティ(ポリシングなしのプライオリティ)が設定されている場合、特定のトラフィック クラスにトラフィック シェーピングを設定できません。
クラスベースのシェーピング
クラスベースシェーピングは、 shape average ポリシーマップ クラス コンフィギュレーション コマンドを使用して、データ伝送速度(bps)を制限し、トラフィッククラスの認定情報速度(CIR)に使用します。スイッチは、3 つのトラフィック クラスごとに別々のキューをサポートします。4 番目のキューは常に、クラス class-default 、未分類トラフィック用のデフォルトキューです。
注: トラフィックシェーピングの設定により、キューの最小帯域幅保証または CIR を PIR と同じ値に自動的に設定します。
ポート シェーピング
ポートシェーピング(送信ポートシェーパ)を設定するには、デフォルトクラスだけを含むポリシーマップを作成して、 shape average コマンドを使用してポートの最大帯域幅を指定します。
次に、前の例で設定された out-policy ポリシーマップに応じて割り当てられた、ポートを 90 Mbps にシェーピングするポリシーマップを設定する例を示します。 service-policy ポリシー マップ クラス コマンドは、親ポリシーに子ポリシーを作成する場合に使用します。
Switch(config)# policy-map out-policy-parent
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# shape average 90000000
Switch(config-pmap-c)# service-policy out-policy
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy output out-policy-parent
親子階層
トラフィックシェーピングでは、 parent ポリシーレベルおよび child ポリシーレベルもサポートされます。QoS の親子構造は、特定のトラフィック タイプをさらに詳細に制御するために、子ポリシーが親ポリシー内で参照されるという特定の目的に使用されます。
最初のポリシーレベルは親レベルで、ポートシェーピングに使用されます。また、ポリシー内にクラスタイプの class-default を 1 つだけ特定できます。次に、親レベルのポリシー マップの例を示します。
Switch(config)# policy-map parent
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# shape average 50000000
Switch(config-pmap-c)# exit
2 番目のポリシーレベルは子レベルで、特定のトラフィックストリームまたはトラフィッククラスを制御するのに使用されます(次の例を参照)。
Switch(config)# policy-map child
Switch(config-pmap)# class class1
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# exit
注: 子ポリシーの各キューにおける最小帯域幅保証の合計(CIR)は、ポートシェーピングの合計速度を上回ることはできません。
次に、親子設定の例を示します。
Switch(config)# policy-map parent
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# shape average 50000000
Switch(config-pmap-c)# service-policy child
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy output parent
CBWFQ
CBWFQ を設定することにより、ポートで使用可能な総帯域幅の一部を割り当てて、キューの相対的優先順位を設定できます。 bandwidth ポリシーマップ クラス コンフィギュレーション コマンドを使用すると、トラフィッククラスの出力帯域幅をレート(kbps)、総帯域幅に対するパーセンテージ、または残りの帯域幅に対するパーセンテージで設定できます。
注: ポリシーマップで帯域幅を設定する場合は、すべてのレートを同じ形式(設定されたレートまたはパーセンテージ)で設定する必要があります。ポリシーの各キューにおける最小帯域幅保証の合計(CIR)は、親の合計速度を上回ることはできません。
■ bandwidth ポリシーマップ クラス コンフィギュレーション コマンドを使用して、トラフィッククラスを絶対レート(kbps)または総帯域幅に対するパーセンテージで設定する場合、これはそのトラフィッククラスの最小帯域幅保証(CIR)を表します。つまり、トラフィック クラスは最低でもコマンドにより指定された帯域幅を取得しますが、その帯域幅に制限されるわけではありません。ポート上の余剰の帯域幅はすべて、CIR レートの設定と同じ比率で各クラスに割り当てられます。
出力ポリシーの別のクラスに完全プライオリティ(ポリシングなしのプライオリティ)が設定されている場合には、帯域幅を絶対レートまたは総帯域幅に対するパーセンテージでは設定できません。
■ bandwidth ポリシーマップ クラス コンフィギュレーション コマンドを使用して、トラフィッククラスを残りの帯域幅に対するパーセンテージで設定する場合、これはクラスに割り当てられるポートの余剰帯域幅の一部を表しています。つまり、ポート上に余剰の帯域幅がある場合、およびこのトラフィック クラスに最小帯域幅保証がない場合にだけ、クラスに帯域幅が割り当てられます。
出力ポリシー マップの別のクラスに完全プライオリティ(ポリシングなしのプライオリティ)が設定されている場合にだけ、帯域幅を残りの帯域幅に対するパーセンテージで設定できます。
詳細については、「CBWFQ を含む出力ポリシー マップの設定」を参照してください。
注: 出力ポリシーマップ内の同一のクラスには、帯域幅とトラフィックシェーピング( shape average )またはプライオリティキューイング( priority )を設定できません。
注: クラスの CIR 帯域幅を絶対レートまたは総帯域幅に対するパーセンテージで設定する場合、ポリシーマップ内のすべてのクラスの CIR の処理後に残った余剰な帯域幅すべては、CIR レートと同じ比率でクラス間に配分されます。クラスの CIR レートが 0 に設定されている場合、このクラスはどの余剰帯域幅に対しても不適格となるため、帯域幅を取得できません。
プライオリティ キューイング
priority ポリシーマップ クラス コンフィギュレーション コマンドを使用すると、特定のトラフィッククラスで優先処理が行われるよう保証できます。完全プライオリティ キューイングを使用すると、プライオリティ キューは常に処理されます。キュー内のすべてのパケットは、キューが空になるまでスケジューリングされ、送信されます。プライオリティ キューイングにより、関連付けられたクラスのトラフィックは、他のキューのパケットよりも先に送信されます。
注: priority コマンドを使用する際は注意してください。完全プライオリティ キューイングを過剰に使用すると、他のキューで輻輳が発生する場合があります。
スイッチでは、完全プライオリティキューイングまたは police ポリシーマップ コマンドと併用されるプライオリティをサポートしています。
■ 完全プライオリティキューイング (ポリシングなしのプライオリティ)では、トラフィッククラスを低遅延キューに割り当てて、このクラスのパケットの遅延確率が最小になるよう保証します。完全プライオリティ キューイングが設定されている場合、プライオリティ キューは空になるまで継続的に処理され、他のキューのパケットは処理されない場合もあります。
同一出力ポリシー マップ内の別のクラスで、トラフィック シェーピングまたは CBWFQ が設定されている場合は、トラフィック クラスに対するポリシングなしのプライオリティを設定できません。
■police ポリシーマップ コマンドとプライオリティを併用するか、または無条件のプライオリティポリシングを使用することにより、プライオリティキューで使用される帯域幅を削減できます。これは、出力ポリシー マップでサポートされる唯一のポリシング形式です。このようにコマンドを組み合わせて、プライオリティキューの最大レートを設定します。また、他のクラスに bandwidth および shape average の各ポリシーマップ コマンドを使用すると、他のキューのトラフィックレートを割り当てることができます。
出力ポリシーマップに police コマンドを使用せずにプライオリティが設定されている場合に他のキューを設定するには、 bandwidth remaining percent ポリシーマップ コマンドを使用して余剰の帯域幅を割り当てることによって共有するしかありません。
プライオリティ キューイングには、次の制限事項があります。
■ priority コマンドは、スイッチ上で付加されたすべての出力ポリシーの単一の一意のクラスに関連付けできます。
■同一クラスでは、プライオリティとその他のスケジューリングアクション( shape average または bandwidth )を設定できません。
■出力ポリシーマップの class-default にはプライオリティキューイングを設定できません。
詳細については、「クラスベース プライオリティ キューイングを含む出力ポリシー マップの設定」を参照してください。
次に、クラス out-class1 を完全プライオリティキューとして設定し、このクラスのすべてのパケットが他のトラフィッククラスより先に送信される例を示します。他のトラフィックキューでは、 out-class2 は残りの帯域幅の 50%、 out-class3 は残りの帯域幅の 20% を取得するように設定されます。クラス class-default は、保証なしで、残りの 30% を取得します。
Switch(config)# policy-map policy1
Switch(config-pmap)# class out-class1
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# exit
Switch(config-pmap)# class out-class2
Switch(config-pmap-c)# bandwidth remaining percent 50
Switch(config-pmap-c)# exit
Switch(config-pmap)# class out-class3
Switch(config-pmap-c)# bandwidth remaining percent 20
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet 0/1
Switch(config-if)# service-policy output policy1
次に、 priority コマンドと police コマンドを併用して、 out-class1 をプライオリティキューとして設定し、キューに着信するトラフィックを 20000000 bps に制限して、プライオリティキューがそれを超えるレートを使用しないようにする例を示します。このレートを超えるトラフィックは、廃棄されます。他のトラフィック キューは、残りの帯域幅の 50% および 20% を使用するように設定されます(上記の例を参照)。
Switch(config)# policy-map policy1
Switch(config-pmap)# class out-class1
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# police 200000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class out-class2
Switch(config-pmap-c)# bandwidth percent 50
Switch(config-pmap-c)# exit
Switch(config-pmap)# class out-class3
Switch(config-pmap-c)# bandwidth percent 20
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet 0/1
Switch(config-if)# service-policy output policy1
輻輳回避およびキューイング
輻輳回避では、テール ドロップなどのアルゴリズムを使用して、キューイングおよびスケジューリング ステージを開始するパケット数を制御して、輻輳およびネットワークのボトルネックを回避します。スイッチは、Weighted Tail-Drop(WTD)を使用して、キュー サイズを管理し、トラフィック分類の廃棄優先順位を指定します。キュー サイズの制限は、キューのパケット マーキングに応じて設定されます。スイッチを通過するパケットごとに、特定のキューおよびしきい値が割り当てられます。たとえば、特定の DSCP 値または CoS 値は特定の出力キューおよびしきい値にマッピングされます。
WTD はキュー サイズを管理したり、トラフィック分類ごとに廃棄優先順位を設定するためにトラフィック キューに実装されます。WTD ではパケット分類を使用して、特定のキューに着信したフレームにそれぞれ異なるしきい値を適用します。宛先キューの合計サイズが、再分類された任意のトラフィックのしきい値を上回る場合、そのトラフィックの次のフレームは廃棄されます。
図 84に 1000 フレームのキューにおける WTD の動作例を示します。ドロップ割合は次のように設定されています。40%(400 フレーム)、60%(600 フレーム)、および 100%(1000 フレーム)です。これらのパーセンテージは、40% のしきい値に再分類されたトラフィックは、キュー深度が 400 フレームを超過すると廃棄され、60% のしきい値に再分類されたトラフィックは、キュー深度が 600 フレームを超過すると廃棄されるということを意味します。また、40% しきい値の場合は最大 400 フレーム、60% しきい値の場合は最大 600 フレーム、100% しきい値の場合は最大 1000 フレームをキューイングできるという意味です。
図 84 WTD およびキューの動作
この例では、CoS 値 6 および 7 は他の CoS 値よりも重要度が高く、100% ドロップしきい値に割り当てられます(キューフル ステート)。CoS 値 4 および 5 は 60% しきい値に、CoS 値 0 ~ 3 は 40% しきい値に割り当てられます。
すでにキューが 600 フレームで満たされている場合に、4 および 5 の CoS 値を含む新しいフレームが着信すると、このフレームは 60% しきい値の対象となります。このフレームがキューに追加されると、しきい値を超過するため、フレームは廃棄されます。
WTD は、 queue-limit ポリシーマップ クラス コマンドにより設定されます。このコマンドにより、特定のトラフィック クラスに関連するキュー サイズ(バッファ サイズ)が調整されます。しきい値をパケット数で指定する場合、各パケットは 256 バイトの固定単位となります。同一キュー内のトラフィック クラス(CoS、DSCP、precedence、または QoS グループ)ごとに、異なるキュー サイズを指定できます。キュー制限を設定することにより、対応するトラフィックの輻輳発生時の廃棄しきい値が確立されます。
注: queue-limit ポリシー マップ クラス コマンドを使用してキューサイズを設定する場合は、まずスケジューリングアクション( bandwidth 、 shape average または priority )を設定する必要があります。唯一の例外は、出力ポリシーマップの class-default のキュー制限を設定する場合です。
スイッチは、すべての出力ポリシー マップにおいてそれぞれ固有のキュー制限設定を最大 3 つまでサポートしています。出力ポリシー マップ内で許容されるキュー(クラス)は 4 つだけです(クラス デフォルトを含む)。各キューには 3 つのしきい値が定義されています。スイッチ上では、固有のしきい値を 3 つまで設定できます。ただし、複数のポリシー マップで同じキュー制限を共有できます。2 つのポリシー マップがキュー制限の設定を共有する場合、両方のポリシー マップのすべてのクラスで、すべてのしきい値が同じでなければなりません。
詳細については、「CBWFQ を含む出力ポリシー マップの設定」を参照してください。
次に、 class A が DSCP 値およびポリシーマップ、 PM1 に一致するよう設定する例を示します。30 および 50 の DSCP は、一意のしきい値(それぞれ 32 および 64)にマッピングされます。40 および 60 の DSCP 値は、112 パケットの最大しきい値にマッピングされます。
Switch(config)# class-map match-any classA
Switch(config-cmap)# match ip dscp 30 40 50 60
Switch(config-cmap)# exit
Switch(config)# policy-map PM1
Switch(config-pmap)# class classA
Switch(config-pmap-c)# bandwidth percent 50
Switch(config-pmap-c)# queue-limit 112
Switch(config-pmap-c)# queue-limit dscp 30 32
Switch(config-pmap-c)# queue-limit dscp 50 64
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet 0/1
Switch(config-if)# service-policy output PM1
スイッチ上の複数の出力ポリシー マップで同じキュー制限値を使用できます。ただし、クラスのキュー制限値の 1 つを変更すると、新たな固有のキュー制限設定が作成されます。インターフェイスに付加できる出力ポリシー マップの固有のキュー制限設定は、どの時点でも 3 つだけです。4 つめのキュー制限が設定された出力ポリシー マップを付加しようとすると、次のエラー メッセージが表示されます。
QoS: Configuration failed. Maximum number of allowable unique queue-limit configurations exceeded.
注: 出力ポリシーマップで特定のクラスにキュー制限を設定する場合、他のすべての出力ポリシーマップでは、同一の修飾子タイプおよび修飾値の形式を使用する必要があります。キュー制限のしきい値に限り、異なる値を設定できます。たとえば、ポリシーマップ PM1 の dscp 30 および dscp 50 に、 class A のキュー制限のしきい値が設定されていて、ポリシーマップ PM2 で class A のキュー制限を設定する場合、 dscp 30 および dscp 50 を修飾子として使用する必要があります。 dscp 20 および dscp 40 は、使用できません。別のしきい値を設定できますが、これにより、新たなキュー制限設定が作成されます。
デフォルトでは、バッファ スペースの総容量は、すべてのポートおよび各ポートのすべてのキューで均等に配分されます。これは、多くのアプリケーションに適合します。遅延の影響を受けやすいトラフィックのキュー サイズを削減したり、またはバースト性のあるトラフィックのキュー サイズを増加させたりできます。
注: queue-limit コマンドを使用して、クラスのキューしきい値を設定する場合、WTD しきい値は、キューの最大しきい値以下にする必要があります。修飾子なしで設定されたキュー サイズは、修飾子を使用して設定されたいずれのキュー サイズよりも大きくする必要があります。
キュー制限を設定する場合、指定できるパケット数の範囲は 16 の倍数で、16 ~ 544 です。この場合、各パケットは 256 バイトの単位となります。
注: 最適なパフォーマンスを実現するため、キュー制限を 272 以下に設定することを推奨します。
キューの帯域幅とキュー サイズ(キュー制限)は、別々に設定されます。相互依存はしません。帯域幅およびキュー制限を設定する場合、送信されるトラフィック タイプを考慮する必要があります。
■大きなバッファ(キュー制限)により、パケットを損失しないでバースト性のあるトラフィックに対応できますが、遅延は増えます。
■小さなバッファは遅延を減らしますが、バースト性のあるトラフィックより安定したトラフィック フローに適しています。
■非常に小さなバッファは通常、プライオリティ キューイングを最適化するのに使用されます。プライオリティ キューイングされるトラフィックの場合、通常少しのパケットに対応するだけのバッファ サイズが必要です。通常、大きなバッファ サイズは遅延を増加させるため、必要ではありません。高いプライオリティの遅延の影響を受けやすいパケットには、相対的に大きな帯域幅および相対的に小さなキュー サイズを設定します。
これらの制限事項は、WTD 修飾子に適用されます。
■ queue-limit コマンドを使用した場合、WTD 修飾子( cos 、 dscp 、 precedence 、 qos-group )に 3 つ以上のしきい値を設定できません。ただし、これらのしきい値にマッピングできる修飾子の数に制限はありません。修飾子を指定しないで queue-limit コマンドを使用することにより、最大キューを設定する 3 番目のしきい値を設定できます。
■ queue-limit コマンドの WTD 修飾子は、関連するクラスマップの少なくとも 1 つの match 修飾子と同じである必要があります。
次に、 out-class1 、 out-class2 、 out-class3 、および class-default がそれぞれ最低 40、20、10、および 10% のトラフィック帯域幅を取得するように、帯域幅およびキュー制限を設定する例を示します。対応するキューサイズは、48、32、16、および 272(256 バイト)パケットに設定されます。
Switch(config)# policy-map out-policy
Switch(config-pmap)# class outclass1
Switch(config-pmap-c)# bandwidth percent 40
Switch(config-pmap-c)# queue-limit 48
Switch(config-pmap-c)# exit
Switch(config-pmap)# class outclass2
Switch(config-pmap-c)# bandwidth percent 20
Switch(config-pmap-c)# queue-limit 32
Switch(config-pmap-c)# exit
Switch(config-pmap)# class outclass3
Switch(config-pmap-c)# bandwidth percent 10
Switch(config-pmap-c)# queue-limit 16
Switch(config-pmap-c)# exit
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# bandwidth percent 10
Switch(config-pmap-c)# queue-limit 272
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface gigabitethernet 0/1
Switch(config-if)# service-policy output out-policy
スイッチポート数に応じた数の出力ポリシー マップを設定および付加できますが、一意のキュー制限は 3 つしか設定できません。他の出力ポリシー マップが同じキュー制限およびクラス設定を使用する場合、帯域幅パーセンテージが異なる場合でも、キュー制限設定は同じであると見なされます。
QoS の設定
QoS を設定する前に、次の内容を理解しておいてください。
■使用するアプリケーションのタイプおよびネットワークのトラフィック パターン
■トラフィックの特性およびネットワークのニーズ。バースト性の高いトラフィックかどうかの判別。音声およびビデオ ストリーム用の帯域幅確保の必要性
■ネットワークの帯域幅要件および速度
■ネットワーク上の輻輳発生箇所
次に、着信トラフィックの分類、ポリシングおよびマーキング方法と発信トラフィックのスケジューリングおよびキューイング方法について説明します。ネットワーク設定に応じて、次の作業を 1 つまたは複数実行する必要があります。
■QoS のデフォルト設定
■QoS 設定時の注意事項
■ACL を使用したトラフィックの分類
■クラス マップを使用したトラフィック クラスの定義
■テーブル マップの設定
■トラフィック ポリシーのインターフェイスへの適用
■入力ポリシー マップの設定
■出力ポリシー マップの設定
■CPU 生成トラフィックの QoS マーキングおよびキューイングの設定
QoS のデフォルト設定
ポリシー マップ、クラス マップ、テーブル マップ、またはポリサーは設定されていません。出力ポートでは、すべてのトラフィックは動作可能なポートの全帯域幅を割り当てられる単一のデフォルト キューを介して発信されます。デフォルト キューのデフォルト サイズは、160(256 バイト)パケットです。
パケットは変更されません(パケット内の CoS、DSCP、および IP precedence 値は変更されません)。トラフィックはパススルー モードでスイッチングされ、書き換えられずにポリシングを伴わないベストエフォート型として分類されます。
QoS 設定時の注意事項
■QoS を設定できるのは物理ポートのみです。
■QoS が設定されたポートでは、そのポートを通じて受信されるすべてのトラフィックは、ポートに付加された入力ポリシー マップに従って分類、ポリシング、およびマーキングが行われます。QoS が設定されたトランク ポートでは、そのポートを通じて受信されるすべての VLAN 内トラフィックは、ポートに付加されたポリシー マップに従って分類、ポリシング、およびマーキングが行われます。ポート単位、VLAN 単位ポリシー マップが付加された場合、トランク ポート上のトラフィックは、親レベルのポリシーで指定された VLAN に対して、各 VLAN に関連付けられた子ポリシー マップに従って分類、ポリシング、およびマーキングされます。
■スイッチに EtherChannel ポートが設定されている場合は、EtherChannel を構成する各物理ポートで QoS の分類、ポリシング、マッピング、およびキューイングを設定する必要があります。また、QoS の設定を EtherChannel のすべてのポートで照合するかどうかを決定する必要があります。
■スイッチで受信された制御トラフィック(スパニングツリー ブリッジ プロトコル データ ユニット(BPDU)やルーティング アップデート パケットなど)には、入力 QoS 処理がすべて行われます。
■キュー設定を変更すると、データが失われることがあります。したがって、トラフィックが最小のときに設定を変更するようにしてください。
■新しいポリシーをインターフェイスに付加しようとし、これによりポリサーインスタンスの数が 1024 - (スイッチ上のインターフェイス数 + 1)255 より多い数になる場合、エラーメッセージを受信し、設定は失敗します。
■新しいポリシーをインターフェイスに付加しようとし、これによりポリサープロファイルの数を 256 より多くする場合、エラーメッセージを受信し、設定は失敗します。プロファイルは、認定速度、最大速度、認定バースト、および最大バーストの組み合わせです。1 つのプロファイルを複数のインスタンスに付加できますが、これらの特性のいずれかが異なっている場合、ポリサーに新しいプロファイルがあると見なされます。
■スイッチのすべてのポートに、256 のポート単位、VLAN 単位ポリシーマップ内の固有の VLAN 分類基準を指定できます。この制限を超える原因となるような任意のポリシーへ付加や変更を行うと失敗となり、VLAN label resources exceeded というエラーメッセージが返されます。
■QoS ACE 分類リソース制限に達するまで、ポート単位およびポート単位、VLAN 単位のポリシーマップをスイッチのすべてのポートに付加できます。この制限を超える原因となるような任意のポリシーへ付加や変更を行うと失敗となり、TCAM resources exceeded というエラーメッセージが返されます。
■CPU 保護がイネーブルになっている場合、ポートごとに設定できるポリサーは 45 だけです。CPU 保護をディセーブルにすると、ポートごとに最大 64 のポリサーを設定できます。show policer cpu uni-eni {drop | rate} 特権 EXEC コマンドを入力し、CPU 保護がイネーブルになっているかどうか確認できます。
■CPU 保護をディセーブルにする際はこれらの制限事項について注意してください。
–CPU 保護をディセーブルにすると、ユーザ定義クラスに対してポートごとに最大 63 のポリサー(すべての 4 番目のポート上に 62)を、class-default に対して 1 つのポリサーを設定できます。この制限を超える原因となるような任意のポリシーへ付加や変更を行うと失敗となり、 policer resources exceeded というエラーメッセージが返されます。
–CPU 保護をディセーブルにすると、スイッチで最大 256 個のポリサーを設定できます。この制限を超える原因となるような任意のポリシーへ付加や変更を行うと失敗となり、policer resources exceeded というエラーメッセージが返されます。
–CPU 保護をディセーブルにして、45 を超えるポリサーを持つポリシー マップを付加してから、CPU 保護を再度イネーブルにして、リロードした場合、CPU 保護には、ポートごとに 19 のポリサーが再度必要となります。リロード中、ポリサー 46 以降は、 policer resources exceeded のエラー条件を満たすことになるので、これらのクラスに付加されるポリサーはありません。
■内部 QoS ラベル数が 256 を超えると、エラー メッセージを受信します。
■超過アクションのテーブルマップを設定し、違反アクションのアクションが明示的に設定されていない限り、集約ポリシングの violate-action に対するテーブルマップはサポートされません。個々のポリサーおよび集約ポリサー両方について、 violate-action を設定しない場合、デフォルトで違反クラスが exceed-action と同じアクションに割り当てられます。
■トランクまたは 802.1Q トンネル インターフェイスで 2 重タグ パケットを受信すると、これらのパケットは他のパラメータとともに DSCP および IP precedence で分類されますが、発信パケットで DSCP または IP precedence は設定できません。発信パケットで CoS を設定できます。
各機能に関連する設定上の注意事項の詳細については、特定の QoS 機能の設定の説明を参照してください。
ACL を使用したトラフィックの分類
IP 標準または IP 拡張 ACL を使用すると、IP トラフィックを分類できます。レイヤ 2 MAC ACL を使用すると、IP および非 IP トラフィックを分類できます。
QoS ACL を設定する場合は、次の注意事項に従ってください。
■IP フラグメントを設定済みの IP 拡張 ACL に照合して、QoS を実行できません。IP フラグメントはベストエフォート型として送信されます。IP フラグメントは IP ヘッダーのフィールドで示されます。
■スイッチは、入力ポリシー マップのクラスごとにアクセス グループを 1 つだけサポートします。
■出力ポリシーマップには、 match-access グループを設定できません。
ここでは、QoS ACL の作成方法について説明します。
■IP 標準 ACL の作成
■IP 拡張 ACL の作成
■レイヤ 2 MAC ACL の作成
IP 標準 ACL の作成
IP トラフィック用の IP 標準 ACL を作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
access-list access-list-number permit source [ source-wildcard ] |
IP 標準 ACL を作成し、必要な回数だけコマンドを繰り返します。 ■ access-list-number には、アクセス リスト番号を入力します。有効範囲は 1 ~ 99 および 1300 ~ 1999 です。 ■QoS ポリシーの一致基準として使用される ACL には、必ずキーワード permit を使用します。QoS ポリシーは、キーワード deny を使用する ACL には一致しません。 ■ source には、パケットの送信元となるネットワークまたはホストを指定します。 any キーワードは 0.0.0.0 255.255.255.255 の省略形として使用できます。 ■(任意) source-wildcard には、source に適用されるワイルドカード ビットをドット付き 10 進表記で入力します。 |
または |
ip access-list standard name |
名前を使用して標準 IPv4 アクセス リストを定義し、アクセス リスト コンフィギュレーション モードを開始します。名前には、1 ~ 99 の番号を使用できます。 アクセスリスト コンフィギュレーション モードで、 permit source [ source-wildcard ] を入力します。 |
3. |
end |
特権 EXEC モードに戻ります。 |
4. |
show access-lists |
入力内容を確認します。 |
5. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
アクセス リストを削除するには、 no access-list access-list-number グローバル コンフィギュレーション コマンドを使用します。
次に、指定された 3 つのネットワーク上のホストだけにアクセスを許可する例を示します。ネットワーク アドレスのホスト部分にワイルドカード ビットが適用されます。
Switch(config)# access-list 1 permit 192.5.255.0 0.0.0.255
Switch(config)# access-list 1 permit 128.88.0.0 0.0.255.255
Switch(config)# access-list 1 permit 36.0.0.0 0.0.0.255
IP 拡張 ACL の作成
IP トラフィック用の IP 拡張 ACL を作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
access-list access-list-number permit protocol { source source-wildcard destination destination-wildcard } [ precedence precedence ] [ tos tos ] [ dscp dscp ] 注: dscp 値を入力した場合、 tos または precedence は入力できません。 dscp を入力しない場合は、 tos と precedence 値の両方を入力できます。 |
IP 拡張 ACL を作成します。必要な回数だけ、この手順を繰り返します。 ■ access-list-number には、アクセス リスト番号を入力します。有効範囲は 100 ~ 199 および 2000 ~ 2699 です。 ■QoS ポリシーの一致基準として使用される ACL には、必ずキーワード permit を使用します。QoS ポリシーは、 deny ACL に一致しません。 ■ protocol には、IP プロトコルの名前または番号を入力します。使用可能なプロトコル キーワードのリストを表示するには、疑問符(?)を使用します。すべてのインターネット プロトコル(ICMP、TCP、UDP を含む)と一致させる場合は、 ip を入力します。 ■ source はパケットの送信元であるネットワークまたはホストの番号です。 ■ source-wildcard は、ワイルドカード ビットを送信元アドレスに適用します。 ■ destination はパケットの宛先となるネットワークまたはホストの番号です。 ■ destination-wildcard は、ワイルドカード ビットを宛先アドレスに適用します。 source、destination、wildcards は、次のように指定できます。 ■ドット付き 10 進表記による 32 ビット長の値。 ■0.0.0.0 255.255.255.255(任意のホスト)を表すキーワード any 。 ■単一のホスト 0.0.0.0 を表すキーワード host 。 その他のキーワードは任意で、意味は次のとおりです。 ■ precedence :パケットを 0 ~ 7 の番号または名前で指定する優先度と一致させる場合に入力します。指定できる値は、 routine ( 0 )、 priority ( 1 )、 immediate ( 2 )、 flash ( 3 )、 flash-override ( 4 )、 critical ( 5 )、 internet ( 6 )、 network ( 7 )です。 ■ tos :パケットを 0 ~ 15 の番号または名前で指定するサービス タイプ レベルと一致させる場合に入力します。指定できる値は、 normal ( 0 )、 max-reliability ( 2 )、 max-throughput ( 4 )、 min-delay ( 8 )です。 ■ dscp :パケットを 0 ~ 63 の番号で指定する DSCP 値と一致させる場合に入力します。また、指定できる値のリストを表示するには、疑問符(?)を使用します。 |
または |
ip access-list extended name |
名前を使用して拡張 IPv4 アクセス リストを定義し、アクセス リスト コンフィギュレーション モードを開始します。 name は 100 ~ 199 の番号にできます。 アクセス リスト コンフィギュレーション モードで、ステップ 2 で定義した permit protocol { source source-wildcard destination destination-wildcard } [ precedence precedence ] [ tos tos ] [ dscp dscp ] を入力します。 |
3. |
end |
特権 EXEC モードに戻ります。 |
4. |
show access-lists |
入力内容を確認します。 |
5. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
アクセス リストを削除するには、 no access-list access-list-number グローバル コンフィギュレーション コマンドを使用します。
次に、任意の送信元から、DSCP 値が 32 に設定されている任意の宛先への IP トラフィックを許可する ACL を作成する例を示します。
Switch(config)# access-list 100 permit ip any any dscp 32
次に、10.1.1.1 の送信元ホストから 10.1.1.2 の宛先ホストへの IP トラフィック(precedence 値は 5)を許可する ACL を作成する例を示します。
Switch(config)# access-list 100 permit ip host 10.1.1.1 host 10.1.1.2 precedence 5
レイヤ 2 MAC ACL の作成
非 IP トラフィック用にレイヤ 2 MAC ACL を作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
mac access-list extended name |
リストの名前を指定して、レイヤ 2 MAC ACL を作成し、拡張 MAC ACL コンフィギュレーション モードを開始します。 |
3. |
permit { host src-MAC-addr mask | any | host dst-MAC-addr | dst-MAC-addr mask } [ type mask ] |
QoS ポリシーの一致基準として使用される ACL には、必ずキーワード permit を使用します。 ■ src-MAC-addr には、パケットの送信元となるホストの MAC アドレスを指定します。MAC アドレスは、16 進表記(H.H.H)で、 source 0.0.0、 source-wildcard ffff.ffff.ffff にキーワード any を使用したり、 source 0.0.0 にキーワード host を使用して指定できます。 ■ mask では、無視するビット位置に 1 を入力することによって、ワイルドカード ビットを指定します。 ■ dst-MAC-addr には、パケットの宛先となるホストの MAC アドレスを指定します。MAC アドレスは、16 進表記(H.H.H)で、 source 0.0.0、 source-wildcard ffff.ffff.ffff にキーワード any を使用したり、 source 0.0.0 にキーワード host を使用して指定できます。 ■(任意) type mask には、Ethernet II または SNAP でカプセル化されたパケットの Ethertype 番号を指定して、パケットのプロトコルを識別します。 type の範囲は 0 ~ 65535 です。通常は 16 進数で指定します。 mask では、一致をテストする前に Ethertype に適用される don’t care ビットを入力します。 |
4. |
end |
特権 EXEC モードに戻ります。 |
5. |
show access-lists [ access-list-number | access-list-name ] |
入力内容を確認します。 |
6. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
アクセス リストを削除するには、 no mac access-list extended access-list-name グローバル コンフィギュレーション コマンドを入力します。
次に、2 つの許可( permit )ステートメントを指定したレイヤ 2 の MAC ACL を作成する例を示します。最初のステートメントでは、MAC アドレスが 0001.0000.0001 であるホストから、MAC アドレスが 0002.0000.0001 であるホストへのトラフィックが許可されます。2 番めのステートメントでは、MAC アドレスが 0001.0000.0002 であるホストから、MAC アドレスが 0002.0000.0002 であるホストへの、Ethertype が XNS-IDP のトラフィックのみが許可されます。
Switch(config)# mac access-list extended maclist1
Switch(config-ext-macl)# permit 0001.0000.0001 0.0.0 0002.0000.0001 0.0.0
Switch(config-ext-macl)# permit 0001.0000.0002 0.0.0 0002.0000.0002 0.0.0 xns-idp
Switch(config-ext-macl)# exit
クラス マップを使用したトラフィック クラスの定義
個々のトラフィック フロー(またはクラス)を他のすべてのトラフィックから分離して名前を付けるには、 class-map グローバル コンフィギュレーション コマンドを使用します。クラス マップが、特定のトラフィック フローとの照合を行い、さらにそれを分類するために使用する基準を定義します。match 文には、ACL、CoS 値、DSCP 値、IP precedence 値、QoS グループ値、または VLAN ID などの基準が含まれます。一致基準は、クラスマップ コンフィギュレーション モードで入力される 1 つまたは複数の match ステートメントで定義されます。
クラス マップの設定を行うときは、次の注意事項に従ってください。
■ match-all クラスマップには、1 つの分類基準(match 文)しか指定できませんが、 match-any クラスマップには複数の match 文を指定できます。
■match cos コマンドおよび match vlan コマンドは、レイヤ 2 802.1Q トランクポート上でだけサポートされます。
■ match vlan コマンドを含むクラスマップは、トランクポート上のポート単位、VLAN 単位 QoS に関する入力階層型ポリシーマップの親ポリシーで使用します。子ポリシー マップに関連付けられた 1 つまたは複数のクラスがあるポリシーは、親ポリシー マップと見なされます。親ポリシー マップ内の各クラスは、親クラスと呼ばれます。親クラスでは、 match vlan コマンドだけを設定できます。子ポリシーマップ内のクラスでは、 match vlan コマンドを設定できません。
■入力ポリシーマップでは、同一ポリシーマップまたはクラスマップ内に IP 分類( match ip dscp 、 match ip precedence 、IP ACL の match access-group )と非 IP 分類( match cos 、または MAC ACL の match access-group )を設定できません。ポート単位、VLAN 単位階層型ポリシー マップでは、これを子ポリシー マップに適用します。
■入力ポリシーマップには、 match qos-group を設定できません。
■出力ポリシー マップでは、異なるクラス マップで同じ分類基準(つまり、同じ match 修飾子および match 値)を使用できません。
■スイッチ上のクラス マップの最大数は、1024 です。
クラス マップを作成し、トラフィックを分類するための一致基準を定義するには、特権 EXEC モードで次の作業を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
class-map [ match-all | match-any ] class-map-name |
クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。デフォルトでは、クラス マップは定義されていません。 ■(任意)このクラス マップ配下のすべての一致ステートメントの論理 AND を実行するには、 match-all キーワードを使用します。この場合は、クラス マップ内のすべての一致条件と一致する必要があります。 ■(任意)このクラス マップ配下のすべての一致ステートメントの論理 OR を実行するには、 match-any キーワードを使用します。この場合は、1 つまたは複数の一致条件と一致する必要があります。 ■ class-map-name には、クラス マップ名を指定します。 一致文が指定されない場合、デフォルトは match-all になります。 注: match-all クラスマップでは、複数の分類基準(match 文)を設定できません。 |
3. |
match { access-group acl-index-or-name | cos cos-list | ip dscp dscp-list | ip precedence ip-precedence-list | qos-group value | vlan vlan-list } |
トラフィックを分類するための一致条件を定義します。デフォルトでは、一致条件は定義されていません。 各クラス マップでサポートされる一致タイプおよび ACL は、それぞれ 1 つだけです。 ■ access-group acl-index-or-name には、ACL の番号または名前を指定します。アクセス グループの照合は、入力ポリシー マップでだけサポートされます。 ■ cos cos-list を指定する場合は、1 行に最大 4 つの CoS 値のリストを入力して、着信パケットと照合します。各値はスペースで区切ります。5 つ以上の CoS 値を照合する場合は、複数の cos-list 行を入力できます。指定できる範囲は 0 ~ 7 です。 ■ ip dscp dscp-list を指定する場合は、着信パケットと照合する最大 8 つの IPv4 DSCP 値を入力します。各値はスペースで区切ります。9 つ以上の DSCP 値を照合する場合は、複数の dscp-list 行を入力できます。指定できる数値範囲は 0 ~ 63 です。DSCP 値は、他の形式でも設定できます。IP DSCP に基づく分類を参照してください。 ■ ip precedence ip-precedence-list を指定する場合は、着信パケットと照合する最大 4 つの IPv4 precedence 値のリストを入力します。各値はスペースで区切ります。5 つ以上の precedence 値を照合する場合は、複数の ip-precedence-list 行を入力できます。指定できる範囲は 0 ~ 7 です。 ■ vlan vlan-list を指定する場合、トランクポート上のポート単位、VLAN 単位の QoS に関して親ポリシーマップで使用される VLAN ID または VLAN 範囲を指定します。VLAN ID の範囲は 1 ~ 4094 です。 ■ qos-group value を指定する場合、QoS グループ番号を指定します。指定できる範囲は、0 ~ 99 です。QoS グループの照合は、出力ポリシー マップでだけサポートされます。 |
4. |
end |
特権 EXEC モードに戻ります。 |
5. |
show class-map |
入力内容を確認します。 |
6. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
既存のクラスマップまたは一致基準を削除するには、該当するコマンドの no 形式を使用します。
次に、アクセスリスト 103 を作成し、 class1 という名前のクラスマップを設定する例を示します。 class1 にはアクセス リスト 103 という一致条件が 1 つ設定されています。このクラス マップによって、任意のホストから任意の宛先へのトラフィック(DSCP 値は 10)が許可されます。
Switch(config)# access-list 103 permit any any dscp 10
Switch(config)# class-map class1
Switch(config-cmap)# match access-group 103
Switch(config-cmap)# exit
次に、DSCP 値が 10、11、および 12 である着信トラフィックと照合する、 class2 という名前のクラス マップを作成する例を示します。
Switch(config)# class-map match-any class2
Switch(config-cmap)# match ip dscp 10 11 12
Switch(config-cmap)# exit
次に、IP precedence 値が 5、6、および 7 である着信トラフィックと照合する、 class3 という名前のクラス マップを作成する例を示します。
Switch(config)# class-map match-any class3
Switch(config-cmap)# match ip precedence 5 6 7
Switch(config-cmap)# exit
次に、30 ~ 40 の範囲の VLAN ID で着信トラフィックと照合する、 parent-class という名前の親クラスマップを作成する例を示します。
Switch(config)# class-map match-any parent-class
Switch(config-cmap)# match vlan 30-40
Switch(config-cmap)# exit
テーブル マップの設定
テーブル マップを設定すると、単一のコマンドで多数のトラフィック フローを管理できます。テーブル マップを使用して、特定の DSCP 値、IP precedence 値、および CoS 値を相互に関連付けて、DSCP 値、IP precedence 値、または CoS 値をマークダウンするか、それらにデフォルト値を割り当てます。 set コマンドで指定したテーブルマップを、ポリシーのマークダウンマッピングとして使用できます。
スイッチでは、次のテーブル マップがサポートされます。
■DSCP/CoS、precedence、または DSCP
■CoS/DSCP、precedence、または CoS
■precedence/CoS、DSCP、または precedence
テーブル マップの設定を行うときは、次の注意事項に従ってください。
■スイッチでは、最大 256 の一意のテーブル マップをサポートしています。
■テーブル マップ内の map 文の最大数は 64 です。
■テーブル マップは、出力ポリシー マップで使用できません。
■超過アクションのテーブルマップを設定し、違反アクションのアクションが明示的に設定されていない限り、集約ポリシングの violate-action に対するテーブルマップはサポートされません。
テーブルマップを作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
table-map table-map-name |
テーブル マップ名を入力してテーブル マップを作成し、テーブルマップ コンフィギュレーション モードを開始します。 |
3. |
map from from-value to to-value |
テーブルに含めるマッピング値を入力します。たとえば、テーブルマップが DSCP/CoS のテーブルマップである場合、 from-value は DSCP 値で、 to_value は CoS 値となります。指定できる範囲は、いずれも 0 ~63 です。 このコマンドを複数回入力して、マッピングするすべての値を含めるようにします。 |
4. |
default { default-value | copy | ignore } |
テーブル マップで検出されない値のデフォルト動作を設定します。 ■ default-value を入力して、特定の値を指定します。たとえば、DSCP/CoS テーブル マップでは、すべてのマッピングされていない DSCP 値に適用する特定の CoS 値となります。指定できる範囲は 0 ~ 63 です。 ■ copy を入力して、マッピングされていない値を同等な値にマッピングします。DSCP/CoS テーブル マップでは、このコマンドによりすべてのマッピングされていない DSCP 値が同等の CoS 値にマッピングされます。 ■ ignore を入力すると、マッピングされていない値は変更されません。DSCP/CoS テーブル マップでは、マッピングされていない DSCP 値の CoS 値は変更されません。 |
5. |
end |
特権 EXEC モードに戻ります。 |
6. |
show table-map [ table-map-name ] |
入力内容を確認します。 |
7. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
テーブルマップを削除するには、 no table-map table-map-name グローバル コンフィギュレーション コマンドを使用します。
次に、DSCP/CoS テーブル マップを作成する例を示します。完全なテーブルには通常、大きな DSCP 値用の追加の map 文が含まれます。このテーブルのデフォルト 4 は、マッピングされていない DSCP が CoS 値 4 に割り当てられるということを意味します。
Switch(config)# table-map dscp-to-cos
Switch(config-tablemap)# map from 1 to 1
Switch(config-tablemap)# map from 2 to 1
Switch(config-tablemap)# map from 3 to 1
Switch(config-tablemap)# map from 4 to 2
Switch(config-tablemap)# map from 5 to 2
Switch(config-tablemap)# map from 6 to 3
Switch(config-tablemap)# default 4
Switch(config-tablemap)# end
Switch# show table-map dscp-to-cos
トラフィック ポリシーのインターフェイスへの適用
service-policy インターフェイス コンフィギュレーション コマンドを使用して、インターフェイスにトラフィックポリシーを付加し、ポリシーが適用される方向(着信トラフィックの入力ポリシーマップ、または発信トラフィックの出力ポリシーマップ)を指定します。入力ポリシー マップおよび出力ポリシー マップは、別々の QoS 機能をサポートします。入力ポリシーマップおよび出力ポリシーマップの制限事項に関しては、入力ポリシー マップの設定および出力ポリシー マップの設定を参照してください。
サービス ポリシーは、物理ポートにだけ付加できます。ポートごとに、入力ポリシー マップおよび出力ポリシー マップをそれぞれ 1 つだけ付加できます。
ポートに ポリシー マップを付加するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
interface interface-id |
ポリシー マップを適用するポートを指定し、インターフェイス コンフィギュレーション モードを開始します。指定できるインターフェイスは、物理ポートです。 |
3. |
service-policy { input | output } policy-map-name |
ポリシー マップの名前、およびそれが入力ポリシー マップか出力ポリシー マップのいずれかを指定します。 |
4. |
end |
特権 EXEC モードに戻ります。 |
5. |
show policy-map interface [ interface-id ] |
入力内容を確認します。 |
6. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
ポリシーマップとポートの関連付けを解除するには、 no service-policy { input | output } policy-map-name インターフェイス コンフィギュレーション コマンドを使用します。
入力ポリシー マップの設定
ポリシー マップでは、動作の実行対象トラフィック クラスおよびそのアクションを指定します。トラフィック クラスの一致基準に一致しないすべてのトラフィックは、デフォルト クラスに属します。スイッチに着信するトラフィックは、入力ポリシー マップにより規制されます。入力ポリシー マップでは、CoS、DSCP、IP precedence、ACL、または VLAN ID を照合して、個別のポリシング、集約ポリシング、または CoS 値、DSCP 値、IP precedence 値、QoS グループ値へのマーキングを設定できます。
入力ポリシー マップの設定を行うときは、次の注意事項に従ってください。
■1 つのポートに付加できる入力ポリシー マップは 1 つに限られます。
■スイッチ上に設定されるポリシー マップの最大数は 256 です。
■スイッチ上に設定できるポリサープロファイルの合計数は 256 です。スイッチでサポートされているポリサーインスタンスの合計数は 1024 - 1 で、スイッチ上のインターフェイス数より多い数です。24 ポート スイッチでは、使用できるポリサー インスタンスの数は 999 です。ポリサー プロファイルは複数のインスタンスで使用できます。
■各入力ポリシーマップの最大クラス数は、64 + class-default です。
■スイッチに付加できる入力ポリシー マップ数は、ハードウェア リソースのアベイラビリティにより制限されます。いずれかのハードウェア リソースの制限を超過する原因となる入力ポリシー マップを付加しようとすると、設定エラーになります。
■ service-policy input インターフェイス コンフィギュレーション コマンドを使用して、インターフェイスに単一レベルのポリシーマップを付加すると、インターフェイスからポリシーを消去せずに、ポリシーを変更できます。分類基準、クラス、またはアクションの追加または削除、もしくは設定されたアクション(ポリサー、レート、マッピング、マーキングなど)のパラメータの変更を行えます。また、ポート単位、VLAN 単位の階層型ポリシー マップのように、階層型ポリシー マップの子ポリシーの基準の変更にも適用されます。
階層型ポリシー マップの親ポリシーの場合、ポリシー マップがインターフェイスに付加されていると、親レベルのクラスを追加または削除できません。インターフェイスからポリシーを消去して、ポリシーを変更してから、このポリシーを再度インターフェイスに付加する必要があります。
■最大 2 レベルの階層型ポリシー マップを、親レベルの VLAN ベース分類だけ含み、子レベルの VLAN ベース分類を含まない入力ポリシー マップとして設定できます。
■レイヤ 2 分類だけを含む入力ポリシー マップが、ルーテッド SVI を含むルーテッド ポートまたはスイッチ ポートに付加されている場合、サービス ポリシーはルーティング適格トラフィック上ではなく、スイッチング適格トラフィック上でだけ作用します。
■802.1Q トンネル ポート上でトラフィックを分類するには、MAC ACL に基づくレイヤ 2 分類を含む入力ポリシー マップだけが使用できます。CoS または VLAN ID に基づくレイヤ 3 分類またはレイヤ 2 分類を含む入力ポリシー マップは、トンネル ポート上でサポートされません。
■入力ポリシー マップは、スケジューリングまたはキューイングではなく、ポリシングおよびマーキングをサポートします。入力ポリシーマップでは、 bandwidth 、 priority 、 queue-limit 、または shape average を設定できません。
次に、異なるタイプの入力ポリシー マップの設定方法を説明します。
■個別のポリシングを含む入力ポリシー マップの設定
■集約ポリシングを含む入力ポリシー マップの設定
■マーキングを含む入力ポリシー マップの設定
■階層型入力ポリシー マップを含むポート単位、VLAN 単位 QoS の設定
個別のポリシングを含む入力ポリシー マップの設定
トラフィックの認定速度制限、認定バーストサイズ制限、およびトラフィッククラスの動作を定義するには、 police ポリシーマップ クラス コンフィギュレーション コマンドを使用して、個別のポリサーを設定します。
個別のポリサーを設定する場合は、次の注意事項に従ってください。
■ポリシングは、入力ポリシー マップ上でだけサポートされます。
■スイッチ上では、最大 229 のポリサーがサポートされます(228 のユーザ設定可能なポリサーと、1 つの内部使用に予約されたポリサー)。
■CPU 保護がイネーブルになっている場合(デフォルト)、ポート当たり 45 の入力ポリサーを設定できます。 no policer cpu uni all グローバル コンフィギュレーション コマンドを入力し、スイッチをリロードして CPU 保護をディセーブルにすると、ユーザ定義クラスにはポート当たり最大 63 のポリサー(すべての 4 番目のポート上で 62)および class-default に 1 つのポリサーを設定できます。show policer cpu uni-eni {drop | rate} 特権 EXEC コマンドを入力し、CPU 保護がイネーブルになっているかどうか確認できます。
■入力ポリシーマップのポリシング超過アクションにテーブルマップを使用する場合、 map from アクションタイプのプロトコルタイプは、対応する分類のプロトコルタイプと同じである必要があります。たとえば、対応するクラスマップが IP 分類を表す場合、テーブルマップを参照する map from アクションタイプは、 dscp または precedence である必要があります。対応するクラスマップが非 IP 分類を表す場合、テーブルマップを参照する map from アクションタイプは、 cos である必要があります。
■2-rate、3-color ポリシングは、入力ポリシー マップでだけサポートされており、1-rate、2-color ポリシングは入力および出力ポリシー マップ両方でサポートされています。
■スイッチ上のポリサー インスタンスの数は 1024 - (インターフェイス数 + 1)です。スイッチは、最大 256 のポリサープロファイルをサポートします。
■violate-action を設定しない場合、デフォルトで違反クラスが exceed-action と同じアクションに割り当てられます。
個別のポリシングを含む入力ポリシーマップを作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
policy-map policy-map-name |
ポリシー マップ名を入力することによってポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。デフォルトでは、クラス マップは定義されていません。 |
3. |
class { class-map-name | class-default } |
クラスマップ名またはすべての未分類のパケットを照合する class-default を入力して、ポリシーマップ クラス コンフィギュレーション モードを開始します。 クラスマップ名を入力する場合は、 class-map グローバル コンフィギュレーション コマンドを使用してクラスマップを作成済みである必要があります。 |
4. |
police { rate-bps | cir cir-bps } [ burst-bytes | bc burst-bytes ] |
トラフィック クラスのポリサーを定義します。 デフォルトでは、ポリサーは定義されていません。 ■ rate-bps には、平均トラフィックレートをビット/秒(bps)で指定します。指定できる範囲は 8000 ~ 1000000000 です。 ■cir cir-bps には、設定情報レート(CIR)を bps で指定します。指定できる範囲は 8000 ~ 1000000000 です。 ■ burst-bytes (任意)には、標準バーストサイズをバイト単位で指定します。指定できる範囲は 8000 ~ 1000000 です。 ■ bc burst-bytes (任意)には、適合バースト(bc)または許容バーストバイト数を指定します。指定できる範囲は 8000 ~ 1000000 です。 |
5. |
conform-action cos { cos_value | cos [ table table-map-name ] | dscp [ table table-map-name ] | precedence [ table table-map-name ]} または conform-action [ip] dscp { dscp_value | cos [ table table-map-name ] | dscp [ table table-map-name ] | precedence [ table table-map-name ]} または conform-action [ip] precedence { precedence_value | cos [ table table-map-name ] | dscp [ table table-map-name ] | precedence [ table table-map-name ]} または conform-action qos-group value または transmit |
(任意)CIR に適合するパケットで実行するアクションを入力します。 ■ cos cos_value には、分類されたトラフィックに割り当てる新しい CoS 値を入力します。指定できる範囲は 0 ~ 7 です。 ■[ip] dscp dscp_value を指定する場合は、分類されたトラフィックに割り当てる新しい DSCP 値を入力します。指定できる範囲は 0 ~ 63 です。 ■[ip] precedence precedence_value を指定する場合は、分類されたトラフィックに割り当てる新しい IP precedence 値を入力します。指定できる範囲は 0 ~ 7 です。 ■または、CoS、DSCP、もしくは IP precedence テーブルを設定して、任意でテーブル名を入力します。 table table-map name を入力しない場合、テーブルマップは、デフォルトの動作 copy になります。テーブル マップの設定を参照してください。 ■ qos-group value には、出力側で使用される QoS グループを識別して、特定のパケットを識別します。有効な範囲は 0 ~ 99 です。 注: police コマンドのあとに、単一の conform-action をコマンドストリングの一部として入力できます。また、 police コマンドのあとに Enter キーを押して、ポリシーマップ クラス ポリシング コンフィギュレーション モードを開始でき、ここで複数のアクションを入力できるようになります。ポリシーマップ クラス ポリシング コンフィギュレーション モードでは、実行するアクションを入力する必要があります。 |
6. |
exceed -action cos { cos_value | cos [ table table-map-name ] | dscp [ table table-map-name ] | precedence [ table table-map-name ]} または exceed -action [ip] dscp { dscp_value | cos [ table table-map-name ] | dscp [ table table-map-name ] | precedence [ table table-map-name ]} または exceed -action [ip] precedence { precedence_value | cos [ table table-map-name ] | dscp [ table table-map-name ] | precedence [ table table-map-name ]} または exceed -action qos-group value |
(任意)CIR に適合しないパケットに実行するアクションを入力します。 ■ cos cos_value には、分類されたトラフィックに割り当てる新しい CoS 値を入力します。指定できる範囲は 0 ~ 7 です。 ■[ip] dscp dscp_value を指定する場合は、分類されたトラフィックに割り当てる新しい DSCP 値を入力します。指定できる範囲は 0 ~ 63 です。 ■[ip] precedence precedence_value を指定する場合は、分類されたトラフィックに割り当てる新しい IP precedence 値を入力します。指定できる範囲は 0 ~ 7 です。 ■または、CoS、DSCP、もしくは IP precedence テーブルを設定して、任意でテーブル名を入力します。 table table-map name を入力しない場合、テーブルマップは、デフォルトの動作 copy になります。テーブル マップの設定を参照してください。 ■ qos-group value には、出力側で使用される QoS グループを識別して、特定のパケットを識別します。有効な範囲は 0 ~ 99 です。 注: police コマンドのあとに、単一の exceed-action をコマンドストリングの一部として入力できます。または、 police コマンドのあとに Enter キーを押して、ポリシーマップ クラス ポリシング コンフィギュレーション モードを開始でき、ここで複数のアクションを入力できるようになります。ポリシーマップ クラス ポリシング コンフィギュレーション モードでは、実行するアクションを入力する必要があります。 注: コマンドのキーワードとして、 exceed-action drop を明示的に設定する場合は、ポリシーマップ クラス ポリシング コンフィギュレーション モードを開始し、 no exceed-action drop コマンドを入力して以前に設定された超過アクションを削除する必要があります。 |
7. |
exit |
ポリシーマップ コンフィギュレーション モードに戻ります。 |
8. |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
9. |
interface interface-id |
ポリシーを付加するインターフェイスで、インターフェイス コンフィギュレーション モードを開始します。 |
10. |
service-policy input policy-map-name |
入力インターフェイスにポリシー マップ(ステップ 2 で作成)を付加します。 |
11. |
end |
特権 EXEC モードに戻ります。 |
12. |
show policy-map [ policy-map-name [ class class-map-name ]] |
入力内容を確認します。 |
13. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
個別の 2-rate、3-color ポリシングを含む入力ポリシーマップを作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
policy-map policy-map-name |
ポリシー マップ名を入力することによってポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。デフォルトでは、クラス マップは定義されていません。 |
3. |
class { class-map-name | class-default } |
クラスマップ名またはすべての未分類のパケットを照合する class-default を入力して、ポリシーマップ クラス コンフィギュレーション モードを開始します。 クラスマップ名を入力する場合は、 class-map グローバル コンフィギュレーション コマンドを使用してクラスマップを作成済みである必要があります。 |
4. |
police { rate-bps | cir { cir-bps } [ burst-bytes ] [ bc [ conform-burst ] [ pir pir-bps [ be peak-burst ]] |
トラフィックのクラスの 1 つまたは 2 つのレート、認定情報レート(CIR)および最大情報レート(PIR)を使用してポリサーを定義します。 デフォルトでは、ポリサーは定義されていません。 ■ rate-bps には、平均トラフィックレートをビット/秒(bps)で指定します。指定できる範囲は 8000 ~ 1000000000 です。 ■cir cir-bps には、bc トークンバケットが更新される CIR を bps で指定します。指定できる範囲は 8000 ~ 1000000000 です。 ■ burst-bytes (任意)には、標準バーストサイズをバイト単位で指定します。指定できる範囲は 8000 ~ 1000000 です。 ■(任意) bc conform-burst には、ポリシングの bc トークンバケットで使用される認定バーストを指定します。指定できる範囲は、8000 ~ 1000000 バイトです。 ■(任意) pir pir-bps には、ポリシングの be トークンバケットが更新される最大情報レートを指定します。指定できる範囲は、8000 ~ 1000000000 b/s です。 pir pir-bps を入力しない場合、ポリサーは 1-rate、2-color ポリサーとして設定されます。 ■ be peak-burst には、be トークンバケットで使用するピークバーストサイズを指定します。指定できる範囲は 8000 ~ 1000000 バイトです。デフォルト値は、ユーザ設定に基づき内部で計算されます。 |
5. |
conform-action [ drop | set-cos-transmit { cos_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-dscp-transmit { dscp_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-prec-transmit { precedence_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-qos-transmit qos-group_value | transmit ] | exceed-action [ drop | set-cos-transmit { cos_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-dscp-transmit { dscp_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-prec-transmit { precedence_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-qos-transmit qos-group_value | transmit ] | violate- action [ drop | set-cos-transmit { cos_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-dscp-transmit { dscp_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-prec-transmit { precedence_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-qos-transmit qos-group_value | transmit ] |
(任意)パケットが CIR に適合するか、PIR に適合するかにより、パケットで実行するアクションを入力します。 ■(任意) conform-action については、CIR および PIR に適合するパケットで実行するアクションを指定します。デフォルトは transmit です。 ■(任意) exceed-action については、PIR に適合するが、CIR には適合しないパケットで実行するアクションを指定します。デフォルトは drop です。 ■(任意) violate-action については、PIR を超過するパケットで実行するアクションを指定します。デフォルトは drop です。 ■(任意) action については、パケットで実行する次のいずれかのアクションを指定します。 – drop :パケットをドロップします。 注: 適合アクションが drop に設定されている場合、超過アクションおよび違反アクションは自動的に drop に設定されます。超過アクションが drop に設定されている場合、違反アクションは自動的に drop に設定されます。 – set-cos-transmit cos-value :パケットに割り当てる新しい CoS 値を入力し、パケットを送信します。範囲は 0 ~ 7 です。 – set-dscp-transmit dscp-value :パケットに割り当てる新しい IP DSCP 値を入力し、パケットを送信します。指定できる範囲は 0 ~ 63 です。また、よく使用される値にはニーモニック名を入力できます。 – set-prec-transmit cos-value :パケットに割り当てる新しい IP precedence 値を入力し、パケットを送信します。範囲は 0 ~ 7 です。 – set-qos-transmit qos-group-value :出力側で使用される QoS グループを識別して、特定のパケットを指定します。有効な範囲は 0 ~ 99 です。 – transmit :内容を変更しないでパケットを送信します。 注: police コマンドのあとに、単一の conform-action をコマンドストリングの一部として入力できます。また、 police コマンドのあとに Enter キーを押して、ポリシーマップ クラス ポリシング コンフィギュレーション モードを開始でき、ここで複数のアクションを入力できるようになります。ポリシーマップ クラス ポリシング コンフィギュレーション モードでは、実行するアクションを入力する必要があります。 |
6. |
exit |
ポリシーマップ コンフィギュレーション モードに戻ります。 |
7. |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
8. |
interface interface-id |
ポリシーを付加するインターフェイスで、インターフェイス コンフィギュレーション モードを開始します。 |
9. |
service-policy input policy-map-name |
入力インターフェイスにポリシー マップ(ステップ 2 で作成)を付加します。 |
10. |
end |
特権 EXEC モードに戻ります。 |
11. |
show policy-map [ policy-map-name| interface ] |
入力内容を確認します。 |
12. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
作成した入力ポリシー マップを、入力方向のインターフェイスに付加します。トラフィック ポリシーのインターフェイスへの適用を参照してください。
既存のポリシーマップ、クラスマップ、またはポリサーを削除するには、該当するコマンドの no 形式を使用します。
次に、ポリシーマップ コンフィギュレーション モードを使用して 2-rate、3-color ポリシングを設定する例を示します。
Switch(config)# class-map cos-4
Switch(config-cmap)# match cos 4
Switch(config-cmap)# exit
Switch(config)# policy-map in-policy
Switch(config-pmap)# class cos-4
Switch(config-pmap-c)# police cir 5000000 pir 8000000 conform-action transmit exceed-action set-dscp-transmit 24 violate-action drop
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy input in-policy
次に、ポリシーマップ クラス ポリシング コンフィギュレーション モードで同じ設定を作成する例を示します。
Switch(config)# class-map cos-4
Switch(config-cmap)# match cos 4
Switch(config-cmap)# exit
Switch(config)# policy-map in-policy
Switch(config-pmap)# class cos-4
Switch(config-pmap-c)# police cir 5000000 pir 8000000
Switch(config-pmap-c-police)# conform-action transmit
Switch(config-pmap-c-police)# exceed-action set-dscp-transmit 24
Switch(config-pmap-c-police)# violate-action drop
Switch(config-pmap-c-police)# end
次に、CoS 値が 4 のトラフィック分類を作成して、ポリシー マップを作成し、入力ポートに付加する例を示します。平均トラフィック レートは、10000000 b/s に制限され、バースト サイズは 10000 バイトです。
Switch(config)# class-map video-class
Switch(config-cmap)# match cos 4
Switch(config-cmap)# exit
Switch(config)# policy-map video-policy
Switch(config-pmap)# class video-class
Switch(config-pmap-c)# police 10000000 10000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy input video-policy
次に、 set dscp の適合アクションおよびデフォルトの超過アクションを含むポリシーマップを作成する例を示します。
Switch(config)# class-map in-class-1
Switch(config-cmap)# match dscp 14
Switch(config-cmap)# exit
Switch(config)# policy-map in-policy
Switch(config-pmap)# class in-class-1
Switch(config-pmap-c)# police 230000 8000 conform-action set-dscp-transmit 33 exceed-action drop
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy input in-policy
次に、ポリシーマップ クラス ポリシング コンフィギュレーション モードを使用して、複数の適合アクションおよび 1 つの超過アクションを設定する例を示します。このポリシー マップでは、CIR を 23000 bps に、適合バースト サイズを 10000 バイトに設定します。このポリシー マップには、複数の適合アクション(DSCP 用およびレイヤ 2 CoS 用)および超過アクションが含まれます。
Switch(config)# class-map cos-set-1
Switch(config-cmap)# match cos 3
Switch(config-cmap)# exit
Switch(config)# policy-map map1
Switch(config-pmap)# class cos-set-1
Switch(config-pmap-c)# police cir 23000 bc 10000
Switch(config-pmap-c-police)# conform-action set-dscp-transmit 48
Switch(config-pmap-c-police)# conform-action set-cos-transmit 5
Switch(config-pmap-c-police)# exceed-action drop
Switch(config-pmap-c-police)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy input map1
次に、ポリシーマップ クラス ポリシング コンフィギュレーション モードで、テーブル マップを使用して超過アクションのマークダウンを設定する例を示します。このポリシー マップでは、CIR を 23000 bps に、適合バースト サイズを 10000 バイトに設定します。このポリシーマップには、デフォルトの適合アクション( transmit )およびテーブルマップに基づいてレイヤ 2 CoS 値をマークダウンし、af41 の IP DSCP をマーキングする超過アクションが含まれます。
Switch(config)# policy-map in-policy
Switch(config-pmap)# class in-class-1
Switch(config-pmap-c)# police cir 23000 bc 10000
Switch(config-pmap-c-police)# exceed-action set-cos-transmit cos table police-cos-markdn-tablemap
Switch(config-pmap-c-police)# exceed-action set-dscp-transmit af41
Switch(config-pmap-c-police)# exit
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy input in-policy
集約ポリシングを含む入力ポリシー マップの設定
集約ポリサーを設定するには、 policer aggregate グローバル コンフィギュレーション コマンドを使用します。集約ポリサーは、同一ポリシー マップ内の複数のトラフィック クラスで共有されます。集約ポリサーを定義し、ポリシー マップを作成し、ポリシー マップにクラス マップを関連付け、集約ポリサーにポリシー マップを関連付け、ポートにサービス ポリシーを適用します。
集約ポリサーを設定する場合は、次の注意事項に従ってください。
■集約ポリシングは、入力ポリシー マップ上でだけサポートされます。
■スイッチ上では、ポートに関連付けられた最大 229 のポリサーがサポートされます(228 のユーザ設定可能なポリサーと、1 つの内部使用に予約されたポリサー)。ポート上では、最大 45 のポリサーを設定できます。
■CPU 保護がイネーブルになっている場合(デフォルト)、ポート当たり 45 の入力ポリサーを設定できます。 no policer cpu uni all グローバル コンフィギュレーション コマンドを入力し、スイッチをリロードして CPU 保護をディセーブルにすると、ユーザ定義クラスにはポート当たり最大 63 のポリサー(すべての 4 番目のポート上で 62)および class-default に 1 つのポリサーを設定できます。show policer cpu uni-eni {drop | rate} 特権 EXEC コマンドを入力し、CPU 保護がイネーブルになっているかどうか確認できます。
■設定される集約ポリサーの最大数は 256 です。
■スイッチ上のポリサー インスタンスの数は 1024 -(スイッチ上の合計インターフェイス数 + 1)です。スイッチは、最大 256 のポリサープロファイルをサポートします。
■violate-action を設定しない場合、デフォルトで違反クラスが exceed-action と同じアクションに割り当てられます。
■1 つのポリシー マップだけが、任意の特定の集約ポリサーを使用できます。集約ポリシングは、複数のインターフェイス上のストリームの集約には使用できません。集約ポリシングは、インターフェイスに付加されるポリシー マップの複数のクラスにまたがるストリームの集約、およびポート単位、VLAN 単位ポリシー マップのポート上の VLAN にまたがるトラフィック ストリームの集約にだけ使用できます。
■入力ポリシー マップのポリシング超過アクションにテーブル マップを使用する場合、map from アクションタイプのプロトコル タイプは、対応する分類のプロトコル タイプと同じである必要があります。たとえば、対応するクラスマップが IP 分類を表す場合、テーブルマップを参照する map from のアクションタイプは、 dscp または precedence のいずれかである必要があります。対応するクラスマップが非 IP 分類を表す場合、テーブルマップを参照する map from アクションタイプは、 cos である必要があります。
■ exceed-action のテーブルマップを設定し、違反アクションのアクションが明示的に設定されていない限り、集約ポリシングの violate-action に対するテーブルマップはサポートされません。
複数の適合および超過アクション 適合、超過、違反アクション を集約ポリサーに policer aggregate グローバル コンフィギュレーション コマンドのパラメータとして同時に設定できますが、次の順序でアクションを入力する必要があります。
■ drop、または transmit あるいは set アクションは、 conform-action のあとに次の順序で入力する必要があります。
set-qos-transmit
set-dscp-transmit または set-prec-transmit
set-cos-transmit
■ drop 、 transmit または set アクションは、 exceed-action のあとに次の順序で入力する必要があります。
set-qos-transmit
set-dscp-transmit または set-prec-transmit
set-cos-transmit
■drop、transmit または set アクションは、violate-action のあとに次の順序で入力する必要があります。
set-qos-transmit
set-dscp-transmit または set-prec-transmit
set-cos-transmit
注: ポリシーマップ クラス ポリシング コンフィギュレーション モードでは、集約ポリサーの適合アクション、超過アクション、および違反アクションは設定しません。すべてのアクションはストリングで入力する必要があります。その結果、複数の適合、超過、および違反の各アクションを入力すると、コマンドが著しく長くなり、切り捨てられたり読みにくくなる場合があります。
集約ポリサーを作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
policer aggregate aggregate-policer-name { rate-bps | cir cir-bps } [ bc burst- value ] [ conform-action [ set-cos-transmit { cos_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-dscp-transmit { dscp_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-prec-transmit { precedence_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-qos-transmit qos-group_value | transmit ] [ exceed action [ drop | set-cos-transmit { cos_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-dscp-transmit { dscp_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-prec-transmit { precedence_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-qos-transmit qos-group_value | transmit ]] |
同じポリシー マップ内の複数のトラフィック クラスに適用できるポリサー パラメータを定義します。 ■ aggregate-policer-name には、集約ポリサーの名前を指定します。 ■ rate-bps には、平均トラフィックレートをビット/秒(bps)で指定します。指定できる範囲は 8000 ~ 1000000000 です。 ■ cir cir-bps には、設定情報レートを bps で指定します。指定できる範囲は 8000 ~ 1000000000 bps です。 ■(任意) bc burst-value には、適合バーストおよび許容バーストバイト数を指定します。指定できる範囲は 8000 ~ 1000000 バイトです。 ■(任意) conform-action については、CIR に適合するパケットで実行するアクションを指定します。デフォルトでは、パケットを送信します。 ■(任意) exceed-action については、CIR を超過するパケットで実行するアクションを指定します。デフォルトは、パケットのドロップです。 使用可能なキーワードの定義については、このリリースのコマンドリファレンス、または個別のポリシングを含む入力ポリシー マップの設定を参照してください。 |
3. |
policy-map policy-map-name |
ポリシー マップ名を入力することによってポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 |
4. |
class { class-map-name | class-default } |
クラスマップ名またはすべての未分類のパケットを照合する class-default を入力して、ポリシーマップ クラス コンフィギュレーション モードを開始します。 クラスマップ名を入力する場合は、 class-map グローバル コンフィギュレーション コマンドを使用してクラスマップを作成済みである必要があります。 |
5. |
police aggregate aggregate-policer-name |
同じポリシー マップ内の複数のクラスに集約ポリサーを適用します。 aggregate-policer-name には、ステップ 2 で指定した名前を入力します。 |
6. |
exit |
ポリシーマップ コンフィギュレーション モードに戻ります。 |
7. |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
8. |
interface interface-id |
ポリシーを付加するインターフェイスで、インターフェイス コンフィギュレーション モードを開始します。 |
9. |
service-policy input policy-map-name |
入力インターフェイスにポリシー マップ(ステップ 3 で作成)を付加します。 |
10. |
end |
特権 EXEC モードに戻ります。 |
11. |
end |
特権 EXEC モードに戻ります。 |
12. |
show policer aggregate [ aggregate-policer-name ] |
入力内容を確認します。 |
13. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
2-rate、3-color 集約ポリサーを作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
policer aggregate aggregate-policer-name { rate-bps | cir cir-bps } [ burst-bytes ] [ bc [ conform-burst ] [ pir pir-bps [ be peak-burst ]] [ conform-action [ drop | set-cos-transmit { cos_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-dscp-transmit { dscp_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-prec-transmit { precedence_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-qos-transmit qos-group_value | transmit ] [ exceed-action [ drop | set-cos-transmit { cos_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-dscp-transmit { dscp_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-prec-transmit { precedence_value | [ cos | dscp | precedence ] [ table table-map name ]} | set-qos-transmit qos-group_value | transmit ]] [ violate- action [ drop | set-cos-transmit { cos_value | [ cos | dscp | precedence ]} | set-dscp-transmit { dscp_value | [ cos | dscp | precedence ]} | set-prec-transmit { precedence_value | [ cos | dscp | precedence ]} | set-qos-transmit qos-group_value | transmit ]] |
同じポリシー マップ内の複数のトラフィック クラスに適用できるポリサー パラメータを定義します。 ■ aggregate-policer-name には、集約ポリサーの名前を指定します。 ■ rate-bps には、平均トラフィック レートをビット/秒(bps)で指定します。指定できる範囲は 8000 ~ 1000000000 です。 ■cir cir-bps には、最初のトークンバケットが更新される CIR を b/s 単位で指定します。指定できる範囲は 8000 ~ 1000000000 です。 ■ burst-bytes (任意)には、標準バーストサイズをバイト単位で指定します。指定できる範囲は 8000 ~ 1000000 です。 ■(任意) bc conform-burst には、ポリシングの最初のトークンバケットで使用される認定バーストを指定します。指定できる範囲は、8000 ~ 1000000 バイトです。 ■(任意) pir pir-bps には、ポリシングの 2 番目のトークンバケットが更新される最大情報レートを指定します。指定できる範囲は 8000 ~ 1000000000 bps です。 pir pir-bps を入力しない場合、ポリサーは 1-rate、2-color ポリサーとして設定されます。 ■ be peak-burst には、2 番目のトークンバケットで使用するピークバーストサイズを指定します。指定できる範囲は 8000 ~ 1000000 バイトです。デフォルト値は、ユーザ設定に基づき内部で計算されます。 ■(任意) conform-action については、CIR に適合するパケットで実行するアクションを指定します。デフォルトでは、パケットを送信します。 注: 適合アクションが drop に設定されている場合、超過アクションおよび違反アクションは自動的に drop に設定されます。超過アクションが drop に設定されている場合、違反アクションは自動的に drop に設定されます。 ■(任意) exceed-action については、CIR を超過するパケットで実行するアクションを指定します。デフォルトは、パケットのドロップです。 ■(任意) violate-action については、CIR に適合するパケットで実行するアクションを指定します。デフォルトは、パケットのドロップです。 アクションキーワードの定義については、個別のポリシングを含む入力ポリシー マップの設定を参照してください。 注: exceed-action のテーブルマップを設定し、違反アクションのアクションが明示的に設定されていない限り、集約ポリシングの violate-action に対するテーブルマップは設定できません。 |
3. |
policy-map policy-map-name |
ポリシー マップ名を入力することによってポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 |
4. |
class { class-map-name | class-default } |
クラスマップ名またはすべての未分類のパケットを照合する class-default を入力して、ポリシーマップ クラス コンフィギュレーション モードを開始します。 クラスマップ名を入力する場合は、 class-map グローバル コンフィギュレーション コマンドを使用してクラスマップを作成済みである必要があります。 |
5. |
police aggregate aggregate-policer-name |
同じポリシー マップ内の複数のクラスに集約ポリサーを適用します。 aggregate-policer-name には、ステップ 2 で指定した名前を入力します。 |
6. |
exit |
ポリシーマップ コンフィギュレーション モードに戻ります。 |
7. |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
8. |
interface interface-id |
ポリシーを付加するインターフェイスで、インターフェイス コンフィギュレーション モードを開始します。 |
9. |
service-policy input policy-map-name |
入力インターフェイスにポリシー マップ(ステップ 3 で作成)を付加します。 |
10. |
end |
特権 EXEC モードに戻ります。 |
11. |
show policer aggregate [ aggregate-policer-name ] |
入力内容を確認します。 |
12. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
集約ポリサーを作成してから、それを入力ポートに付加します。トラフィック ポリシーのインターフェイスへの適用を参照してください。
指定された集約ポリサーをポリシー マップから削除するには、 no police aggregate aggregate-policer-name ポリシー マップ コンフィギュレーション モードを使用します。集約ポリサーおよびそのパラメータを削除するには、 no policer aggregate aggregate-policer-name グローバル コンフィギュレーション コマンドを使用します。
次に、集約ポリサーを作成して、ポリシー マップ内の複数のクラスに結合する例を示します。ポリシー マップは入力ポートに結合されます。
Switch(config)# policer aggregate example 10900000 80000 conform-action transmit exceed-action drop
Switch(config)# class-map testclass1
Switch(config-cmap)# match access-group 1
Switch(config-cmap)# exit
Switch(config)# class-map testclass2
Switch(config-cmap)# match access-group 2
Switch(config-cmap)# exit
Switch(config)# policy-map testexample
Switch(config-pmap)# class testclass
Switch(config-pmap-c)# police aggregate example
Switch(config-pmap-c)# exit
Switch(config-pmap)# class testclass2
Switch(config-pmap-c)# police aggregate example
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy input testexample
次に、2-rate、3-color 集約ポリサーを作成し、ポリシー マップ内の複数のクラスに付加する例を示します。ポリシー マップは入力ポートに結合されます。
Switch(config)# policer aggregate example cir 10900000 pir 80000000 conform-action transmit exceed-action drop violate-action drop
Switch(config)# class-map testclass1
Switch(config-cmap)# match access-group 1
Switch(config-cmap)# exit
Switch(config)# class-map testclass2
Switch(config-cmap)# match access-group 2
Switch(config-cmap)# exit
Switch(config)# policy-map testexample
Switch(config-pmap)# class testclass
Switch(config-pmap-c)# police aggregate example
Switch(config-pmap-c)# exit
Switch(config-pmap)# class testclass2
Switch(config-pmap-c)# police aggregate example
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy input testexample
マーキングを含む入力ポリシー マップの設定
特定のクラスに属するトラフィックの属性を設定または変更するには、 set ポリシーマップ クラス コンフィギュレーション コマンドを使用します。ポリシー マップでマーキングの設定を行うときは、次の注意事項に従ってください。
■スイッチ上には、最大 100 の QoS グループを設定できます。
■入力ポリシー マップのマーキングにテーブル マップを使用する場合、map from アクション タイプのプロトコル タイプは、対応する分類のプロトコル タイプと同じである必要があります。たとえば、対応するクラスマップが IP 分類を表す場合、テーブルマップを参照する map from のアクションタイプは、 dscp または precedence のいずれかである必要があります。対応するクラスマップが非 IP 分類を表す場合、テーブルマップを参照する map from アクションタイプは、 cos である必要があります。
トラフィックをマーキングする入力ポリシー マップを作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
policy-map policy-map-name |
ポリシー マップ名を入力することによってポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 |
3. |
class { class-map-name | class-default } |
クラスマップ名またはすべての未分類のパケットを照合する class-default を入力して、ポリシーマップ クラス コンフィギュレーション モードを開始します。 クラスマップ名を入力する場合は、 class-map グローバル コンフィギュレーション コマンドを使用してクラスマップを作成済みである必要があります。 |
4. |
set qos-group value および/または set cos { cos_value | cos [ table table-map-name ] | dscp [ table table-map-name ] | precedence [ table table-map-name ]} および/または set [ ip ] dscp { dscp_value | cos [ table table-map-name ] | dscp [ table table-map-name ] | precedence [ table table-map-name ]} および/または set [ ip ] precedence { precedence_value | cos [ table table-map-name ] | dscp [ table table-map-name ] | precedence [ table table-map-name ]} |
パケットに新しい値を設定するか、テーブル マップを指定するか、または QoS グループを指定することにより、トラフィックをマーキングします。 ■ qos-group value には、出力側で使用される QoS グループを識別して、特定のパケットを識別します。有効な範囲は 0 ~ 99 です。 ■ cos cos_value には、分類されたトラフィックに割り当てる新しい CoS 値を入力します。指定できる範囲は 0 ~ 7 です。 ■[ip] dscp new-dscp には、分類されたトラフィックに割り当てる新しい DSCP 値を入力します。指定できる範囲は 0 ~ 63 です。 ■[ip] precedence new-precedence には、分類されたトラフィックに割り当てる新しい IP precedence 値を入力します。指定できる範囲は 0 ~ 7 です。 ■または、CoS、DSCP、もしくは IP precedence テーブルを設定して、任意でテーブル名を入力します。 table table-map name を入力しない場合、テーブルマップは、デフォルトの動作 copy になります。テーブル マップの設定を参照してください。 |
5. |
exit |
ポリシーマップ コンフィギュレーション モードに戻ります。 |
6. |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
7. |
interface interface-id |
ポリシーを付加するインターフェイスで、インターフェイス コンフィギュレーション モードを開始します。 |
8. |
service-policy input policy-map-name |
入力インターフェイスにポリシー マップ(ステップ 2 で作成)を付加します。 |
9. |
end |
特権 EXEC モードに戻ります。 |
10. |
show policy-map [ policy-map-name [ class class-map-name ]] |
入力内容を確認します。 |
11. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
ポリシーマップまたはテーブルマップを削除する場合、または割り当てられた CoS 値、DSCP 値、precedence 値、または QoS グループ値を削除する場合は、該当するコマンドの no 形式を使用します。
次に、ポリシー マップを使用してパケットをマーキングする例を示します。最初のマーキング( set コマンド)は、クラス AF31 ~ AF33 によって一致しなかったすべてのトラフィックを照合する QoS デフォルトクラスマップに適用され、すべてのトラフィックの IP DSCP 値を 1 に設定します。2 番目のマーキングは、クラス AF31 ~ AF33 のトラフィックの IP DSCP を 3 に設定します。
Switch(config)# policy-map Example
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# set dscp 1
Switch(config-pmap-c)# exit
Switch(config-pmap)# class AF31-AF33
Switch(config-pmap-c)# set ip dscp 3
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy input Example
階層型入力ポリシー マップを含むポート単位、VLAN 単位 QoS の設定
ポート単位、VLAN 単位 QoS により、所定のインターフェイスおよび VLAN 上で受信されるフレームへの QoS の適用に関して、VLAN ID に基づく分類が可能になります。これは、親ポリシーおよび子ポリシーを含む階層型ポリシー マップの使用により実現されます。
ポート単位、VLAN 単位 QoS を設定する場合は、次の注意事項および制限事項に留意してください。
■この機能は、2 レベルの階層型入力ポリシー マップを使用する場合に限り、サポートされます。このポリシー マップは、親レベルで VLAN ベースの分類を定義し、子レベルで 1 つまたは複数の該当する VLAN に適用される QoS ポリシーを定義します。
■親レベルで複数のサービス クラスを設定することにより、各種 VLAN の組み合わせを照合できます。また、子ポリシー マップを使用することにより、親サービス クラスごとに個別の QoS ポリシーを適用できます。
■子ポリシー マップに関連付けられた 1 つまたは複数のクラスがあるポリシーは、親ポリシー マップと見なされます。親ポリシー マップ内の各クラスは、親クラスと呼ばれます。親クラスでは、 match vlan クラスマップ コンフィギュレーション コマンドだけを設定できます。子ポリシーマップ内のクラスでは、 match vlan コマンドを設定できません。
■ポート単位 VLAN 単位の親レベルのクラス マップでは、子ポリシー アソシエーションだけをサポートします。いずれのアクションも設定できません。親レベルのクラスマップでは、クラスの class-default のアクションまたは子ポリシーアソシエーションを設定できません。
■子ポリシー マップ内では、レイヤ 2 とレイヤ 3 が混在するクラス マップを設定できません。このような子ポリシー マップを親ポリシーに関連付けようとすると、設定は拒否されます。ただし、レイヤ 2 とレイヤ 3 の子ポリシーを異なる親レベルのクラス マップに関連付けることはできます。
■ポート単位、VLAN 単位 QoS は、802.1Q トランク ポート上でだけサポートされます。
■VLAN または一連の VLAN に付加されている子ポリシーマップに、レイヤ 3 分類( match ip dscp 、 match ip precedence 、 match IP ACL )だけが含まれる場合は、これらの VLAN が、必ずポート単位 VLAN 単位ポリシーが付加されているポート上でだけ伝送されることに注意する必要があります。このルールに従わない場合は、これらの VLAN 上のスイッチに着信するトラフィックの QoS 動作が不適切になる場合があります。
■また、ポート単位 VLAN 単位が適用されるトランクポート上で、 switchport trunk allowed vlan インターフェイス コンフィギュレーション コマンドを使用して、VLAN メンバーシップを制限することも推奨します。レイヤ 3 分類が設定されたポート単位、VLAN 単位のポリシーが含まれるトランク ポート間で VLAN メンバーシップが重複した場合も、予期せぬ QoS 動作が発生する可能性があります。
ポート単位、VLAN 単位 QoS の設定手順は、次のとおりです。
■子ポリシーのクラス マップの作成
■親ポリシーのクラス マップの作成
■子ポリシー マップの作成
■親ポリシー マップの作成
■インターフェイスへの親ポリシー マップの付加
子ポリシーのクラス マップの作成
1 つまたは複数の子ポリシーのクラス マップを作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
class-map [ match-all | match-any ] child-class-map-name |
クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。デフォルトでは、クラス マップは定義されていません。 ■(任意)このクラス マップ配下のすべての一致ステートメントの論理 AND を実行するには、 match-all キーワードを使用します。この場合は、クラス マップ内のすべての一致条件と一致する必要があります。 ■(任意)このクラス マップ配下のすべての一致ステートメントの論理 OR を実行するには、 match-any キーワードを使用します。この場合は、1 つまたは複数の一致条件と一致する必要があります。 ■ class-map-name には、クラス マップ名を指定します。 一致文が指定されない場合、デフォルトは match-all になります。 注: match-all クラスマップでは、複数の分類基準(match 文)を設定できません。 |
3. |
match { access-group acl-index-or-name | cos cos-list | ip dscp dscp-list | ip precedence ip-precedence-list | qos-group value | vlan vlan-list } |
トラフィックを分類するための一致条件を定義します。デフォルトでは、一致条件は定義されていません。 各クラス マップでサポートされる一致タイプおよび ACL は、それぞれ 1 つだけです。 ■ access-group acl-index-or-name には、ACL の番号または名前を指定します。アクセス グループの照合は、入力ポリシー マップでだけサポートされます。 ■ cos cos-list を指定する場合は、1 行に最大 4 つの CoS 値のリストを入力して、着信パケットと照合します。各値はスペースで区切ります。5 つ以上の CoS 値を照合する場合は、複数の cos-list 行を入力できます。指定できる範囲は 0 ~ 7 です。 ■ ip dscp dscp-list を指定する場合は、着信パケットと照合する最大 8 つの IPv4 DSCP 値を入力します。各値はスペースで区切ります。9 つ以上の DSCP 値を照合する場合は、複数の dscp-list 行を入力できます。指定できる数値範囲は 0 ~ 63 です。DSCP 値は、他の形式でも設定できます。IP DSCP に基づく分類を参照してください。 ■ ip precedence ip-precedence-list を指定する場合は、着信パケットと照合する最大 4 つの IPv4 precedence 値のリストを入力します。各値はスペースで区切ります。5 つ以上の precedence 値を照合する場合は、複数の ip-precedence-list 行を入力できます。指定できる範囲は 0 ~ 7 です。 ■ qos-group value を指定する場合、QoS グループ番号を指定します。指定できる範囲は 0 ~ 99 です。QoS グループの照合は、出力ポリシー マップでだけサポートされます。 ■ vlan vlan-list を指定する場合、トランクポート上のポート単位、VLAN 単位の QoS に関して親ポリシーマップで使用される VLAN ID または VLAN 範囲を指定します。VLAN ID の範囲は 1 ~ 4094 です。 |
4. |
end |
特権 EXEC モードに戻ります。 |
5. |
show class-map |
入力内容を確認します。 |
6. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
親ポリシーのクラス マップの作成
1 つまたは複数の親ポリシーのクラス マップを作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
class-map match-any parent-class-map-name |
親ポリシーに match-any クラスマップを作成して、クラスマップ コンフィギュレーション モードを開始します。 注: 1 つの VLAN ID だけを照合する場合は、 match-all を入力するか、または match-any もしくは match-all のいずれも入力しません(デフォルトの match-all になります)。 |
3. |
match vlan vlan-id |
トラフィックを分類する 1 つまたは複数の VLAN を定義します。 vlan-id には、トランクポート上のポート単位、VLAN 単位 QoS の親ポリシーマップで使用される、VLAN ID、スペースで区切られた一連の VLAN ID、またはハイフンで区切られた VLAN 範囲を指定します。VLAN ID の範囲は 1 ~ 4094 です。 また、 match vlan コマンドを複数回入力すると、複数の VLAN を照合できます。 |
4. |
end |
特権 EXEC モードに戻ります。 |
5. |
show class-map |
入力内容を確認します。 |
6. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
子ポリシー マップの作成
1 つまたは複数の子ポリシー マップを作成するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
policy-map child-policy-map-name |
ポリシー マップ名を入力して子ポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。 |
3. |
class { child-class-map-name | class-default } |
子クラスマップ名またはすべての未分類のパケットを照合する class-default を入力して、ポリシーマップ クラス コンフィギュレーション モードを開始します。 |
4. |
police ポリシーマップ クラス コンフィギュレーション コマンドを使用して、トラフィッククラスのポリサーおよびアクションを設定するか、または set ポリシーマップ クラス コンフィギュレーション コマンドを使用して、クラスに属するトラフィックをマーキングします。 |
5. |
end |
特権 EXEC モードに戻ります。 |
6. |
show policy-map [ child- policy-map-name [ class class-map-name ]] |
入力内容を確認します。 |
7. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
親ポリシー マップの作成
親ポリシー マップを作成し、それをインターフェイスに付加するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
policy-map parent-policy-map-name |
ポリシー マップ名を入力して親ポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。 |
3. |
class parent-class-map-name |
親クラスマップ名を入力し、ポリシーマップ クラス コンフィギュレーション モードを開始します。 |
4. |
service policy child-policy-map-name |
親ポリシー マップに子ポリシー マップを関連付けます。 |
5. |
end |
特権 EXEC モードに戻ります。 |
6. |
show policy-map [ parent-policy-map-name [ class class-map-name ]] |
入力内容を確認します。 |
7. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
インターフェイスへの親ポリシー マップの付加
作成した親ポリシー マップをインターフェイスに付加するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
interface interface-id |
ポリシーを付加するインターフェイスで、インターフェイス コンフィギュレーション モードを開始します。 |
3. |
switchport mode trunk |
ポートをトランク ポートとして設定します。 |
4. |
switchport trunk allowed vlan vlan-list |
(推奨)ポート単位、VLAN 単位ポリシーにレイヤ 3 分類が含まれる場合は、トランク ポートの VLAN メンバーシップを制限して、VLAN メンバーシップが重複しないようにします。 |
5. |
service-policy input parent- policy-map-name |
入力インターフェイスに親ポリシー マップ(前述の手順で作成)を付加します。 |
6. |
end |
特権 EXEC モードに戻ります。 |
7. |
show policy-map interface [ interface-id ] |
入力内容を確認します。 |
8. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
次に、複数の親クラスを使用して、カスタマー VLAN 上の音声およびビデオの一致基準を分類する例を示します。
Switch(config)# class-map match-any video
Switch(config-cmap)# match ip dscp af41
Switch(config-cmap)# exit
Switch(config)# class-map match-any voice
Switch(config-cmap)# match ip dscp ef
Switch(config-cmap)# exit
Switch(config)# class-map match-any customer1-vlan
Switch(config-cmap)# match vlan 100-105
Switch(config-cmap)# exit
Switch(config)# class-map match-any customer2-vlan
Switch(config-cmap)# match vlan 110-120
Switch(config-cmap)# exit
Switch(config)# policy-map child-policy-1
Switch(config-pmap)# class voice
Switch(config-pmap-c)# police cir 10000000 bc 50000
Switch(config-pmap-c-police)# conform-action set-cos-transmit 5
Switch(config-pmap-c-police)# exceed-action drop
Switch(config-pmap-c-police)# exit
Switch(config-pmap-c)# exit
Switch(config-pmap)# class video
Switch(config-pmap-c)# set cos 4
Switch(config-pmap-c)# exit
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# set cos 0
Switch(config-pmap-c)# exit
Switch(config)# policy-map child-policy-2
Switch(config-pmap)# class voice
Switch(config-pmap-c)# police cir 5000000
Switch(config-pmap-c-police)# conform-action set-cos-transmit 5
Switch(config-pmap-c-police)# exceed-action drop
Switch(config-pmap-c-police)# exit
Switch(config-pmap-c)# exit
Switch(config-pmap)# class video
Switch(config-pmap-c)# police cir 40000000
Switch(config-pmap-c-police)# conform-action set-cos-transmit 4
Switch(config-pmap-c-police)# exceed-action set-cos-transmit 1
Switch(config-pmap-c-police)# exit
Switch(config-pmap-c)# exit
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# set cos 0
Switch(config-pmap-c)# exit
Switch(config)# policy-map uni-parent
Switch(config-pmap)# class customer1-vlan
Switch(config-pmap-c)# service-policy child-policy-1
Switch(config-pmap-c)# exit
Switch(config-pmap)# class customer2-vlan
Switch(config-pmap-c)# service-policy child-policy-2
Switch(config-pmap-c)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan 100-105, 110-120
Switch(config-if)# service-policy input uni-parent
Switch(config-pmap-c)# exit
出力ポリシー マップの設定
出力ポリシー マップは、スイッチから発信されるパケットの輻輳回避、キューイング、およびスケジューリングを管理するのに使用します。スイッチには、4 つの出力キューがあり、そのキュー トラフィックを制御するには、出力ポリシー マップを使用します。これらのキューでは、シェーピング、キュー制限、および帯域幅を設定します。高いプライオリティ(クラスベース プライオリティ キューイング)を使用できます。クラスベース プライオリティ キューイングにポリシング付きプライオリティが設定されている場合以外は、ポリシングは出力ポリシー マップでサポートされません。出力ポリシー マップの分類基準には、CoS 値、DSCP 値、IP Precedence 値、または QoS グループ値の照合が含まれます。
物理ポートに出力ポリシー マップを設定する際は、次の注意事項に従ってください。
■スイッチ上のポート数に応じた数の出力ポリシー マップを設定および付加できます。複数の出力ポリシー マップで同じキュー制限設定を使用できます。ただし、これらのポリシー マップには、固有のキュー制限を 3 つしか設定できません。
■出力ポリシーマップには、最大 4 つのクラス(クラス class-default を含む)を含めることができます。
■すべての出力ポリシー マップでは、同じ数(1、2、または 3 のいずれか)のクラス マップが定義されている必要があります。
■出力ポリシー マップごとに各クラスで異なるアクションを設定できますが、すべての出力ポリシー マップで同じクラス設定を使用する必要があります。
■子ポリシーマップでは、 class-default が、 priority および police 以外のすべての出力ポリシーマップアクションをサポートします。 class-default のキュー制限の設定で、スケジューリング動作を設定する必要がないこと以外は、 class-default の動作制限はその他のクラスと同じです。
■出力側の基準に基づいて分類する場合、その基準を入力側で確立する必要があります。マーキングはなくポリシングだけが設定されている場合に限り、分類を使用して、または任意のマーキング( conform または exceed マーキングを含むポリシングか、無条件の set マーキング)が設定されている場合は、明示的なマーキングを使用して、入力側で基準を確立できます。
■出力ポリシーマップのクラス class-default にはクラスベース プライオリティ キューイングを設定できません。
■出力ポリシー マップでは、プライオリティ キューイングが設定されていない限り、クラスのデフォルトには、ポート上の未設定の帯域幅に等しい最小帯域幅保証を受信します。
■設定済みアクションのパラメータ(レート、パーセンテージなど)だけを変更したり、またはインターフェイスにポリシーマップが付加されている場合にクラスマップの分類基準を追加、削除する場合は、まず service-policy インターフェイス コンフィギュレーション コマンドを使用して、インターフェイスに出力ポリシーマップを付加します。クラスまたはアクションを追加、削除するには、すべてのインターフェイスからポリシー マップを消去して、変更し、再度インターフェイスに付加する必要があります。
ポリシー マップで 3 つのクラスが必要となる予定がある場合は、その時点では 3 つすべてを使用しないときでも、ポリシー マップの作成時に 3 つのクラスを定義する必要があります。インターフェイスにポリシー マップを付加したあとで、ポリシー マップにクラスを追加できません。
■アクティブ ポートに少なくとも 1 つの出力ポリシー マップが付加されている場合、出力ポリシー マップが付加されていないアクティブ ポートでは、付加された出力ポリシー マップと同じクラスを使用しているトラフィックを適切にスケジューリングしたり、順序付けできない場合があります。使用中のすべてのポートに、出力ポリシー マップを付加することを推奨します。また、未使用のポートは、 shutdown インターフェイス コンフィギュレーション コマンドを使用してシャットダウンステートにすることも推奨します。たとえば、DSCP 23 トラフィックをシェーピングする出力ポリシー マップをポートに付加する場合に、同一ポートから他のトラフィックが送出されると、ポリシー マップが付加されていない他のポートから送信される DSCP トラフィックは適切にスケジューリングまたは順序付けされない場合があります。
■出力ポリシー マップをポートに付加して、ポートが出力ポリシー マップを無効にするレートに自動ネゴシエーションされないようにする場合は、ポート速度の自動ネゴシエーションをディセーブルにするよう強く推奨します。 speed インターフェイス コンフィギュレーション コマンドを使用すると、スタティックなポート速度を設定できます。自動ネゴシエーションするように設定されているポートで出力ポリシー マップが設定されていて、その速度がポリシーを無効にする値に自動ネゴシエーションされた場合、ポートは error-disabled ステートになります。
■1 つのポートに付加できる出力ポリシー マップは、1 つに限られます。
■スイッチ上に設定されるポリシー マップの最大数は 256 です。
ここでは、異なるタイプの出力ポリシー マップの設定について説明します。
■CBWFQ を含む出力ポリシー マップの設定
■クラスベース シェーピングを含む出力ポリシー マップの設定
■ポート シェーピングを含む出力ポリシー マップの設定
■クラスベース プライオリティ キューイングを含む出力ポリシー マップの設定
■WTD を含む出力ポリシー マップの設定
CBWFQ を含む出力ポリシー マップの設定
CBWFQ を設定するには、 bandwidth ポリシーマップ クラス コンフィギュレーション コマンドを使用します。CBWFQ では、ポートで使用可能な総帯域幅の一部を割り当てることにより、キューの相対的な優先順位を設定します。
CBWFQ の設定時は、次の注意事項に従ってください。
■ポリシー マップで帯域幅を設定する場合は、すべてのレート設定を同じ形式(設定されたレートまたはパーセンテージ)にする必要があります。
■ポリシーの各キューにおける最小帯域幅保証の合計速度は、インターフェイスの合計速度を上回ることはできません。
■出力ポリシーマップ内の同一のクラスに、CBWFQ( bandwidth )とトラフィック( shape average )またはプライオリティキューイング( priority )を設定できません。
■別のクラス マップで完全プライオリティ(ポリシングなしのプライオリティ)が設定されている場合には、帯域幅を絶対レートまたは総帯域幅に対するパーセンテージとして設定できません。
■出力ポリシー マップの別のクラスで完全プライオリティ(ポリシングなしのプライオリティ)が設定されている場合にだけ、帯域幅を残りの帯域幅に対するパーセンテージで設定できます。
■クラスの CIR 帯域幅を絶対レートまたは総帯域幅に対するパーセンテージで設定する場合、ポリシー マップ内のすべてのクラスの CIR の処理後に残った余剰な帯域幅は、いずれも CIR レートと同じ比率でクラス間に配分されます。クラスの CIR レートを 0 に設定した場合、このクラスはいずれの余剰帯域幅に対しても不適格となり、帯域幅を取得できません。
最小帯域幅をビット レートまたはパーセンテージで指定することにより、CBWFQ を使用してトラフィック クラスに割り当てられる帯域幅を制御するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
policy-map policy-map-name |
ポリシー マップ名を入力することによってポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 |
3. |
class { class-map-name | class-default } |
子クラスマップ名またはすべての未分類のパケットを照合する class-default を入力して、ポリシーマップ クラス コンフィギュレーション モードを開始します。 |
4. |
bandwidth { rate | percent value | remaining percent value } |
ポリシー マップ クラスに出力帯域幅制限を設定します。 ■帯域幅を kps で設定するには、 rate を入力します。指定できる範囲は 64 ~ 1000000 です。 ■総帯域幅のパーセンテージとして帯域幅を設定するには、 percent value を入力します。指定できる範囲は 1 ~ 100% です。 ■残りの帯域幅のパーセンテージとして帯域幅を設定するには、 remaining percent value を入力します。指定できる範囲は 1 ~ 100% です。このキーワードは、出力ポリシー マップ内の他のクラスに完全プライオリティ(ポリシングなしのプライオリティ)が設定されている場合に限り有効です。 出力ポリシー内の各帯域幅設定では、同一の単位(絶対レートまたはパーセンテージ)を指定する必要があります。合計保証帯域幅は、使用可能な合計レートを超過できません。 |
5. |
exit |
ポリシーマップ コンフィギュレーション モードに戻ります。 |
6. |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
7. |
interface interface-id |
ポリシーを付加するインターフェイスで、インターフェイス コンフィギュレーション モードを開始します。 |
8. |
service-policy output policy-map-name |
出力インターフェイスにポリシー マップ(ステップ 2 で作成)を付加します。 |
9. |
end |
特権 EXEC モードに戻ります。 |
10. |
show policy-map [ policy-map-name [ class class-map-name ]] |
入力内容を確認します。 |
11. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
作成された出力ポリシー マップを、出力ポートに付加します。トラフィック ポリシーのインターフェイスへの適用を参照してください。
既存のポリシーマップ、クラスマップ、または帯域幅設定を削除するには、該当するコマンドの no 形式を使用します。
次に、クラス マップで定義されたトラフィック クラスに、使用可能な合計帯域幅の 25% を割り当てて、キューの優先順位を設定する例を示します。
Switch(config)# policy-map gold_policy
Switch(config-pmap)# class out_class-1
Switch(config-pmap-c)# bandwidth percent 25
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface GigabitEthernet1/17
Switch(config-if)# service-policy output gold_policy
クラスベース シェーピングを含む出力ポリシー マップの設定
トラフィックシェーピングを設定するには、 shape average ポリシーマップ クラス コンフィギュレーション コマンドを使用します。クラスベース シェーピングは、インターフェイスから発信されるトラフィック クラスに適用される制御メカニズムで、クラスの CIR で使用されるデータ伝送速度を制限するには、shape average コマンドを使用します。
クラスベース シェーピングの設定を行うときは、次の注意事項に従ってください。
■トラフィック シェーピングのキュー設定により、キューの最大帯域幅および Peak Information Rate(PIR)が設定されます。トラフィックシェーピングの自動設定により、キューの最小帯域幅保証または CIR も PIR と同じ値に設定されます。
■出力ポリシーマップ内の同一のクラスに、CBWFQ( bandwidth )またはプライオリティキューイング( priority )およびトラフィック( shape average )を設定できません。
■出力ポリシー マップ内の別のクラスに、完全プライオリティ(ポリシングなしのプライオリティ)が設定されている場合、特定のトラフィック クラスにトラフィック シェーピングを設定できません。
クラスベース シェーピングを使用して、トラフィック クラスの最大許容平均速度を設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
policy-map policy-map-name |
ポリシー マップ名を入力することによってポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 |
3. |
class { class-map-name | class-default } |
子クラスマップ名またはすべての未分類のパケットを照合する class-default を入力して、ポリシーマップ クラス コンフィギュレーション モードを開始します。 |
4. |
shape average target bps |
平均クラスベース シェーピング速度を指定します。 target bps には、平均ビットレートを bps で指定します。指定できる範囲は 64000 ~ 1000000000 です。 |
5. |
exit |
ポリシーマップ コンフィギュレーション モードに戻ります。 |
6. |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
7. |
interface interface-id |
ポリシーを付加するインターフェイスで、インターフェイス コンフィギュレーション モードを開始します。 |
8. |
service-policy output policy-map-name |
出力インターフェイスにポリシー マップ(ステップ 2 で作成)を付加します。 |
9. |
end |
特権 EXEC モードに戻ります。 |
10. |
show policy-map [ policy-map-name [ class class-map-name ]] |
入力内容を確認します。 |
11. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
作成された出力ポリシー マップを、出力ポートに付加します。トラフィック ポリシーのインターフェイスへの適用を参照してください。
既存のポリシーマップ、クラスマップ、またはクラスベースシェーピングの設定を削除するには、該当するコマンドの no 形式を使用します。
ポート シェーピングを含む出力ポリシー マップの設定
ポート シェーピングは、インターフェイスから発信されるすべてのトラフィックに適用されます。 shape average コマンドによりポートの最大帯域幅が指定されている場合は、クラスのデフォルトだけを使用するポリシーマップを使用します。子ポリシーが、階層型ポリシー マップ形式でクラスのデフォルトに付加されると、シェーピング ポート上のキューのクラスベース アクションを指定できます。
子ポリシーの各キューにおける最小帯域幅保証の合計(CIR)は、ポート シェーピングの合計速度を上回ることはできません。
ポート シェーピングを使用して、トラフィック クラスの最大許容平均速度を設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
policy-map policy-map-name |
階層型ポリシー マップ名を入力して階層型ポリシー マップを作成し、親ポリシーのポリシーマップ コンフィギュレーション モードを開始します。 |
3. |
class class-default |
デフォルト クラスのポリシーマップ クラス コンフィギュレーション モードを開始します。 |
4. |
shape average target bps |
平均クラスベース シェーピング速度を指定します。 target bps には、平均ビットレートを bps で指定します。指定できる範囲は 4000000 ~ 1000000000 です。 |
5. |
service-policy policy-map-name |
必要に応じて、階層型ポリシー マップで使用される子ポリシー マップを指定します。 |
6. |
exit |
ポリシーマップ コンフィギュレーション モードに戻ります。 |
7. |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
8. |
interface interface-id |
ポリシーを付加するインターフェイスで、インターフェイス コンフィギュレーション モードを開始します。 |
9. |
service-policy output policy-map-name |
出力インターフェイスに親ポリシー マップ(ステップ 2 で作成)を付加します。 |
10. |
end |
特権 EXEC モードに戻ります。 |
11. |
show policy-map [ policy-map-name [ class class-map-name ]] |
入力内容を確認します。 |
12. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
作成された階層型出力ポリシー マップを、出力ポートに付加します。トラフィック ポリシーのインターフェイスへの適用を参照してください。
既存の階層型ポリシーマップ、ポートシェーピングの設定を削除したり、または階層型ポリシーマップからポリシーマップを削除するには、該当するコマンドの no 形式を使用します。
次に、前述の例で設定された out-policy ポリシーマップに基づいて割り当てられ、ポートを 90 Mbps にシェーピングする階層型ポリシーマップを設定して、ポートシェーピングを設定する例を示します。
Switch(config)# policy-map out-policy-parent
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# shape average 90000000
Switch(config-pmap-c)# service-policy out-policy
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy output out-policy-parent
クラスベース プライオリティ キューイングを含む出力ポリシー マップの設定
priority ポリシーマップ クラス コンフィギュレーション コマンドを使用すると、特定のトラフィッククラスで優先処理が行われるよう保証できます。完全プライオリティ キューイングの場合、プライオリティ キューは常に処理されます。キュー内のすべてのパケットは、キューが空になるまでスケジューリングされ、送信されます。プライオリティ キューを過剰に使用すると、他のキューのパケットが遅延して、不必要な輻輳が発生する可能性があります。
完全プライオリティ キューイング(ポリシングなしのプライオリティ)または無条件のプライオリティ ポリサー(ポリシングありのプライオリティ)を設定できます。プライオリティ キューイングの設定時は、次の注意事項に従ってください。
■ priority コマンドは、スイッチ上で付加されたすべての出力ポリシーの単一の一意のクラスに関連付けられます。
■トラフィッククラスをプライオリティキューとして設定する場合、同一クラスのその他のキューイングアクションとして設定できるのは、 police および queue-limit だけです。同一クラスのプライオリティキューを使用して、 bandwidth または shape average を設定できません。
■ priority コマンドは、出力ポリシーマップの class-default に関連付けられません。
ポリシングなしのプライオリティの設定
完全プライオリティ キューイング(ポリシングなしのプライオリティ)の設定を行う場合は、次の注意事項に従ってください。
■クラスベースシェーピング( shape average )または CBWFQ( bandwidth )が出力ポリシーマップ内の他のクラスに設定されている場合は、トラフィッククラスにポリシングなしのプライオリティキューイングを設定できません。
■トラフィッククラスにポリシングなしのプライオリティキューイングを設定する場合、余剰の帯域幅を割り当てるには、 bandwidth remaining percent ポリシーマップ クラス コンフィギュレーション コマンドを使用して、他のキューで共有を設定するしかありません。このコマンドは、割り当てられた帯域幅を保証しませんが、分散レートは保証されます。
完全プライオリティ キューを設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
class-map class-map-name |
3 つの出力キューのクラスを作成します。各クラスの一致条件での分類を開始します。 |
3. |
policy-map policy-map-name |
ポリシー マップ名を入力することによってポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 |
4. |
class class-map-name |
プライオリティクラスの名前( class-map グローバル コンフィギュレーション コマンドを使用して作成)を入力して、プライオリティクラスでポリシーマップ クラス コンフィギュレーション モードを開始します。 |
5. |
priority |
このクラスに完全スケジューリング プライオリティを設定します。 注: priority コマンドに関連付けられるのは、スイッチ上の 1 つの一意のクラスマップだけです。その他のキューイングアクション( bandwidth または shape average )と、プライオリティを同時に設定できません。 |
6. |
exit |
プライオリティ クラスのポリシーマップ クラス コンフィギュレーション モードを終了します。 |
7. |
class class-map-name |
非プライオリティ クラスの名前を入力して、そのクラスのポリシーマップ クラス コンフィギュレーション モードを開始します。 |
8. |
bandwidth remaining percent value |
ポリシー マップ クラスの出力帯域幅制限を、残りの帯域幅のパーセンテージとして設定します。指定できる範囲は 1 ~ 100% です。 |
9. |
exit |
クラスのポリシーマップ クラス コンフィギュレーション モードを終了します。 |
10. |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
11. |
interface interface-id |
ポリシーを付加するインターフェイスで、インターフェイス コンフィギュレーション モードを開始します。 |
12. |
service-policy output policy-map-name |
出力インターフェイスにポリシー マップ(ステップ 3 で作成)を付加します。 |
13. |
end |
特権 EXEC モードに戻ります。 |
14. |
show policy-map |
入力内容を確認します。 |
15. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
作成された出力ポリシー マップを、出力ポートに付加します。トラフィック ポリシーのインターフェイスへの適用を参照してください。
既存のポリシーマップまたはクラスマップの削除、プライオリティクラスの完全プライオリティキューイングまたは他のクラスへの帯域幅設定の解除を行うには、該当するコマンドの no 形式を使用します。
次に、クラス out-class1 を完全プライオリティキューとして設定し、このクラスのすべてのパケットが他のトラフィッククラスより先に送信される例を示します。他のトラフィックキューでは、 out-class2 は残りの帯域幅の 50%、 out-class3 は残りの帯域幅の 20% を取得するように設定されます。クラス class-default は、保証なしで、残りの 30% を取得します。
Switch(config)# policy-map policy1
Switch(config-pmap)# class out-class1
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# exit
Switch(config-pmap)# class out-class2
Switch(config-pmap-c)# bandwidth remaining percent 50
Switch(config-pmap-c)# exit
Switch(config-pmap)# class out-class3
Switch(config-pmap-c)# bandwidth remaining percent 20
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface GigabitEthernet1/17
Switch(config-if)# service-policy output policy1
ポリシングを含むプライオリティの設定
ポリシング機能のあるプライオリティを使用して無条件のプライオリティ ポリサーを設定すると、プライオリティ キューで使用される帯域幅の制限、帯域幅の割り当て、または他のキューのシェーピングが可能になります。ポリシングを含むプライオリティの設定時は、次の注意事項に従ってください。
■CLI ヘルプでキーワードが表示される場合でも、無条件のプライオリティ ポリサーに対して認定バースト サイズを設定できません。出力サービス ポリシーを付加しようとすると、設定済みのバースト サイズはすべて無視されます。
■CLI ヘルプに表示される範囲が 8000 ~ 1000000000 bps である場合でも、許容ポリシング レートの範囲は 64000 ~ 1000000000 bps です。範囲外のレートでは、出力サービス ポリシーを付加できません。
■同じ出力ポリシーマップ内の別のクラスで bandwidth remaining percent が設定されている場合は、トラフィッククラスにポリシングのあるプライオリティを設定できません。
■プライオリティで出力ポリシーの 1-rate、2-color ポリサーを設定できます。出力ポリシーの 2-rate、3-color ポリサーは設定できません。
ポリシングのあるプライオリティを設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
class-map class-map-name |
3 つの出力キューのクラスを作成します。各クラスの一致条件での分類を開始します。 |
3. |
policy-map policy-map-name |
ポリシー マップ名を入力することによってポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 |
4. |
class class-map-name |
プライオリティクラスの名前( class-map グローバル コンフィギュレーション コマンドを使用して作成)を入力して、プライオリティクラスでポリシーマップ クラス コンフィギュレーション モードを開始します。 |
5. |
priority |
このクラスをプライオリティ クラスとして設定します。 注: priority コマンドに関連付けられるのは、スイッチ上の 1 つの一意のクラスマップだけです。 |
6. |
police { rate-bps | cir cir-bps } |
トラフィックのプライオリティ クラスのポリサーを定義します。 ■ rate-bps には、平均トラフィックレートをビット/秒(bps)で指定します。指定できる範囲は 64000 ~ 1000000000 です。 注: 出力ポリシーで police コマンドと priority コマンドを併用する場合に、CLI ヘルプで表示される範囲が 8000 ~ 1000000000 bps であっても、ポリシングレートおよび CIR の範囲は 64000 ~ 1000000000 bps です。範囲外のレートでは、出力サービス ポリシーを付加できません。 ■cir cir-bps には、設定情報レート(CIR)を bps で指定します。指定できる範囲は 64000 ~ 1000000000 です。 注: バーストサイズオプションは、コマンドライン ヘルプ ストリングで表示される場合でも、出力ポリシーマップでサポートされません。バースト サイズが設定された出力サービス ポリシー マップは付加できません。 |
7. |
conform-action [ transmit ] |
(任意)CIR に適合するパケットで実行するアクションを入力します。アクションが入力されない場合は、デフォルトのパケット送信のアクションになります。 注: police コマンドのあとに、単一の conform-action をコマンドストリングの一部として入力できます。また、 police コマンドのあとに CR(復帰)を入力すると、ポリシーマップ クラス ポリシング コンフィギュレーション モードが開始され、適合アクションを入力できます。 police コマンドが、出力ポリシーマップのプライオリティにより設定されている場合は、デフォルトの適合アクションである transmit だけがサポートされます。その他のポリシング適合アクションは、コマンド ライン ヘルプ ストリングで表示される場合でも、出力ポリシー マップでサポートされません。 |
8. |
exceed-action [ drop ] |
(任意)CIR に適合しないパケットに実行するアクションを入力します。アクションが入力されない場合は、デフォルトのパケット廃棄のアクションになります。 注: police コマンドのあとに、単一の exceed-action をコマンドストリングの一部として入力できます。また、 police コマンドのあとに CR(復帰)を入力すると、ポリシーマップ クラス ポリス コンフィギュレーション モードが開始され、超過アクションを入力できます。 police コマンドが、出力ポリシーマップのプライオリティにより設定されている場合は、デフォルトの超過アクションである drop だけがサポートされます。その他のポリシング超過アクションは、コマンド ライン ヘルプ ストリングで表示される場合でも、出力ポリシー マップでサポートされません。 |
9. |
exit |
プライオリティ クラスのポリシーマップ クラス コンフィギュレーション モードを終了します。 |
10. |
class class-map-name |
最初に非プライオリティ クラスの名前を入力して、そのクラスのポリシーマップ クラス コンフィギュレーション モードを開始します。 |
11. |
bandwidth { rate | percent value } または shape average target bps |
ポリシー マップ クラスの出力帯域幅制限を kbps で設定するか(範囲は 64 ~ 1000000)、または総帯域幅に対するパーセンテージ(範囲は 1 ~100%)を設定します。または平均クラスベース シェーピング レートを bps で指定します(範囲は 64000 ~ 1000000000)。 |
12. |
exit |
ポリシーマップ コンフィギュレーション モードに戻ります。 |
13. |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
14. |
interface interface-id |
ポリシーを付加するインターフェイスで、インターフェイス コンフィギュレーション モードを開始します。 |
15. |
service-policy output policy-map-name |
出力インターフェイスにポリシー マップ(ステップ 3 で作成)を付加します。 |
16. |
end |
特権 EXEC モードに戻ります。 |
17. |
show policy-map |
入力内容を確認します。 |
18. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
作成された出力ポリシー マップを、出力ポートに付加します。トラフィック ポリシーのインターフェイスへの適用を参照してください。
既存のポリシーマップまたはクラスマップの削除、プライオリティクラスのプライオリティキューイング、ポリシング、または他のクラスへの帯域幅設定の解除を行うには、該当するコマンドの no 形式を使用します。
次に、 priority コマンドと police コマンドを併用して、 out-class1 をプライオリティキューとして設定し、キューに着信するトラフィックを 20000000 bps に制限して、プライオリティキューがそれを超えるレートを使用しないようにする例を示します。このレートを超えるトラフィックは、廃棄されます。その他のトラフィック キューは、前述の例のとおり設定されます。
Switch(config)# policy-map policy1
Switch(config-pmap)# class out-class1
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# police 200000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class out-class2
Switch(config-pmap-c)# bandwidth percent 50
Switch(config-pmap-c)# exit
Switch(config-pmap)# class out-class3
Switch(config-pmap-c)# bandwidth percent 20
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface GigabitEthernet1/17
Switch(config-if)# service-policy output policy1
WTD を含む出力ポリシー マップの設定
WTD では、トラフィック クラスに関連付けられたキュー サイズ(バッファ サイズ)を調整します。WTD は、 queue-limit ポリシーマップ クラス コンフィギュレーション コマンドにより設定されます。
WTD を設定する場合は、次の注意事項に従ってください。
■ queue-limit コマンドによる WTD の設定は、最初にスケジュールアクション( bandwidth 、 shape average 、または priority など)を設定する場合にだけサポートされます。 class-default で queue-limit を設定する場合は、例外です。
■ポート数に応じた数の出力ポリシー マップを設定および付加できます。複数の出力ポリシー マップで同じキュー制限設定を使用できます。ただし、これらのポリシー マップには、固有のキュー制限を 3 つしか設定できません。
■ queue-limit コマンドを使用して CPU が生成したトラフィックのキュー制限を設定できます。
■ queue-limit コマンドを使用して、クラスのキューしきい値を設定する場合、WTD しきい値は、キューの最大しきい値以下にする必要があります。修飾子なしで設定されたキュー サイズは、修飾子を使用して設定されたいずれのキュー サイズよりも大きくする必要があります。
■ queue-limit コマンドで、WTD 修飾子( cos 、 dscp 、 precedence 、 qos-group )に 3 つ以上の一意のしきい値を設定できません。ただし、これらのしきい値にマッピングできる修飾子の数に制限はありません。修飾子なしの queue-limit コマンドを使用することにより、3 番めの一意のしきい値を設定して、最大キューを設定できます。
■ queue-limit コマンドの WTD 修飾子は、関連するクラスマップの少なくとも 1 つの match 修飾子と同じである必要があります。
■出力ポリシー マップで一意のクラスにキュー制限を設定した場合、他のすべての出力ポリシー マップでは、修飾子タイプおよび修飾値に同じ形式を使用する必要があります。キュー制限しきい値だけ、異なる値を設定できます。たとえば、ポリシーマップ 1 の dscp 30 および dscp 50 に、クラス A のキュー制限のしきい値を設定して、ポリシーマップ 2 でクラス A のキュー制限を設定する場合、 dscp 30 および dscp 50 を修飾子として使用する必要があります。 dscp 20 および dscp 40 は、使用できません。別のしきい値を設定できますが、これにより、新しいキュー制限設定が作成されます。
WTD を使用してトラフィック クラスのキュー サイズを調整するには、特権 EXEC モードで次の手順を実行します。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
policy-map policy-map-name |
ポリシー マップ名を入力することによってポリシー マップを作成し、ポリシー マップ コンフィギュレーション モードを開始します。 |
3. |
class { class-map-name | class-default } |
子クラスマップ名またはすべての未分類のパケットを照合する class-default を入力して、ポリシーマップ クラス コンフィギュレーション モードを開始します。 ■クラスマップ名を入力する場合、ステップ 5 でキュー制限を設定する前に、ステップ 4 を実行して、スケジューリングアクション( bandwidth 、 shape average 、または priority )を設定する必要があります。 ■class-default を入力する場合は、ステップ 4 を省略できます。 |
4. |
bandwidth { rate | percent value | remaining percent value } または shape average target bps または priority |
トラフィック クラスのスケジューリング アクションを設定します。詳細については、CBWFQ を含む出力ポリシー マップの設定、クラスベース シェーピングを含む出力ポリシー マップの設定、ポート シェーピングを含む出力ポリシー マップの設定、またはクラスベース プライオリティ キューイングを含む出力ポリシー マップの設定を参照してください。 |
5. |
queue-limit [ cos value | dscp value | precedence value | qos-group value ] number-of-packets [ packets ]} |
トラフィック クラスのキュー サイズを指定します。 ■(任意) cos value には、CoS 値を指定します。範囲は 0 ~ 7 です。 ■(任意) dscp value には、DSCP 値を指定します。指定できる範囲は 0 ~ 63 です。 ■(任意) precedence value には、IP precedence 値を指定します。範囲は 0 ~ 7 です。 ■(任意)qos-group value には、QoS グループ値を入力します。有効な範囲は 0 ~ 99 です。 ■ number-of-packets には、WTD の最小しきい値を設定します。指定できる範囲は、16 の倍数で 16 ~ 544 です。この場合、各パケットは 256 バイトの固定単位になります。 注: 最適なパフォーマンスを実現するため、キュー制限を 272 以下に設定することを推奨します。 値は、デフォルトでパケットに指定されますが、キーワード packets は任意です。 注: 複数の出力ポリシーマップでは、同じキュー制限設定を使用できます。ただし、これらのポリシー マップには、固有のキュー制限を 3 つしか設定できません。 |
6. |
exit |
ポリシーマップ コンフィギュレーション モードに戻ります。 |
7. |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
8. |
interface interface-id |
ポリシーを付加するインターフェイスで、インターフェイス コンフィギュレーション モードを開始します。 |
9. |
service-policy output policy-map-name |
出力インターフェイスにポリシー マップ(ステップ 2 で作成)を付加します。 注: 4 つめのキュー制限設定を含む出力ポリシーマップを付加しようとすると、エラーメッセージが表示され、付加は許可されません。 |
10. |
end |
特権 EXEC モードに戻ります。 |
11. |
show policy-map [ policy-map-name [ class class-map-name ]] |
入力内容を確認します。 |
12. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
作成された出力ポリシー マップを、出力ポートに付加します。出力ポリシー マップの設定を参照してください。
既存のポリシーマップ、クラスマップ、または WTD 設定を削除するには、該当するコマンドの no 形式を使用します。
次に、指定された帯域幅およびキュー サイズが設定されたポリシー マップの例を示します。DSCP 30 または 10 ではないトラフィックには、112 パケットのキュー制限が割り当てられます。DSCP 値が 30 のトラフィックには、48 パケットのキュー制限が、また、DSCP 値が 10 のトラフィックには、32 パケットのキュー制限が割り当てられます。クラス トラフィックに属していないすべてのトラフィックは、class-default に分類され、使用可能な合計帯域幅の 10% が、256 パケットのラージ キュー サイズで設定されます。
Switch(config)# policy-map gold-policy
Switch(config-pmap)# class traffic
Switch(config-pmap-c)# bandwidth percent 50
Switch(config-pmap-c)# queue-limit 112
Switch(config-pmap-c)# queue-limit dscp 30 48
Switch(config-pmap-c)# queue-limit dscp 10 32
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# bandwidth percent 10
Switch(config-pmap-c)# queue-limit 256
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface GigabitEthernet1/17
Switch(config-if)# service-policy output gold-policy
CPU 生成トラフィックの QoS マーキングおよびキューイングの設定
CPU によって生成されたトラフィックのマーキングおよびキューイングを設定するには、特権 EXEC モードで次の手順を実行します。この手順は任意です。
|
|
|
1. |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
2. |
グローバル テーブル マップを設定します。 |
テーブル マップの設定を参照してください。 |
3. |
cpu traffic qos cos { cos-value | cos [table-map table-map-name ] | dscp [table-map table-map-name ] | prec [table-map table-map-name ]} |
新しい CoS 値を設定するか、テーブル マップを指定することにより、トラフィックをマーキングします。 ■ cos-value には、新しい CoS 値を入力します。範囲は 0 ~ 7 です。 ■また、CoS、DSCP、または IP-precedence 値に基づき CoS をマーキングできます。任意にテーブル マップを使用して、CoS を設定できます。 table-map table-map-name を入力しない場合、テーブルマップは、デフォルトの動作 copy になります。テーブル マップを参照してください。 このステップを完了したら、ステップ 7.に進みます。 |
4. |
cpu traffic qos dscp { dscp_value | cos [table-map table-map-name ] | dscp [table-map table-map-name ] | prec [table-map table-map-name ]} |
新しい DsCP 値を設定するか、テーブル マップを指定することにより、トラフィックをマーキングします。 ■ dscp new-dscp には、分類されたトラフィックに新しい DSCP 値を入力します。指定できる範囲は 0 ~ 63 です。 ■また、テーブル マップを設定して、CoS、DSCP、または IP-precedence 値に基づいて DSCP をマーキングできます。任意でテーブル名を入力できます。 table-map table-map-name を入力しない場合、テーブルマップは、デフォルトの動作 copy になります。テーブル マップを参照してください。 ■DSCP 分類オプションの詳細については、 IP DSCP に基づく分類 を参照してください。 このステップを完了したら、ステップ 7.に進みます。 |
5. |
cpu traffic qos precedence { precedence_value | cos [table-map table-map-name ] | dscp [table-map table-map-name ] | prec [ table-map table-map-name ]} |
新しい precedence 値を設定するか、テーブル マップを指定することにより、トラフィックをマーキングします。 ■ precedence new-precedence には、0 ~ 7 の番号または名前で新しい IP-precedence 値を入力します。使用できる名前および番号は、 routine ( 0 )、 priority ( 1 )、 immediate ( 2 )、 flash ( 3 )、 flash-override ( 4 )、 critical ( 5 )、 internet ( 6 )、 network ( 7 )です。 ■また、テーブル マップを設定して、CoS、DSCP、または IP-precedence 値に基づいて precedence をマーキングできます。任意でテーブル名を入力できます。 table-map table-map-name を入力しない場合、テーブルマップは、デフォルトの動作 copy になります。テーブル マップを参照してください。 このステップを完了したら、ステップ 7.に進みます。 |
6. |
cpu traffic qos qos-group qos-group-value |
QoS グループを使用してトラフィックをマーキングします。 qos-group - value には、出力側で使用される QoS グループを識別します。指定できる範囲は、0 ~ 99 です。 このステップを完了したら、ステップ 7.に進みます。 |
7. |
end |
特権 EXEC モードに戻ります。 |
8. |
COS、IP DSCP、IP precedence および QoS グループなどの QoS マーキングをクラス キューにマッピングするために出力ポリシー マップを設定し、キューイングおよびスケジューリングを設定します。 |
出力ポリシー マップの設定を参照してください。 |
9. |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
10. |
show running-config |
設定済みのクラス マップ、ポリシー マップ、ポリシー マップ、テーブル マップ、および CPU トラフィック QoS 設定を表示します。 |
11. |
show cpu traffic qos |
CPU によって生成されたトラフィックの QoS マーキング値を表示します。 |
12. |
show table-map [ table-map-name] |
すべてのテーブル マップまたは指定されたテーブル マップの情報を表示します。 |
13. |
show policy-map [ policy-map-name | interface [ interface-id ] [ output ] [ class class-name ]] |
指定されたポリシー マップ名、インターフェイス、入力/出力ポリシー マップ、またはポリシー マップ クラスの QoS ポリシー マップ情報を表示します。 |
コマンドをディセーブルにするには、このコマンドの no 形式を使用します。
例 1
次に、CPU 生成 IP パケットの DSCP 値に基づいて出力キューイングを設定する例を示します。
■IP DSCP 値および設定済み出力ポリシーマップ output-policy に基づく、出力ポート上のすべての CPU 生成 IP トラフィックキュー。
■音声トラフィックをシミュレートする DSCP 値が ef のすべての IP SLA または TWAMP プローブが voice クラスに割り当てられている。
■音声トラフィックをシミュレートする DSCP 値が af41 、 af42 および af43 のすべての IP SLA または TWAMP が video クラスに割り当てられている。
■DSCP 値が 48 および 56 のすべての IP 制御プロトコルトラフィックが network-internetwork-control クラスに割り当てられている。
■残りの IP トラフィックがデフォルト クラスに割り当てられている。
■すべての CPU 生成非 IP トラフィックが、スタティックに出力ポートの固定キューにマッピングされている。
■CoS に基づくクラスが存在しないため、すべての CFM トラフィックがデフォルト クラスにキューイングされている。
Switch(config)# cpu traffic qos dscp dscp
クラス:
Switch(config)# class-map match-any video
Switch(config-cmap)# match ip dscp af41 af42 af43
Switch(config-cmap)# exit
Switch(config)# class-map match-any voice
Switch(config-cmap)# match ip dscp ef
Switch(config-cmap)# exit
Switch(config)# class-map match-any network-internetwork-control
Switch(config-cmap)# match ip dscp 48 56
Switch(config-cmap)# exit
ポリシー:
Switch(config)# policy-map output-policy
Switch(config-pmap)# class voice
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# police cir 10000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class video
Switch(config-pmap-c)# bandwidth percent 40
Switch(config-pmap-c)# exit
Switch(config-pmap)# class network-internetwork-control
Switch(config-pmap-c)# bandwidth percent 10
Switch(config-pmap-c)# exit
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# bandwidth percent 30
Switch(config-pmap-c)# exit
インターフェイス
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy output output-policy
Switch(config-pmap-c)# exit
例 2
次に、パケットの DSCP 値に基づいて CPU 生成 IP トラフィック(IP-SLA および TWAMP を含む)の CoS をマーキングし、CoS 値に基づいて出力キューイングを設定する例を示します。
■IP DSCP 値および output-policy という設定済み出力ポリシーマップに基づく、出力ポート上のすべての CPU 生成 IP トラフィックキュー。
■音声トラフィックをシミュレートする DSCP 値が ef のすべての IP SLA または TWAMP プローブが voice クラスに割り当てられている。
■音声トラフィックをシミュレートする DSCP 値が af41 、 af42 および af43 のすべての IP SLA または TWAMP が video クラスに割り当てられている。
■DSCP 値が 48 および 56 のすべての IP 制御プロトコルトラフィックが network-internetwork-control クラスに割り当てられている。
■残りの IP トラフィックがデフォルト クラスに割り当てられている。
■CoS 5 のすべての CPU 生成非 IP トラフィックが voice クラスに割り当てられている。
■CoS 3 のすべての CPU 生成非 IP トラフィックが video クラスに割り当てられている。
■CoS 6 および 7 のすべての CPU 生成非 IP トラフィックが network-internetwork-control クラスに割り当てられている。
■CoS 5 のすべての CFM トラフィックが voice クラスに割り当てられている。
■CoS 3 のすべての CFM トラフィックが video クラスに割り当てられている。
■CoS 6 および 7 のすべての CFM トラフィックが network-internetwork-control クラスに割り当てられている。
テーブル マップ:
Switch(config)# table-map dscp-to-cos
Switch(config-tablemap)# map from 46 to 5
Switch(config-tablemap)# map from 48 to 6
Switch(config-tablemap)# map from 56 to 7
Switch(config-tablemap)# map from af41 to 3
Switch(config-tablemap)# map from af42 to 3
Switch(config-tablemap)# map from af43 to 3
Switch(config-tablemap)# default 0
Switch(config-tablemap)# end
CPU QoS:
Switch(config)# cpu traffic qos cos dscp table-map dscp-to-cos
Switch(config)# cpu traffic qos cos cos
クラス:
Switch(config)# class-map match-any video
Switch(config-cmap)# match cos 3
Switch(config-cmap)# exit
Switch(config)# class-map match-any voice
Switch(config-cmap)# match cos 5
Switch(config-cmap)# exit
Switch(config)# class-map match-any network-internetwork-control
Switch(config-cmap)# match cos 6 7
Switch(config-cmap)# exit
ポリシー:
Switch(config)# policy-map output-policy
Switch(config-pmap)# class voice
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# police cir 10000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class video
Switch(config-pmap-c)# bandwidth percent 40
Switch(config-pmap-c)# exit
Switch(config-pmap)# class network-internetwork-control
Switch(config-pmap-c)# bandwidth percent 10
Switch(config-pmap-c)# exit
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# bandwidth percent 30
Switch(config-pmap-c)# exit
インターフェイス
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy output output-policy
Switch(config-pmap-c)# exit
例 3
次の例は、次の方法を示します。
■パケットの DSCP 値に基づいて CPU 生成 IP トラフィック(IP-SLA および TWAMP を含む)の DSCP 値をマーキングする。
■パケットの DSCP 値に基づいて CPU 生成 IP トラフィック(IP-SLA および TWAMP を含む)の CoS をマーキングする。
■パケットの CoS 値に基づいて CPU 生成非 IP トラフィックの CoS をマーキングする。
■QoS グループが付いたすべての CPU 生成トラフィックをマーキングする。
■QoS グループに基づいて出力キューイングを設定する。
この例の結果は次のとおりです。
■DSCP 値が 46、48、および 56 のすべての CPU 生成 IP トラフィックでは、既存のマーキングが維持される。
■その他のすべての CPU 生成 IP パケットについては、DSCP 値はゼロにリセットされる。
■DSCP 値が 46、48、および 56 のすべての CPU 生成 IP トラフィックは、それぞれ対応する CoS 値 5、6、および 7 にマッピングされる。
■その他のすべての CPU 生成 IP パケットについては、CoS 値はゼロにリセットされる。
■CoS 値が 5、6、および 7 のすべての CPU 生成非 IP トラフィックでは、既存のマーキングが維持される。
■その他のすべての CPU 生成非 IP パケットについては、CoS 値はゼロにリセットされる。
■すべての CPU 生成トラフィックは、 cpu-traffic という 1 つのクラスを通過する。 user-voice クラスである user-voice および user-video は、ユーザトラフィック用に確保されています。その結果、CPU トラフィックおよびユーザ トラフィックは出力ポートのさまざまなキューに分割されています。
テーブル マップ
Switch(config)# table-map dscp-to-cos
Switch(config-tablemap)# map from 46 to 5
Switch(config-tablemap)# map from 48 to 6
Switch(config-tablemap)# map from 56 to 7
Switch(config-tablemap)# default 0
Switch(config-tablemap)# end
Switch(config)# table-map dscp-to-dscp
Switch(config-tablemap)# map from 46 to 46
Switch(config-tablemap)# map from 48 to 48
Switch(config-tablemap)# map from 56 to 56
Switch(config-tablemap)# default 0
Switch(config-tablemap)# end
Switch(config)# table-map cos-to-cos
Switch(config-tablemap)# map from 5 to 5
Switch(config-tablemap)# map from 6 to 6
Switch(config-tablemap)# map from 7 to 7
Switch(config-tablemap)# default 0
Switch(config-tablemap)# end
CPU QoS:
Switch(config)# cpu traffic qos dscp dscp table-map dscp-to-dscp
Switch(config)# cpu traffic qos cos dscp table dscp-to-cos
Switch(config)# cpu traffic qos cos cos table cos-to-cos
Switch(config)# cpu traffic qos qos-group 50
クラス:
Switch(config)# class-map match-any cpu-traffic
Switch(config-cmap)# match qos-group 50
Switch(config-cmap)# exit
Switch(config)# class-map match-any user-video
Switch(config-cmap)# match cos 3
Switch(config-cmap)# exit
Switch(config)# class-map match-any user-voice
Switch(config-cmap)# match cos 5
Switch(config-cmap)# exit
Switch(config)# policy-map output-policy
Switch(config-pmap)# class user-voice
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# police cir 10000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class user-video
Switch(config-pmap-c)# bandwidth percent 40
Switch(config-pmap-c)# exit
Switch(config-pmap)# class cpu-traffic
Switch(config-pmap-c)# bandwidth percent 10
Switch(config-pmap-c)# exit
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# bandwidth percent 30
Switch(config-pmap-c)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy output output-policy
Switch(config-pmap-c)# exit
ポリシー マップの設定例
ここでは、設定に関する注意事項および制限事項を含む Cisco IE スイッチ上での QoS ポリシーの設定例を示します。これらのセクションは、お客様が実行する可能性のあるさまざまな設定アクションに分かれています。各セクションには、設定または変更を成功させるために従う必要がある手順の正確な順序が記載されています。
■カスタマー A の QoS 設定
■カスタマー B の QoS 設定
■出力ポリシーの変更および分類基準の追加と削除
■出力ポリシーの変更およびキューイングまたはスケジューリング パラメータの変更
■出力ポリシーの変更および設定済み動作の追加または削除
■出力ポリシーの変更およびクラスの追加または削除
カスタマー A の QoS 設定
ここでは、カスタマー スイッチの初期設定および QoS ポリシーのアクティブ化の例を示します。入力および出力 QoS サービス ポリシーは、要件に基づいて設定され、関連ポートに付加されます。
カスタマー A の初期設定では、ギガビット イーサネット ポート 1 ~ 2 は、ネットワーク ノード インターフェイス(NNI)で、デフォルトではイネーブルです。
次に、初期設定の全体的な流れを示します。
■クラスおよびポリシーを設定します。
■すべてのアクティブ ポートをシャットダウンします。
■アクティブ化されるようにポートにポリシーを付加します。
■ポートのシャットダウン ステートを終了します。
■未使用のポートはシャットダウンのままにします。
出力ポリシーを設定する際の制限事項は、次のとおりです。
■出力ポリシー マップでは、最大 3 つのクラスを定義できます。
■定義されたクラスは、他の出力ポリシー マップと同一でなければなりません。
■各出力ポリシーマップで定義されるクラス数は、同じである必要があります。
■クラスごとに動作を割り当てる必要があります。つまり、空のクラスはありません。
■各クラス設定は、入力ポリシー マップで実行された分類/マーキングに基づいている必要があります。
次に、入力サービス ポリシーのクラスを設定し、3 つの サービス クラス(gold、silver、bronze)を定義する例を示します。 match-all 分類(デフォルト)には単一の分類基準しかないため、 match-any 分類を使用して将来的に分類基準を追加できるようにします。
Switch(config)# class-map match-any gold-in
Switch(config-cmap)# match ip dscp af11
Switch(config-cmap)# exit
Switch(config)# class-map match-any silver-in
Switch(config-cmap)# match ip dscp af21
Switch(config-cmap)# exit
Switch(config)# class-map match-any bronze-in
Switch(config-cmap)# match ip dscp af31
Switch(config-cmap)# exit
次に、gold クラスをマーキングして、silver クラスを 50 Mb/s に、bronze クラスを 20 Mb/s にポリシングする入力ポリシー マップを設定する例を示します。
Switch(config)# policy-map input-all
Switch(config-pmap)# class gold-in
Switch(config-pmap-c)# set ip dscp af43
Switch(config-pmap-c)# exit
Switch(config-pmap)# class silver-in
Switch(config-pmap-c)# police 50000000
Switch(config-pmap)# class bronze-in
Switch(config-pmap-c)# police 20000000
Switch(config-pmap-c)# exit
次に、3 つの サービス クラス(gold、silver、bronze)を備えた出力サービス ポリシーのクラスを設定する例を示します。gold クラスは、入力サービス ポリシーでマーキングされた値を照合するように設定されます。 match-all 分類(デフォルト)には単一の分類基準しかないため、 match-any 分類を使用して将来的に分類基準を追加できるようにします。
Switch(config)# class-map match-any gold-out
Switch(config-cmap)# match ip dscp af43
Switch(config-cmap)# exit
Switch(config)# class-map match-any silver-out
Switch(config-cmap)# match ip dscp af21
Switch(config-cmap)# exit
Switch(config)# class-map match-any bronze-out
Switch(config-cmap)# match ip dscp af31
Switch(config-cmap)# exit
次に、両方のギガビット イーサネット NNI に適用され、gold クラスへのレート制限があるプライオリティ、silver クラスへのクラスベース シェーピング、および bronze クラスへの 10% の最小帯域幅保証を割り当てる例を示します。
Switch(config)# policy-map output-g1-2
Switch(config-pmap)# class gold-out
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# police 50000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class silver-out
Switch(config-pmap-c)# shape average 200000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class bronze-out
Switch(config-pmap-c)# bandwidth percent 10
Switch(config-pmap-c)# exit
次に、ギガビット イーサネット ポートに入力および出力サービス ポリシーを付加して、アクティブ化する例を示します。
Switch(config)# interface range GigabitEthernet1/17-18
Switch(config-if-range)# service-policy input input-all
Switch(config-if-range)# service-policy output output-g1-2
Switch(config-if-range)# no shutdown
Switch(config-if-range)# exit
カスタマー B の QoS 設定
このセクションでは、現在のカスタマーに影響を与えずに一連の新しいカスタマーにスイッチ上で QoS ポリシーを設定してアクティブ化する例を示します。入力および出力 QoS サービス ポリシーは、要件に基づいて設定され、関連ポートに付加されます。この例では、既存の入力ポリシー マップを使用し、新しいカスタマーには新しい出力ポリシー マップを設定します。
カスタマー B の初期設定では、ギガビット イーサネット ポート 1 ~ 2 は、NNI で、デフォルトではイネーブルです。
次に、初期設定の全体的な流れを示します。
■新しく必要になったすべての出力ポリシーを定義します。
■アクティブ化されたポートに入力および出力ポリシーを付加します。
■ポートのシャットダウン ステートを終了します。
出力ポリシーを設定する際の制限事項は、次のとおりです。
■出力ポリシー マップでは、最大 3 つのクラスを定義できます。
■定義されたクラスは、他の出力ポリシー マップと同一でなければなりません。
■各出力ポリシーマップで定義されるクラス数は、同じである必要があります。
■クラスごとに動作を割り当てる必要があります。つまり、空のクラスはありません。
■各クラス設定は、入力ポリシー マップで実行された分類/マーキングに基づいている必要があります。
出力ポリシーの変更および分類基準の追加と削除
ここでは、既存の一連の出力ポリシー マップを更新して、分類基準を追加または削除する例を示します。サービス プロビジョニング要件または入力サービス ポリシー マップでの変更により、修正が必要となる場合があります。いずれのポートもシャットダウンすることなく、変更できます。
初期設定では、ギガビット イーサネット ポート 1 ~ 2 は、NNI で、デフォルトではイネーブルです。
次に、初期設定の全体的な流れを示します。
■入力サービス ポリシーの設定済みクラス マップを変更します。
■出力サービス ポリシーの設定済みクラス マップを変更します。
次に、silver-in クラスに分類基準を追加して、入力サービス ポリシーのクラスを変更し、dscp cs5 も照合する例を示します。これは、dscp cs5 を照合する出力ポリシー マップで必要となります。
Switch(config)# class-map match-any silver-in
Switch(config-cmap)# match ip dscp af21
Switch(config-cmap)# match ip dscp cs5
Switch(config-cmap)# exit
次に、silver-out クラスに分類基準を追加して、出力サービス ポリシーのクラスを変更し、dscp cs5 も照合する例を示します。これにより、すべての設定済みおよび付加済み出力サービス ポリシーで dscp cs5 が silver-out クラスに追加されます。これで dscp cs5 フローが、silver-out クラスと同じキューイングおよびスケジューリング処理を受信します。
Switch(config)# class-map match-any silver-out
Switch(config-cmap)# match ip dscp af21
Switch(config-cmap)# match ip dscp cs5
Switch(config-cmap)# exit
設定されたクラスに関連付けられた match 文を削除する場合は、同じ手順を使用する必要があります。
出力ポリシーの変更およびキューイングまたはスケジューリング パラメータの変更
ここでは、既存の一連の出力ポリシー マップを更新して、設定済みのキューイングおよびスケジューリング アクションのパラメータを変更する例を示します。サービス プロビジョニング要件での変更により、出力ポリシー マップでの修正が必要となる場合があります。いずれのポートもシャットダウンすることなく、変更できます。
初期設定では、ギガビット イーサネット ポート 1 ~ 2 は、NNI で、デフォルトではイネーブルです。
要件は、アクション パラメータを変更することです。
出力ポリシーを設定する際の制限事項は、次のとおりです。
■出力ポリシー マップでは、最大 3 つのクラスを定義できます。
■定義されたクラスは、他の出力ポリシー マップと同一でなければなりません。
■各出力ポリシーマップで定義されるクラス数は、同じである必要があります。
■クラスごとに動作を割り当てる必要があります。つまり、空のクラスはありません。
■各クラス設定は、入力ポリシー マップで実行された分類またはマーキングに基づいている必要があります。
出力ポリシーの変更および設定済み動作の追加または削除
ここでは、既存の一連の出力ポリシー マップを更新して、キューイングおよびスケジューリング動作を追加または削除する例を示します。サービス プロビジョニング要件での変更により、出力ポリシー マップでの修正が必要となる場合があります。変更される出力ポリシー マップが設定されていないポートをシャットダウンしないで、変更できます。ただし、出力ポリシー マップが設定されているポートは、シャットダウンする必要があります。この出力ポリシー マップを使用しないカスタマーは、影響を受けません。
初期設定では、ギガビット イーサネット ポート 1 ~ 2 は、NNI で、デフォルトではイネーブルです。
次に、設定の全体的な流れを示します。
■変更されるポリシーを伝搬するすべてのアクティブ ポートをシャットダウンします。
■出力ポリシーが付加されているすべてのポートから、ポリシーを消去します。
■出力ポリシーを変更します。
■該当するポートに、出力ポリシーを再度付加します。
■ポートのシャットダウン ステートを終了します。
出力ポリシーを設定する際の制限事項は、次のとおりです。
■出力ポリシー マップでは、最大 3 つのクラスを定義できます。
■定義されたクラスは、他の出力ポリシー マップと同一でなければなりません。
■各出力ポリシーマップで定義されるクラス数は、同じである必要があります。
■クラスごとに動作を割り当てる必要があります。つまり、空のクラスはありません。
■各クラス設定は、入力ポリシー マップで実行された分類/マーキングに基づいている必要があります。
次の手順では、出力ポリシーを伝搬するポートすべて(この場合は、ギガビット イーサネット ポートだけ)がシャットダウンされます。
Switch(config)# interface range GigabitEthernet1/17-18
Switch(config-if-range)# shutdown
Switch(config-if-range)# exit
次の手順では、変更される出力ポリシー(この場合は、ギガビット イーサネット ポートに設定されたポリシー)が削除されます。
Switch(config)# interface range GigabitEthernet1/17-18
Switch(config-if-range)# no service-policy output output-g1-2
Switch(config-if-range)# exit
次の手順では、ギガビット イーサネット NNI を処理する出力サービス ポリシーが変更されます。ポリシーは、bronze クラスに最小帯域幅保証の 10% を割り当てる代わりに、クラスベース シェーピングに 100000 bps を割り当てるように変更されます。
Switch(config)# policy-map output-g1-2
Switch(config-pmap)# class bronze-out
Switch(config-pmap-c)# no bandwidth percent 10
Switch(config-pmap-c)# shape average 100000
Switch(config-pmap-c)# exit
次の手順では、出力ポリシーがギガビット イーサネットポートに再度付加されます。
Switch(config)# interface range GigabitEthernet1/17-18
Switch(config-if-range)# service-policy output output9-12
Switch(config-if-range)# exit
次の手順では、すべてのギガビット イーサネット ポートがアクティブ化されます。
Switch(config)# interface range GigabitEthernet1/17-18
Switch(config-if-range)# no shutdown
Switch(config-if-range)# exit
出力ポリシーの変更およびクラスの追加または削除
ここでは、既存の一連の出力ポリシー マップを更新して、すべてのクラスを追加または削除する例を示します。サービス プロビジョニング要件または入力サービス ポリシーでの変更により、出力ポリシー マップでの修正が必要となる場合があります。この変更を行うには、スイッチ上のすべてのアクティブ ポートをシャットダウンする必要があります。任意の出力ポリシー マップに対するこの種の更新は、すべてのカスタマーに影響を及ぼす場合があります。これを回避するため、出力サービス ポリシーでクラスを設定する場合は将来的に可能性のある更新について考慮することを推奨します。
初期設定では、ギガビット イーサネット ポート 1 ~ 2 は、NNI で、デフォルトではイネーブルです。
次に、設定の全体的な流れを示します。
■すべてのアクティブ ポートをシャットダウンします。
■すべてのイーサネットポートから出力ポリシーを消去します。
■クラスを削除します。
■イーサネットポートに出力ポリシーを再度付加します。
■イーサネットポートのシャットダウンステートを終了します。
次の手順では、すべてのアクティブで適用可能なイーサネットポートをシャットダウンします。
Switch(config)# interface range GigabitEthernet1/17-18
Switch(config-if-range)# shutdown
Switch(config-if-range)# exit
次の手順では、影響を受けるイーサネットポートからすべての出力ポリシーを消去します。
Switch(config)# interface range GigabitEthernet1/17-18
Switch(config-if-range)# no service-policy output output-g1-2
Switch(config-if-range)# exit
次の手順では、すべての出力ポリシー マップおよび入力ポリシー マップからクラスを削除します。入力ポリシーは付加したままでも、消去してもかまいません。
Switch(config)# policy-map output1-8
Switch(config-pmap)# no class bronze-out
Switch(config-pmap-c)# exit
Switch(config)# policy-map output9-12
Switch(config-pmap)# no class bronze-out
Switch(config-pmap-c)# exit
Switch(config)# policy-map output-g1-2
Switch(config-pmap)# no class bronze-out
Switch(config-pmap-c)# exit
Switch(config)# policy-map input-all
Switch(config-pmap)# no class bronze-in
Switch(config-pmap-c)# exit
イーサネットポートにすべてのポリシーを再度付加します。
Switch(config)# interface range GigabitEthernet1/17-18
Switch(config-if-range)# service-policy output output9-12
Switch(config-if-range)# exit
次の手順では、すべての適用可能なイーサネットポートをアクティブ化します。
Switch(config)# interface range GigabitEthernet1/17-18
Switch(config-if-range)# no shutdown
Switch(config-if-range)# exit
付加された出力サービス ポリシーにクラスを追加する場合は、同じ手順を使用する必要があります。
注: 前述の順序に従わない場合は、問題が発生する可能性があります。
インターフェイスにポリシーマップを付加する場合、ポリシーマップ内の設定済みのクラスマップに明示的に一致しないすべてのトラフィックは、デフォルトキュー(クラス class-default )を通過します。ただし、場合によっては、出力ポリシー マップに明示的に一致しないトラフィックが複数のキューを通過する場合があります。このようなキューイング問題は、前述の手順に従わない場合、およびすべてのアクティブ ポートに出力ポリシーが付加されていない場合に発生する可能性があります。