QoS の概要
ネットワークは通常、ベストエフォート型の配信方式で動作します。この場合、すべてのトラフィックに同じプライオリティが与えられ、送信されるタイミングも同じです。輻輳が発生した場合に廃棄される可能性も、すべてのトラフィックで同等です。
QoS 機能を設定すると、特定のネットワーク トラフィックを選択し、相対的な重要性に応じてプライオリティを指定し、トラフィック管理技術を使用して、優先処理を行うことができます。ネットワークに QoS を実装すると、ネットワークのパフォーマンスが予想しやすくなり、帯域利用率がより効果的になります。
図 34-1 に、MQC のモデルを示します。
図 34-1 MQC のモデル
基本的な QoS には、次のアクションが含まれます。
• パケット分類:トラフィックが特定の基準に一致するかどうかに基づいて、トラフィックを組織化します。スイッチはパケットを受信すると、すべての主要なパケット フィールド(Class of Service [CoS; サービス クラス]、Differentiated Service Code Point [DSCP]、または IP precedence)を識別します。スイッチは、この内容または Access Control List(ACL; アクセス コントロール リスト)検索に基づいて、パケットを分類します。詳細については、「分類」を参照してください。
• パケット ポリシングは 着信トラフィックのレートを設定済みポリサーと比較して、パケットが適合か不適合かを決定します。Committed Information Rate(CIR; 認定情報レート)および Peak Information Rate(PIR; 最大情報レート)を設定し、CIR および PIR に適合するパケット(conform-action)、PIR には適合するが CIR には適合しないパケット(exceed-action)、および PIR 値を超えるパケット(violate-action)で実行するアクションを設定できます。詳細については、「ポリシング」を参照してください。
• パケットの優先順位付けまたはマーキングは、分類およびポリサー情報を評価して、実行するアクションを決定します。分類に属するすべてのパケットを、マーキングできます。ポリサーを設定した場合、許可された帯域幅要件(bps)に一致するまたは超過するパケットを条件付きで通過、廃棄、または再分類できます。詳細については、「マーキング」を参照してください。
• 輻輳管理は、キューイングおよびスケジューリング アルゴリズムを使用して、ポートから発信されるトラフィックをキューイングおよびソートします。スイッチは、スケジューリングおよびトラフィック制限機能(Class-Based Weighted Fair Queuing [CBWFQ; クラスベース均等化キューイング]、クラスベース トラフィック シェーピング、ポート シェーピング、およびクラスベース プライオリティ キューイング)をサポートします。他のトラフィック キューの処理中でも、特定のトラフィック クラスに保証された帯域幅を割り当てることができます。詳細については、「輻輳管理およびスケジューリング」を参照してください。
• スイッチ上でのキューイングは輻輳回避メカニズムである Weighted Tail-Drop(WTD)アルゴリズムによって拡張されます。WTD では、分類に基づいてトラフィック クラスを区別し、キュー サイズ(パケット数)を調整します。詳細については、「輻輳回避およびキューイング」を参照してください。
ここでは、次の内容について説明します。
• 「MQC」
• 「入力ポリシーおよび出力ポリシー」
• 「分類」
• 「テーブル マップ」
• 「ポリシング」
• 「マーキング」
• 「輻輳管理およびスケジューリング」
• 「輻輳回避およびキューイング」
MQC
MQC により、ユーザはトラフィック ポリシーを作成し、それらをインターフェイスに適用できます。トラフィック ポリシーには、トラフィック クラスおよび 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 コマンドを使用できます。
(注) 1 つのパケットは、トラフィック ポリシー内の 1 つのトラフィック クラスにだけ一致できます。パケットがトラフィック ポリシー内の複数のトラフィック クラスに一致する場合、ポリシーで定義された最初のトラフィック クラスが使用されます。パケットに複数の一致基準を設定するには、単一のトラフィック ポリシーに複数のトラフィック クラスを関連付けます。
ステップ 3 インターフェイスにトラフィック ポリシーを付加します。
service-policy インターフェイス コンフィギュレーション コマンドを使用すると、インターフェイスで送受信されるパケット用にポリシー マップをインターフェイスに付加できます。トラフィック ポリシーの特性を着信または発信パケットに適用するかどうかを指定する必要があります。たとえば、 service-policy output class1 インターフェイス コンフィギュレーション コマンドを入力すると、 class1 という名前のトラフィック ポリシーのすべての特性が、指定されたインターフェイスに付加されます。指定されたインターフェイスから発信されるすべてのパケットは、 class1 という名前のトラフィック ポリシーで指定された基準に従って評価されます。
(注) no policy-map コンフィギュレーション コマンドまたは no policy-map policy-map-name グローバル コンフィギュレーション コマンドを入力して、インターフェイスに付加されたポリシー マップを削除する場合、ポリシー マップが消去されているインターフェイスの一覧を示する警告メッセージが表示されます。ポリシー マップは消去および削除されます。たとえば、次のようなメッセージが表示されます。
Warning: Detaching Policy test1 from Interface GigabitEthernet0/1
入力ポリシーおよび出力ポリシー
ポリシー マップは、入力ポリシー マップまたは出力ポリシー マップのいずれかになり、スイッチでパケットが送受信される際に、インターフェイスに適用されたサービス ポリシーによって付加されます。入力ポリシー マップは、受信されたトラフィック上でポリシングおよびマーキングを実行します。ポリシングされたパケットが最大許容レートを超過している場合、廃棄されるか、またはプライオリティが低くなります(マーク ダウン)。出力ポリシー マップは、スイッチから発信されるトラフィック上でスケジューリングおよびキューイングを実行します。
入力ポリシーと出力ポリシーは、基本構造は同じですが規制する特性が異なります。図 34-2 に、入力ポリシーと出力ポリシーの関係を示します。
最大 256 のポリシー マップを定義できます。
ME-3400 上に設定できるポリサー プロファイルの数は 254 です。ME-3400E でサポートされているポリサー インスタンスの数は 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 保護がイネーブルになっているかどうか確認できます。
図 34-2 入力ポリシーおよび出力ポリシーの関係
入力ポリシー マップ
入力ポリシー マップの分類基準には、CoS、DSCP、または IP precedence 値のマッチング、または Access Control List(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 に基づいて分類されます。図 34-3 に、分類情報を伝達するのに、非推奨 IP Type of Service(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 のマーキング タイプ、マーキング値、およびパケット タイプに基づいて再マーキングされます。
図 34-3 フレームおよびパケットの 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 、 match ip acl )と非 IP 分類( match cos または match mac acl )を設定できません。
• レイヤ 2 だけ分類が設定された入力ポリシーマップが、ルーテッド ポートまたはルーテッド Switch Virtual Interface(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 値をバイナリ形式で入力する、Assured Forwarding(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 ビットに対応)
• Expedited Forwarding(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 マッピング
ME-3400E では、Customer VLAN-ID(C-VLAN; カスタマー VLAN)から Service-Provider VLAN-ID(S-VLAN; サービス プロバイダー VLAN)への VLAN マッピングがサポートされています。「VLAN マッピングの概要」を参照してください。QoS の場合、スイッチは Customer CoS(C-CoS; カスタマー CoS)または Customer DSCP(C-DSCP: カスタマー DSCP)値から Service-Provider CoS(S-CoS; サービス プロバイダー CoS)を設定でき、従来の 802.1Q トンネリング(QinQ)または選択した QinQ VLAN マッピングにより任意のトラフィックについて内部 CoS を外部 CoS にマッピングできます。このデフォルトにより、カスタマー CoS がサービス プロバイダー ネットワークにコピーされます。
ME-3400E では、トランク ポートで従来の 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)に対して一致します。
分類の比較
表 34-1 に、一般的なトラフィックタイプに推奨される IP DSCP 値、IP precedence 値、および CoS 値を示します。
表 34-1 一般的なトラフィック分類
|
|
|
|
|
音声ベアラ:プライオリティ キュー、または最高のサービス ウェイトおよび最低の廃棄プライオリティを持つキューのトラフィック |
EF |
46 |
5 |
5 |
音声制御:音声ゲートウェイまたは音声アプリケーション サーバからの、コール セットアップに関連したシグナリング トラフィック |
AF31 |
26 |
3 |
3 |
ビデオ会議:ほとんどのネットワークで、IP 上でのビデオ会議には、損失、遅延、および遅延の種類に関して Voice over IP(VoIP)トラフィックと同様な要件があります。 |
AF41 |
34 |
4 |
4 |
ストリーミング ビデオ:損失、遅延、および遅延の種類に関して高い耐性を持つ、比較的高い帯域幅のアプリケーション。通常、E メールおよび Web 参照のような日常的なバックグラウンド アプリケーションよりも重要と見なされます。 |
AF13 |
14 |
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 14 |
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 グループにより、出力ポリシーの特定のアクションに対して、入力トラフィックの異なるクラスが集約されます。
図 34-4 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 単位の分類は必要ありません。トランク ポートではないポートに、ポート単位、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 コマンドにより設定されている場合、またはポリシング機能で設定されている場合にだけ有効です。個々のポリサーはまた、 violate-action コマンドをサポートしていますが、集約ポリサーは violate-action によるテーブル マップはサポートしていません。
テーブル マップは、出力ポリシー マップでサポートされません。詳細については、「テーブル マップの設定」を設定してください。
ポリシング
パケットが分類されたあと、図 34-5 に示されるポリシングを使用して、トラフィック クラスを規制できます。ポリシング機能では、特定のトラフィック フローで使用可能な帯域幅量を制限するか、または任意のトラフィック タイプが過剰な帯域幅およびシステム リソースを使用しないようにします。ポリサーは、ポリサーおよびトラフィック クラスの設定プロファイルと着信トラフィックのレートを比較することにより、パケットを適合または不適合として識別します。許容平均レートまたはバースト レートを超過するパケットは、 不適合 または 非適合 となります。これらのパケットは、ポリサーの設定に応じて、廃棄されるかまたは変更(追加処理用にマーキング)されます。
ポリシングは、主に受信インターフェイス上で使用されます。ポリサーを含むポリシー マップは、入力サービス ポリシーに限り付加できます。出力ポリシー マップでは、プライオリティ クラスのポリシングだけが許可されます。「無条件のプライオリティ ポリシング」を参照してください。
図 34-5 分類されたパケットのポリシング
ここでは、スイッチでサポートされるポリシング タイプについて説明します。
• 「個別のポリシング」
• 「集約ポリシング」
• 「無条件のプライオリティ ポリシング」
個別のポリシング
個別のポリシングは、入力ポリシー マップにだけ適用されます。ポリシーマップ コンフィギュレーション モードで、 class コマンドのあとにクラスマップ名を入力して、ポリシーマップ クラス コンフィギュレーション モードを開始します。
ME-3400E スイッチは、個別ポリシングまたは集約ポリシングについて 1-rate、2-color 入力ポリシングおよび 2-rate、3-color のポリシングをサポートします。
1-rate、2-color ポリシングについては、 police ポリシー マップ クラス コンフィギュレーション コマンドを使用して、ポリサー、トラフィックの認定速度制限、トラフィックの認定バースト サイズ制限、または制限未満( conform-action )および制限を越える( exceed-action )トラフィックに対して実行するアクションを定義します。バースト サイズ(bc)を指定しない場合は、システムにより適切なバースト サイズ値が算出されます。算出された値は、ほとんどのアプリケーションに適しています。詳細については、「インターフェイスへのトラフィック ポリシーの付加」を参照してください。
最初のトークン バケットを更新するため、Committed Information Rate(CIR; 認定情報レート)の設定を含む、2-rate ポリサーを設定する場合、2 番目のトークン バケットが更新される Peak Information Rate(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 を超えるトラフィックは違反範囲に入ります。
• CIR より大きな PIR を設定している場合、CIR 未満のトラフィック レートは適合範囲内です。CIR を超えるが、PIR 以下のトラフィック レートは超過範囲に入ります。PIR を超えるトラフィック レートは違反範囲内です。
• PIR を設定しない場合、ポリサーは 1-rate、2-color ポリサーとして設定されます。
バースト サイズの設定が低すぎると、バースト トラフィックがある状況でスループットが低下する場合があります。バースト サイズの設定が高すぎると、トラフィック レートが高くなりすぎる場合があります。
(注) ME-3400E では、show policy-map interface 特権 EXEC コマンド出力で conform、exceed、および violate の各クラスのバイトレベル統計情報がバイト カウンタでサポートされています。
ポリシー マップを有効にするには、 service-policy input インターフェイス コンフィギュレーション コマンドを使用し、ポリシー マップを物理ポートに付加します。ポリシングは、受信トラフィックでだけ行われるため、ポリサーは入力サービス ポリシーにだけ付加できます。
次に、CoS 値が 4 のすべての受信トラフィックに対する基本的なポリシングの例を示します。 police コマンドのあとに続く最初の値は、平均トラフィック レートを 10,000,000 bps に制限し、次の値は追加のバースト サイズ(10 キロバイト)を表します。ポリシーは、ファスト イーサネット ポート 1 に割り当てられます。
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-police)# exit
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy input video-policy
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
集約ポリシング
集約ポリシングは、入力ポリシー マップにだけ適用されます。集約ポリサーは、個別のポリサーとは異なり、ポリシー マップ内の複数のトラフィック クラスで共有されます。ME-3400E スイッチは、集約ポリシングについて 1-rate、2-color 入力ポリシングおよび 2-rate、3-color のポリシングをサポートします。
policer aggregate グローバル コンフィギュレーション コマンドを使用して、物理インターフェイスで送受信されるすべてのトラフィックのポリサーを設定できます。集約ポリサーを設定すると、特定のバースト サイズおよび適合アクションと超過アクションを設定できます。バースト サイズ( bc )を指定しない場合は、システムにより適切なバースト サイズ値が算出されます。算出された値は、ほとんどのアプリケーションに適しています。
最初のトークン バケットを更新するため、Committed Information Rate(CIR; 認定情報レート)の設定を含む、2-rate ポリサーを設定する場合、2 番目のトークン バケットが更新される Peak Information Rate(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 を超えるトラフィックは違反範囲に入ります。
• CIR より大きな PIR を設定している場合、CIR 未満のトラフィック レートは適合範囲内です。CIR を超えるが、PIR 以下のトラフィック レートは超過範囲に入ります。PIR を超えるトラフィック レートは違反範囲内です。
• PIR を設定しない場合、ポリサーは 1-rate、2-color ポリサーとして設定されます。
バースト サイズの設定が低すぎると、予想よりトラフィックが少なくなる場合があります。バースト サイズの設定が高すぎると、予想よりトラフィックが多くなる場合があります。
各サービス クラスで複数の適合アクション、超過アクション、および違反アクションを同時に設定できます。 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 gigabitethernet0/1
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 である必要があります。
テーブル マップの作成後、ポリシーマップを設定して、テーブル マップを使用します。「輻輳管理およびスケジューリング」を参照してください。図 34-6 に、トラフィックのマーキングの手順を示します。
図 34-6 分類されたトラフィックのマーキング
次に、ポリシー マップを使用してパケットをマーキングする例を示します。最初のマーキング( 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 ip 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
Performance-Monitoring プロトコルの QoS 処理
• 「Cisco IP-SLAs」
• 「双方向アクティブ測定プロトコル」
• 「IP-SLA および TWAMP プローブの QoS 処理」
• 「CPU 生成トラフィックの QoS マーキング」
• 「CPU 生成トラフィックの QoS キューイング」
• 「設定時の注意事項」
双方向アクティブ測定プロトコル
Two-Way Active Measurement Protocol(TWAMP; 双方向アクティブ測定プロトコル)の詳細については、「TWAMP の概要」および「TWAMP の設定」を参照してください。
IP-SLA および TWAMP プローブの QoS 処理
IP-SLA および TWAMP プローブの QoS 処理では、デバイス間を行き交う通常のデータ トラフィックに発生する影響が正確に反映されていなければなりません。
生成元のデバイスでは、プローブ マーキングを変更してはいけません。通常トラフィックに設定したキューイング ポリシーに基づいて、これらのプローブをキューイングする必要があります。
マーキング
デフォルトでは、(CFM プローブを使用した IP SLAs を含む)CFM トラフィックの Class of Service(CoS; サービス クラス)マーキングは変更されません。この機能では、この動作は変更できません。
デフォルトでは、(IP SLA および TWAMP プローブを含む) IP トラフィック マーキングは変更されません。この機能では、この動作は変更できます。
キューイング
(CFM プローブを使用した IP SLAs を含む)CFM トラフィックは、通常のトラフィック同様、その 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 プローブを含む)には影響を与えません。
(注) Cisco IOS リリース 12.2(52)SE には、テーブル マップを使用して 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 値に基づいてキューイングされます。
(注) Cisco IOS リリース 12.2(52)SE には、テーブル マップを使用して 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)を制限し、トラフィック クラスの Committed Information Rate(CIR; 認定情報速度)に使用します。スイッチは、3 つのトラフィック クラスごとに別々のキューをサポートします。4 番めのキューは常に、クラス class-default 、未分類トラフィック用のデフォルト キューです。
(注) Cisco ME スイッチでは、トラフィック シェーピングの設定により、キューの最小帯域幅保証または CIR を PIR と同じ値に自動的に設定します。
次に、ファスト イーサネット ポート上で発信トラフィックのトラフィック シェーピングを設定し、 outclass1 、 outclass2 、および outclass3 がそれぞれ使用可能なポート帯域幅のうち最大 50 Mbps、20 Mbps、10 Mbps を取得する例を示します。クラス class-default は、最低限として、残りのポート帯域幅を受け取ります。
Switch(config)# policy-map out-policy
Switch(config-pmap)# class classout1
Switch(config-pmap-c)# shape average 50000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class classout2
Switch(config-pmap-c)# shape average 20000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class classout3
Switch(config-pmap-c)# shape average 10000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet 0/1
Switch(config-if)# service-policy output out-policy
ポート シェーピング
ポート シェーピング(送信ポート シェーパ)を設定するには、デフォルト クラスだけを含むポリシー マップを作成して、 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)を設定できません。
次に、帯域幅(kbps)を設定することにより、出力キューの優先順位を設定する例を示します。クラス outclass1 、 outclass2 、 outclass3 、および class-default は、それぞれ 40000、20000、10000、および 10000 kbps の最小帯域幅を取得します。余剰の帯域幅はすべて、CIR レートと同じ比率でクラス間に分配されます。
Switch(config)# policy-map out-policy
Switch(config-pmap)# class outclass1
Switch(config-pmap-c)# bandwidth 40000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class outclass2
Switch(config-pmap-c)# bandwidth 20000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class outclass3
Switch(config-pmap-c)# bandwidth 10000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# bandwidth 10000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet 0/1
Switch(config-if)# service-policy output out-policy
(注) クラスの CIR 帯域幅を絶対レートまたは総帯域幅に対するパーセンテージで設定する場合、ポリシー マップ内のすべてのクラスの CIR の処理後に残った余剰な帯域幅すべては、CIR レートと同じ比率でクラス間に分配されます。クラスの CIR レートが 0 に設定されている場合、このクラスはどの余剰帯域幅に対しても不適格となるため、帯域幅を取得できません。
次に、トラフィック クラスの帯域幅を残りの帯域幅に対するパーセンテージで設定することにより、キュー間に余剰の帯域幅を割り当てる例を示します。 outclass1 クラスには、プライオリティ キュー処理が行われます。他のクラスは、プライオリティ キューの処理後に余剰の帯域幅が残っている場合に、その帯域幅に対するパーセンテージを取得するよう設定されます。 outclass2 は、50% を取得するように、 outclass3 は 20% を取得するように、またクラス class-default は残りの 30% を取得するように設定されます。
Switch(config)# policy-map out-policy
Switch(config-pmap)# class outclass1
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# exit
Switch(config-pmap)# class outclass2
Switch(config-pmap-c)# bandwidth remaining percent 50
Switch(config-pmap-c)# exit
Switch(config-pmap)# class outclass3
Switch(config-pmap-c)# bandwidth remaining percent 20
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet 0/1
Switch(config-if)# service-policy output out-policy
プライオリティ キューイング
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 ではパケット分類を使用して、特定のキューに着信したフレームにそれぞれ異なるしきい値を適用します。宛先キューの合計サイズが、再分類された任意のトラフィックのしきい値を上回る場合、そのトラフィックの次のフレームは廃棄されます。
図 34-7 に1000 フレームのキューにおける WTD の動作例を示します。40%(400 フレーム)、60%(600 フレーム)、および100%(1000 フレーム)の 3 つの廃棄の割合が設定されています。これらのパーセンテージは、40% のしきい値に再分類されたトラフィックは、キュー深度が 400 フレームを超過すると廃棄され、60% のしきい値に再分類されたトラフィックは、キュー深度が 600 フレームを超過すると廃棄されるということを意味します。また、40% しきい値の場合は最大 400 フレーム、60% しきい値の場合は最大 600 フレーム、100% しきい値の場合は最大 1000 フレームをキューイングできるという意味です。
図 34-7 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 の分類、ポリシング、マッピング、およびキューイングを設定する必要があります。EtherChannel のすべてのポートで、QoS 設定を統一するかどうかを決定します。
• スイッチで受信された制御トラフィック(スパニング ツリー Bridge Protocol Data Unit [BPDU; ブリッジ プロトコル データ ユニット]やルーティング アップデート パケットなど)には、すべての入力 QoS 処理が行われます。
• キュー設定を変更すると、データが失われることがあります。したがって、トラフィックが最小のときに設定を変更するようにしてください。
• 新しいポリシーをインターフェイスに付加しようとし、これによりポリサー インスタンス の数が 1024 - (スイッチ上のインターフェイス数 + 1)より多い数になる場合、エラー メッセージを受信し、設定は失敗します。
• 新しいポリシーをインターフェイスに付加しようとし、これによりポリサー プロファイル の数が 254 より多い数になる場合、エラー メッセージを受信し、設定は失敗します。プロファイルは、認定速度、最大速度、認定バースト、および最大バーストの組み合せです。1 つのプロファイルを複数のインスタンスに付加できますが、これらの特性のいずれかが異なっている場合、ポリサーに新しいプロファイルがあると見なされます。
• すべての ME 3400E スイッチで、スイッチのすべてのポートに、256 のポート単位、VLAN 単位ポリシー マップ内の固有の VLAN 分類基準を指定できます。この制限を超える原因となるような任意のポリシーへ付加や変更を行うと失敗となり、VLAN label resources exceeded というエラー メッセージが返されます。
• すべての ME 3400E スイッチで、QoS ACE 分類リソース制限に達するまで、ポート単位およびポート単位、VLAN 単位のポリシー マップをスイッチのすべてのポートに付加できます。この制限を超える原因となるような任意のポリシーへ付加や変更を行うと失敗となり、TCAM resources exceeded というエラー メッセージが返されます。
• CPU 保護がイネーブルになっている場合、ポートごとに設定できるポリサーは 45 だけです。CPU 保護をディセーブルにすると、ポートごとに最大 64 のポリサーを設定できます。show policer cpu uni-eni {drop | rate} 特権 EXEC コマンドを入力し、CPU 保護がイネーブルになっているかどうか確認できます。
• CPU 保護をディセーブルにする際はこれらの制限事項について注意してください。
– CPU 保護をディセーブルにすると、ユーザ定義クラスに対してポートごとに最大 63 のポリサー(すべての 4 番目のポート上で 62)を、すべての ME 3400E スイッチの class-default に対して 1 つのポリサーを設定できます。この制限を超える原因となるような任意のポリシーへ付加や変更を行うと失敗となり、 policer resources exceeded というエラー メッセージが返されます。
– CPU 保護をディセーブルにすると、ME3400E-24TS プラットフォームについてスイッチに最大 255 のポリサーを設定できます。この制限を超える原因となるような任意のポリシーへ付加や変更を行うと失敗となり、policer resources exceeded というエラー メッセージが返されます。
– CPU 保護をディセーブルにして、45 を超えるポリサーを持つポリシー マップを付加してから、CPU 保護を再度イネーブルにして、リロードした場合、CPU 保護には、ポートごとに 19 のポリサーが再度必要となります。リロード中、ポリサー 46 以降は、 policer resources exceeded のエラー条件を満たすことになるので、これらのクラスに付加されるポリサーはありません。
• 内部 QoS ラベル数が 254 を超えると、エラー メッセージを受信します。
• 超過アクションのテーブル マップを設定し、違反アクションのアクションが明示的に設定されていない限り、集約ポリシングの 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 トラフィックを分類できます。ACL の設定の詳細については、 第 32 章「ACL によるネットワーク セキュリティの設定」 を参照してください。
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 を指定する場合は、送信元に適用するワイルドカード ビットをドット付き 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 ] を両方とも入力できます。 |
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 の番号または名前で指定された ToS レベルを使用して比較します。使用できる名前および番号は、 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 グローバル コンフィギュレーション コマンドを使用します。
次に、任意の送信元から任意の宛先への IP トラフィック(DSCP 値は 32)を許可する ACL を作成する例を示します。
Switch(config)# access-list 100 permit ip any any dscp 32
次に、10.1.1.1 の送信元ホストから 10.1.1.2 の宛先ホストへの IP トラフィック(precedence 値は 5)を許可する ACL を作成する例を示します。
Switch(config)# access-list 100 permit ip host 10.1.1.1 host 10.1.1.2 precedence 5
レイヤ 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 、 match ip acl )と非 IP 分類( match cos または match mac acl )を設定できません。ポート単位、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 文)を設定できません。 |
ステップ 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 つだけ付加できます。
(注) no policy-map コンフィギュレーション コマンドまたは no policy-map policy-map-name グローバル コンフィギュレーション コマンドを入力して、インターフェイスに付加されたポリシー マップを削除する場合、ポリシー マップが消去されているインターフェイスの一覧を示する警告メッセージが表示されます。ポリシー マップは消去および削除されます。たとえば、次のようなメッセージが表示されます。
Warning: Detaching Policy test1 from Interface GigabitEthernet0/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値、IP precedence 値、QoS グループ値へのマーキングを設定できます。
入力ポリシー マップの設定を行うときは、次の注意事項に従ってください。
• 1 つのポートに付加できる入力ポリシー マップは 1 つに限られます。
• スイッチ上に設定されるポリシー マップの最大数は 256 です。
• ME-3400 上に設定できるポリサー プロファイルの合計数は 254 です。ME-3400E でサポートされているポリサー インスタンスの合計数は 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)です。スイッチは、最大 254 のポリサー プロファイルをサポートします。
• violate-action を設定しない場合、デフォルトで違反クラスが exceed-action と同じアクションに割り当てられます。
no policy-map コンフィギュレーション コマンドまたは no policy-map policy-map-name グローバル コンフィギュレーション コマンドを入力して、インターフェイスに付加されたポリシー マップを削除する場合、ポリシー マップが消去されているインターフェイスの一覧を示する警告メッセージが表示されます。ポリシー マップは消去および削除されます。たとえば、次のようなメッセージが表示されます。
Warning: Detaching Policy test1 from Interface GigabitEthernet0/1
個別の 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 つのレート、Committed Information Rate(CIR; 認定情報レート)および Peak Information Rate(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 :パケットを廃棄します。 に設定されます。 – 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 :パケットを変更せず送信します。 コマンドのあとに 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)です。スイッチは、最大 254 のポリサー プロファイルをサポートします。
• 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
(注) ポリシー マップ クラス ポリシング コンフィギュレーション モードでは、集約ポリサーの適合アクション、超過アクション、および違反アクションは設定しません。すべてのアクションはストリングで入力する必要があります。その結果、複数の適合、超過、および違反の各アクションを入力すると、コマンドが著しく長くなり、切り捨てられたり読みにくくなる場合があります。
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 には、平均トラフィック レートを b/s 単位で指定します。指定できる範囲は 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 に適合するパケットで実行するアクションを指定します。デフォルトでは、パケットを送信します。 に設定されます。 • (任意) exceed-action については、CIR に適合するパケットで実行するアクションを指定します。デフォルトでは、パケットを廃棄します。 • (任意) violate-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 |
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 ip 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 文)を設定できません。 |
ステップ 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 クラス マップを作成して、クラスマップ コンフィギュレーション モードを開始します。 になります)。 |
ステップ 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-polic y-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-polic y-map-name |
ポリシー マップ名を入力して親ポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。 |
ステップ 3 |
class parent-class-map-name |
親クラスマップ名を入力し、ポリシーマップ クラス コンフィギュレーション モードを開始します。 |
ステップ 4 |
service policy child-polic y-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 形式を使用します。
(注) no policy-map コンフィギュレーション コマンドまたは no policy-map policy-map-name グローバル コンフィギュレーション コマンドを入力して、インターフェイスに付加されたポリシー マップを削除する場合、ポリシー マップが消去されているインターフェイスの一覧を示する警告メッセージが表示されます。ポリシー マップは消去および削除されます。たとえば、次のようなメッセージが表示されます。
Warning: Detaching Policy test1 from Interface GigabitEthernet0/1
次に、クラス マップで定義されたトラフィック クラスに、使用可能な合計帯域幅の 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 gigabitethernet0/1
Switch(config-if)# service-policy output gold_policy
クラスベース シェーピングを含む出力ポリシー マップの設定
トラフィック シェーピングを設定するには、 shape average ポリシー マップ クラス コンフィギュレーション コマンドを使用します。クラスベース シェーピングは、インターフェイスから発信されるトラフィック クラスに適用される制御メカニズムで、クラスの CIR で使用されるデータ伝送速度を制限するには、shape average コマンドを使用します。
クラスベース シェーピングの設定を行うときは、次の注意事項に従ってください。
• トラフィック シェーピングのキュー設定により、キューの最大帯域幅および Peak Information Rate(PIR)が設定されます。Cisco ME スイッチでは、トラフィック シェーピングの自動設定により、キューの最小帯域幅保証または CIR も PIR と同じ値に設定されます。
• 出力ポリシー マップ内の同一のクラスに、CBWFQ( bandwidth )またはプライオリティ キューイング( priority )およびトラフィック( shape average )を設定できません。
• 出力ポリシー マップ内の別のクラスに、完全プライオリティ(ポリシングなしのプライオリティ)が設定されている場合、特定のトラフィック クラスにトラフィック シェーピングを設定できません。
クラスベース シェーピングを使用して、トラフィック クラスの最大許容平均速度を設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
policy-map policy-map-name |
ポリシー マップ名を入力してポリシー マップを作成し、ポリシーマップ コンフィギュレーション モードを開始します。 |
ステップ 3 |
class { class-map-name | class-default } |
child class-map name またはすべての未分類のパケットを照合する 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 形式を使用します。
次に、ファスト イーサネット ポート上で発信トラフィックのトラフィック シェーピングを設定し、 outclass1 、 outclass2 、および outclass3 が使用可能なポート帯域幅のうち最大 50 Mb/s、20 Mb/s、10 Mb/s を取得する例を示します。クラスの class-default は、残りのポート帯域幅を取得します。
Switch(config)# policy-map out-policy
Switch(config-pmap)# class classout1
Switch(config-pmap-c)# shape average 50000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class classout2
Switch(config-pmap-c)# shape average 20000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class classout3
Switch(config-pmap-c)# shape average 10000000
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface fastethernet0/1
Switch(config-if)# service-policy output out-policy
ポート シェーピングを含む出力ポリシー マップの設定
ポート シェーピングは、インターフェイスから発信されるすべてのトラフィックに適用されます。 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 |
このクラスに完全スケジューリング プライオリティを設定します。 )と、プライオリティを同時に設定できません。 |
ステップ 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 gigabitethernet0/1
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 |
このクラスをプライオリティ クラスとして設定します。 コマンドに関連付けられるのは、スイッチ上の 1 つの一意のクラス マップだけです。 |
ステップ 6 |
police { rate-bps | cir cir-bps } |
トラフィックのプライオリティ クラスのポリサーを定義します。 • rate-bps には、平均トラフィック レートを bps 単位で指定します。指定できる範囲は 64000 ~ 1000000000 です。 コマンドを併用する場合に、CLI ヘルプで表示される範囲が 8000 ~ 1000000000 bps であっても、ポリシング レートおよび CIR の範囲は 64000 ~ 1000000000 bps です。範囲外のレートでは、出力サービス ポリシーを付加できません。 • cir cir-bps には、CIR を bps で指定します。指定できる範囲は 64000 ~ 1000000000 です。 (注) バースト サイズ オプションは、コマンド ライン ヘルプ ストリングで表示される場合でも、出力ポリシー マップでサポートされません。バースト サイズが設定された出力サービス ポリシー マップは付加できません。 |
ステップ 7 |
conform-action [ transmit ] |
(任意)CIR に適合するパケットで実行するアクションを入力します。アクションが入力されない場合は、デフォルトのパケット送信のアクションになります。 だけがサポートされます。その他のポリシング適合アクションは、コマンド ライン ヘルプ ストリングで表示される場合でも、出力ポリシー マップでサポートされません。 |
ステップ 8 |
exceed-action [ drop ] |
(任意)CIR に適合しないパケットに実行するアクションを入力します。アクションが入力されない場合は、デフォルトのパケット廃棄のアクションになります。 だけがサポートされます。その他のポリシング超過アクションは、コマンド ライン ヘルプ ストリングで表示される場合でも、出力ポリシー マップでサポートされません。 |
ステップ 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 gigabitethernet0/1
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 } or shape average target bps or 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 gigabitethernet0/1
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
Class:
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
Policy:
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
Interface
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 クラスに割り当てられている。
Table Map:
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
Class:
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
Policy:
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
Interface
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 トラフィックおよびユーザ トラフィック は出力ポートのさまざまなキューに分割されています。
Table Map
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
Class:
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 ME スイッチ上での QoS ポリシーの設定例を示します。ここでは、カスタマーが実行する設定動作ごとにわかれています。各項では、設定または変更を正常に行うために必要な手順を正確な順序で説明します。
• 「カスタマー A の QoS 設定」
• 「カスタマー B の QoS 設定」
• 「出力ポリシーの変更および分類基準の追加と削除」
• 「出力ポリシーの変更およびキューイングまたはスケジューリング パラメータの変更」
• 「出力ポリシーの変更および設定済み動作の追加または削除」
• 「出力ポリシーの変更およびクラスの追加または削除」
カスタマー A の QoS 設定
ここでは、カスタマー スイッチの初期設定および QoS ポリシーのアクティブ化の例を示します。入力および出力 QoS サービス ポリシーは、要件に基づいて設定され、関連ポートに付加されます。
カスタマー A の初期設定では、ファスト イーサネット ポート 1 ~ 24 は User Network Interface (UNI; ユーザ ネットワーク インターフェイス)で、デフォルトではディセーブルです。ギガビット イーサネット ポート 1 ~ 2 は、Network Node Interface(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
次に、ファスト イーサネット UNI 1 ~ 8 に適用される 2 番めの出力サービス ポリシーを設定し、gold クラスには完全プライオリティを割り当てて、残りのクラス間で所定の比率で残りの帯域幅を分配する例を示します。
Switch(config)# policy-map output1-8
Switch(config-pmap)# class gold-out
Switch(config-pmap-c)# priority
Switch(config-pmap-c)# exit
Switch(config-pmap)# class silver-out
Switch(config-pmap-c)# bandwidth remaining percent 50
Switch(config-pmap-c)# exit
Switch(config-pmap)# class bronze-out
Switch(config-pmap-c)# bandwidth remaining percent 20
Switch(config-pmap-c)# exit
次に、ギガビット イーサネット ポートに入力および出力サービス ポリシーを付加して、アクティブ化する例を示します。
Switch(config)# interface range gigabitethernet0/1-2
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
次に、ファスト イーサネット ポート 1 ~ 8 に入力および出力サービス ポリシーを付加して、アクティブ化する例を示します。
Switch(config)# interface range fastethernet0/1 - 8
Switch(config-if-range)# service-policy input input-all
Switch(config-if-range)# service-policy output output1-8
Switch(config-if-range)# no shutdown
Switch(config-if-range)# exit
カスタマー B の QoS 設定
このセクションでは、現在のカスタマーに影響を与えずに一連の新しいカスタマーにスイッチ上で QoS ポリシーを設定してアクティブ化する例を示します。入力および出力 QoS サービス ポリシーは、要件に基づいて設定され、関連ポートに付加されます。この例では、既存の入力ポリシー マップを使用し、新しいカスタマーには新しい出力ポリシー マップを設定します。
カスタマー B に対する初期設定では、ファスト イーサネット ポート 1 ~ 8 が UNI で、アクティブです。ファスト イーサネット ポート 9 ~ 24 は、UNI で、シャットダウンしています。ギガビット イーサネット ポート 1 および 2 は、NNI で、デフォルトでイネーブルに設定されています。
次に、初期設定の全体的な流れを示します。
• 新しく必要になったすべての出力ポリシーを定義します。
• アクティブ化されたポートに入力および出力ポリシーを付加する。
• ポートのシャットダウン ステートを終了する。
出力ポリシーを設定する際の制限事項は、次のとおりです。
• 出力ポリシー マップでは、最大 3 つのクラスを定義できます。
• 定義されたクラスは、他の出力ポリシー マップと同一でなければなりません。
• 各出力ポリシーマップで定義されるクラス数は、同じである必要があります。
• クラスごとに動作を割り当てる必要があります。つまり、空のクラスはありません。
• 各クラス設定は、入力ポリシー マップで実行された分類/マーキングに基づいている必要があります。
次に、ファスト イーサネット UNI 9 ~ 12 に付加される 3 番めの出力サービス ポリシーを設定して、最小保証帯域幅を、gold クラスには 50 Mb/s、silver クラスには 20 Mb/s、bronze クラスには 10 Mb/s を割り当てる例を示します。
Switch(config)# policy-map output9-12
Switch(config-pmap)# class gold-out
Switch(config-pmap-c)# bandwidth 50000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class silver-out
Switch(config-pmap-c)# bandwidth 20000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class bronze-out
Switch(config-pmap-c)# bandwidth 10000
Switch(config-pmap-c)# exit
次に、ファスト イーサネット ポート 9 ~ 12 に出力ポリシーを付加して、ポートをアクティブ化する例を示します。
Switch(config)# interface range fastethernet0/9-12
Switch(config-if-range)# service-policy input input-all
Switch(config-if-range)# service-policy output output9-12
Switch(config-if-range)# no shutdown
Switch(config-if-range)# exit
出力ポリシーの変更および分類基準の追加と削除
ここでは、既存の一連の出力ポリシー マップを更新して、分類基準を追加または削除する例を示します。サービス プロビジョニング要件または入力サービス ポリシー マップでの変更により、修正が必要となる場合があります。いずれのポートもシャットダウンすることなく、変更できます。
初期設定では、ファスト イーサネット ポート 1 ~ 12 が UNI で、アクティブです。ファスト イーサネット ポート 13 ~ 24 は、UNI で、シャットダウンしています。ギガビット イーサネット ポート 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 ~ 12 が UNI で、アクティブです。ファスト イーサネット ポート 13 ~ 24 は、UNI で、シャットダウンしています。ギガビット イーサネット ポート 1 および 2 は、NNI で、デフォルトでイネーブルに設定されています。
要件は、アクション パラメータを変更することです。
出力ポリシーを設定する際の制限事項は、次のとおりです。
• 出力ポリシー マップでは、最大 3 つのクラスを定義できます。
• 定義されたクラスは、他の出力ポリシー マップと同一でなければなりません。
• 各出力ポリシーマップで定義されるクラス数は、同じである必要があります。
• クラスごとに動作を割り当てる必要があります。つまり、空のクラスはありません。
• 各クラス設定は、入力ポリシー マップで実行された分類またはマーキングに基づいている必要があります。
次に、最小保証帯域幅を gold クラスには 40 Mb/s(50 Mb/s から変更)、silver クラスには 30 Mb/s(20 Mb/s から変更)、および bronze クラスには 20 Mb/s(10 Mb/s から変更)を割り当て、ファスト イーサネット UNI 8 ~ 12 を処理する 3 番目の出力サービス ポリシーを変更する例を示します。
Switch(config)# policy-map output9-12
Switch(config-pmap)# class gold-out
Switch(config-pmap-c)# bandwidth 40000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class silver-out
Switch(config-pmap-c)# bandwidth 30000
Switch(config-pmap-c)# exit
Switch(config-pmap)# class bronze-out
Switch(config-pmap-c)# bandwidth 20000
Switch(config-pmap-c)# exit
出力ポリシーの変更および設定済み動作の追加または削除
ここでは、既存の一連の出力ポリシー マップを更新して、キューイングおよびスケジューリング動作を追加または削除する例を示します。サービス プロビジョニング要件での変更により、出力ポリシー マップでの修正が必要となる場合があります。変更される出力ポリシー マップが設定されていないポートをシャットダウンしないで、変更できます。ただし、出力ポリシー マップが設定されているポートは、シャットダウンする必要があります。この出力ポリシー マップを使用しないカスタマーは、影響を受けません。
初期設定では、ファスト イーサネット ポート 1 ~ 12 が UNI で、アクティブです。ファスト イーサネット ポート 13 ~ 24 は、UNI で、シャットダウンしています。ギガビット イーサネット ポート 1 および 2 は、NNI で、デフォルトでイネーブルに設定されています。
次に、設定の全体的な流れを示します。
• 変更されるポリシーを伝搬するすべてのアクティブ ポートをシャットダウンします。
• 出力ポリシーが付加されているすべてのポートから、ポリシーを消去します。
• 出力ポリシーを変更します。
• 該当するポートに、出力ポリシーを再度付加します。
• ポートのシャットダウン ステートを終了します。
出力ポリシーを設定する際の制限事項は、次のとおりです。
• 出力ポリシー マップでは、最大 3 つのクラスを定義できます。
• 定義されたクラスは、他の出力ポリシー マップと同一でなければなりません。
• 各出力ポリシーマップで定義されるクラス数は、同じである必要があります。
• クラスごとに動作を割り当てる必要があります。つまり、空のクラスはありません。
• 各クラス設定は、入力ポリシー マップで実行された分類/マーキングに基づいている必要があります。
次の手順では、出力ポリシーを伝搬するポートすべて(この場合は、ギガビット イーサネット ポートだけ)がシャットダウンされます。
Switch(config)# interface range gigabitEthernet0/1-2
Switch(config-if-range)# shutdown
Switch(config-if-range)# exit
次の手順では、変更される出力ポリシー(この場合は、ギガビット イーサネット ポートに設定されたポリシー)が削除されます。
Switch(config)# interface range gigabitEthernet0/1-2
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 gigabitethernet0/1-2
Switch(config-if-range)# service-policy output output9-12
Switch(config-if-range)# exit
次の手順では、すべてのギガビット イーサネット ポートがアクティブ化されます。
Switch(config)# interface range gigabitethernet0/1-2
Switch(config-if-range)# no shutdown
Switch(config-if-range)# exit
出力ポリシーの変更およびクラスの追加または削除
ここでは、既存の一連の出力ポリシー マップを更新して、すべてのクラスを追加または削除する例を示します。サービス プロビジョニング要件または入力サービス ポリシーでの変更により、出力ポリシー マップでの修正が必要となる場合があります。この変更を行うには、スイッチ上のすべてのアクティブ ポートをシャットダウンする必要があります。任意の出力ポリシー マップに対するこの種の更新は、すべてのカスタマーに影響を及ぼす場合があります。これを回避するため、出力サービス ポリシーでクラスを設定する場合は将来的に可能性のある更新について考慮することを推奨します。
初期設定では、ファスト イーサネット ポート 1 ~ 12 が UNI で、アクティブです。ファスト イーサネット ポート 13 ~ 24 は、UNI で、シャットダウンしています。ギガビット イーサネット ポート 1 および 2 は、NNI で、デフォルトでイネーブルに設定されています。
次に、設定の全体的な流れを示します。
• すべてのアクティブ ポートをシャットダウンします。
• すべてのファスト イーサネットおよびギガビット イーサネット ポートから出力ポリシーを消去します。
• クラスを削除します。
• ファスト イーサネットおよびギガビット イーサネット ポートに出力ポリシーを再度付加します。
• ファスト イーサネットおよびギガビット イーサネット ポートのシャットダウン ステートを終了します。
次の手順では、すべてのアクティブで適用可能なファスト イーサネットおよびギガビット イーサネット ポートをシャットダウンします。
Switch(config)# interface range gigabitethernet0/1-2, fastethernet0/1-12
Switch(config-if-range)# shutdown
Switch(config-if-range)# exit
次の手順では、影響を受けるファスト イーサネットおよびギガビット イーサネット ポートからすべての出力ポリシーを消去します。
Switch(config)# interface range fastethernet0/1-8
Switch(config-if-range)# no service-policy output output1-8
Switch(config-if-range)# exit
Switch(config)# interface range fastethernet0/9-12
Switch(config-if-range)# no service-policy output output9-12
Switch(config-if-range)# exit
Switch(config)# interface range gigabitethernet0/1-2
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 fastethernet0/1-8
Switch(config-if-range)# service-policy output output1-8
Switch(config-if-range)# exit
Switch(config)# interface range fastethernet0/9-12
Switch(config-if-range)# service-policy output output9-12
Switch(config-if-range)# exit
Switch(config)# interface range gigabitethernet0/1-2
Switch(config-if-range)# service-policy output output9-12
Switch(config-if-range)# exit
次の手順では、すべての適用可能なファスト イーサネットおよびギガビット イーサネット ポートをアクティブ化します。
Switch(config)# interface range gigabitethernet0/1-2, fastethernet0/1-12
Switch(config-if-range)# no shutdown
Switch(config-if-range)# exit
付加された出力サービス ポリシーにクラスを追加する場合は、同じ手順を使用する必要があります。
(注) 前述の順序に従わない場合は、問題が発生する可能性があります。
インターフェイスにポリシー マップを付加する場合、ポリシー マップ内の設定済みのクラス マップに明示的に一致しないすべてのトラフィックは、デフォルト キュー(クラス class-default )を通過します。ただし、場合によっては、出力ポリシー マップに明示的に一致しないトラフィックが複数のキューを通過する場合があります。このようなキューイング問題は、前述の手順に従わない場合、およびすべてのアクティブ ポートに出力ポリシーが付加されていない場合に発生する可能性があります。
たとえば、2 つのポートにだけ出力ポリシーが設定されていて、出力ポリシー内のクラスを削除する場合を検討します。
2 つのポートをシャットダウンします。
Switch(config)# interface range fastethernet0/1-2
Switch(config-if-range)# shutdown
Switch(config-if-range)# exit
両方のポートから出力ポリシーを消去します。
Switch(config)# interface range fastEthernet0/1-2
Switch(config-if)# no service-policy output output1-2
出力ポリシー内のクラスを削除します。
Switch(config)# policy-map output1-2
Switch(config-pmap)# no class bronze-out
Switch(config-pmap-c)# exit
1 つのポートにだけ出力ポリシーを付加して、もう 1 つには付加しません。
Switch(config)# interface FastEthernet0/1
Switch(config-if)# service-policy output output1-2
両方のポートをイネーブルにします。
Switch(config)# interface range fastethernet0/1-2
Switch(config-if-range)# no shutdown
Switch(config-if-range)# exit
この時点では、トラフィックが単一のデフォルトキューを通過せずに、ファスト イーサネット ポート 2 から発信される場合、ファスト イーサネット ポート 1 に付加された出力ポリシーマップに定義されたクラスがある場合と同じ数のキューを通過します。この場合は 3 つです。フローが複数のキューに分割された場合は、場合によっては、ファスト イーサネット ポート 2 から発信されるフローのパケットが再度順番付けされる可能性があります。出力ポリシーを付加するまでポートをシャットダウン ステートのままにすることにより、この問題を回避できます。