はじめに
このドキュメントでは、 コマンドおよび コマンドが、モジュラ Quality of Service コマンド ライン インターフェイス ポリシーマップでどのように適用されるかについて説明します。 bandwidth
priority
前提条件
要件
このドキュメントに関する固有の要件はありません。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
表記法の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。
背景説明
bandwidth コマンドと priority コマンドは、どちらもモジュラ Quality of Service コマンド ライン インターフェイス(MQC)ポリシーマップ内で適用できるアクションを定義します。このアクションは、 コマンドを使用して、インターフェイス、サブインターフェイス、または仮想回線(VC)に適用できます。 service-policy
具体的には、これらのコマンドにより、トラフィック クラスの基準に一致したパケットに対して帯域幅が保証されます。ただし、これら 2 つのコマンドには、それぞれが提供する帯域幅保証に関して重要な機能上の相違があります。
このテクニカル ノートでは、これらの相違点と、あるクラスの未使用の帯域幅が他のクラスと一致するフローにどのように分配されるかについて説明しています。
相違点の要約
次の表に、bandwidth コマンドと priority コマンドの機能の違いを bandwidth
示します。 priority
機能 |
bandwidth コマンド |
priority コマンド |
最小帯域幅保証 |
Yes |
Yes |
最大帯域幅保証 |
いいえ |
Yes |
組み込みポリサー |
いいえ |
Yes |
低遅延 |
いいえ |
Yes |
また、 コマンドおよび priority コマンドは、異なる Quality of Service(QoS)ポリシーの目的に沿って設計されています。 bandwidth
次の表に、その異なる目標を示します。
アプリケーション |
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 コマンドは動作を定義し、それが最低帯域保証となります。シスコのすべてのルータプラットフォームが、この動作を実装するための主要なアルゴリズムとして、重み付け均等化キューイング(WFQ)を使用するわけではありません。 weighted-fair
queueing
詳細については、「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
極端なケースでは、優先順位の低いキューがほとんど処理されないため、実質的に帯域幅不足に陥りました。
コマンドの実際の利点、および コマンドとの主な違いは、遅延を一定の範囲に抑えるために、どのようにして厳密なキューイング解除の優先順位を与えるかという点にあります。 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
つまり、トラフィッククラスが自身に設定された帯域幅を使用していない場合、未使用の帯域幅は他のクラス間で共有されます。
キューイング システムには、この規則に対する重要な例外が組み込まれており、それはプライオリティ クラスに関係しています。上述したように、プライオリティクラスに課された負荷はトラフィックポリサーによって測定されます。 輻輳状態の間、プライオリティ クラスは超過帯域幅を使用できません。
次の表は、帯域幅クラスとプライオリティ クラスがどのようなときに超過帯域幅を使用できるかを示しています。
コマンド |
Congestion |
非輻輳時 |
bandwidth コマンド |
割り当てレートを超えることが可能。 |
割り当てレートを超えることが可能。 |
priority コマンド |
Cisco IOS によってパケットが測定され、トークン バケットによるトラフィック測定システムが利用されます。一致するパケットは設定された bps レートに対してポリシングされ、超過パケットは廃棄されます。 |
クラスに設定された帯域幅を超えることが可能。 |
注:低遅延キューイング(LLQ)に関するこれらのガイドラインの例外は、Cisco 7200 ルータ、およびその他のルート/スイッチプロセッサ(RSP)以外のプラットフォームでのフレームリレーです。これらのプラットフォームでの LLQ over Frame Relay の最初の実装では、プライオリティ クラスは非輻輳時にも設定レートを超えることができませんでした。この例外は Cisco IOS ソフトウェア リリース 12.2 で取り除かれ、輻輳時に適合しないパケットが廃棄されるだけになりました。また、FRF.12 フラグメンテーションサイズよりも小さいパケットは、フラグメント化プロセスで送信されなくなり、中央処理装置(CPU)の使用率が低下します。
前述の説明を踏まえ、プライオリティクラスは輻輳状態でポリシングされるため、帯域幅クラスから残りの帯域幅が割り当てられないことを理解することが重要です。そのため、残りの帯域幅は帯域幅クラスすべてと class-default によって共有されます。
未使用の帯域幅の割り当て
この項では、残りの帯域幅がキューイング システムによってどのように分配されるかについて説明します。『Class-Based Weighted Fair Queuing(CBWFQ)機能の概要』には、割り当てメカニズムについて次のように記述されています。
「超過帯域幅が使用可能な場合、超過帯域幅はトラフィック クラスの間で、それぞれに設定されている帯域幅に比例して分配されます。帯域幅の一部が割り当てられていない場合、残りの帯域幅は各クラスの間で、それぞれに設定されている帯域幅に比例して割り当てられます。」
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 で共有されます。
次の設定例には、3 つのポリシーマップ(bar、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) で導入されました。
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 に設定しました。次に、 コマンドを使用して、ポリシーマップを相手先固定接続(PVC)に適用しました。 service-policy output leslie
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
コマンドを実行すると、使用可能な帯域幅は 1500 キロビット/秒と表示されます。 show queueing interface atm
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 オーバーヘッドもカバーします。 コマンドを使用して、非同期転送モード(ATM)の相手先固定接続(PVC)の予約可能な帯域幅の最大値を増やせるようになりました。 max-reserved-bandwidth
サポートされている Cisco IOS リリースと詳細な背景情報については、「ATM PVC での max-reserved-bandwidth コマンドについて」 を参照してください。
フレームリレー PVC では、 コマンドおよび コマンドは、次のいずれかの方法で使用可能な帯域幅の合計量を計算します。 bandwidth
priority
したがって、 コマンドはフレームリレー PVC ではサポートされませんが、設定された帯域幅の量がレイヤ 2 のオーバーヘッドに対応できる十分な大きさであることを確認する必要があります。 max-reserved-bandwidth
詳細については、「フレームリレー PVC の CBWFQ 設定」 を参照してください。
関連情報