web-dev-qa-db-ja.com

Squidプロキシサーバー:合計帯域幅を制限する

ファイリング用のdansguardianを備えた素晴らしいsquidプロキシがあり、どちらも非常にうまく機能します。合計帯域幅の使用を制限する簡単な方法はありますか?合計帯域が2000であるため、インターネットで使用するイカユーザーの最大数を1200に設定したいと思います。残りは、VoIPなどの他のサービスが「インターネット側」での大量のダウンロードに関連する問題なしに機能するようにするために必要です。接続および同様の問題。私は、ユーザーベースではなく、イカの総帯域幅制限を意味します。

みなさん、ありがとうございました。

3
Pitto

次のようなルールでシェーピングを設定できます。

tc qdisc del dev eth0 root

tc qdisc add dev eth0 root handle 1: htb default 1 r2q 160

tc class add dev eth0 parent 1: classid 1:1 htb rate 2000kbit burst 1k
tc class add dev eth0 parent 1:1 classid 1:2 htb rate 2000kbit ceil 2000kbit burst 1k
tc class add dev eth0 parent 1:1 classid 1:3 htb rate 1200kbit ceil 1200kbit burst 1k

tc qdisc add dev eth0 parent 1:2 handle 2: sfq perturb 10
tc qdisc add dev eth0 parent 1:3 handle 3: sfq perturb 10

次に、iptablesを使用して、パケットを次のクラスに分類できます。

iptables -t mangle -A POSTROUTING -o eth0 --set-class 1:2
iptables -t mangle -A POSTROUTING -o eth0 -m tcp -p tcp --dport 80 -j CLASSIFY --set-class 1:3

これはクラスを設定する最後の一致ルールであり、1つのルールが一致しても短絡しないことに注意してください。それを理解するのに少し時間がかかりました。

3

はい、YoyはSquidの合計帯域幅を制限できます。たとえば、512 Kbpsですか?
以下を/ etc/squid3/squid.confに追加します

delay_pools 1  
delay_class 1 1  
delay_access 1 allow all  
delay_parameters 1 64000/64000          # 512 kbits == 64 kbytes per second  

設定ファイルを変更した後、squidrunの実行中のインスタンスを変更するには
Sudo squid3 -k reconfigure

参照
DelayPools
帯域幅制限-HOWTO

7
totti