Cisco NCS 5000 シリーズ ルータのモジュラ QoS コンフィギュレーション ガイド、IOS XR リリース 6.0.x
モジュラ QoS サービス パケットの分類の設定
モジュラ QoS サービス パケットの分類の設定

目次

モジュラ QoS サービス パケットの分類の設定

パケット分類の概要

パケットの分類には、特定のグループ(またはクラス)内のパケットを分類し、これにトラフィック記述子を割り当てて、ネットワークで QoS 処理用にアクセスできるようにする処理が含まれます。トラフィック記述子には、パケットが受ける転送処理(Quality of Service)に関する情報が含まれます。パケット分類を使用すると、複数のプライオリティ レベルまたは CoS にネットワーク トラフィックを区分できます。発信元が契約された条項に従うことに同意し、ネットワークが QoS の実行を約束します。トラフィック ポリサーとトラフィック シェーパーは、契約を順守するために、パケットのトラフィック記述子を使用します。

トラフィック ポリサーおよびトラフィック シェーパーは、IP precedence などのパケット分類機能を使用して、さまざまなタイプの QoS サービスに対して、ルータを通過するパケット(またはトラフィック フロー)を選択します。パケットを分類した後、他の QoS 機能を使用して、輻輳管理、帯域幅割り当て、および遅延限度などの適切なトラフィック処理ポリシーを、各トラフィック クラスに割り当てることができます。

モジュラ Quality of Service(QoS)コマンドライン インターフェイス(MQC)は、分類する必要のあるトラフィック フローを定義するために使用します。このとき、各トラフィック フローをサービス クラス、またはクラスと呼びます。その後、トラフィック ポリシーを作成し、クラスに適用します。定義されたクラスに該当しないトラフィックはすべて、デフォルト クラスのカテゴリに分類されます。

トラフィック クラスの要素

トラフィック クラスの目的は、ルータのトラフィックを分類することです。class-map コマンドを使用して、トラフィック クラスを定義します。

トラフィック クラスには、3 つの主要な要素が含まれています。
  • 名前

  • パケットを分類するための各種基準を指定するための、一連の match コマンド。

  • これらの match コマンドを評価する方法の手順(トラフィック クラスに複数の match コマンドが存在する場合)

パケットは、match コマンドで指定された基準に合っているかどうかを判断するためにチェックされます。指定された基準に合っていれば、パケットはクラスのメンバーと見なされ、トラフィック ポリシーで設定された QoS 仕様に従って転送されます。一致基準を満たさないパケットは、デフォルトのトラフィック クラスのメンバーとして分類されます。

サポートされている一致タイプ

最小、最大

Max Entries(エントリの最大数)

一致 NOT のサポート

範囲のサポート

インターフェイスでサポートされる方向

IPv4 DSCP

IPv6 DSCP

DSCP

(0、63)

64

Yes

Yes

入力

IPv4 Precedence

IPv6 Precedence

Precedence

(0、7)

8

Yes

Yes

入力

MPLS Experimental Topmost

(0、7)

8

Yes

Yes

入力

Access-group

N/A

N/A

いいえ

N/A

入力

QoS-group

(1、7)

7

いいえ

いいえ

Egress

CoS

(0、7)

8

Yes

Yes

入力

プロトコル

N/A

N/A

Yes

N/A

入力

デフォルト トラフィック クラス

未分類のトラフィック(トラフィック クラスで指定された一致条件を満たさないトラフィック)は、デフォルト トラフィック クラスに属するものとして扱われます。

ユーザがデフォルト クラスを設定しない場合でも、パケットはデフォルト クラスのメンバとして扱われます。ただし、デフォルトでは、デフォルト クラスにイネーブルな機能はありません。そのため、機能が設定されていないデフォルト クラスに属するパケットには QoS 機能は適用されません。この後、これらのパケットは、ファーストイン ファーストアウト(FIFO)キューに配置され、使用可能な下位リンクの帯域幅で決められたレートで転送されます。

出力分類の場合、qos-group(1-7)での一致がサポートされます。一致 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 は出力方向のみでサポートされ、出力方向でサポートされる唯一の一致基準となります。

  • 出力のデフォルト クラスは、暗黙的に qos-group 0 に一致します。

  • 出力分類では、class-default を含む 8 つの(qos-group)クラスをすべて設定する必要があります。

設定例

