CBWFQ ( Class-Based WFQ )



 CBWFQとは

 このキューイングは、管理者が定義したクラスごとに個別のキューが割り振られるキューイング方式です。
 クラスとはトラフィックのグループのこと意味します。このクラスは最大で [ 64 ] を作成することができます。

 CBWFQは、CQとWFQの機能の2つの要素を持っています。CQではキューごとに帯域幅をバイトカウント
 により指定していましたが、CBWFQではキューごとに [ bandwidth ] コマンドにより最低保証帯域幅を指定
 することができます。WFQではキューごとに格納するパケットの優先度に基づき、キューのウェイト付けが
 行われましたが、CBWFQでも [ bandwidth ] の指定により、実質的にはキューのウェイト付けが行われる。
 また、CBWFQにおいても、手動で作成された各キューの中にあるパケットは小さいものから排出されます。
 ※ CCOでは [ bandwidth ] による最低保証帯域幅の指定が可能と謳われていますが、実際には、ウェイト比率の値と言えます。

 


 CBWFQ のコンフィグ

 CBWFQでは、先ず [ class-map ] コマンドによりトラフィックの分類を行います。[ class-map ] コマンドの
 後のキーワードである [ match-any ] は、複数のmatch条件が指定されていた場合、いずれかの1つに
 合致すればmatchしたと見なし、[ match-all ] は、複数のmatch条件が指定されていた場合、その全て
 に合致すればmatchしたと見なします。これらのキーワードを指定しない場合はデフォルトで [ match-all ]。


 Cisco(config)# class-map [ match-any | match-all ] name


 次に、そのclass-map内でのmatch条件を指定します。この設定は作成するclassの数だけ繰り返します。


 Cisco(config-cmap)# match access-group ACL-number | NameACL-number
 Cisco(config-cmap)# match input-interface name

 Cisco(config-cmap)# match ip precedence value
 Cisco(config-cmap)# match ip dscp value
 Cisco(config-cmap)# match protocol name
 Cisco(config-cmap)# match protocol http [ url string | host string | mime type ]
 Cisco(config-cmap)# match fr-dlci number


 次に、作成したクラスに対してクラスごとのポリシーを定義します。複数のポリシーを適用することが可能。
 ポリシーマップのコンフィグレーションは2種類あります。管理者が作成するclass-mapに対するポリシーの
 定義と、policy-mapの最後に自動作成される [ class-default ] というclassに対するポリシーマップの定義。
 ※ ユーザで作成したclassにmatchしないトラフィックは [ class-default ] というclassに自動的に割り当てられることになります。

 - ユーザ作成のclass-mapに対するポリシー定義 -

 Cisco(config)# policy-map name
 Cisco(config-pmap)# class-mapname

 Cisco(config-pmap-c)# bandwidth [ kbps | percent percent ]

 Cisco(config-pmap-c)# queue-limit number-of-packtes

 or  
 Cisco(config-pmap-c)# bandwidth [ kbps | percent percent ]

 Cisco(config-pmap-c)# random-detect

 Cisco(config-pmap-c)# random-detect precedence value min-threshold max-threshold denominator


 - 自動作成されるclass-defaultのclass-mapに対するポリシー定義 -

 Cisco(config)# policy-map name
 Cisco(config-pmap)# class class-default

 Cisco(config-pmap-c)# bandwidth [ kbps | percent percent ]

 Cisco(config-pmap-c)# fair-queue number-of-dynamic-queue

 Cisco(config-pmap-c)# queue-limit number-of-packtes
 or
 Cisco(config-pmap-c)# bandwidth [ kbps | percent percent ]
 Cisco(config-pmap-c)# fair-queue number-of-dynamic-queue

 Cisco(config-pmap-c)# random-detect
 Cisco(config-pmap-c)# random-detect precedence value min-threshold max-threshold denominator



 
policy-mapコマンド 説明
bandwidth  そのキューに割り当てる輻輳時の最低保証帯域幅を「Kbps」、または物理I/Fに対しての「%」で指定。
queue-limit  そのclassのキューの深さをパケット数指定。デフォルトは64。テールドロップを実装する場合に使用。
random-detect  queue-limitを使用したテールドロップではなく、輻輳回避にWREDを有効にする場合に使用。詳細後述。
fair-queue  class-default のクラスで使用するコマンド。class-defaultのクラスでWFQを実行したい場合に使用。
random-detect
各パラメータ
説明
precedence value  IP Precedence値を指定。
min-threshold  しきい値の最小値をパケット数で指定。このしきい値を超えると「denominator」の廃棄率でパケット廃棄。
max-threshold  しきい値の最大数をパケット数で指定。このしきい値を超えるとそれ以降に着信する全パケットの廃棄。
denominator  min-thresholdを越えた時に廃棄するパケットの分数の分母。10と指定した場合、10パケットに1つ廃棄。

 ※ bandwidthkbps と bandwidth percent % コマンドは排他的な関係。queue-limit と random-detect コマンドも排他的な関係。

 ※ bandwidthコマンドで帯域幅指定はclassの合計で物理帯域の75%を上限とする。残りの25%はルーティングトラフィックなどで
   使用する。75%以上の帯域幅の指定を行いたい場合、物理I/F上で以下のコマンドによりその上限を変更することができます。


 Cisco(config-if)# max-reserved-bandwidth percent


 最後に、作成したポリシーマップを I/F に [ out ] で適用させてCBWFQの発動準備を行います。参考


 Cisco(config-if)# service-policy output policy-map-name



 Resource : QoS 書籍一覧  Cisco QoS書籍一覧  Cisco QoS Command Guide 12.4  Cisco QoS Configuration Guide 12.4 



ネットワークエンジニアとして

Copyright(C) 2002-2008 Cool. All Rights Reserved