Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

Linux で QoS

LinuxQoS (厳密には、帯域制限とパケットの優先順位付け)をしようとする場合、少なくとも cbq.init を使うのなら、対象とできるのは iptables でいう FORWARD と OUTPUT チェインだけで、INPUT チェインについては対象にできない。
ルータの機能と UNIX 環境を 1 台のマシンで兼ねて提供している場合には注意が必要。UNIX なマシンに入ってくる ssh のパケットは優先順位を高く、とかしようとしてもできない。どの道、そのような環境で無理矢理帯域制限をしようとしても、source がルータであるパケット(例えば samba のパケット)と the Internet であるパケットとの区別ができないのでとても不便。素直にルータ専用機を導入した方がよい。

あと、cbq.init で要求されている kernel のコンパイルオプション(CBQ とか TBF とか)を指定するときは、module でなくて kernel built-in にしてしまった方が無難。Vine Linux だと、module に指定してコンパイルしたけど sch_cbq.o が見つからない、という状況に陥った。