はじめに
このドキュメントでは、モジュラQuality of Service(QoS)Command Line Interface(CLI;コマンドラインインターフェイス)ポリシーマップで bandwidth および priority コマンドが適用される方法について説明します。
前提条件
要件
このドキュメントに関する固有の要件はありません。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
表記法の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。
背景説明
bandwidthコマンドとpriorityコマンドはどちらも、モジュラQuality of Service(QoS)Command Line Interface(MQC;コマンドラインインターフェイス)ポリシーマップ内に適用可能なアクションを定義します。定義したポリシーマップは、 service-policy コマンドを使用してインターフェイス、サブインターフェイス、またはVirtual Circuit(VC;仮想回線)に適用できます。具体的には、これらのコマンドにより、トラフィック クラスの基準に一致したパケットに対して帯域幅が保証されます。ただし、これら 2 つのコマンドには、それぞれが提供する帯域幅保証に関して重要な機能上の相違があります。このテクニカル ノートでは、これらの相違点と、あるクラスの未使用の帯域幅が他のクラスと一致するフローにどのように分配されるかについて説明しています。
相違点の要約
bandwidth コマンドと priority コマンドの機能上の違いを次の表に示します。
機能 |
bandwidthコマンド |
priorityコマンド |
最小帯域幅保証 |
Yes |
Yes |
最大帯域幅保証 |
いいえ |
Yes |
組み込みポリサー |
いいえ |
Yes |
低遅延 |
いいえ |
Yes |
また、 bandwidth コマンドとpriorityコマンドは、さまざまなQuality of Service(QoS)ポリシー目標を満たすように設計されています。次の表に、これらの異なる目的を示します。
アプリケーション |
bandwidthコマンド |
priorityコマンド |
WAN リンクの帯域幅管理 |
Yes |
多少 |
遅延と遅延の変動(ジッタ)の管理 |
いいえ |
Yes |
アプリケーションの応答時間の改善 |
いいえ |
Yes |
ほとんどのネットワークでは、たとえ高速インターフェイスを使用していても、速度のミスマッチや多種多様なトラフィック パターンによって輻輳ポイントとボトルネックが必ず生じます。これらを効果的に処理するためには、強力な QoS 管理モデルが必要です。実際のネットワークではリソースとリソースのボトルネックが限られており、適切なリソース割り当てを確実に行うにはQoSポリシーが必要です。
bandwidthコマンドの設定
Cisco IOS ®コンフィギュレーションガイドでは、 bandwidth コマンドを「クラスに割り当てられる帯域幅の量(kbps単位)」として説明しています。.ポリシーマップに属するクラスに割り当てられた帯域幅を指定または変更するため。
この定義の意味を見てみましょう。
bandwidth コマンドは、輻輳時に最小帯域幅を保証します。コマンドの構文には、次の表に示すように 3 つの形式があります。
コマンド構文 |
説明 |
bandwidth {kbps}
|
帯域割り当てをビット レートで指定します。 |
bandwidth percent {value}
|
帯域幅割り当てをプリンシパルリンクレートのパーセンテージで指定します。 |
bandwidth remaining percent {value}
|
帯域割り当てを、他のクラスに割り当てられていない帯域幅のパーセンテージで指定します。 |
注:bandwidthコマンドは、最小帯域幅保証である動作を定義します。すべてのCiscoルータプラットフォームが、 weighted-fair queueing (WFQ)を主要アルゴリズムとして使用してこの動作を実装しているわけではありません。詳細は、『CBWFQを使用する理由』を参照してください。
priorityコマンドの設定
Cisco IOSコンフィギュレーションガイドでは、priorityコマンドについて、「トラフィックポリシー内で使用可能な帯域幅の量に基づいてトラフィッククラスに優先順位を与えるために、CBWFQトラフィック用に使用可能な帯域幅の量が指定されたプライオリティキュー」の予約として説明しています。 次の例では、これらの定義の意味について説明します。
プライオリティキューは、次のコマンドセットを使用して作成します。
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コンフィギュレーションガイドでは、「完全優先キュー(PQ)を使用すると、他のキューのパケットがデキューされる前に、音声などの遅延に影響されやすいデータをデキューして送信できます」という利点について説明します。 これが何を意味するか見てください。
どのルータ インターフェイスでも、次の 2 種類のキューのセットが管理されています。
キュー |
場所 |
キューイング方式 |
サービス ポリシーの適用 |
調整用コマンド |
ハードウェア キューまたは送信リング |
ポート アダプタまたはネットワーク モジュール |
FIFO のみ |
いいえ |
tx-ring-limit |
レイヤ 3 キュー |
レイヤ 3 プロセッサ システムまたはインターフェイス バッファ |
フローベースの WFQ、CBWFQ、LLQ |
Yes |
キューイング方式によって異なる。帯域幅クラスに対して queue-limit コマンドを使用する。 |
上記の表から、サービスポリシーが適用されるのはレイヤ3キュー内のパケットだけであることがわかります。
厳密なデキューとは、プライオリティキューを処理し、そのパケットを最初に送信リングに転送するキューイングスケジューラのことです。送信リングは物理メディアに送出される前の最後の停止点です。
次の図では、送信リングが4つのパケットを保持するように設定されています。リング上にすでに 3 個のパケットがある場合は、最善でも 4 番目の位置にキューイングできるだけであり、他の 3 個のパケットが空になるまで待機する必要があります。このように、Low Latency Queueing(LLQ; 低遅延キューイング)メカニズムは単に送信リング上にあるドライバレベルの First In, First Out(FIFO)キューの最後尾にパケットをデキューするだけです。
送信リングのサイズをデフォルト以外の値に調整するには、 tx-ring-limit コマンドを使用します。音声トラフィックを送信する場合は、送信リングを調整することをお勧めします。
遅延に影響されやすい、トランザクション ベースの双方向アプリケーションにとっては、トラフィックの優先順位付けが特に重要です。遅延とジッタを最小限に抑えるには、ネットワーク デバイスに音声パケットが到達すると同時に(つまり、完全優先方式で)そのパケットを処理できる必要があります。音声に対して適切に機能するのは、完全優先だけです。音声パケットがすぐにデキューされない場合は、各ホップでさらに遅延が発生する可能性があります。
International Telecommunications Union(ITU-T; 国際電気通信連合電気通信標準化部門)の勧告では、単方向のエンドツーエンドの遅延は最大 150 ミリ秒となっています。ルータ インターフェイスに即時のデキュー メカニズムがなければ、1 つのルータ ホップでこの遅延バジェットの大部分が消化される可能性があります。詳細については、『音声品質サポート』を参照してください。
注:両方のコマンドを使用する場合、kbps値にはレイヤ2オーバーヘッドを考慮に入れる必要があります。つまり、クラスに対して保証を適用する場合、その保証はレイヤ 2 のスループットに対するものとなります。
超過帯域幅を使用できるトラフィック クラス
bandwidth および priority コマンドで提供される帯域幅保証は、「reserved(予約済)」や「bandwidth to be set aside(確保される帯域幅)」などの言葉で説明されていますが、どちらのコマンドでも実際に予約が実行されるわけではありません。つまり、トラフィッククラスが設定された帯域幅を使用しない場合、未使用の帯域幅は他のクラス間で共有されます。
キューイング システムには、この規則に対する重要な例外が組み込まれており、それはプライオリティ クラスに関係しています。前述したように、プライオリティクラスの負荷はトラフィックポリサーによって測定されます。 輻輳状態の間、プライオリティ クラスは超過帯域幅を使用できません。
次の表は、帯域幅クラスとプライオリティ クラスがどのようなときに超過帯域幅を使用できるかを示しています。
コマンド |
Congestion |
非輻輳時 |
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 によって共有されます。
未使用の帯域幅割り当て
この項では、残りの帯域幅がキューイング システムによってどのように分配されるかについて説明します。『クラスベース重み付け均等化キューイング機能の概要』では、割り当てメカニズムについて次のように説明しています。「超過帯域幅が使用可能な場合は、超過帯域幅が、設定されている帯域幅に比例してトラフィッククラス間で分割されます。帯域幅の一部が割り当てられていない場合、残りの帯域幅は各クラスの間で、それぞれに設定されている帯域幅に比例して割り当てられます。」 2つの例を見てください。
最初の例では、policy-map 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で共有されます。
次の設定例には、bar、baz、およびpoliという3つのポリシーマップが含まれています。ポリシー マップ 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)で導入されました。
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 queue interface atm 4/0.10
Interface ATM4/0.10 VC 0/101
queue 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
この値がどのようにして算出されたのかを次に示します。
-
Sustained Cell Rate(SCR; 平均セルレート)は 6 Mbps です。デフォルトでは、そのうちの75 %が予約可能です。
0.75 * 6000000 = 4500000
-
音声およびデータ クラスによってすでに 3000 kbps が使用されています。
4500000 - 3000000 = 1500000 bps
-
使用可能な帯域幅は 1500000 bps です。
最大予約可能帯域幅のデフォルト値である 75% は、ルーティング プロトコル更新やレイヤ 2 キープアライブなどのオーバーヘッド トラフィック用に十分な帯域幅を確保することを意図しています。また、定義されたトラフィッククラスまたはclass-defaultクラスに一致するパケットのレイヤ2オーバーヘッドもカバーします。 max-reserved-bandwidth コマンドを使用して、ATM PVCの最大予約可能帯域幅の値を増やすことができるようになりました。サポートされているCisco 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でのCBWFQの設定』を参照してください。
関連情報