Einfaches Bandbreitenmanagement

Z

Zero Tolerance

Grünschnabel
Hallo liebe Leuts!

Ich versuche mich zur Zeit ein wenig an Bandbreitenmanagement mit HTB und hänge jetzt ein wenig fest. Vllt kann mir ja hier jemand helfen bzw. ein paar Tips, geben.

Situation ist folgende: Ein kleines Netzwerk mit 3 Rechnern. Auf diese 3 Rechner möchte ich jetzt den Upstream (rosa-Riese-DSL) mehr oder weniger gerecht verteilen.

Rechner I: 10 kb/s
Rechner II: 3 kb/s
Rechner III: 3 kb/s

Als Grundlage habe ich einen recht gut verständlichen Artikel aus einer vergangenen ct genommen und erstmal folgende Klassen eingerichtet:

/sbin/tc qdisc add dev ppp0 root handle 1:0 htb default 11

/sbin/tc class add dev ppp0 parent 1:0 classid 1:1 htb rate 125kbit ceil 125kbit

/sbin/tc class add dev ppp0 parent 1:1 classid 1:10 htb rate 15kbit ceil 125kbit prio 0

/sbin/tc class add dev ppp0 parent 1:1 classid 1:11 htb rate 80kbit ceil 125kbit prio 1

/sbin/tc class add dev ppp0 parent 1:1 classid 1:12 htb rate 25kbit ceil 125kbit prio 2

/sbin/tc class add dev ppp0 parent 1:1 classid 1:13 htb rate 25kbit ceil 125kbit prio 3

Die Pakete will ich dann Mithilfe von Iptables markieren.

iptables -A POSTROUTING -t mangle -o ppp0 -p tcp -m length --length :64 -j MARK --set-mark 10

iptables -A POSTROUTING -t mangle -o ppp0 -p tcp -d 192.168.0.2 -j MARK --set-mark 11
iptables -A POSTROUTING -t mangle -o ppp0 -p udp -d 192.168.0.2 -j MARK --set-mark 11

iptables -A POSTROUTING -t mangle -o ppp0 -p tcp -d 192.168.0.3 -j MARK --set-mark 12
iptables -A POSTROUTING -t mangle -o ppp0 -p udp -d 192.168.0.3 -j MARK --set-mark 12

iptables -A POSTROUTING -t mangle -o ppp0 -p tcp -d 192.168.0.4 -j MARK --set-mark 13
iptables -A POSTROUTING -t mangle -o ppp0 -p udp -d 192.168.0.4 -j MARK --set-mark 13

Ich denke hier liegt auch irgendwo der Fehler beim Markieren der Pakete. Mit den iptables kenne ich micht so allzugut auch noch nicht aus.

Und zum Schluss noch die Filter-Regeln.

tc filter add dev ppp0 parent 1:0 prio 0 protocol ip handle 11 fw flowid 1:11
tc filter add dev ppp0 parent 1:0 prio 0 protocol ip handle 12 fw flowid 1:12
tc filter add dev ppp0 parent 1:0 prio 0 protocol ip handle 13 fw flowid 1:13

Ach ja noch was zum Linux-Router: Im Router steckt ne FritzDSL-Card (ppp0) und eine Netzwerkkarte (eth0) zum Netzwerk hin.

Tja, vllt kann mir der ein oder andere Crack hier ja mal ein wenig auf die Sprünge helfen. Ich wälze in der Zeit mal weiter HowTos.

Danke
Zero Tolerance
 
danielgoehl

danielgoehl

Lehrling
Hi,

ich denke dein Problem ist leicht gelöst. Ich glaube du musst nur deine iptables rules anpassen. Und zwar musst du das "-d" in ein "-s" ändern.

Die original regel besagt, das du alle Pakete makierst die den router auf ppp0 verlassen und zu der IP Adresse "192.168.0.*" gesendet werden.
Es soll aber wohl heissen die von der IP Adresse "192.168.0.*" kommen. Deswegen musst du die IP als source kennzeichnen, mit "-s".

Ich hoffe das kann dir helfen. Wenn nich, dann meld dich nochmal!!
 
Z

Zero Tolerance

Grünschnabel
Ja klar, -s wäre natürlich sinnvoll. Das habe ich übersehen. Man sollte halt nichts aus fremden Skripten übernehmen, sondern lieber von Grund auf selber schreiben. ;)

Mit dem Ergebnis bin ich noch nicht ganz zufrieden. Da werde ich noch mal ein wenig beobachten und feilen.
Was aber definitiv schonmal klappt ist zügiges surfen trotz vollem Upload. Eg mein Hauptziel an der ganzen Sache. Jetzt noch ein paar Feinheiten und ich denke ich kann zufrieden sein.
 

Ähnliche Themen

Port Forwarding mit iptables

ip6tables Problem

Wired-Lan komisches Verhalten

Verschlüsseltes Backup-Script mit rsync

iptables und whitelist

Oben