ssh
や telnet
など) や小さなブロックのデータだけを取り扱うサービスに関連するパケットに高い優先順位を付けることが可能です。
tc
コマンド (iproute パッケージの提供する) を使って設定します。このコマンドはインターフェースがかなり複雑なので、高レベルツールを使うことを推奨します。
wondershaper
(よく似た名前のパッケージに含まれます) の主目的はネットワーク負荷とは無関係に待ち時間を最小化することです。このコマンドを使うことで、全トラフィックがある値に制限されます。この値には帯域を飽和させるよりほんの少しだけ小さな値を設定します。
wondershaper interface download_rate upload_rate
を実行することでトラフィックが制限されます。インターフェースはたとえば eth0
または ppp0
などで、各制限値はキロビット毎秒単位です。特定のインターフェースで実施されているトラフィック制限を無効化するには wondershaper remove interface
コマンドを使います。
/etc/network/interfaces
ファイルに up
と down
指示文を追加して、それぞれインターフェースが開始された後と停止される前に実行するコマンドを宣言します。以下にその例を示します。
例 10.9 /etc/network/interfaces
ファイルの修正
iface eth0 inet dhcp up /sbin/wondershaper eth0 500 100 down /sbin/wondershaper remove eth0
/etc/ppp/ip-up.d/
内に wondershaper
を呼び出すスクリプトを作成することで、接続が開始された後の可能な限り早い時期にトラフィック制御を行うように設定できます。
pfifo_fast
キュースケジューラを使います。これは興味深い機能を提供します。各 IP パケットの優先度はパケットの ToS フィールド (Type of Service) によって決まります。さらに、スケジューリング機能を活用するには、このフィールドを修正するだけで十分です。ToS フィールドの取り得る値は以下の 5 種類です。
iptables -t mangle -A PREROUTING -p tcp --sport ssh -j TOS --set-tos Minimize-Delay iptables -t mangle -A PREROUTING -p tcp --dport ssh -j TOS --set-tos Minimize-Delay