NCS 560 シリーズ ルータの制約事項
-
hw-module profile qos ingress-model peering コマンドはサポートされていません。
-
一致 ACL はサポートされていません。
この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
パケットの分類には、特定のグループ(またはクラス)内のパケットを分類し、これにトラフィック記述子を割り当てて、ネットワークで QoS 処理用にアクセスできるようにする処理が含まれます。トラフィック記述子には、パケットが受ける転送処理(Quality of Service)に関する情報が含まれます。パケット分類を使用すると、複数のプライオリティレベルまたは CoS にネットワークトラフィックを区分できます。発信元が契約された条項に従うことに同意し、ネットワークが QoS の実行を約束します。トラフィックポリサーとトラフィックシェーパーは、契約を順守するために、パケットのトラフィック記述子を使用します。
トラフィックポリサーおよびトラフィックシェーパーは、IP precedence などのパケット分類機能を使用して、さまざまなタイプの QoS サービスに対して、ルータを通過するパケット(またはトラフィックフロー)を選択します。パケットを分類した後、他の QoS 機能を使用して、輻輳管理、帯域幅割り当て、および遅延限度などの適切なトラフィック処理ポリシーを、各トラフィッククラスに割り当てることができます。
モジュラ Quality of Service(QoS)コマンドライン インターフェイス(MQC)は、分類する必要のあるトラフィックフローを定義するために使用します。このとき、各トラフィックフローをサービスクラス、またはクラスと呼びます。その後、トラフィックポリシーを作成し、クラスに適用します。定義されたクラスに該当しないトラフィックはすべて、デフォルト クラスのカテゴリに分類されます。
hw-module profile qos ingress-model peering コマンドはサポートされていません。
一致 ACL はサポートされていません。
トラフィッククラスの目的は、ルータのトラフィックを分類することです。class-map コマンドを使用してトラフィック クラスを定義します。
トラフィッククラスには、3 つの主要な要素が含まれています。
名前
一連の match コマンド:パケットを分類するためのさまざまな基準を指定します。
これらの match コマンドを評価する方法の手順(トラフィッククラスに複数の match コマンドが存在する場合)
パケットは、match コマンドで指定された基準に合っているかどうかを判断するためにチェックされます。指定された基準に合っていれば、パケットはクラスのメンバーと見なされ、トラフィックポリシーで設定された QoS 仕様に従って転送されます。一致基準を満たさないパケットは、デフォルトのトラフィッククラスのメンバーとして分類されます。
次の表に、このルータでサポートされている一致タイプの詳細を示します。
サポートされている一致タイプ |
最小、最大 |
エントリの最大数 |
一致 NOT のサポート |
範囲のサポート |
インターフェイスでサポートされる方向 |
---|---|---|---|---|---|
IPv4 DSCP IPv6 DSCP DSCP |
(0、63) |
64 |
あり |
あり |
入力 |
IPv4 Precedence IPv6 Precedence Precedence |
(0、7) |
8 |
あり |
入力 |
|
MPLS Experimental Topmost |
(0、7) |
8 |
あり |
入力 |
|
Access-group |
該当なし |
なし |
該当なし |
入力 |
|
QoS-group |
(1、7) |
7 |
なし |
なし |
出力 |
あり |
入力 |
||||
プロトコル |
あり |
該当なし |
入力 |
未分類のトラフィック(トラフィッククラスで指定された一致条件を満たさないトラフィック)は、デフォルト トラフィック クラスに属するものとして扱われます。
ユーザがデフォルトクラスを設定しない場合でも、パケットはデフォルトクラスのメンバとして扱われます。ただし、デフォルトでは、デフォルトクラスにイネーブルな機能はありません。そのため、機能が設定されていないデフォルトクラスに属するパケットには QoS 機能は適用されません。この後、これらのパケットは、ファーストイン ファーストアウト(FIFO)キューに配置され、使用可能な下位リンクの帯域幅で決められたレートで転送されます。
出力分類の場合、qos-group (1-7)での一致がサポートされています。match qos-group 0 は設定できません。出力ポリシーの class-default は qos-group 0 にマッピングします。
次に、デフォルトクラスにトラフィックポリシーを設定する例を示します。
configure
policy-map ingress_policy1
class class-default
police rate percent 30
!
一致基準が含まれるトラフィッククラスを作成するには、class-map コマンドを使用してトラフィッククラス名を指定し、必要に応じて match コマンドをクラスマップ コンフィギュレーション モードで使用します。
ガイドライン
ユーザは、設定の単一行において一致タイプに対し複数の値を提供できます。つまり、最初の値が一致基準を満たさない場合は、一致ステートメントに示された次の値が分類のために検討されます。
not キーワードを match コマンドに使用すると、指定されていないフィールドの値に基づいて照合が実行されます。
この設定作業で指定するすべての match コマンドの使用は任意ですが、1 つのクラスに少なくとも 1 つの一致基準を設定する必要があります。
match-any を指定した場合、トラフィッククラスで受信したトラフィックがトラフィッククラスの一部と分類されるには、一致基準の 1 つを満たす必要があります。これはデフォルトです。match-all を指定した場合は、トラフィックがすべての一致基準を満たす必要があります。
match access-group コマンドの場合は、IPv4 ヘッダーおよび IPv6 ヘッダーのパケット長または TTL(パケット存続時間)フィールドに基づいた QoS 分類はサポートされません。
match access-group コマンドの場合は、ACL リストがクラスマップ内で使用されると、ACL の拒否アクションは無視され、トラフィックは指定された ACL の一致パラメータに基づいて分類されます。
match qos-group 、traffic-class 、および discard-class は出力方向でのみサポートされます。また、これらは出力方向でサポートされている唯一の一致基準です。
出力のデフォルトクラスは、暗黙的に qos-group 0 に一致します。
入力ポリシーでトラフィッククラスを設定しますが、対応するトラフィッククラス値の出力に一致クラスがない場合は、このクラスを持つ入力のトラフィックは出力ポリシーマップのデフォルトクラスでは説明されません。
トラフィッククラス 0 のみがデフォルトクラスに分類されます。入力に割り当てられていても、出力キューが割り当てられていないゼロ以外のトラフィッククラスは、デフォルトクラスにも、他のどのクラスにも分類されません。
トラフィッククラスの設定を完了するには、以下を完全に行う必要があります。
クラスマップの作成
パケットをその特定のクラスのメンバとして分類するための一致基準の指定
サポートされる一致タイプの一覧については、「トラフィッククラスの要素」を参照してください。
Router# configure
Router(config)# class-map match-any qos-1
Router(config-cmap)# match qos-group 1
Router(config-cmap)# end-class-map
Router(config-cmap)# commit
「実行コンフィギュレーション」も参照してください。
「確認」も参照してください。
トラフィックポリシーには、次の 3 つの要素が含まれています。
名前
トラフィッククラス
Quality of Service(QoS)ポリシー
トラフィックポリシーにトラフィックを分類するのに使用するトラフィッククラスを選択した後で、ユーザはこの分類されたトラフィックに適用される QoS 機能を入力できます。
MQC では、必ずしも 1 つのトラフィッククラスだけを 1 つのトラフィックポリシーに関連付ける必要はありません。
クラスをポリシーマップで設定する順序が重要です。クラスの一致規則は、クラスをポリシーマップで指定した順序で TCAM にプログラミングされます。したがって、あるパケットが複数のクラスと一致する場合は、最初に一致したクラスだけが返され、対応するポリシーが適用されます。
ルータは、入力方向のポリシーマップごとに 32 のクラスを、出力方向のポリシーマップごとに 8 つのクラスをサポートしています。
次の表に、ルータでサポートされているクラスアクションを示します。
サポートされているアクションタイプ |
インターフェイスでサポートされる方向 |
---|---|
bandwidth-remaining |
出力 |
mark |
(「パケットマーキング」を参照)。 |
police |
入力 |
priority |
出力(レベル 1) |
shape |
出力 |
トラフィックポリシーの目的は、ユーザが指定したトラフィッククラスまたはクラスに分類されたトラフィックに関連付ける QoS 機能を設定することです。
トラフィッククラスを設定するには、「トラフィッククラスの作成」を参照してください。
policy-map コマンドを使用してトラフィックポリシーを定義した後、インターフェイス コンフィギュレーション モードで service-policy コマンドを使用してこのポリシーを 1 つ以上のインターフェイスに付加し、これらのインターフェイスのトラフィックポリシーを指定できます。デュアルポリシーサポートを使用すると、2 つのトラフィックポリシーを使用できます(1 つはマーキング、もう 1 つは出力に付加されるキューイング)。「トラフィックポリシーのインターフェイスへの適用」を参照してください。
トラフィックポリシーの設定を完了するには、以下を完全に行う必要があります。
1 つまたは複数のインターフェイスに付加してサービスポリシーを指定するためのポリシー マップの作成
トラフィッククラスのトラフィックポリシーへの関連付け
クラスアクションの指定(「トラフィックポリシーの要素」を参照)
「実行コンフィギュレーション」を参照してください。
「確認」を参照してください。
トラフィッククラスおよびトラフィックポリシーが作成された後、インターフェイスにトラフィックポリシーを適用し、ポリシーの適用方向を指定する必要があります。
トラフィックポリシーをインターフェイスに適用するには、以下を完了する必要があります。
トラフィッククラス、およびパケットをクラスに対応させる関連付けられたルールの作成(「トラフィッククラスの作成」を参照)
1 つまたは複数のインターフェイスに適用してサービスポリシーを指定するためのトラフィックポリシーの作成(「トラフィックポリシーの作成」を参照)
トラフィッククラスのトラフィックポリシーへの関連付け
入力または出力方向での、トラフィックポリシーのインターフェイスへの適用
Router# configure
Router(config)#
Router(config-int)# service-policy output
Router(config-int)# commit
RP/0/RP0/CPU0:R1(config)# interface twentyFiveGigE 0/0/0/26.1
RP/0/RP0/CPU0:R1(config-if)# service-policy input cos
RP/0/RP0/CPU0:R1(config-if)# commit
RP/0/RP0/CPU0:R1# show run interface TwentyFiveGigE0/0/0/26.1
interface TwentyFiveGigE0/0/0/26.1 l2transport
encapsulation dot1q 25
service-policy input cos
!
RP/0/RP0/CPU0:R1# show run policy-map cos
policy-map cos
class cos1
police rate 3 mbps
!
!
class cos2
police rate 2 mbps
!
!
class cos3
police rate 3 mbps
!
!
class class-default
police rate 4 mbps
!
!
end-policy-map
!
RP/0/RP0/CPU0:R1#
パケットマーキング機能では、指定マーキングに基づいてパケットを区別する方法がユーザに提供されます。ルータは、出力パケットマーキングをサポートしています。出力の discard-class の一致(設定されている場合)は、マーキングポリシーにのみ使用できます。
また、ルータは L2 入力マーキングもサポートしています。
次の表に、サポートされているパケットマーキング操作を示します。
サポートされているマークタイプ |
範囲 |
無条件マーキングのサポート |
条件付きマーキングのサポート |
---|---|---|---|
set cos |
0 ~ 7 |
入力 |
なし |
set dei |
0 ~ 1 |
入力 |
なし |
set discard-class |
0 ~ 3 |
入力 |
なし |
set dscp |
0 ~ 63 |
入力 |
なし |
set mpls experimental topmost |
0 ~ 7 |
入力 |
なし |
set precedence |
0 ~ 7 |
入力 |
なし |
set qos-group |
0 ~ 7 |
入力 |
なし |
パケットマーキング機能により、次のようにネットワークを複数のプライオリティレベルまたはサービス クラスに区切ることができます。
QoS 無条件パケットマーキングを使用して、ネットワークに入るパケットの IP precedence または DSCP 値を設定します。ネットワーク内のルータは、新しくマーキングされた IP precedence 値を使用して、トラフィックの処理方法を決定できます。
入力方向で、IP Precedence または DSCP 値に基づいてトラフィックを照合した後、そのトラフィックを特定の discard-class に設定できます。それによって、輻輳回避技術である重み付けランダム早期検出(WRED)は、discard-class 値を使用して、パケットがドロップされる可能性を判断します。
QoS 無条件パケットマーキングを使用して、MPLS パケットを QoS グループに割り当てます。ルータは、QoS グループを使用して送信用のパケットのプライオリティを設定する方法を決定します。トラフィッククラス識別子を MPLS パケット上に設定するには、 set traffic-class コマンドをポリシー マップ クラス コンフィギュレーション モードで使用します。
(注) |
QoS グループ ID を設定しても、パケットを送信する優先順位が自動的に決まるわけではありません。最初に QoS グループを使用する出力ポリシーを設定する必要があります。 |
(注) |
|
ルータは出力方向におけるすべての IP パケットの IP DSCP ビットのゼロへのマーキングをサポートしています。この機能は、IP パケットの優先順位の再マーキングに役立ちます。これは主に IP over Ethernet over MPLS over GRE のようなシナリオで使用されます。この機能は、class-default 内に設定されている set dscp 0 オプションがある入力ポリシーマップを使用して実行されます。
Router# configure
Router(config)# policy-map ingress-set-dscp-zero-policy
Router(config-pmap)# class class-default
Router(config-pmap-c)# set dscp 0
Router(config-pmap-c)# end-policy-map
Router(config-pmap)# commit
policy-map ingress-set-dscp-zero-policy
class class-default
set dscp 0
!
end-policy-map
!
ルータは、出力方向でのイーサネットパケットのレイヤ 2 マーキングをサポートしています。
ルータは、出力方向でのレイヤ 3 フローにおけるイーサネットパケットのレイヤ 2 マーキングをサポートしています。
この機能を有効にするには、次の手順を実行する必要があります。
ピアリングモードを有効にします。これを行うには、hw-module profile qos ingress-model peering コマンドを使用します。hw-module 設定を機能させるには、ルータをリロードする必要があります。詳細については、『Modular QoS Command Reference for Cisco NCS 5500 Series, Cisco NCS 540 Series, and Cisco NCS 560 Series Routers』を参照してください。
出力インターフェイスでのマーキングのポリシーマップを設定します。
set qos-group コマンドが入力ポリシー内に設定されており、対応する match qos-group コマンドが出力マーキング ポリシー内に設定されていることを確認します。対応する QoS グループがない場合は、トラフィック障害が発生します。
出力方向でのレイヤ 3 フローにおけるイーサネットパケットのレイヤ 2 マーキングを設定する前に、次のポイントを確認しておいてください。
set discard-class は、ピアリングモードを使用した入力ポリシーではサポートされていません。
出力マーキングの統計情報は使用できません。
レイヤ 2(802.1p)出力マーキングは、IP から IP、IP から MPLS、および MPLS から IP へのトラフィックのレイヤ 3 フローでサポートされています。
出力方向でのレイヤ 3 フローにおけるイーサネットパケットのレイヤ 2 マーキングは、ピアリングモードでのみサポートされます。
入力ポリシー:
最初に、入力で qos-group を設定する必要があります。
class-map match-any Class0
match mpls experimental topmost 0
match precedence routine
match dscp 0-7
end-class-map
class-map match-any Class1
match mpls experimental topmost 1
match precedence priority
match dscp 8-15
end-class-map
class-map match-any Class2
match mpls experimental topmost 2
match precedence immediate
match dscp 16-23
end-class-map
class-map match-any Class3
match mpls experimental topmost 3
match precedence flash
match dscp 24-31
end-class-map
class-map match-any Class4
match mpls experimental topmost 4
match precedence flash-override
match dscp 32-39
end-class-map
class-map match-any Class5
match mpls experimental topmost 5
match precedence critical
match dscp 40-47
end-class-map
class-map match-any Class6
match mpls experimental topmost 6
match precedence internet
match dscp 48-55
end-class-map
class-map match-any Class7
match mpls experimental topmost 7
match precedence network
match dscp 56-63
end-class-map
!
policy-map ncs_input
class Class7
set traffic-class 7
set mpls experimental imposition 7
set qos-group 7
!
class Class6
set traffic-class 6
set mpls experimental imposition 6
set qos-group 6
!
class Class5
set traffic-class 5
set mpls experimental imposition 5
set qos-group 5
!
class Class4
set traffic-class 4
set mpls experimental imposition 4
set qos-group 4
!
class Class3
set traffic-class 4
set mpls experimental imposition 3
set qos-group 3
!
class Class2
set traffic-class 2
set mpls experimental imposition 2
set qos-group 2
!
class Class1
set traffic-class 2
set mpls experimental imposition 1
set qos-group 1
!
class Class0
set traffic-class 0
set mpls experimental imposition 0
set qos-group 0
!
end-policy-map
!
出力ポリシー:
出力で、次のコマンドを実行してパケットをマークします。
class-map match-any qos7
match gos-group 7
end-class-map
!
class-map match-any qos6
match gos-group 6
end-class-map
!
class-map match-any qos5
match qos-group 5
end-class-map
!
class-map match-any qos4
match gos-group 4
end-class-map
!
class-map match-any qos3
match gos-group 3
end-class-map
!
class-map match-any qos2
match gos-group 2
end-class-map
!
class-map match-any qos1
match gos-group 1
end-class-map
!
policy-map ncs_output
class qos7
set cos 7
set dei 1
!
class qos6
set cos 6
set dei 1
!
class qos5
set cos 5
set dei 1
!
class qos4
set cos 4
set dei 1
!
class qos3
set cos 3
set dei 1
!
class qos2
set cos 2
set dei 1
!
class qos1
set cos 1
set dei 1
!
end-policy-map
!
ポリシーはバンドルにバインドできます。ポリシーがバンドルにバインドされている場合、各バンドル メンバ(ポート)で同じポリシーがプログラミングされます。たとえば、ポリサーまたはシェーパー レートがある場合、各ポートに同じレートが設定されます。トラフィックはロード バランシング アルゴリズムに基づいてメンバをバンドルするようスケジュールされます。
入力および出力トラフィックの両方がサポートされています。パーセントベースのポリシー、絶対レートベースのポリシー、および時間ベースのポリシーがサポートされています。
詳細については、「リンク バンドルでの QoS の設定」を参照してください。
QoS トラフィックが MPLS ネットワークから送出されると、最後から 2 番目の入力ラベルスイッチルータ(LSR)で MPLS ラベルスタックが削除され、IPv4 または IPv6 パケットが転送されます。このディスポジションプロセスは MPLS EXP ビット(EXP またはパイプモード)によって実行され、パケットは Differentiated Services Code Point(DSCP; DiffServ コードポイント)または precedence 値でマークされます(DSCP または precedence ベースの分類とも呼ばれます)。
通常、QoS トラフィックは、パケットに MPLS ラベルがない場合にのみ、DSCP および precedence ベースの分類をサポートします。ただし、入力ショートパイプ機能を使用すると、IPv4 または IPv6 ヘッダーのタイプオブサービス(ToS)フィールドを使用して、1 つの MPLS ラベルを含むパケットを分類できます。この分類方法は、入力ショートパイプと呼ばれます。この方法で IP パケットを分類するには、次の手順を実行する必要があります。
子クラスマップを作成します。
子クラスマップで ToS 値を指定します。
子クラスマップを親クラスマップに付加します。
親クラスマップを含むポリシーマップを作成します。
トラフィッククラスや QoS グループなどの入力アクションを設定します。
入力ショートパイプ機能を使用すると、トラフィックパケットの可視性が向上します。さらに、この機能により、IPv4 または IPv6 ネットワークに着信する MPLS パケットの分類の制限もなくなります。
入力ショートパイプ機能を設定する前に、次のポイントを確認しておいてください。
この機能は、トラフィックパケットに 1 つの MPLS ヘッダーがある場合にのみ動作します。複数の MPLS ヘッダーがある場合、入力ショートパイプ機能は動作しません。たとえば、ディスポジション時に 2 つのラベルがある明示的ヌルの場合、この機能は動作しません。
入力分類は、MPLS EXP ビット(EXP またはパイプモード)分類または DSCP および precedence(ショートパイプ)分類のいずれかを使用して実行できます。分類方法が混在しないようにしてください。混在していると、不明な動作が発生し、分類がまったく機能しない可能性があります。
この機能は、L3VPN でのみサポートされており、L2VPN ではサポートされていません。
この機能は、通常の IPv4 および IPv6 トラフィックでは動作しますが、MPLS を介した IPv6 VPN プロバイダーエッジ(6VPE)では動作しません。
親クラスマップに追加できる子クラスマップは 1 つだけです。
この機能は、同じ親クラスマップのショートパイプおよびレガシー DSCP 分類の呼び出しをサポートします。
子クラスマップには、match precedence コマンドと match dscp コマンドのみを含めることができます。
この機能はピアリングモードではサポートされません。
ここでは、入力ショートパイプ機能の設定例と、同じ親クラスにあるラベル付きパケットとラベルなしパケットの分類を設定する別の例について詳しく説明します。
IPv4 または IPv6 ヘッダーのタイプオブサービス(ToS)フィールドを使用して、1 つの MPLS ラベルを含むパケットを分類する設定例(入力ショートパイプ方式):
class-map match-any in_pipe
match mpls disposition class-map child_pipe
end-class-map
!
class-map match-any child_pipe
match precedence 1
match dscp ipv4 af11
end-class-map
!
class-map match-any ingress-business-high
match dscp af21, af22
end
class-map match-any ingress-business-low
match dscp af11, af12
end
policy-map ingress-classifier
class in_pipe
set traffic-class 5
class ingress-business-high
set traffic-class 4
class ingress-business-low
set traffic-class 2
class class-default
set traffic-class 0
!
次の設定例のように、同じ親クラスにあるラベル付きパケットとラベルなしパケットの両方の分類を設定できます。この例では、MPLS ラベル付きパケットの場合は、子クラスで設定された DSCP が分類されますが、ラベルなしパケットの場合は、match dscp <value> ステートメントで設定された DSCP および ToS が分類されます。
class-map match-any in_pipe
match mpls disposition class-map child_pipe (labeled case)
match dscp af11 (non-labeled case)
end-class-map
!
class-map match-any child_pipe
match precedence 1
match dscp ipv4 af11
end-class-map
!
class-map match-any ingress-business-high
match dscp af21, af22
end
class-map match-any ingress-business-low
match dscp af11, af12
end
policy-map ingress-classifier
class in_pipe
set traffic-class 5
class ingress-business-high
set traffic-class 4
class ingress-business-low
set traffic-class 2
class class-default
set traffic-class 0
!
match mpls disposition class-map
選択的出力ポリシーベースのキューマッピングを使用すると、出力時にさまざまな順列でトラフィッククラス(TC)マップを組み合わせることができます。
(注) |
モジュラ型シャーシはこの機能をサポートしていません。 |
出力 TC(トラフィッククラス)マッピングを導入する主な目的は、1 つのポリシーを使用して入力のトラフィックを分類し、トラフィッククラスを割り当てることによって、分類されたトラフィックをキューに配置することです。出力では、TC のさまざまなグループ化をサポートできます。
各顧客が申し込んださまざまなサービスレベル契約(SLA)に基づいて、一部の TC をリアルタイム(RT)トラフィックのプライオリティキューにグループ化し、その他の TC を保証帯域幅(BW)トラフィックにグループ化し、残りをベストエフォート(BE)型トラフィック配信にグループ化することができます。
3 人の顧客が次の要件に基づいてこれらのサービスを購入した場合の例を考えてみましょう。
顧客 A:RT トラフィック、予約 BW トラフィック、および BE 型トラフィック配信が必要です。
顧客 B:予約 BW トラフィックおよび BE 型トラフィック配信が必要です。
顧客 C:BE 型トラフィック配信のみが必要です。
選択的出力ポリシーベースのキューマッピングを使用して、次のように 3 つのプロファイルを作成できます。
顧客 A:プライオリティキュー RT トラフィック(TC1)、保証 BW トラフィック(TC3)、ベストエフォート型トラフィック(TC0、TC5)
顧客 B:保証 BW トラフィック(TC1)、ベストエフォート型トラフィック(TC0、TC3、TC5)
顧客 C:ベストエフォート型トラフィック(TC0、TC1、TC3、TC5)
出力 TC マッピングを使用して、プロバイダーとの SLA に基づいて顧客ごとに使用できる 3 種類のプロファイルを作成できます。
選択的出力ポリシーベースのキューマッピング機能を設定する前に、次のポイントを確認しておいてください。
1 つの PM(ポリシーマップ)には、1 つの TC(トラフィッククラス)マッピングクラスのみを設定できます。
マッピングされたクラスで使用した TC を、同じ PM にあるマッピングされていないクラスで使用することはできません。
プラットフォームごとに最大 3 つの一意の TC マッピング PM またはプロファイルを設定できます。
すべての TC マッピングクラスで、範囲値に traffic-class 0 を含める必要があります。
TC マッピングの範囲は 0 ~ 5 です。
TC マッピングクラスが PM に存在する場合、クラスデフォルトはダミークラスになります。つまり、クラスデフォルトの統計情報と QoS 値は適用されません。
TC マッピングクラスにはすべてのクラスデフォルトの制限が適用されます。たとえば、TC マッピングクラスで priority コマンドを設定することはできません。
(注) |
TC マッピング PM またはプロファイルは、TC マッピングクラスを含む PM です。 TC マッピングクラスの例: match traffic-class 0 1 2 3 TC のマッピングされていないクラスの例: match traffic-class 1 |
ここでは、選択的出力ポリシーベースのキューマッピング機能の設定例と、この機能の動作を示すための使用例について詳しく説明します。
設定例
policy-map tc_pmap
class tc1
shape average percent 10
!
class tc035
shape average percent 1
!
class class-default
!
end-policy-map
!
class-map match-any tc035
match traffic-class 0 3 5
end-class-map
!
show qos interface コマンドと show policy-map interface コマンドを実行します。
ポリシーマップ内に TC マッピングクラスが存在する場合、クラスデフォルトの値は計算されません。
show qos interface bundle-Ether 44 の出力例
NOTE:- Configured values are displayed within parentheses
NPU Id: 0
Total number of classes: 3
Interface Bandwidth: 100000000 kbps
Policy Name: tc_pmap
Accounting Type: Layer1 (Include Layer 1 encapsulation and above)
------------------------------------------------------------------------------
Level1 Class = tc1
Level1 Class = tc035
Level1 Class = class-default
Interface HundredGigE0/0/0/30 Ifh 0xf000208 (Member) -- output policy
NPU Id: 0
Total number of classes: 3
Interface Bandwidth: 100000000 kbps
Policy Name: tc_pmap
VOQ Base: 1264
Accounting Type: Layer1 (Include Layer 1 encapsulation and above)
------------------------------------------------------------------------------
Level1 Class = tc1
Egressq Queue ID = 1265 (LP queue)
Queue Max. BW. = 10063882 kbps (10 %)
Queue Min. BW. = 0 kbps (default)
Inverse Weight / Weight = 1 / (BWR not configured)
Guaranteed service rate = 10000000 kbps
TailDrop Threshold = 12517376 bytes / 10 ms (default)
WRED not configured for this class
Level1 Class = tc035
Egressq Queue ID = 1264 (LP queue)
Queue Max. BW. = 1011732 kbps (1 %)
Queue Min. BW. = 0 kbps (default)
Inverse Weight / Weight = 1 / (BWR not configured)
Guaranteed service rate = 1000000 kbps
TailDrop Threshold = 1253376 bytes / 10 ms (default)
WRED not configured for this class
Level1 Class = class-default
Queue Max. BW. = no max (default)
Queue Min. BW. = 0 kbps (default)
Inverse Weight / Weight = 0 / (BWR not configured)
show policy-map interface bundle-Ether 44 の出力例
Bundle-Ether44 output: tc_pmap
Class tc1
Classification statistics (packets/bytes) (rate - kbps)
Matched : 429444/53823648 0
Transmitted : 429444/53823648 0
Total Dropped : 0/0 0
Queueing statistics
Queue ID : None (Bundle)
Taildropped(packets/bytes) : 0/0
Class tc035
Classification statistics (packets/bytes) (rate - kbps)
Matched : 1288331/161470820 0
Transmitted : 1288331/161470820 0
Total Dropped : 0/0 0
Queueing statistics
Queue ID : None (Bundle)
Taildropped(packets/bytes) : 0/0
Class class-default
Classification statistics (packets/bytes) (rate - kbps)
Matched : 0/0 0
Transmitted : 0/0 0
Total Dropped : 0/0 0
Queueing statistics
Queue ID : None (Bundle)
Taildropped(packets/bytes) : 0/0
Policy Bag Stats time: 1557216940000 [Local Time: 05/07/19 08:15:40.000]
RP/0/RP0/CPU0:BB1#
同じ一致基準を満たす入力トラフィックにより、出力トラフィックを最大 3 つの一意の TC マッピングプロファイルにグループ化できます。この機能を使用すると、顧客が申し込んだ SLA に基づいて、顧客に差別化サービスを提供できます。
次の例では、入力ポリシーマップによって、0 ~ 5 のトラフィッククラスの入力一致基準が設定されています。SLA に基づいて、出力 PM で TC 値をグループ化して差別化サービスを提供できます。
TC 値をグループ化した後、そのクラスに特定の出力アクションを適用できます。
入力一致:
class EXP1
set traffic-class 1
!
class EXP2
set traffic-class 2
!
class EXP3
set traffic-class 3
!
class EXP4
set traffic-class 4
!
class EXP5
set traffic-class 5
!
class class-default
!
end-policy-map
!
出力一致:
ポリシーマップ PM1 の TC マッピングクラスの例
class-map match-any TC2:1
match traffic-class 0 1
end-class-map
ポリシーマップ PM2 の TC マッピングクラスの例
class-map match-any TC3:1
match traffic-class 0 1 2
end-class-map
ポリシーマップ PM3 の TC マッピングクラスの例
class-map match-any TC6:1
match traffic-class 0 1 2 3 4 5
end-class-map
QoS 出力マーキング/キューイングを実現するため、ルータはマーキングとキューイングに非依存ポリシーを使用して、出力上でデュアル ポリシー モデルを利用します。
出力マーキングは、qos-group/discard-class を設定することで、入力インターフェイス上にポリシーマップを適用して実現できます。次に、入力ポリシーマップで設定されている qos-group を出力ポリシーマップと DP(drop-precedence または discard class)値とともに使用することで、発信 L2 パケットの cos/dei を再マークします。同様に、出力キューイングは、トラフィッククラスを設定し、入力インターフェイスにポリシーマップを適用することで実現できます。次に、キューイング アクションを実行するために、出力ポリシー マップがトラフィック クラスを使用します。
この機能により、ユーザは DP(drop precedence)フィールドに基づいてマーキングを決定することができます。
MPLS からレイヤ 2 へのトラフィック ストリームの場合、レイヤ 2 パケットは MPLS データ パケット内にあります。したがって、データ伝送後はレイヤ 2 ヘッダーのマーキングは出力のみになる可能性があります。
出力書き換え動作の場合、VLAN タグが変更または追加されていると、cos または dei フィールドが出力マーキングでマークされることがあります。
QoS 出力マーキングとキューイングは、次の 3 つのステップにまとめることができます。
入力ポリシー マップの設定:着信パケットを分類し、qos-group/discard-class またはトラフィック クラスを設定します。
出力マーキング ポリシーの設定:
qos-group/discard-class で分類するためのクラスマップを作成します。
policy-map を作成し、L2 ヘッダーの cos/dei フィールドをマークします。
出力キューイング ポリシーの設定:
クラスマップを作成し、トラフィッククラスで分類します。
ポリシーマップを作成し、キューイング アクション(帯域幅、シェーピング、優先順位など)を実行します。
ポリシーをインターフェイスに付加します。
(注) |
QinQ トラフィックのマーキング時は、外側の dot1q ヘッダーのみが影響を受け、内側のヘッダーはそのまま残ります。ただし、新しい QinQ タグを追加した書き換え操作が少ない場合は、内側のヘッダーがマークされます。 |
/*Create class-map/*
Router#config
Router(config)#class-map match-any cos2
Router(config-cmap)#match cos 2
Router(config-cmap)#commit
Router(config)#class-map match-any cos3
Router(config-cmap)#match cos 3
Router(config-cmap)#commit
Router(config)#class-map match-any cos4
Router(config-cmap)#match cos 4
Router(config-cmap)#commit
/*Create classification policies*/
Router#config
Router(config)#policy-map ingress-classification
Route(config-pmap)#class cos 2
Router(config-pmap-c)#set qos-group 1
Router(config-pmap-c)#set traffic-class 3
Router(config-pmap-c)#class cos3
Router(config-pmap-c)#set qos-group 2
Router(config-pmap-c)#set traffic-class 5
Router(config-pmap-c)#class cos4
Router(config-pmap-c)#set qos-group 3
Router(config-pmap-c)#set traffic-class 4
Router(config-pmap-c)#class class-default
Router(config-pmap-c)#set qos-group 7
Router(config-pmap-c)#set traffic-class 6
Router(config-pmap-c)#commit
*/Egress Marking Policy/*
Router#config
Router(config)#class-map match-any qos1
Router(config-cmap)#match qos-group 1
Router(config-cmap)#commit
Router(config)#class-map match-any qos2
Router(config-cmap)#match qos-group 2
Router(config-cmap)#commit
Router(config)#class-map match-any qos3
Router(config-cmap)#match qos-group 3
Router(config-cmap)#commit
Router#config
Router(config)#policy-map egress-marking
Route(config-pmap)#class qos1
Router(config-pmap-c)#set cos 1
Router(config-pmap-c)#class qos2
Router(config-pmap-c)#set cos 2
Router(config-pmap-c)#set dei 1
Router(config-pmap-c)#class qos3
Router(config-pmap-c)#set cos 3
Router(config-pmap-c)#class class-default
Router(config-pmap-c)#set cos 7
Router(config-pmap-c)#commit
*/Egress Queuing Policy/*
Router#config
Router(config)#class-map match-any tc3
Router(config-cmap)#match traffic-class 3
Router(config-cmap)#commit
Router(config)#class-map match-any tc4
Router(config-cmap)#match traffic-class 3
Router(config-cmap)#commit
Router(config)#class-map match-any tc5
Router(config-cmap)#match traffic-class 3
Router(config-cmap)#commit
Router#config
Router(config)#policy-map egress-queuing
Route(config-pmap)#class tc3
Router(config-pmap-c)#shape average 2 mbps
Router(config-pmap-c)#class tc4
Router(config-pmap-c)#shape average 5 mbps
Router(config-pmap-c)#class tc5
Router(config-pmap-c)#shape average 7 mbps
Router(config-pmap-c)#class class-default
Router(config-pmap-c)#commit
Router#config
Router(config)#interface tenGigE 0/0/1/0/0
Router(config-if)#service-policy input ingress-classification
Router(config-if)#service-policy output egress-marking
Router(config-if)#service-policy output egress-queuing
Router(config-if)#commit
マーキング ポリシーの統計情報はサポートされていません。つまり、show policy-map interface コマンドは出力を表示しません。
キューイング ポリシーが適用されている場合にのみ、統計情報の出力が表示されます。
出力マーキング ポリシーは、qos-group/discard-class でのみ分類できます。
出力キューイング ポリシーはトラフィッククラスでのみ分類できます。
出力マーキング ポリシーがマークできるのは、L2 ヘッダーの cos/dei フィールドのみです。
In-Place ポリシーの変更機能では、QoS ポリシーが 1 つ以上のインターフェイスに付加されている場合でも QoS ポリシーを変更できます。変更されたポリシーは、新しいポリシーをインターフェイスにバインドするときと同じチェックを受けます。ポリシー変更が成功した場合、変更されたポリシーは、ポリシーが付加されているすべてのインターフェイスに対して有効になります。ただし、ポリシーの変更がいずれかのインターフェイスで失敗した場合には、すべてのインターフェイスに対して変更前のポリシーが有効になるように、自動ロール バックが開始されます。
また、ポリシー マップに使用するクラス マップを変更することもできます。クラス マップに対して行った変更は、ポリシーが付加されているすべてのインターフェイスに反映されます。
(注) |
|
(注) |
|
In-Place ポリシーの変更時に回復不可能なエラーが発生した場合は、ポリシーは対象のインターフェイスに対して矛盾した状態になります。コンフィギュレーション セッションのブロックが解除されるまで、新たな設定を行うことはできません。インターフェイスからポリシーを削除し、変更されたポリシーを確認し、それに応じて再適用することを推奨します。
モジュラ QoS サービスパケットの分類の参照
IP precedence を使用すると、パケットの CoS を指定できます。着信トラフィックで precedence レベルを設定し、そのレベルを QoS キューイング機能と組み合わせて使用することで、差別化サービスを作成できます。そうすることで、後続の各ネットワーク要素は、判断されたポリシーに基づいてサービスを提供できます。IP precedence は通常、ネットワークまたは管理ドメインの端にできるだけ近いところに配置されます。これによって、他のコアまたはバックボーンにおいて、優先順位に基づいて QoS を設定できます。
この目的には、IPv4 ヘッダーのタイプ オブ サービス(ToS)フィールドにある 3 つの precedence ビットを使用できます。ToS ビットを使用して、最大 8 つのサービス クラスを定義できます。その後、ネットワーク全体で設定された他の機能によって、これらのビットを使用して、ToS の付与に関するパケットの処理方法を決定します。これらの他の QoS 機能では、輻輳管理戦略や帯域幅の割り当てなど適切なトラフィック処理ポリシーを割り当てることができます。たとえば、LLQ などのキューイング機能は、パケットの IP precedence 設定を使用して、トラフィックに優先順位を付けることができます。
IP ヘッダーの ToS フィールドにある 3 つの IP precedence ビットを使用して、各パケットの CoS 割り当てを指定します。最大 8 個のクラスにトラフィックを分類した後、ポリシー マップを作成して、各クラスの輻輳処理、帯域幅割り当てといったネットワーク ポリシーを定義できます。
各 precedence は名前に対応します。IP precedence ビットの設定 6 と 7 は、ルーティング アップデートなどのネットワーク制御情報用に予約されています。これらの名前は RFC 791 で定義されています。
デフォルトでは、ルータは IP precedence 値を変更しません。これによって、ヘッダーの precedence 値セットが維持され、すべての内部ネットワーク デバイスが IP precedence の設定に基づいてサービスを提供できるようになります。このポリシーは、ネットワークのエッジでネットワーク トラフィックをさまざまなタイプのサービスにソートすること、またこれらのサービス タイプをネットワーク コアで設定することを指定する標準的な方法に従っています。その後、ネットワークのコアにあるルータは、precedence ビットを使用して、送信順やパケット ドロップの可能性などを決定できるようになります。
ネットワークに入ってくるトラフィックには外部デバイスで設定された precedence が設定されている可能性があるので、ネットワークに入るすべてのトラフィックの precedence をリセットすることを推奨します。IP precedence の設定を制御することによって、すでに IP precedence を設定したユーザが、自身のすべてのパケットに高い優先度設定を設定して、自身のトラフィックに対してより高いサービスを得ることを禁止します。
クラスベースの無条件パケット マーキング、および LLQ 機能では、IP precedence ビットを使用できます。
ネットワークでパケットをマークする必要があり、すべてのデバイスで IP DSCP マーキングがサポートされている場合は、IP DSCP マーキングの方が無条件パケット マーキングのオプションが多いため、IP DSCP マーキングを使用してください。IP DSCP によるマーキングが好ましくない場合、またはネットワークにあるデバイスで IP DSCP 値がサポートされているかどうか不明な場合は、パケットのマーキングに IP precedence 値を使用してください。IP precedence 値は、おそらくネットワーク内のすべてのデバイスでサポートされています。
最大 8 種類の IP precedence マーキングと、64 種類の IP DSCP マーキングを設定できます。
ルータは、各出力インターフェイスで最大 8 つの CoSQ をサポートしています。範囲は 0 ~ 7 で、0 はデフォルトの CoSQ です。qos-group 値は、CoSQ と最終的には仮想出力キュー(VOQ)を選択するために使用されます。
入力ポリシー マップで、CoSQ 0 以外の特定の CoSQ にトラフィック クラスを指定するには、クラス マップに set qos-group x コマンド(x は CoSQ 値)を明示的に設定する必要があります。
出力ポリシー マップで、対応する match qos-group x が設定されたクラスマップを使用すると、トラフィック クラスに QoS アクションをさらに適用できます。
次に例を示します。
policy-map test-ingress
class prec1
set traffic-class 1
then, class-map tc1
match traffic-class 1
then,
policy-map test-egress
class tc1
shape average percent 70