WFQ ( Weighted Fair Queueing )



 ◆ WFQ(Weighted Fair Queueing)とは

 WFQでは、送信元 ⇔ あて先の間で発生するトラフィックフローを
動的に検出して、フローごとに個別の
 キューを自動管理します。PQでは「priority-list」CQでは「custom-queue-list」を作成していましたが
 WFQでは
自動的にキューが作成されるため、キューを作成するための設定は必要ありません。パケットの
 優先度については、IPパケットのToSフィールドにある
IP Precedence値を使用して決定します。


  


 トラフィックフローは「送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号」等で
 識別されます。例えば「 IP:192.168.0.1 port:1030 」から「 IP:10.1.1.1 port:23 」にtelnetとすると
 これで1つのトラフィックフローとしてルータは動的に検出して1つのキューを作成します。トラフィック
 フローはWFQが有効なI/Fで「show queue interface inteface-id」とすると
Conversationの項目として
 カウントされてその統計値を確認することができます。



 ◆ WFQの種類

 WFQは正確には以下の4種類があります。今回解説するいわゆるWFQはFlow-Based WFQのことです。

 ・ WFQ(Flow-Based WFQ)
 ・ DWFQ(Distributed WFQ)
 ・ CBWFQ(Class-based WFQ)
 ・ DCBWFQ(Distributed Class-Based WFQ )

 WFQは自動でキューの管理、リスト作成してくれて便利ですがカスタマイズできない問題もあります。
 この問題点を解消するためにClass-Based WFQが開発されて、現在では主流のキューイング方式です。


 ◆ WFQ - トラフィックフロー(conversation)の分類基準

 WFQでは以下の基準でフローを分類して、フローごとにキューを動的に作成します。

 ・ 送信元IPアドレス
 ・ あて先IPアドレス
 ・ 送信元ポート番号
 ・ あて先ポート番号
 ・ プロトコルタイプ
 ・ ToSフィールド


 ◆ WFQの動作

 IPプレシデンス値が付加されたパケットが全くない場合、WFQでは輻輳時にインターフェース上で全ての
 キューから、等しいレートでパケットを送信します。従って、あるトラフィックフローでFTP通信を行って
 いても、FTP通信でインターフェースの帯域が占有されるようなことはありません。次に、どのキューから
 パケットが排出されるかですが、
パケットサイズが小さいパケットを格納するキューから排出を始めます。



 ◆ WFQの動作

 WFQでは
IPプレシデンス値が大きいパケットほど優先されて処理されます。キューのウェイト(重み)は、
 IPプレシデンスの値が大きいほど小さくなり、
キューのウェイトが小さい値ほど優先処理される仕組みです。
 例えば、IPプレシデンス値が「1」のパケットが格納されるキューは、「0」のパケットが格納されるキュー
 に比べて毎秒約2倍のバイト数のパケットをキューから排出することになります。

IPプレシデンス値 ToS Byte Value Weight(重み)
0 0(0x00) 32768
1 32(0x20) 16384
2 64(0x40) 10920
3 96(0x60) 8192
4 128(0x80) 6552
5 160(0xA0) 5456
6 192(0xC0) 4680
7 224(0xE0) 4096


 QoS文献により、Weight値は「32384、16192、10794、8096、6476、5397、4626、4048」とあります。
 これらの値はソフトウェアバージョンにより異なる場合もあり、あくまで参考情報として頂ければと思います。




 ◆ WFQ - Ciscoルータのコンフィグ設定

 WFQのコンフィグ設定は、2Mbps以下の速度のインターフェースでデフォルトで有効化されています。つまり
 Serialインターフェースなどでデフォルトで有効化されています。ちなみに、10Mbps、100Mbps、1Gbpsなど
 いわゆるLANインターフェースでは、デフォルトで「FIFO」が有効化されています。

 そして、WFQではデフォルトで動的にキューが作成されることから、特に何も設定の必要はありません。なお
 WFQが有効化されているかどうかは、show interfaceコマンドの真ん中の行にて、以下の情報で確認できます。

 Queueing strategy:
weighted fair


 無効化されていて有効化したい場合、次の「
fair-queue」と1行コマンド設定するだけで有効化できます。
 また、オプションの設定のパラメータを変更したい場合にも、以下のコマンド構文によって設定をします。

 ◆ WFQの設定
 (config)#
interface interface-id
 (config-if)#
fair-queue [congestive-discard-threshold [ dynamic-queues [ reservable-queues ]]]

コマンド引数 Packet Limits
congestive-discard-threshold


 デフォルト値:64。1つのキューに保持できるメッセージ数。conversationがこのしきい値
 を超えると新しいメッセージのパケットは破棄される。1〜4096の間で指定できる。

dynamic-queues


 動的に作成されるキューの最大数。16、32、64、128、256、512、1024、2048、4096の
 値から設定する。

reservable-queues


 デフォルト値:0。予約されたトラフィックフローのために使用されるキューの数。例えば
 RSVP用に予約するトラフィックフローなどのために使用される設定。0 〜 1000 間で指定。



 ※ Serial0/0を例として、「 show interface serial0/0 」「 show queue serial0/0 」などでステータス確認することができます。



QoS

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

Copyright (C) 2002-2024 ネットワークエンジニアとして All Rights Reserved.