web-dev-qa-db-ja.com

tc単純なレート制限

Httpサーバーとの間で送受信されるすべてのhttpトラフィック(入出力)が整形されるように、単純なレート制限を行いたいと思います。

サーバーにGigE接続があり、たとえばすべてのHTTPトラフィックを50 mbpsにレート制限したいと思います(このサービスはローカルスピードテストに使用されます)。

私はすでにtcでいくつかのセットアップを試しましたが、何も機能しませんでした。どうすれば簡単にそれを実行できるでしょうか。

総トラフィック(集約HTTP)が50 mbpsを超えて過度に低下することは決して望んでおらず、同じVLAN(GigE)から別のサーバーでテストを実行すると、50mbpsを取得することを期待します。

ありがとう、よろしく、

1
user57921

入力および出力のhttpトラフィックを制限する簡単なスクリプト:

#!/bin/bash

INT="eth1"

case "$1" in
start|restart)
        tc qdisc del dev $INT handle ffff: ingress 2>/dev/null
        tc qdisc add dev $INT handle ffff: ingress
        tc filter add dev $INT parent ffff: protocol ip prio 50 u32 match ip dport 80 0xffff police rate 50Mbit burst 10m drop flowid :1
        tc qdisc del dev $INT root handle 1: htb 2>/dev/null
        tc qdisc add dev $INT root handle 1: htb
        tc class add dev $INT parent 1: classid 1:1 htb rate 1000Mbit
        tc class add dev $INT parent 1:1 classid 1:5 htb rate 50Mbit prio 1
        tc filter add dev $INT parent 1:0 prio 1 protocol ip u32 match ip dport 80 0xffff flowid 1:5
        ;;
stop)
        tc qdisc del dev $INT handle ffff: ingress 2>/dev/null
        tc qdisc del dev $INT root handle 1: htb 2>/dev/null
        ;;
*)
        echo "Use: $0 start|stop"
esac

動作中のスクリプト: http://linux.dyndns-work.com/video/linux_tc_simple_shape_ingress_and_egress_traffic.ogv/

3
hiemye

htb-tools http://htb-tools.skydevel.ro/ を使用できます。tcも使用しますが、使いやすいです。

0
chocripple