PFのQueuing

日本語の実行例がまるで無いPFのQueueingについてメモ代わりに


pf.confより抜粋

# Queueing: rule-based bandwidth control.
#altq on $ext_if bandwidth 2Mb cbq queue { dflt, developers, marketing }
#queue dflt bandwidth 5% cbq(default)
#queue developers bandwidth 80%
#queue marketing bandwidth 15%
# assign packets to a queue.
#pass out on $ext_if from 192.168.0.0/24 to any keep state queue developers
#pass out on $ext_if from 192.168.1.0/24 to any keep state queue marketing

以上を元に自分用に作った最初のがこれ
感覚で大体わかったけど・・・

net_service = “{smtp ssh domain http https imap ftp}”
#### Queueing ####
altq on fxp0 bandwidth 50Mb cbq queue {dflt service}
queue dflt bandwidth 80% cbq(default)
queue service bandwidth 20%
pass in quick on $ext_if proto tcp from any to $ext_addr port $net_service flags S/SA keep state queue service

altqから始まる行は、IFと最高速度を明示する。{}内は制御用の定義。
実はmpdのngIFはaltqをサポートしてないので設定出来ませぬ。
なのでWAN側の実IFを指定しよう、この例ではfxp0。
queueから始まる部分が速度の調整、%指定だけどbps指定とか出来るのかな、今度試してみよう。
定義内容は見ればわかりますが、
明示されない部分の帯域を指定する、デフォルトの帯域で最後に「cbq(default)」が必要
デフォルトは必ず必要で、無いと文句言われてロードしてくれません。
「service」の帯域を指定。この場合50Mbsの20%、つまり10Mbps、2Mbyte/s。
*bandwidthのトータルは100%になってないとコンフィグをロード出来ません。
これで帯域制限がかかるようになりました。
おお、ばっちり速度が頭打ちにヽ(´ー`)ノpfマンセー
**今後やりたいこと**
manを読んでたら、ツリー構造で帯域制御出来るっぽい
サービスごとにプライオリティと帯域設定してQoSをやるのはおもしろいかも。
個人的には優先度がしっかり機能すれば帯域指定はあんまり気にしないんだけど
(必要なサービスに空いている帯域全部割り振られればそれでいい)

タイトルとURLをコピーしました