トラフィック クラスの設定を完了するには、以下を完全に行う必要があります。
  1. クラス マップの作成

  2. パケットをその特定のクラスのメンバとして分類するための一致基準の指定

    サポートされる一致タイプの一覧については、トラフィック クラスの要素 を参照してください。

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 にプログラミングされます。したがって、あるパケットが複数のクラスと一致する場合は、最初に一致したクラスだけが返され、対応するポリシーが適用されます。

次の表に、 Cisco NCS 5001 および Cisco NCS 5002 ルータ でサポートされているクラス アクションを示します。

サポートされているアクション タイプ

インターフェイスでサポートされる方向

bandwidth-remaining

出力

mark

パケットのマーキングを参照)。

police

入力

priority

出力(レベル 1

shape

出力

トラフィック ポリシーの作成

トラフィック ポリシーの目的は、ユーザが指定したトラフィック クラスまたはクラスに分類されたトラフィックに関連付ける QoS 機能を設定することです。

トラフィック クラスを設定するには、トラフィック クラスの作成 を参照してください。

policy-map コマンドを使用してトラフィック ポリシーを定義した後、インターフェイス コンフィギュレーション モードで service-policy コマンドを使用して、このポリシーを 1 つ以上のインターフェイスに付加し、これらのインターフェイスのトラフィック ポリシーを指定できます。同じトラフィック ポリシーは複数のインターフェイスに付加することができますが、各インターフェイスには入力と出力に対してそれぞれトラフィック ポリシーを 1 つだけ付加することができます。トラフィック ポリシーのインターフェイスへの適用を参照してください。

設定例

トラフィック ポリシーの設定を完了するには、以下を完全に行う必要があります。
  1. 1 つまたは複数のインターフェイスに付加してサービス ポリシーを指定するためのポリシー マップの作成

  2. トラフィック クラスのトラフィック ポリシーへの関連付け

  3. クラス アクションの指定(トラフィック ポリシーの要素 を参照)

Router# configure
Router(config)# policy-map egress_policy2
Router(config-pmap)# class qos-1

/* Configure class-action ('bandwidth remaining' in this example). 
Repeat as required, to specify other class-actions */
Router(config-pmap-c)# bandwidth remaining ratio 50
Router(config-pmap-c)# exit

/* Repeat class configuration as required, to specify other classes */

Router(config-pmap)# end-policy-map
Router(config)# commit

実行コンフィギュレーションを参照してください。

確認を参照してください。

トラフィック ポリシーのインターフェイスへの適用

トラフィック クラスおよびトラフィック ポリシーが作成された後、インターフェイスにトラフィック ポリシーを適用し、ポリシーの適用方向を指定する必要があります。


(注)  


階層型ポリシーはサポートされません。


設定例

トラフィック ポリシーをインターフェイスに適用するには、以下を完了する必要があります。
  1. トラフィック クラス、およびパケットをクラスに対応させる関連付けられたルールの作成(トラフィック クラスの作成 を参照)

  2. 1 つまたは複数のインターフェイスに適用してサービス ポリシーを指定するためのトラフィック ポリシーの作成(トラフィック ポリシーの作成 を参照)

  3. トラフィック クラスのトラフィック ポリシーへの関連付け

  4. 入力または出力方向での、トラフィック ポリシーのインターフェイスへの適用

Router# configure
Router(config)# interface TenGig 0/0/0/0
Router(config-int)# service-policy output egress_policy2
Router(config-int)# commit

実行コンフィギュレーション

/* Class-map configuration */

class-map match-any qos-1
 match qos-group 1 
 end-class-map
! 
- - -
- - -
! 
class-map match-any qos-7
 match qos-group 7 
 end-class-map

/* Policy-map configuration */
policy-map egress_policy2
 class qos-1
  bandwidth remaining ratio 50 
 ! 
- - -
- - -
 class qos-7
  priority level 1 
 ! 
 class class-default
  bandwidth remaining ratio 2 
 ! 
 end-policy-map

/* Attaching traffic policy to an interface in egress direction */ 
interface TenGig 0/0/0/0 
 service-policy output egress_policy2
 !

確認

Router# show policy-map interface tenGigE 0/0/0/0  

TenGigE0/0/0/0 direction input: Service Policy not installed

TenGigE0/0/0/0 output: egress_policy2

Class qos-1
  Classification statistics          (packets/bytes)     (rate - kbps)
    Matched             :             4867412/3598770345           0
    Transmitted         :             2901271/2142905575           0
    Total Dropped       :             1966141/1455864770           0
  Queueing statistics
    Queue ID                             : 9 
    High watermark                       : N/A 
    Inst-queue-len  (cells)              : 10709
    Avg-queue-len                        : N/A 
    Taildropped(packets/bytes)           : 1966141/1455864770
    Queue(conform)      :             2901271/2142905575           0
    RED random drops(packets/bytes)      : 0/0

- - -
- - -

Class class-default
  Classification statistics          (packets/bytes)     (rate - kbps)
    Matched             :              262482/237940215            0
    Transmitted         :               97172/88070686             0
    Total Dropped       :              165310/149869529            0
  Queueing statistics
    Queue ID                             : 8 
    High watermark                       : N/A 
    Inst-queue-len  (cells)              : 10714
    Avg-queue-len                        : N/A 
    Taildropped(packets/bytes)           : 165310/149869529
    Queue(conform)      :               97172/88070686             0
    RED random drops(packets/bytes)      : 0/0

関連コマンド

バンドル トラフィック ポリシー

ポリシーはバンドルにバインドできます。ポリシーがバンドルにバインドされている場合、各バンドル メンバ(ポート)で同じポリシーがプログラミングされます。たとえば、ポリサーまたはシェーパー レートがある場合、各ポートに同じレートが設定されます。トラフィックはロード バランシング アルゴリズムに基づいてメンバをバンドルするようスケジュールされます。

入力および出力トラフィックの両方がサポートされています。パーセントベースのポリシーと絶対レートベースのポリシーがサポートされています。ただし、使いやすさのため、パーセントベースのポリシーを使用することを推奨します。

詳細については、リンク バンドルでの QoS の設定を参照してください。

クラスベースの無条件パケット マーキング

クラスベースの無条件パケット マーキング機能では、指定マーキングに基づいてパケットを区別する方法がユーザに提供されます。この機能を使用すれば、ネットワークを複数の優先度レベルまたはサービス クラスに分割することができます。

次のタスクは、パケット マーキング機能を使用して実行できます。

  • IP DiffServ コード ポイント(DSCP)を IP ToS バイトに設定してパケットをマーキング。

  • レイヤ 2 サービス クラス(CoS)値を設定して、パケットをマーキング。

  • IEEE 802.1Q トンネリング(QinQ)設定に外部 CoS タグを設定してパケットをマーキング。

  • qos-group 引数の値を設定してパケットをマーキング。


    (注)  


    qos-group はルータ内部の変数で、送信されません。


詳細については、パケットのマーキングを参照してください。

クラスベースの無条件パケット マーキングの設定

Cisco NCS 5001 ルータおよび Cisco NCS 5002 ルータ は、入力方向の無条件パケット マーキングをサポートしています。

ガイドライン

  • 入力マーキングのみがサポートされます。

  • クラスごとに最大 2 つの set コマンドのみが許可されます。

  • ポリシー マップに対し、8 つのクラス(デフォルト クラスを含む)をすべて設定する必要があります。

設定例

無条件パケット マーキングの設定を完了するには、以下を完全に行う必要があります。
  1. 1 つ以上のインターフェイスに付加できるポリシー マップの作成または変更。

  2. ポリシーを作成または変更する必要があるトラフィック クラスの指定

  3. パケットへのマーキング アクションの指定

  4. 入力インターフェイスへのポリシー マップの適用

Router# configure
Router(config)# policy-map policy1
Router(config-pmap)# class class1
/* Specify the marking action. Repeat the set command to specify another marking action */
Router(config-pmap-c)# set dscp 5
Router(config-pmap-c)# exit
/* Repeat the above steps to configure the remaining classes of the policy-map*/
Router(config-pmap)# exit

Router(config)# interface TenGigE 0/2/0/0
Router(config-if)# service-policy input policy1
Router(config-if)# no shutdown
Router(config-if)# commit

実行コンフィギュレーション

policy-map policy1
 class class1
  set dscp 5
  set cos 7
  !
  - - -
  - - - 
 ! 
 end-policy-map

interface TenGigE 0/2/0/0
 service-policy input policy1
! 

関連コマンド

In-Place ポリシーの変更

In-Place ポリシーの変更機能では、QoS ポリシーが 1 つ以上のインターフェイスに付加されている場合でも QoS ポリシーを変更できます。変更されたポリシーは、新しいポリシーをインターフェイスにバインドするときと同じチェックを受けます。ポリシー変更が成功した場合、変更されたポリシーは、ポリシーが付加されているすべてのインターフェイスに対して有効になります。ただし、ポリシーの変更がいずれかのインターフェイスで失敗した場合には、すべてのインターフェイスに対して変更前のポリシーが有効になるように、自動ロール バックが開始されます。

また、ポリシー マップに使用するクラス マップを変更することもできます。クラス マップに対して行った変更は、ポリシーが付加されているすべてのインターフェイスに反映されます。


(注)  


  • インターフェイスに付加されているポリシーの QoS 統計情報は、ポリシーを変更すると失われます(0 にリセット)。

  • インターフェイスに付加されている QoS ポリシーを変更したとき、変更されたポリシーを使用するインターフェイスでは、短期間、有効なポリシーがない場合が生じる可能性があります。


確認

In-Place ポリシーの変更時に回復不可能なエラーが発生した場合は、ポリシーは対象のインターフェイスに対して矛盾した状態になります。コンフィギュレーション セッションのブロックが解除されるまで、新たな設定を行うことはできません。インターフェイスからポリシーを削除し、変更されたポリシーを確認し、それに応じて再適用することを推奨します。

各場所における矛盾を表示するには、show qos inconsistency コマンドを使用します。コンフィギュレーション セッションは、変更されたポリシーが、ポリシーを使用するすべてのインターフェイスで有効になるまでブロックされます。この show policy-map targets コマンドの出力は、TenGigabit イーサネット インターフェイス 0/1/0/0 に、メイン ポリシーとして付加されているポリシー マップがあることを示しています(階層型 QoS 設定の子ポリシーに付加されるのではなく)。このインターフェイスの発信トラフィックは、ポリシーが変更された場合に影響を受けます。


router# show policy-map targets

1) Policymap: policy1    Type: qos
     Targets (applied as main policy):
       TenGigabitEthernet0/1/0/0 output
     Total targets: 1

     Targets (applied as child policy):
     Total targets: 0

