私はこれが古い投稿であることを知っていますが、今日でも答えを探してつまずきました。25Mbsのダウンリンクと2.5Mbsのアップリンクがあり、このリンクを共有する4人と5台のサーバーがあります。サーバーでは、アップリンク帯域幅が重要ですが、ダウンリンクは4人で便利なので、誰もがすべてを使い切ることはありません。
CentOS 6.3をルーターとして実行していますが、これらのコマンドはどのLinuxでも動作するはずです。eth0はプロバイダーへのアップリンクですeth1は24ポートスイッチとwifiアクセスポイント経由のLANです。ダウンロードを25 Mbsのうち5つに制限します(約500 KB /秒)アップロードを200 Kbitに制限します(約25 KB /秒)
tc qdisc add dev eth0 root handle 1:0 htb default 99
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 100Mbit ceil 100Mbit
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 200Kbit ceil 200Kbit prio 2
tc qdisc add dev eth0 parent 1:11 handle 10: sfq perturb 10
tc qdisc add dev eth1 root handle 2:0 htb default 99
tc class add dev eth1 parent 2:0 classid 2:1 htb rate 100Mbit ceil 100Mbit
tc class add dev eth1 parent 2:1 classid 2:11 htb rate 5Mbit ceil 5Mbit prio 2
tc qdisc add dev eth1 parent 2:11 handle 20: sfq perturb 10
ユーザーを制限するには、ユーザーごとに2つのiptables行を使用します
アップロードを制限するには:
iptables -t mangle -A POSTROUTING -o eth0 -p tcp -s 192.168.0.100 -j CLASSIFY --set-class 1:11
ダウンロードを制限する
iptables -t mangle -A POSTROUTING -o eth1 -p tcp -d 192.168.0.100 -j CLASSIFY --set-class 2:11
IPアドレスとethポートを変更して、制限する相手に一致するようにします