Dummynet続き

DummynetのQoS設定が判らないので試験環境を用意して実際に動作を確認してみました。

試験環境では、QoSの効果を体感しやすくするためにpipeで128kbpsの帯域制限をかけています。
この状態で巨大ファイルを転送しながらsshで操作が可能か確認を行いました。

MASK無し

ipfw pipe 1 config bw 128k
ipfw sched 1 config type WF2Q+
ipfw queue 1 config sched 1
ipfw queue 1 ip from any to any

sshでキー入力を行ってもエコーが秒単位で返ってこない。
QoSは全く機能していない。

FLOW_MASK

ipfw pipe 1 config bw 128k
ipfw sched 1 config type WF2Q+
ipfw queue 1 config sched 1 mask all
ipfw queue 1 ip from any to any

キー入力の応答は即時に返ってくるが、たまに応答の遅れを感じる。

SCHED_MASK

ipfw pipe 1 config bw 128k
ipfw sched 1 config type WF2Q+ mask all
ipfw queue 1 config sched 1
ipfw queue 1 ip from any to any

キー入力の応答は即時に返ってくる。
応答の遅れなどは感じられない。

簡単なテストですが、QoSを動作させるには queueまたはschedでmask設定が必要だと判りました。
そして、schedでmask設定を行った方がより滑らかにQoSが動作しているように感じられました。

<20時57分 追記>
と言う訳で、DummynetでQoS設定を行う場合はschedのSCHED_MASKでトラフィックフローの振り分けを行うのが正解っぽいです。
スケジューリングアルゴリズムをFIFOにしたところ、SCHED_MASKを設定すると想定外の動作となりました。
FIFOならバーストトラフィックに帯域占有されるはずなのですが、WF2Q+と同様にsshのレスポンスが即時に帰ってきてしまいます。
FIFOとは思えない動作なので、想定通りの動作であったFLOW_MASKの設定が正しいようです。

この辺りは余裕が有る時に追試したいと思います。