CBWFQ は、WFQ(Weighted Fair-queue)に、Class というグループを
定義して、優先制御を行う方式です。
WFQ の基本動作については、以下に解説しています。
WFQ の基本動作
WFQ には以下のような欠点があります。
CBWFQ はには以下のような特徴があります。
WFQ の複数の Flow をまとめて、class という単位でキューを作成します。
この時の Flow のまとめかたをユーザでカスタマイズすることが可能です。
各 class ごとに輻輳時に最低限確保したい帯域を指定することが可能です。
当然輻輳時の最低帯域保障ですから、輻輳が発生していない場合は、
指定した 最低帯域を超えた帯域を使用することが可能です。
Cisco IOS の場合、「bandwidth」コマンドを使用して、最低帯域保障を
設定することが可能です。
CBWFQ は MQC(Modular QoS CLI)にてクラスの分類を行います。
大きく以下の 4 つの手順を実施します。
router(config)# class-map [ match-any | match-all ] name
match-any と match-all はオプションで、意味は以下の通り。
クラス数は最大で 64 まで分類可能です。
続いて、class-map 内で、マッチ条件を設定します。
マッチ条件は、様々な条件を指定することが出来ます。
router(config-cmap)# match access-group
router(config-cmap)# match any
router(config-cmap)# match class-map
router(config-cmap)# match cos
router(config-cmap)# match destination-address mac
router(config-cmap)# match discard-class
router(config-cmap)# match [ip] dscp
router(config-cmap)# match field
router(config-cmap)# match fr-dlci
router(config-cmap)# match input-interface
router(config-cmap)# match ip rtp
router(config-cmap)# match mpls experimental
router(config-cmap)# match mpls experimental topmost
router(config-cmap)# match not
router(config-cmap)# match packet length
router(config-cmap)# match port-type
router(config-cmap)# match [ip] precedence
router(config-cmap)# match protocol
router(config-cmap)# match protocol citrix
router(config-cmap)# match protocol fasttrack
router(config-cmap)# match protocol gnutella
router(config-cmap)# match protocol http
router(config-cmap)# match protocol rtp
router(config-cmap)# match qos-group
router(config-cmap)# match source-address mac
router(config-cmap)# match start
router(config-cmap)# match tag
続いて、設定したクラスごとに、ポリシーを定義します。
ポリシーの定義で、最低帯域保障や最大パケット数の設定を行います。
最低帯域保障は「bandwidth」コマンドで指定します。
router(config-pmap-c)# bandwidth [ {kbps} | percent {value} | remaining percent {value}]
指定方法は 3 通り。
ここで、ユーザが設定したどのクラスにも分類されないパケットは、
「class-default」というクラスに分類されます。
「class-default」内の QoS 動作は FIFO となります。
(WFQ 動作にすることも可能)
ちなみに、使用できる帯域幅は物理帯域の 75% を上限としています。
残りの 25% はルーティングアップデートや keepalive パケット などで
使用するためこのような仕様となっています。
上限 75% を変更したい場合は、インタフェース内で以下のコマンドを
設定します。
router(config-if)# max-reserved-bandwidth <1-100>
また、各クラスに最大パケット数を設定することも可能です。
router(config-pmap-c)# queue-limit {value}
queue-limit のデフォルト値は「64」です。
最後にインタフェースにポリシーを適用します。
router(config-if)# service-policy [input | output] {policy-map-name}
ここまで説明してきた全体の設定例を記載しておきます。
class-map match-all CL-A
matchdscp 43
class-map match-all CL-B
match access-group 110
class-map match-any CL-C
matchprecedence 2
match protocol ftp
!
policy-map TEST
class CL-A
bandwidth percent 30
class CL-B
bandwidth percent 40
class CL-C
bandwidth percent 5
class class-default
queue-limit 128 packets
!
interface FastEthernet0/0
ip address 157.2.170.149 255.255.255.0
service-policy output TEST
!
access-list 110 permit ip any 10.1.1.0 0.0.0.255
設定の確認は「show policy-map interface」コマンドで実施します。
R1#show policy-map interface fastEthernet 0/0
FastEthernet0/0
Service-policy output: TEST
Class-map: CL-A (match-all)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match:dscp 43
Queueing
queue limit 64 packets
(queue depth/total drops/no-buffer drops) 0/0/0
(pkts output/bytes output) 0/0
bandwidth 30% (30000 kbps)
Class-map: CL-B (match-all)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group 110
Queueing
queue limit 64 packets
(queue depth/total drops/no-buffer drops) 0/0/0
(pkts output/bytes output) 0/0
bandwidth 40% (40000 kbps)
Class-map: CL-C (match-any)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match:precedence 2
0 packets, 0 bytes
5 minute rate 0 bps
Match: protocol ftp
0 packets, 0 bytes
5 minute rate 0 bps
Queueing
queue limit 64 packets
(queue depth/total drops/no-buffer drops) 0/0/0
(pkts output/bytes output) 0/0
bandwidth 5% (5000 kbps)
Class-map: class-default (match-any)
26 packets, 2492 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: any
26 packets, 2492 bytes
5 minute rate 0 bps
queue limit 128 packets
(queue depth/total drops/no-buffer drops) 0/0/0
(pkts output/bytes output) 26/2492
QoSとは
QoSの基本
QoS - クラス分類とマーキング
クラス分類とマーキングについて学んでいきましょう
QoS - それぞれの機能
QoSの3つの基本機能について
QoS - 輻輳制御 (Queueing)
輻輳制御 (Queueing)についての解説
QoS - プライオリティ・キューイング(PQ)
プライオリティ・キューイングについての解説
QoS - カスタムキューイング(Custom queueing)
カスタム・キューイングについての解説
QoS - カスタムキューイング(Custom queueing)その2
カスタム・キューイングについての解説
QoS - WFQ(Weighted Fair Queue)その1
WFQ(Weighted Fair Queue)についての解説
QoS - WFQ(Weighted Fair Queue)その2
WFQ(Weighted Fair Queue)についての解説
QoS - IP Precedence
IP Precedenceについての解説
QoS - DSCP
DSCPについての解説
QoS - CBWFQ
CBWFQについての解説
QoS - LLQ (Low Latencey Queuing)
LLQについての解説
QoS - WRED(Weighted Random Early Detection)
WREDについての解説
QoS - ポリシングとシェーピング
ポリシングとシェーピングについての解説
QoS - GTS(Generic Traffic Shaping)
GTSについての解説
ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!
これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。
もちろん無料です!!
↓メールマガジン購読はこちら↓