MPLS QoS の前提条件
-
スイッチはマルチプロトコル ラベル スイッチング(MPLS)のプロバイダーエッジ(PE)またはプロバイダー(P)ルータとして設定する必要があります。この設定には、有効なラベルプロトコルと基礎となる IP ルーティングプロトコルの設定を含めることができます。
この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
スイッチはマルチプロトコル ラベル スイッチング(MPLS)のプロバイダーエッジ(PE)またはプロバイダー(P)ルータとして設定する必要があります。この設定には、有効なラベルプロトコルと基礎となる IP ルーティングプロトコルの設定を含めることができます。
MPLS の分類とマーキングは、運用可能な MPLS ネットワーク内でのみ実行できます。
パケットが入力で IP タイプ オブ サービス(ToS)またはサービス クラス(CoS)によって分類された場合は、出力で MPLS EXP によって再分類できません(インポジション ケース)。ただし、パケットが入力で MPLS によって分類された場合は、出力で IP ToS、CoS、または Quality of Service(QoS)グループによって再分類できます(ディスポジションケース)。
プロトコルの境界を越えてトラフィックに QoS を適用するには、QoS グループを使用します。入力トラフィックを分類し、QoS グループに割り当てることができます。その後に、出力で QoS グループを使用して分類し、QoS を適用することができます。
パケットが MPLS でカプセル化されている場合は、IP などの他のプロトコルの MPLS ペイロードをチェックして分類またはマーキングすることはできません。MPLS EXP マーキングのみが MPLS によってカプセル化されたパケットに影響します。
ショートパイプモードは、MPLS ネットワーク経由のパケット転送に対してはサポートされていません。ユニフォームモードとパイプモードのいずれかのモードを使用してパケットを転送できます。
ここではでは、MPLS QoS について詳しく説明します。
ネットワーク管理者は MPLS QoS 機能を使用することで、差別化したサービスを MPLS ネットワーク上で提供できます。送信対象の IP パケットごとに適用する CoS を指定することによって、さまざまなネットワーク要件を満たすことができます。各パケットのヘッダーに IP precedence ビットを設定することによって、IP パケットに対して異なるサービス クラスを確立できます。MPLS ネットワークでの分類、再マーキング、およびキューイングは、MPLS EXP ビットを介して実行されます。MPLS ネットワークでは、パケットが MPLS EXP フィールドのマーキングによって区別され、重み付けランダム早期検出(WRED)の設定に応じて適切に処理されます。
MPLS パケットの MPLS EXP フィールドでは、次のことができます。
分類プロセスでマーキングするトラフィックが選択されます。分類は、トラフィックを複数の優先順位レベル、つまり、サービス クラスに分割することによりこのプロセスを実施します。トラフィック分類は、クラス ベースの QoS プロビジョニングのプライマリ コンポーネントです。詳細については、『Classifying Network Traffic』を参照してください。
ポリシングでは、設定されたレートを上回るトラフィックが廃棄されるか、別のドロップ レベルにマーキングされます。トラフィックのマーキングは、パケット フローを特定してそれらを区別する方法です。パケット マーキングを利用すれば、ネットワークを複数の優先プライオリティ レベルまたはサービス クラスに分割することができます。詳細については、『Marking Network Traffic』を参照してください。
キューイングは、トラフィックの輻輳の防止に役立ちます。これには、プライオリティ レベル キューイング、重み付けテールドロップ(WTD)、スケジューリング、シェーピング、および重み付けランダム早期検出(WRED)機能が含まれます。
MPLS Experimental ビット(EXP)フィールドは、ノードからパケットに付加される QoS 処理(Per-Hop Behavior)を定義するために使用可能な MPLS ヘッダー内の 3 ビット フィールドです。IP ネットワークでは、DiffServ コード ポイント(DSCP)(6 ビット フィールド)でクラスとドロップ優先順位が定義されます。EXP ビットは、IP DSCP でエンコードされた情報の一部を伝達するためにも、ドロップ優先順位をエンコードするためにも使用できます。
デフォルトで、Cisco IOS ソフトウェアは、IP パケットの DSCP または IP precedence の上位 3 ビットを MPLS ヘッダー内の EXP フィールドにコピーします。このアクションは、MPLS ヘッダーが初めて IP パケットに付加されたときに実行されます。ただし、DSCP または IP precedence と EXP ビットとの間のマッピングを定義することによって、EXP フィールドを設定することもできます。このマッピングは、 set mpls experimental コマンドまたは police コマンドを使用して設定されます。詳細については、「MPLS EXP の分類とマーキングの方法」を参照してください。
![]() (注) |
set ip dscp により設定されたポリシーマップは、プロバイダーエッジデバイスではサポートされません。MPLS ラベルインポジションノードのポリシーアクションは、set mpls experimental imposition 値に基づく必要があります。ただし、入力インターフェイスと出力インターフェイスの両方がレイヤ 3 ポートである場合、アクション set ip dscp が指定されたポリシーマップはサポートされます。 |
MPLS EXP マーキング操作を実行するには、テーブルマップを使用します。入力ポリシー内の別のトラフィック クラスに QoS グループを割り当て、テーブルマップを使用して QoS グループを出力ポリシー内の DSCP および EXP マーキングに変換することをお勧めします。
ネットワーク経由で伝送されるパケットの IP precedence フィールド値をサービス プロバイダーが変更したくない場合は、MPLS EXP フィールド値を使用して IP パケットを分類してマーキングできます。
MPLS EXP フィールド用の複数の値を選択することにより、ネットワーク輻輳が発生した場合に重大なパケットが優先されるようにそのようなパケットをマーキングすることができます。
WRED はネットワーク トラフィックを監視し、共通ネットワークおよびインターネットワークのボトルネックで輻輳を回避します。WRED は、インターフェイスが輻輳状態になると、優先順位の低いトラフィックを選択的に破棄できます。この機能により、サービスクラスごとに異なるパフォーマンス特性を提供することもできます。
MPLS ネットワーク上でパケットを転送する方法は 2 つあります。
均一モード:パケット転送の均一モードは、QoS の 1 つのレイヤで動作します。入力側のプロバイダーエッジが、着信 IP パケットの DSCP 情報を、インポーズされたラベルの MPLS EXP ビットにコピーし、IP プレシデンスビットが MPLS EXP フィールドにマッピングされます。EXP ビットは、コアを通過する際に、ネットワークの中間デバイスで変更される場合と変更されない場合があります。出力側のプロバイダーエッジが、EXP ビットを新しく公開された IP パケットの DSCP ビットにコピーします。
パイプモード:パケット転送のパイプモードは、QoS の 2 つのレイヤで動作します。データの元の QoS。コアを通過しても変更されません。コアごとの QoS。元の IP パケットの QoS とは別の QoS です。DSCP 情報は、パケットが MPLS ネットワークを通過するときに保存および格納されます。MPLS EXP ラベルは入力時に PE によって適用されますが、IP プレシデンスビットは保存されません。出力では、元の IP プレシデンス値が保持されます。
QoS EXP Matching 機能を使用すると、マルチプロトコル ラベル スイッチング(MPLS)Experimental ビット(EXP ビット)フィールドを変更することで、ネットワークトラフィックを分類、マーキング、およびキューイングできます。ネットワーク経由で伝送されるパケットの IP precedence フィールド値をサービス プロバイダーが変更したくない場合は、MPLS EXP フィールド値を使用して IP パケットを分類してマーキングできます。
MPLS EXP フィールド用の複数の値を選択することにより、ネットワーク輻輳が発生した場合に重大なパケットが優先されるようにそのようなパケットをマーキングすることができます。
この項では、MPLS QoS の設定方法について説明します。
match mpls experimental topmost コマンドを使用すれば、MPLS ドメイン内のパケット EXP 値に基づくトラフィック クラスを定義できます。これらのクラスは、police コマンドを使用して EXP トラフィックをマーキングするサービス ポリシーを定義するために使用できます。
コマンドまたはアクション | 目的 | |||
---|---|---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。 パスワードを入力します(要求された場合)。 |
||
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
||
ステップ 3 |
class-map [match-all | match-any ] class-map-name 例:
|
トラフィックを指定したクラスにマッチングするために使用するクラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。 クラス マップ名を入力します。 |
||
ステップ 4 |
match mpls experimental topmost mpls-exp-value 例:
|
一致基準を指定します。
|
||
ステップ 5 |
end 例:
|
(任意)特権 EXEC モードに戻ります。 |
インポーズされたラベル エントリの MPLS EXP フィールドの値を設定するには、次の作業を実行します。
インポジションでの MPLS パケットのマーキングが IP ToS または CoS フィールドに基づく入力分類で使用されます。
![]() (注) |
|
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。 パスワードを入力します(要求された場合)。 |
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
policy-map policy-map-name 例:
|
作成されるポリシー マップの名前を指定し、ポリシー マップ コンフィギュレーション モードを開始します。 ポリシー マップ名を入力します。 |
ステップ 4 |
class class-map-name 例:
|
トラフィックを指定したクラスにマッチングするために使用するクラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。 クラス マップ名を入力します。 |
ステップ 5 |
set mpls experimental imposition mpls-exp-value 例:
|
上部のラベルの MPLS EXP フィールドの値を設定します。 |
ステップ 6 |
end 例:
|
(任意)特権 EXEC モードに戻ります。 |
![]() (注) |
set mpls experimental topmost コマンドは、MPLS トラフィックの最も外側のラベルに EXP をマークします。入力ポリシーでのこのマーキングにより、出力ポリシーに MPLS EXP 値に基づく分類を含める必要があります。 |
ラベル スイッチド パケットでの MPLS EXP フィールドを設定するには、次の作業を実行します。
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。 パスワードを入力します(要求された場合)。 |
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
policy-map policy-map-name 例:
|
作成されるポリシー マップの名前を指定し、ポリシー マップ コンフィギュレーション モードを開始します。 ポリシー マップ名を入力します。 |
ステップ 4 |
class class-map-name 例:
|
トラフィックを指定したクラスにマッチングするために使用するクラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。 クラス マップ名を入力します。 |
ステップ 5 |
set mpls experimental topmost mpls-exp-value 例:
|
出力インターフェイスの最上位ラベルの MPLS EXP フィールド値を設定します。 |
ステップ 6 |
end 例:
|
(任意)特権 EXEC モードに戻ります。 |
すべてのインポーズされたラベルに MPLS EXP フィールドの値を条件付きで設定するには、次の作業を実行します。
![]() (注) |
set-mpls-exp-topmost-transmit アクションは、MPLS カプセル化パケットにのみ影響します。 set-mpls-exp-imposition-transmit アクションは、パケットに追加されたすべての新しいラベルに影響します。 |
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
policy-map policy-map-name 例:
|
作成されるポリシー マップの名前を指定し、ポリシー マップ コンフィギュレーション モードを開始します。
|
ステップ 4 |
class class-map-name 例:
|
トラフィックと指定されたクラスを照合するために使用するクラス マップを作成し、ポリシーマップ クラス コンフィギュレーション モードを開始します。
|
ステップ 5 |
police cir bps bc pir bps be 例:
|
分類するトラフィック用のポリサーを定義し、ポリシーマップ クラス ポリシング コンフィギュレーション モードを開始します。 |
ステップ 6 |
conform-action transmit 例:
|
ポリサーで指定された値に適合するパケットに対して実行するアクションを定義します。
|
ステップ 7 |
exceed-action set-mpls-exp-topmost-transmit exp table table-map-name 例:
|
ポリサーで指定された値を上回るパケットに対して実行するアクションを定義します。 |
ステップ 8 |
violate-action drop 例:
|
レートが最大情報レート(pir)を超えており、bc と be の範囲外のパケットに対して実行するアクションを定義します。
|
ステップ 9 |
end 例:
|
(任意)特権 EXEC モードに戻ります。 |
次の手順を実行して、MPLS EXP の WRED を有効にします。
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
policy-map policy-map-name 例:
|
作成されるポリシー マップの名前を指定し、ポリシー マップ コンフィギュレーション モードを開始します。
|
ステップ 4 |
class class-map-name 例:
|
トラフィックを指定したクラスにマッチングするために使用するクラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。
|
ステップ 5 |
bandwidth{ kbps| remainingpercentage| percentperce ntage} 例:
|
ポリシーマップに属しているクラスに割り当てる帯域幅またはトラフィックシェーピングを指定します。 |
ステップ 6 |
random-detect{ aggregate| dscp-based| cos-based| dscp| dscp-based| exp| mpls-exp-based| prec-based| precedence| precedence-based} 例:
|
パケットのドロップ確率を計算する際には MPLS EXP 値を使用するように WRED を設定します。 |
ステップ 7 |
random-detectexpexp-valuepercentmin-threshold max-threshold 例:
|
MPLS EXP 値、最小しきい値と最大しきい値をパーセンテージで指定します。 |
ステップ 8 |
end 例:
|
(任意)特権 EXEC モードに戻ります。 |
ここでは、MPLS QoS の設定例を紹介します。
次の例では、MPLS 実験値 3 を含むパケットと一致する exp3 という名前のクラスマップを定義する方法を示します。
Device(config)# class-map exp3
Device(config-cmap)# match mpls experimental topmost 3
Device(config-cmap)# exit
次の例では、上の例でポリシーマップを定義するために作成したクラスマップを使用する方法を示します。また、この例では、入力トラフィックの物理インターフェイスにポリシーマップを適用する方法も示します。
Device(config)# policy-map change-exp-3-to-2
Device(config-pmap)# class exp3
Device(config-pmap-c)# set mpls experimental topmost 2
Device(config-pmap)# exit
Device(config)# interface GigabitEthernet 0/0/0
Device(config-if)# service-policy input change-exp-3-to-2
Device(config-if)# exit
次の例では、上の例でポリシー マップを定義するために作成したクラス マップを使用します。また、この例では、出力トラフィックの物理インターフェイスにポリシー マップを適用します。
Device(config)# policy-map WAN-out
Device(config-pmap)# class exp3
Device(config-pmap-c)# shape average 10000000
Device(config-pmap-c)# exit
Device(config-pmap)# exit
Device(config)# interface GigabitEthernet 0/0/0
Device(config-if)# service-policy output WAN-out
Device(config-if)# exit
次の例では、転送されたパケットの IP precedence 値に基づいて MPLS EXP インポジション値を 2 に設定するポリシー マップを定義します。
Device# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Device(config)# class-map prec012
Device(config-cmap)# match ip prec 0 1 2
Device(config-cmap)# exit
Device(config)# policy-map mark-up-exp-2
Device(config-pmap)# class prec012
Device(config-pmap-c)# set mpls experimental imposition 2
Device(config-pmap-c)# exit
Device(config-pmap)# exit
次に、ポリシー マップをギガビット イーサネット インターフェイス 0/0/0 に適用する例を示します。
Device# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Device(config)# interface GigabitEthernet 0/0/0
Device(config-if)# service-policy input mark-up-exp-2
Device(config-if)# exit
次の例では、転送されたパケットの MPLS EXP 値に基づいて MPLS EXP 最上位値を 2 に設定するポリシーマップを定義する方法を示します。
Device# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Device(config)# class-map exp012
Device(config-cmap)# match mpls experimental topmost 0 1 2
Device(config-cmap)# exit
Device(config-cmap)# policy-map mark-up-exp-2
Device(config-pmap)# class exp012
Device(config-pmap-c)# set mpls experimental topmost 2
Device(config-pmap-c)# exit
Device(config-pmap)# exit
次に、ポリシー マップのメイン インターフェイスへの適用例を示します。
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Device(config)# interface GigabitEthernet 0/0/0
Device(config-if)# service-policy input mark-up-exp-2
Device(config-if)# exit
次の例では、ip2tag ポリシーマップに含まれる iptcp クラス用のポリサーを作成し、そのポリシーマップをギガビット イーサネット インターフェイスに適用する方法を示します。
Device(config)# policy-map ip2tag
Device(config-pmap)# class iptcp
Device(config-pmap-c)# police cir 1000000 pir 2000000
Device(config-pmap-c-police)# conform-action transmit
Device(config-pmap-c-police)# exceed-action set-mpls-exp-imposition-transmit 2
Device(config-pmap-c-police)# violate-action drop
Device(config-pmap-c-police)# exit
Device(config-pmap-c)# exit
Device(config-pmap)# exit
Device(config)# interface GigabitEthernet 0/0/1
Device(config-if)# service-policy input ip2tag
次に、MPLS EXP の WRED をイネーブルにする例を示します。
Device# configure terminal
Device(config)# policy-map wred_exp
Device(config-pmap-c)# bandwidth percent 30
Device(config-pmap-c)# random-detect mpls-exp-based
Device(config-pmap-c)# random-detect exp 1 10 20
Device(config-pmap-c)# random-detect exp 2 30 40
Device(config-pmap-c)# random-detect exp 2 40 80
show policy-map policy-map-name コマンドを使用して、MPLS EXP の WRED 設定を確認します。
次の出力例には、WRED のしきい値ラベルが表示されています。
Device# show policy-map wred_exp
Policy Map wred_exp
Class exp
bandwidth 30 (%)
percent-based wred, exponential weight 9
exp min-threshold max-threshold
--------------------------------------
0 - -
1 10 20
2 30 40
3 40 80
4 - -
5 - -
6 - -
7 - -
関連項目 |
マニュアル タイトル |
---|---|
QoS コマンド |
『Cisco IOS Quality of Service Solutions Command Reference』 |
次の表に、このモジュールで説明する機能のリリースおよび関連情報を示します。
これらの機能は、特に明記されていない限り、導入されたリリース以降のすべてのリリースで使用できます。
リリース |
機能 |
機能情報 |
---|---|---|
Cisco IOS XE Everest 16.5.1a |
QoS MPLS EXP |
QoS EXP Matching 機能を使用すると、マルチプロトコル ラベル スイッチング(MPLS)Experimental ビット(EXP ビット)フィールドを変更することで、ネットワークトラフィックを分類、マーキング、およびキューイングできます。 |
Cisco IOS XE Amsterdam 17.3.1 |
MPLS QoS - WRED |
MPLS Quality of Service(QoS)で重み付けランダム早期検出(WRED)がサポートされるようになりました。この機能は、MPLS 試験ビットを使用してパケットの廃棄確率を計算するように WRED を設定します。 |
Cisco Feature Navigator を使用すると、プラットフォームおよびソフトウェアイメージのサポート情報を検索できます。Cisco Feature Navigator には、http://www.cisco.com/go/cfn [英語] からアクセスします。