web-dev-qa-db-ja.com

UbuntuサーバーのQOS

次のスクリプトをubuntuサーバーで実行したいと思います。 eth1はNATインターフェイスであり、eth2は静的パブリックIPを持つWANインターフェイスです:

TCA="tc class add dev eth2"
TFA="tc filter add dev eth2"
TQA="tc qdisc add dev eth2"
SFQ="sfq perturb 10"
tc qdisc del dev eth2 root
tc qdisc add dev eth2 root handle 1: htb
tc class add dev eth2 parent 1: classid 1:1 htb rate 4560kbit
$TCA parent 1:1 classid 1:10 htb rate 2280kbit ceil 4560kbit prio 0
$TCA parent 1:1 classid 1:11 htb rate 912kbit ceil 4560kbit prio 1
$TCA parent 1:1 classid 1:12 htb rate 912kbit ceil 4560kbit prio 2
$TCA parent 1:1 classid 1:13 htb rate 10kbit ceil 10kbit prio 4
$TQA parent 1:10 handle 10: $SFQ
$TQA parent 1:11 handle 11: $SFQ
$TQA parent 1:12 handle 12: $SFQ
$TQA parent 1:13 handle 13: $SFQ
$TFA parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10
$TFA parent 1:0 prio 1 protocol ip handle 11 fw flowid 1:11
$TFA parent 1:0 prio 2 protocol ip handle 12 fw flowid 1:12
$TFA parent 1:0 prio 4 protocol ip handle 13 fw flowid 1:13
iptables -t mangle -A POSTROUTING -p tcp --sport 80 -j MARK --set-mark 10
iptables -t mangle -A POSTROUTING -p tcp --sport 443 -j MARK --set-mark 11
iptables -t mangle -A POSTROUTING -p tcp --sport 995 -j MARK --set-mark 12
iptables -t mangle -A POSTROUTING -p tcp --sport 1024:65535 -j MARK --set-mark 13
TCAU="tc class add dev imq0"
TFAU="tc filter add dev imq0"
TQAU="tc qdisc add dev imq0"
modprobe imq
modprobe ipt_IMQ
ip link set imq0 up
tc qdisc del dev imq0 root
tc qdisc add dev imq0 root handle 1: htb
tc class add dev imq0 parent 1: classid 1:1 htb rate 4560kbit
$TCAU parent 1:1 classid 1:13 htb rate 10kbit ceil 10kbit prio 4
$TQAU parent 1:13 handle 13: $SFQ
$TFAU parent 1:0 prio 4 protocol ip handle 13 fw flowid 1:13
iptables -t mangle -A PREROUTING -p tcp --dport 1024:65535 -j MARK --set-mark 13
iptables -t mangle -A PREROUTING -j IMQ --todev 0  

私がする時 modprobe imqおよびmodprobe ipt_IMQエラーが発生しますkernel module is not found。このスクリプトをubuntuサーバーで動作させる方法はありますか?

2
nixnotwin

IMQのサポートを追加するには、カーネルにパッチを適用する必要があります。ここにパッチがあります http://www.linuximq.net/patches.html そしてここにそれをコンパイルする方法の詳細な手順があります: http://ubuntuforums.org/showthread .php?t = 1404537

よろしく

3
Sacx

Ubuntuにはすぐに使えるソリューションはありません。 imqパッチを適用してカーネルを再コンパイルする必要があります。それを行う方法についてはたくさんのチュートリアルがあります。これが私が最初に見つけたものです: http://ubuntuforums.org/showthread.php?t=1404537

3
fab

私が理解していることから、ifbデバイスはimqの後継です。私はimq/ifbキューイングに非常に慣れていませんが、それらは互いに同じように使用できると思います。 Sudo modprobe ifbを実行すると、ifbモジュールをロードできます。また、「IMQパッチもありますが、お勧めしません。IMQの設計は安全ではなく、ifbの方が優れています」( http://www.spinics.net/lists/netfilter)から/msg49306.html )。

1
Azendale