階層型モジュラ QoS の概要

階層型 QoS(H-QoS)では、ユーザが複数のポリシー レベルで QoS 動作を指定して、より細かい粒度でトラフィックを管理できるようにします。

H-QoS は入れ子構造のトラフィック ポリシーを使用してルータ インターフェイスに適用されます。最初のレベルのトラフィック ポリシーは親トラフィック ポリシーで、メイン インターフェイス レベルまたはサブインターフェイス レベルでのトラフィックの制御に使用されます。2 番目のレベルのトラフィック ポリシーは子トラフィック ポリシーで、特定のトラフィック ストリームまたはクラスを介した追加制御に使用されます。子トラフィック ポリシーは前もって定義したトラフィック ポリシーであり、service-policy コマンドを使用して親トラフィック ポリシー内で参照されます。

2 つのレベルの H-QoS は、すべてのライン カード上の入力方向と出力方向の両方で、物理またはバンドルのメイン インターフェイスとサブインターフェイス上でサポートされています。

H-QoS 設定の制約事項

次に、リリース 6.3.1 での H-QoS 設定時に適用される制約事項を示します。

  1. 2 レベルの階層型キューイングのみがサポートされています。

  2. 親トラフィック ポリシーのみが class-default タイプのトラフィック クラスをサポートしています。

  3. 親トラフィック ポリシーは、クラス アクション shape のみをサポートしており、他のキューイング アクションは設定できません。

  4. Cisco NCS 5500 シリーズ ルータでの設定時に、子トラフィック ポリシー内でプライオリティ クラスにトラフィック シェーパーを必ず使用してください。

  5. 子ポリシーの総帯域幅は、親ポリシーのトラフィック シェーパー未満にする必要があります。

  6. 輻輳回避と管理のため、親トラフィック ポリシー内のトラフィック シェーパーを使用してキュー制限とドロップ プライオリティを計算します。

  7. HQoS プロファイルと入力ピアリング プロファイルは同時に動作しません。そのため、合法的傍受のようなピアリング プロファイルを必要とする機能も、HQoS プロファイルが有効になっていると動作しません。

  8. PBTS 機能は、HQoS プロファイルが有効になっているときは動作しません。これは、TCAM の制限によるものです。

  9. 適用されている QoS ポリシーがなくても、システムがサポートするバンドル サブインターフェイスは最大 896 のみです。これは、バンドル サブインターフェイスの HQoS プロファイル モードでの内部 LAG_ID リソース消費によるもので、QoS ポリシーが適用されていても、適用されていなくても同じです。

  10. 7 つの優先度レベルがサポートされているデフォルト モードとは異なり、HQoS プロファイル モードでサポートされる優先度レベルは最大 4 つのみです。また、以前は非 HQoS プロファイルモードで 7 つのレベルの優先度が使用されていましたが、物理およびバンドルのメイン インターフェイスのポリシーにもこの制約が適用されます。

  11. 同じポリシーマップでの帯域幅と残存帯域幅の設定は同時にサポートされません。クラスに帯域幅(CIR)がある場合、他のクラスにも帯域幅設定のみが必要です。クラスマップに残存帯域幅のパーセンテージ/率(EIR)がある場合、他のクラスにも残存帯域幅設定のみが必要です。シェーピングは、任意のクラスに適用できます。

  12. プライオリティ クラスには、シェーピング設定を使用してレート制限を設定する必要があります。効果的なシェーパー値は、優先帯域幅予約として取得します。すべてのサブインターフェイスとメイン インターフェイスにわたる優先帯域幅予約の合計は、ネットワーク インターフェイス(NIF)ポート速度を超過してはなりません。これは、ネットワーク インターフェイス ポート全体にわたる優先度が高いトラフィックによるオーバーサブスクリプションを防ぐためです。

    非プライオリティ クラスと親のシェーピングのレートはオーバーサブスクライブの状態でもかまいません。

  13. 帯域幅または残存帯域幅の比率(BRR)の粒度は、非HQoS モードの 1:4096 と比べると 1:64 となります。そのため、使用した値に基づく帯域幅のパフォーマンスに精度差があることが考えられます。

階層型キューイングの設定

H-QoS を設定する前に、H-QoS プロファイルをルータ上で有効にする必要があります。H-QoS プロファイルを有効にした後に、次の設定に示すように、ルータをリロードする必要があります。


Router# configure
Router(config)# hw-module profile qos hqos-enable
Router(config)# commit
Router# reload

階層化キューの設定に含まれているステップは次のとおりです。

  1. クラスマップを設定します。

  2. 前のステップで設定したクラスマップを使用して子トラフィック ポリシーを設定します。

  3. 親トラフィック ポリシーを設定して、そのポリシー内に子トラフィック ポリシーを追加します。

親トラフィック ポリシーは H-QoSポリシーであり、物理またはバンドルのメイン インターフェイスおよびサブインターフェイスに適用できます。

設定例

クラスマップの設定は次のとおりです。


Router# configure
Router(config)# class-map match-any tc2
Router(config-cmap)# match traffic-class 1
Router(config-cmap)# end-class-map
Router(config)# commit

子トラフィック ポリシーの設定は次のとおりです。


Router# configure
Router(config)# policy-map child
Router(config-pmap)# class tc2
Router(config-pmap-c)# shape average percent 20
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# shape average percent 1
Router(config-pmap)# end-policy-map
Router(config)# commit

親トラフィック ポリシーの設定は次のとおりです。


Router# configure
Router(config)# policy-map parent
Router(config-pmap)# class class-default
Router(config-pmap-c)# service-policy child
Router(config-pmap-c)# shape average percent 50
Router(config-pmap)# end-policy-map
Router(config)# commit

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


/* Configuration of a Class-map */
class-map match-any tc2
 match traffic-class 1
 end-class-map
!
/* Configuration of a Child Traffic Policy */
policy-map child
 class tc2
  shape average percent 20
 !
 class class-default
  shape average percent 1
 !
 end-policy-map
!
/* Configuration of a Parent Traffic Policy */
policy-map parent
 class class-default
  service-policy child
  shape average percent 50
 !
 end-policy-map
!

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


Router# configure
Router(config)# Interface TenGigE 0/0/0/10
Router(config-int)# service-policy output parent
Router(config-int)# commit

サブインターフェイスでの親トラフィック ポリシーの適用


Router# configure
Router(config)# Interface TenGigE 0/0/0/10.1
Router(config-int)# service-policy output parent
Router(config-int)# commit

確認

show qos interface interface-nameoutput コマンドを使用して、H-QoS トラフィック ポリシーがインターフェイスに正しく適用されているかどうかを確認します。次の例では、Level1 Class が親トラフィック ポリシーに関連付けられているクラスマップに関する情報を提供し、Level2 Class が子トラフィック ポリシーに関連付けられているクラスマップに関する情報を提供します。

RP/0/RP0/CPU0:ios#show qos interface ten0/0/0/10 output

NOTE:- Configured values are displayed within parentheses
Interface TenGigE0/0/0/10 ifh 0x1e0  -- output policy
NPU Id:                        0
Total number of classes:       3
Interface Bandwidth:           10000000 kbps
VOQ Base:                      1136
Accounting Type:               Layer1 (Include Layer 1 encapsulation and above)
------------------------------------------------------------------------------
Level1 Class                             =   class-default
Queue Max. BW.                           =   no max (50 %)
Queue Min. BW.                           =   0 kbps (default)
Inverse Weight / Weight                  =   0 / (BWR not configured)
   Level2 Class                             =   tc2
   Egressq Queue ID                         =   1138 (LP queue)
   Queue Max. BW.                           =   1020015 kbps (20 %)
   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
   Level2 Class                             =   class-default
   Egressq Queue ID                         =   1136 (Default LP queue)
   Queue Max. BW.                           =   50625 kbps (1 %)
   Queue Min. BW.                           =   0 kbps (default)
   Inverse Weight / Weight                  =   1 / (BWR not configured)
   Guaranteed service rate                  =   50000 kbps
   TailDrop Threshold                       =   62720 bytes / 10 ms (default)
   WRED not configured for this class

親および子のトラフィック ポリシーの異なるトラフィック クラスに一致したパケットの統計情報は、show policy-map interface interface-nameoutput コマンドを使用して表示できます。さらに、このコマンドは、それぞれのトラフィック クラスに一致したパケットに指定したアクションが適用されたときに送信またはドロップされるパケットの数も表示します。

Router# show policy-map interface ten0/0/0/10 output

TenGigE0/0/0/10 output: parent
Class class-default
  Classification statistics          (packets/bytes)     (rate - kbps)
    Matched             :          2313578823/296138089344         8494665
    Transmitted         :           232805738/29799134464          854465
    Total Dropped       :          2080773085/266338954880         7640200
  Policy child Class tc2
    Classification statistics          (packets/bytes)     (rate - kbps)
      Matched             :          2313578823/296138089344         8494665
      Transmitted         :           232805738/29799134464          854465
      Total Dropped       :          2080773085/266338954880         7640200
    Queueing statistics
      Queue ID                             : 1138

      Taildropped(packets/bytes)           : 2080773085/266338954880
  Policy child 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                             : 1136

      Taildropped(packets/bytes)           : 0/0