web-dev-qa-db-ja.com

IPのネットワーク帯域幅を制限する

トラフィック管理アプリの場合、クライアントのIPアドレスの帯域幅を制限する必要があります。IPごとに異なる制限があります。

特定のIPアドレスにtc-tbfを使用する方法

または他の解決策はありますか?

1
hamedsh

数日後私はそれをします

私はfreeradius上のopenvpnにそれを使用します

tc qdisc del dev br0 root
tc qdisc add dev br0 root handle 1: htb
tc class add dev br0 parent 1: classid 1:1 htb rate "LineBandwidth"kbit
tc class add dev br0 parent 1:1 classid 1:10 htb rate "MinUserBand"kbit ceil "MaxUserBand"kbit prio 2       #----- bandwidth and classid
tc filter add dev br0 parent 1:0 prio 2 protocol ip handle 10 fw flowid 1:10                                                        #----- MarkID1 and classId
iptables -t mangle -A POSTROUTING -d "RealUserIP" -j MARK --set-mark 10                                             #----- RealIP and markID1
tc qdisc add dev br0 ingress
tc filter add dev br0 parent ffff: protocol ip handle 50 fw police rate "MinUserBand"kbit mtu 12k burst 10k drop    #----- BandWidth and MarkID2
iptables -t mangle -A PREROUTING -s "RealUserIP" -j MARK --set-mark 50                                                  #----- RealIP and MarkID2
0
hamedsh

個々のIPアドレスの帯域幅を制限するために、私はHTBでTCを務めてきました。ここにいくつかの便利なリンクがあります:

簡単な例として、CLIENT_IPシェル変数に格納されている個々のIPアドレスの帯域幅を制限するために、次のような制限があります。

  • デバイス名= eth0
  • デバイスで使用可能な/許可される合計帯域幅= 1000kbps〜1500kbps
  • デフォルトの帯域幅(フィルターに該当しないクライアントの場合)= 1kbpsから2kbpsまで
  • cLIENT_IPの帯域幅= 100kbps
  • CLIENT_IPの最大帯域幅(使用可能な帯域幅が多い場合)= 200kbps

以下のコマンドで十分です。

tc qdisc add dev eth0 root handle 1: htb default 10

tc class add dev eth0 parent 1: classid 1:1 htb rate 1000kbps ceil 1500kbps 

tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1kbps ceil 2kbps

tc class add dev eth0 parent 1:1 classid 1:11 htb rate 100kbps ceil 200kbps

tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip src ${CLIENT_IP} flowid 1:11
6
Amir Pakdel

あなたの質問に半関連して、クライアントの帯域幅を制限することは、クライアントごとに行う必要があるため、おそらく最善の解決策ではありません。 IPアドレスで指定するのではなく、単一のクライアントが消費できる帯域幅の最大量を指定することをお勧めします。

最善の策は、QoSであり、トラフィックのタイプごとにサービスにさまざまな優先順位を指定することです。

私の知る限り、特定のIPアドレスにtc-tbfを使用することはできません。

http://man.he.net/man8/tc-tbf

単にパフォーマンスを向上させようとしている場合は、この記事を参照してください。

http://lists.debian.org/debian-firewall/2005/07/msg00088.html

1
IceMage

この記事では、iptablesを使用して新しい接続のレート制限を行う方法について説明します。 http://www.debian-administration.org/articles/187

NEWのステートフルチェックを削除し、代わりにソースIPで制限することができます。

0
jaq