モジュラ QoS サービス パケットの分類の参照

パケットのマーキング

パケット マーキング機能では、指定マーキングに基づいてパケットを区別する方法がユーザに提供されます。

サポートされているパケット マーキング操作

次の表に、 Cisco NCS 5001 および Cisco NCS 5002 ルータ でサポートされているパケット マーキング操作を示します。

サポートされているマーク タイプ

範囲

無条件マーキングのサポート

条件付きマーキングのサポート

set cos

0 ~ 7

入力

いいえ

set dscp

0 ~ 63

入力

いいえ

set qos-group

0 ~ 7

入力

いいえ

クラスベースの無条件パケット マーキング

パケット マーキング機能により、次のようにネットワークを複数のプライオリティ レベルまたはサービス クラスに区切ることができます。

  • QoS 無条件パケット マーキングを使用して、ネットワークに入るパケットの IP precedence または DSCP 値を設定します。ネットワーク内のルータは、新しくマーキングされた IP precedence 値を使用して、トラフィックの処理方法を決定できます。

    入力方向で、IP Precedence または DSCP 値に基づいてトラフィックを照合した後、そのトラフィックを特定の discard-class に設定できます。それによって、輻輳回避技術である Weighted Random Early Detection(WRED; 重み付けランダム早期検出)は、discard-class 値を使用して、パケットがドロップされる可能性を判断します。

  • QoS 無条件パケット マーキングを使用して、MPLS パケットを QoS グループに割り当てます。ルータは、QoS グループを使用して送信用のパケットのプライオリティを設定する方法を決定します。QoS グループ ID を MPLS パケットに設定するには、ポリシー マップ クラス コンフィギュレーション モードで set qos-group コマンドを使用します。


    (注)  


    QoS グループ ID を設定しても、パケットを送信する優先順位が自動的に決まるわけではありません。最初に QoS グループを使用する出力ポリシーを設定する必要があります。


  • CoS 無条件パケット マーキングを使用して、IEEE 802.1p/ スイッチ間リンク(ISL)パケットのプライオリティ値を設定するパケットを割り当てます。ルータでは、CoS 値を使用して、パケットに転送のための優先順位を付ける方法を決定し、このマーキングを使用してレイヤ 2 からレイヤ 3 へのマッピングを行います。送信パケットのレイヤ 2 CoS 値を設定するには、ポリシー マップ コンフィギュレーション モードで set cos コマンドを使用します。


(注)  


  • 条件付きパケット マーキングはサポートされていません。

  • 特に明記されていないかぎり、レイヤ 3 物理インターフェイスのクラス単位の無条件パケット マーキングがバンドル インターフェイスに適用されます。


IP precedence によるパケットの CoS の指定

IP precedence を使用すると、パケットの CoS を指定できます。着信トラフィックで precedence レベルを設定し、そのレベルを QoS キューイング機能と組み合わせて使用することで、差別化サービスを作成できます。そうすることで、後続の各ネットワーク要素は、判断されたポリシーに基づいてサービスを提供できます。IP precedence は通常、ネットワークまたは管理ドメインの端にできるだけ近いところに配置されます。これによって、他のコアまたはバックボーンにおいて、優先順位に基づいて QoS を設定できます。

図 1. IPv4 パケットのタイプ オブ サービス フィールド

この目的には、IPv4 ヘッダーのタイプ オブ サービス(ToS)フィールドにある 3 つの precedence ビットを使用できます。ToS ビットを使用して、最大 8 つのサービス クラスを定義できます。その後、ネットワーク全体で設定された他の機能によって、これらのビットを使用して、ToS の付与に関するパケットの処理方法を決定します。これらの他の QoS 機能では、輻輳管理戦略や帯域幅の割り当てなど適切なトラフィック処理ポリシーを割り当てることができます。たとえば、LLQ などのキューイング機能は、パケットの IP precedence 設定を使用して、トラフィックに優先順位を付けることができます。

