[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

OT: Traffic Shaping mit HTB



Hallo,
ich hab mich mal daran versucht den Traffic auf meinem Router etwas
sinnvoller aufzuteilen. Nun habe ich aber noch folgendes "Problem" immer
wenn ich mein script starte bekomme ich diese Warnungen:

HTB init, kernel part version 3.16
HTB: quantum of class 10010 is small. Consider r2q change.
HTB: quantum of class 10020 is small. Consider r2q change.
HTB: quantum of class 10040 is small. Consider r2q change.

Das r2q steht auf 7, so wie es auch sein sollte wenn man den
Berechnungen die man so im Netz findet glauben schenken darf. Die
Fehlermeldungen verschwinden erst wenn ich den Wert auf 1 setze. Die
Frage ist jetzt warum?

Hier mal das Script:

#!/bin/sh
ext_dev=ppp0
# bw_up muss etwas kleiner sein als der wirkliche upstream
up_rate=125kbit

# wenn schon konfiguriert => alles loeschen
if [ -n "`tc qdisc show dev $ext_dev`" ]
then
        tc qdisc del dev $ext_dev root
fi

#Kernel Modul laden
modprobe ipt_mark

# root qdisc (queuing discipline) anlegen
tc qdisc add dev $ext_dev root handle 1: htb default 30 r2q 7

# root class anlegen
tc class add dev $ext_dev parent 1: classid 1:1 htb rate $up_rate

# jetzt 4 klassen anlegen
# (die summe der rate's darf nicht groesser sein als die rate
# des parents)

# 1) tcp acks (pakete <= 64byte) haben höchste Priorität
tc class add dev $ext_dev parent 1:1 classid 1:10 htb rate \
10kbit ceil $up_rate prio 0

# 2) bevorzugter Traffic
tc class add dev $ext_dev parent 1:1 classid 1:20 htb rate \
30kbit ceil $up_rate prio 1

# 3) Die Standardklasse
tc class add dev $ext_dev parent 1:1 classid 1:30 htb rate \
75kbit ceil $up_rate prio 2

# 4) benachteiligter traffic (z.b. edonkey)
tc class add dev $ext_dev parent 1:1 classid 1:40 htb rate \
10kbit ceil 100kbit prio 3

# jetzt werden die Filter angelegt, die die pakete je nach
# markierung durch
# iptables in die einzelnen klassen lenken
tc filter add dev $ext_dev parent 1: prio 0 protocol ip handle \
10 fw flowid 1:10

tc filter add dev $ext_dev parent 1: prio 1 protocol ip handle \
20 fw flowid 1:20

tc filter add dev $ext_dev parent 1: prio 2 protocol ip handle \
30 fw flowid 1:30

tc filter add dev $ext_dev parent 1: prio 3 protocol ip handle \
40 fw flowid 1:40

 ##############
 # IPTables Regeln zum markieren der Pakete
 #############

#Erstmal die -t mangle löschen
iptables -t mangle -F

# TCP Acks bekommen die höchste Priorität
iptables -t mangle -A FORWARD -o $ext_dev -p tcp -m length \
--length :64 -j MARK --set-mark 10

iptables -t mangle -A OUTPUT -o $ext_dev -p tcp -m length \
--length :64 -j MARK --set-mark 10

# SSH wird bevorzugt
iptables -t mangle -A OUTPUT -o $ext_dev -p tcp --dport 22 -m \
tos --tos Minimize-Delay -j MARK --set-mark 20

iptables -t mangle -A FORWARD -o $ext_dev -p tcp --dport 22 -m \
tos --tos Minimize-Delay -j MARK --set-mark 20

# MLDonkey bremsen
iptables -t mangle -A OUTPUT -o $ext_dev -m owner --cmd-owner \
mlnet -j MARK --set-mark 40
        

-- 
    .~.    ---------------------------
    /V\   | Kai Timmer                |
   // \\  | mailto: mail@kaitimmer.de |
  /(   )\ | ICQ: 67765488             |
   ^'~'^   ---------------------------
Realitaet ist da wo der Pizzamann herkommt...



Reply to: