サービス品質(QoS) : QoS パケット マーキング

QoS サービス ポリシーの bandwidth コマンドと priority コマンドの比較

2016 年 10 月 28 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2008 年 4 月 8 日) | 英語版 (2015 年 4 月 22 日) | フィードバック


目次


概要

bandwidth コマンドと priority コマンドはどちらも、Modular Quality of service Command-line interface(MQC; モジュラ Quality of Service コマンド行インターフェイス)のポリシーマップ内で適用できるアクションを定義します。ポリシーマップは、service-policy コマンドによってインターフェイス、サブインターフェイス、または Virtual Circuit(VC; 仮想回線)に適用できます。 具体的には、これらのコマンドにより、トラフィック クラスの基準に一致したパケットに対して帯域幅が保証されます。 ただし、これら 2 つのコマンドには、それぞれが提供する帯域幅保証に関して重要な機能上の相違があります。 このテクニカル ノートでは、これらの相違点と、あるクラスの未使用の帯域幅が他のクラスと一致するフローにどのように分配されるかについて説明しています。

前提条件

要件

このドキュメントに関する固有の要件はありません。

使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

相違点の要約

次の表に bandwidth コマンドと priority コマンドの機能上の相違点をまとめます。

機能 bandwidth コマンド priority コマンド
最小帯域幅保証
最大帯域幅保証 なし
組み込みポリサー なし
低遅延 なし

また、bandwidth コマンドと priority コマンドはそれぞれ異なる Quality of Service(QoS)ポリシーの目標を達成するように設計されています。 その目標の相違点を次の表に示します。

アプリケーションの bandwidth コマンド priority コマンド
WAN リンクの帯域幅管理 多少
遅延と遅延の変動(ジッタ)の管理 なし
アプリケーションの応答時間の改善 なし

ほとんどのネットワークでは、たとえ高速インターフェイスを使用していても、速度のミスマッチや多種多様なトラフィック パターンによって輻輳ポイントとボトルネックが必ず生じます。これらを効果的に処理するためには、強力な QoS 管理モデルが必要です。 実際のネットワークではリソースとリソースのボトルネックが限られており、適切なリソース割り当てを確実に行うために QoS ポリシーが必要となります。

bandwidth コマンドの設定

Cisco IOSか。 コンフィギュレーション ガイドは「帯域幅の量としてクラスに割り当てられる bandwidth コマンドを、キロビット/秒で。記述します。ポリシー マップに属するクラスに割り当てられる帯域幅を指定または変更するために使用されます。

この定義の意味を見てみましょう。

bandwidth コマンドは輻輳時の最小帯域幅を保証します。 コマンドの構文には、次の表に示すように 3 つの形式があります。

コマンドの構文 説明
bandwidth {kbps}
帯域割り当てをビット レートで指定します。
bandwidth percent {value}
帯域割り当てを、基盤となるリンク レートのパーセンテージで指定します。
bandwidth remaining percent {value}
帯域割り当てを、他のクラスに割り当てられていない帯域幅のパーセンテージで指定します。

bandwidth コマンドは動作を定義し、その動作が最小帯域幅保証となります。 Cisco ルータ プラットフォームによっては、この動作を実装するためのベースとなるアルゴリズムとして、Weighted Fair Queueing(WFQ; 均等化キューイング)を使用しません。 詳細については、『CBWFQ を使用する理由』を参照してください。

priority コマンドの設定

Cisco IOSコンフィギュレーション ガイドは「トラフィックポリシー内の利用可能 な 帯域幅の量に基づいてトラフィック クラスに優先順位を与えるために CBWFQトラフィックのための特定量の利用可能 な 帯域幅のプライオリティキュー確保として記述します priority コマンドを…」。の この定義の意味を見てみましょう。

プライオリティ キューは次の一連のコマンドによって作成します。

Router(config)# policy-map policy-name
 
Router(config-pmap)# class class-name
 
Router(config-pmap-c)# priority kpbs [bytes]

輻輳状態の間、トラフィック クラスには指定されたレートと等しい帯域幅が保証されます。 (帯域幅保証が問題となるのは、インターフェイスが輻輳している場合だけである点に注意してください)。 つまり、priority コマンドは最小帯域幅を保証します。

また、priority コマンドは最大帯域幅保証を実装します。 内部的には、トラフィック ストリームが設定レートを遵守するように、プライオリティ キューはトークン バケットを使用して与えられた負荷を測定します。 トークン バケットに適合するトラフィックだけが低遅延を保証されます。 超過トラフィックは、リンクが輻輳していないときはすべて送信され、リンクが輻輳しているときはすべて廃棄されます。 詳細については、『トークン バケットとは』を参照してください。

組み込みポリサーの目的は、他のキューがキューイング スケジューラによって確実に処理されるようにすることです。 priority-group コマンドと priority-list コマンドを使用する Cisco の最初のプライオリティ キューイング機能では、スケジューラは常に優先順位の最も高いキューを最初に処理していました。 極端なケースでは、優先順位の低いキューがほとんど処理されないため、実質的に帯域幅不足に陥りました。

priority コマンドの真のメリットは— bandwidth コマンドからの主な違い—レイテンシーで限界を提供するために厳密なデキューイング 優先順位をどのように与えるかであり。 Cisco IOS コンフィギュレーション ガイドには、この利点について次のように記述されています。 「完全 Priority Queue(PQ; プライオリティ キュー)を使用すると、他のキュー内のパケットがデキューされる前に、音声などの遅延に影響されやすいデータがデキューされ、送信されます。」 この記述の意味を見てみましょう。

どのルータ インターフェイスでも、次の 2 種類のキューのセットが管理されています。

キュー 場所 キューイング方式 サービス ポリシーの適用 調整用コマンド
ハードウェア キューまたは送信リング ポート アダプタまたはネットワーク モジュール FIFO のみ なし tx-ring-limit
レイヤ 3 キュー レイヤ 3 プロセッサ システムまたはインターフェイス バッファ フローベースの WFQ、CBWFQ、LLQ キューイング方式によって異なる。 帯域幅クラスに対して queue-limit コマンドを使用する。

上記の表から、サービス ポリシーが適用されるのはレイヤ 3 キュー内のパケットだけであることがわかります。

「完全なデキュー」とは、キューイング スケジューラがプライオリティ キューを優先的に処理し、そのパケットを最初に送信リングに転送することを意味します。 送信リングは物理メディアに送出される前の最後の停止点です。

次に例を示します。次の図では、送信リングは 4 個のパケットを保持するように設定されています。 リング上にすでに 3 個のパケットがある場合は、最善でも 4 番目の位置にキューイングできるだけであり、他の 3 個のパケットが空になるまで待機する必要があります。 このように、Low Latency Queueing(LLQ; 低遅延キューイング)メカニズムは単に送信リング上にあるドライバレベルの First In, First Out(FIFO)キューの最後尾にパケットをデキューするだけです。

/image/gif/paws/10100/priorityvsbw1.jpg

送信リングのサイズをデフォルト以外の値に調整するには、tx-ring-limit コマンドを使用します。 シスコでは、音声トラフィックを送信する場合は送信リングを調整することを推奨しています。 『低遅延キューイング機能モジュール』を参照してください。

遅延に影響されやすい、トランザクション ベースの双方向アプリケーションにとっては、トラフィックの優先順位付けが特に重要です。 遅延とジッタを最小限に抑えるには、ネットワーク デバイスに音声パケットが到達すると同時に(つまり、完全優先方式で)そのパケットを処理できる必要があります。 完全優先方式がなければ音声は正常に伝送されません。 音声パケットがすぐにデキューされない場合は、ホップごとにさらに遅延が発生します。

International Telecommunications Union(ITU-T; 国際電気通信連合電気通信標準化部門)の勧告では、単方向のエンドツーエンドの遅延は最大 150 ミリ秒となっています。 ルータ インターフェイスに即時のデキュー メカニズムがなければ、1 つのルータ ホップでこの遅延バジェットの大部分が消化される可能性があります。 詳細については、『音声品質に関するテクニカル ティップス』を参照してください。

どちらのコマンドを使用した場合でも、kbps 値にはレイヤ 2 のオーバーヘッドが含まれます。 つまり、クラスに対して保証を適用する場合、その保証はレイヤ 2 のスループットに対するものとなります。 詳細については、どんなバイトが IP to ATM CoS キューイングかによって考慮されるか参照して下さいか。 そしてなぜ使用 LLQ か

超過帯域幅を使用できるトラフィック クラス

bandwidth および priority コマンドによって提供される帯域幅保証は「予約」や「確保される帯域幅」などの表現で説明されていますが、どちらのコマンドでも実際には予約されません。 つまり、トラフィック クラスに対して設定された帯域幅が使用されていない場合は、未使用の帯域幅すべてが他のクラスとの間で共有されます。

キューイング システムには、この規則に対する重要な例外が組み込まれており、それはプライオリティ クラスに関係しています。 前述したように、プライオリティ クラスに与えられた負荷はトラフィック ポリサーによって測定されます。 輻輳状態の間、プライオリティ クラスは超過帯域幅を使用できません。

次の表は、帯域幅クラスとプライオリティ クラスがどのようなときに超過帯域幅を使用できるかを示しています。

コマンド 輻輳時 非輻輳時
bandwidth コマンド 割り当てレートを超えることが可能。 割り当てレートを超えることが可能。
priority コマンド Cisco IOS によってパケットが測定され、トークン バケットによるトラフィック測定システムが利用されます。 一致したパケットは bps 設定レートまでポリシングされ、超過パケットはすべて廃棄されます。 クラスに設定された帯域幅を超えることが可能。

LLQ に関するこれらのガイドラインには例外があり、それは Cisco 7200 ルータと、Route/Switch Processor(RSP; ルート スイッチ プロセッサ)以外のプラットフォームでのフレームリレーに関係しています。 これらのプラットフォームでの LLQ over Frame Relay の最初の実装では、プライオリティ クラスは非輻輳時にも設定レートを超えることができませんでした。 この例外は Cisco IOS ソフトウェア リリース 12.2 で取り除かれ、輻輳時に適合しないパケットが廃棄されるだけになりました。 また、FRF.12 フラグメンテーション サイズよりも小さいパケットは送信時にフラグメンテーション プロセスを経由しないため、CPU 使用率が低下します。

上記の説明から、プライオリティ クラスは輻輳状態の間ポリシングされるため、帯域幅クラス用の残りの帯域幅は割り当てられないことを理解しておく必要があります。 そのため、残りの帯域幅は帯域幅クラスすべてと class-default によって共有されます。

未使用帯域幅の割り当て方法

この項では、残りの帯域幅がキューイング システムによってどのように分配されるかについて説明します。 『Class-Based Weighted Fair Queuing(CBWFQ)機能の概要』には、割り当てメカニズムについて次のように記述されています。 「超過帯域幅が使用可能な場合、超過帯域幅はトラフィック クラスの間で、それぞれに設定されている帯域幅に比例して分配されます。 帯域幅の一部が割り当てられていない場合、残りの帯域幅は各クラスの間で、それぞれに設定されている帯域幅に比例して割り当てられます。」 次に 2 つの例について見てみましょう。

最初の例では、ポリシーマップ foo はクラス bar に対して帯域幅の 30 % を保証し、クラス baz に対して帯域幅の 60 % を保証します。

policy-map foo 
  class bar 
    bandwidth percent 30 
 class baz 
  bandwidth percent 60

このポリシーを 1 Mbps リンクに適用すると、クラス bar に対しては 300 kbps、クラス baz に対しては 600 kbps がそれぞれ保証されます。 重要なのは、残りの 100 kbps は class-default 用である点です。 class-default でその帯域幅が不要な場合、未使用の 100 kbps はクラス bar とクラス baz で使用できます。 どちらのクラスも帯域幅を必要としている場合、この 100 kbps は設定レートに比例して分配されます。 この設定では、分配率は 30:60、つまり 1:2 です。

次の設定 例は 3 つのポリシーマップが—バー、baz および poli 含まれています。 ポリシー マップ bar および baz では、帯域幅はパーセンテージで指定されています。 一方、ポリシー マップ poli では帯域幅は kbps 単位で指定されています。

ポリシー マップを作成する前に、クラス マップが作成済みである必要があることに注意してください。

 
 policy-map bar
  class voice
   priority percent 10
  class data
   bandwidth percent 30
  class video
   bandwidth percent 20
 policy-map baz
  class voice
   priority percent 10
  class data
   bandwidth remaining percent 30
  class video
   bandwidth remaining percent 20
 policy-map poli
  class voice
  class data
   bandwidth 30
  class video
   bandwidth 20

bandwidth remaining percent コマンドは Cisco IOS バージョン 12.2(T) で導入されました。 bandwidth コマンドの詳細な説明は、『プライオリティ パーセンテージ サポートによる低遅延キューイング』を参照してください。

最大値を設定する police コマンドの使用

帯域幅クラスまたはプライオリティ クラスが非輻輳時に、それぞれに割り当てられた帯域幅を超えないようにする場合は、priority コマンドを police コマンドと組み合せます。 このように設定すると、特定のクラスで常にアクティブとなる最大レートが課されます。 この設定で police 文を設定するかどうかはポリシーの目的によって異なります。

利用可能な帯域幅の値について

この項では、show interface または show queueing コマンドの出力中に表示される Available Bandwidth(使用可能な帯域幅)の値がキューイング システムによってどのように算出されるかについて説明します。

次のような、leslie という名前のポリシーマップを作成したとします。

7200-16# show policy-map leslie 
  Policy Map leslie 
    Class voice 
      Weighted Fair Queueing 
            Strict Priority 
            Bandwidth 1000 (kbps) Burst 25000 (Bytes) 
    Class data 
      Weighted Fair Queueing 
            Bandwidth 2000 (kbps) Max Threshold 64 (packets)

次に ATM Permanent Virtual Circuit(PVC; 相手先固定接続)を作成して可変ビット レート、非リアルタイム ATM サービス カテゴリに割り当て、平均セル レートを 6 Mbps に設定しました。 それから、service-policy output leslie コマンドを使用して、この PVC にポリシーマップを適用しました。

7200-16(config)# interface atm 4/0.10 point 
7200-16(config-subif)# pvc 0/101 
7200-16(config-if-atm-vc)# vbr-nrt 6000 6000 
7200-16(config-if-atm-vc)# service-policy output leslie

show queueing interface atm コマンドを実行すると、「Available Bandwidth 1500 kilobits/sec」と表示されます。

7200-16# show queueing interface atm 4/0.10 
  Interface ATM4/0.10 VC 0/101 
  Queueing strategy: weighted fair 
  Output queue: 0/512/64/0 (size/max total/threshold/drops) 
     Conversations  0/0/128 (active/max active/max total) 
     Reserved Conversations 1/1 (allocated/max allocated) 
     Available Bandwidth 1500 kilobits/sec

この値がどのようにして算出されたのかを次に示します。

  1. Sustained Cell Rate(SCR; 平均セルレート)は 6 Mbps です。 デフォルトでは、この値の 75 % が予約可能になります。

    0.75 * 6000000 = 4500000
    
  2. 音声およびデータ クラスによってすでに 3000 kbps が使用されています。

    4500000 - 3000000 = 1500000 bps
    
  3. 使用可能な帯域幅は 1500000 bps です。

最大予約可能帯域幅のデフォルト値である 75% は、ルーティング プロトコル更新やレイヤ 2 キープアライブなどのオーバーヘッド トラフィック用に十分な帯域幅を確保することを意図しています。 また、定義済みのトラフィック クラスや class-default クラスに一致するパケットのレイヤ 2 オーバーヘッドも考慮されています。 現在では、max-reserved-bandwidth コマンドを使用して、ATM PVC の最大予約可能帯域幅の値を増やすことができます。 サポートされている IOS リリースと詳しい背景説明については、『ATM PVC での max-reserved-bandwidth コマンドについて』を参照してください。

フレームリレー PVC では、bandwidth および priority コマンドにより、次のいずれかの方法で使用可能な帯域幅の総量が計算されます。

  • Minimum Acceptable Committed Information Rate(minCIR; 最小許容認定情報レート)が設定されていない場合は、CIR を 2 で割ります。

  • minCIR が設定されている場合は、計算に minCIR 設定が使用されます。 上記のレートから得られた帯域幅全体を帯域幅クラスとプライオリティ クラスに割り当てることができます。

このように、フレームリレー PVC では max-reserved-bandwidth コマンドはサポートされていません。ただし、設定されている帯域幅の量がレイヤ 2 オーバーヘッドに十分対応できる量であることを確認する必要があります。 詳細については、『フレームリレー PVC での Class-Based Weighted Fair Queuing(CBWFQ)の設定』を参照してください。


関連情報


Document ID: 10100