パケットの分類に使用する IP precedence ビット

IP ヘッダーの ToS フィールドにある 3 つの IP precedence ビットを使用して、各パケットの CoS 割り当てを指定します。最大 8 個のクラスにトラフィックを分類した後、ポリシー マップを作成して、各クラスの輻輳処理、帯域幅割り当てといったネットワーク ポリシーを定義できます。

各 precedence は名前に対応します。IP precedence ビットの設定 6 と 7 は、ルーティング アップデートなどのネットワーク制御情報用に予約されています。これらの名前は RFC 791 で定義されています。

IP precedence 値の設定

デフォルトで、 Cisco NCS 5001 および Cisco NCS 5002 ルータ は IP precedence 値をそのままにします。これによって、ヘッダーの precedence 値セットが維持され、すべての内部ネットワーク デバイスが IP precedence の設定に基づいてサービスを提供できるようになります。このポリシーは、ネットワークのエッジでネットワーク トラフィックをさまざまなタイプのサービスにソートすること、またこれらのサービス タイプをネットワーク コアで設定することを指定する標準的な方法に従っています。その後、ネットワークのコアにあるルータは、precedence ビットを使用して、送信順やパケット ドロップの可能性などを決定できるようになります。

ネットワークに入ってくるトラフィックには外部デバイスで設定された precedence が設定されている可能性があるので、ネットワークに入るすべてのトラフィックの precedence をリセットすることを推奨します。IP precedence の設定を制御することによって、すでに IP precedence を設定したユーザが、自身のすべてのパケットに高い優先度設定を設定して、自身のトラフィックに対してより高いサービスを得ることを禁止します。

クラスベースの無条件パケット マーキング、および LLQ 機能では、IP precedence ビットを使用できます。

インターフェイス帯域幅の動的な変更

ポリシー状態

帯域幅の動的な変更プロセスで変更が成功した場合、システムはポリシー状態情報を表示しません。ただし、エラーが発生した場合、システムは、これらいずれかの状態に対してインターフェイスを指定し、ポリシー状態エラー通知を提供します。

  • 検証:この状態は、新しいインターフェイス帯域幅値について、設定された QoS ポリシーの非互換性を示します。システムは、ベストエフォート方式でトラフィックを処理します。また、トラフィック ドロップが発生する場合があります。

  • ハードウェア プログラミング:この状態は、次のいずれかの条件によってハードウェア プログラミングが失敗したことを示します。

    • インターフェイスのデフォルト QoS リソースの変更で、ハードウェアの更新が失敗した。

    • QoS リソース(適用された QoS ポリシーに関連付けられた)の変更で、ハードウェアの更新が失敗した。

      これらいずれかの失敗により、ハードウェア プログラミングがポリシング、キューイング、およびマーキングなどの機能に影響を与える可能性がある、不整合状態になっている可能性があります。そのため、システムは、これらのエラー状態のハードウェアの QoS ポリシーをディセーブルにします。

  • リセット:QoS ポリシーのユーザ再設定への応答で、システムは、新しいポリシーの適用を試行しますが、失敗します。前回の QoS ポリシーへのフォールバックも失敗します。

これらいずれかのポリシー状態の通知を受信した場合は、QoS ポリシーを再設定してこの状況をクリアする必要があります。

show qos interface コマンドおよび show policy-map interface コマンドを使用して、インターフェイスの QoS 状態をクエリします。インターフェイスがいずれかのエラー状態(検証、ハードウェア プログラミング、またはリセット)である場合、システムによって QoS ポリシー状態が表示されますが、状態がアクティブな場合は表示されません。