View previous topic :: View next topic |
Author |
Message |
mcreed n00b

Joined: 02 Jan 2006 Posts: 11
|
Posted: Mon Jan 23, 2006 10:48 pm Post subject: Bandbreitenbegrenzung, nur lokal, ohne Schnick-Schnack? |
|
|
Hi, ich habe hier ein Notebook rumliegen und das ist ab und zu mal an um mir zum Beispiel Dateien für die Uni zur Verfügung zu stellen oder über mehrere Tage dauernde Downloads zu erledigen. Es läuft meist MLDonkey. Das Programm ist so eingestellt, dass es nur einen (relativ kleinen) Bruchteil der zur verfügung stehenden Bandbreite nutzen soll. (5KB/s up und 20KB/s down von in etwa 15 up und 60 down).
Leider hält sich das Programm nciht daran oder müllt den schwachbrüstigen Router so mit Paketen zu, dass nichts mehr zu wollen ist. Andere PCs im gleichen Netzwerk können dann gar nicht ins Netz oder nur extrem zäh. Es ist auch kaum möglich von außen auf die anderen Dienste zuzugreifen. MLDonkey-Paketschleuder macht alles dicht.
Dieses Problem hatte ich damals unter Windows auch und es zur absoluten Zufriedenheit lösen können indem ich den DU-Supercontroller lokal auf dem verstopfenden Rechner installiert habe (begrenzt die maximale Banbreite, ich habe allerdings ausschließlich den Upload beschränkt, da nur dieser an der Verstopfung schuld war).
Gibt es etwas vergleichbares auch unter Linux?
Habe schon etliche tc / htb tutorials gewälzt, leider wird immer davon ausgegangen der Linux Rechner wäre der Router und verrichtet seine Arbeit zwischen zwei Netzwerk devices. Ich brauche das aber lokal, ich denke man kann dieses ganze Verfahren auch irgendwie so loopback mäßig lokal verwenden, aber wie? Oder gibt es eine einfachere Lösung?
Mir reicht eine einfache harte Beschränkung ohne Bedingungen! (als Add-On wäre ein ungedrosselter Port 80 denkbar, ist jedoch nicht so wichtig)
Grüße
McReed |
|
Back to top |
|
 |
Freiburg Guru

Joined: 19 Jun 2004 Posts: 504 Location: Freiburg
|
Posted: Mon Jan 23, 2006 11:13 pm Post subject: |
|
|
z.B. kannst du auf dem eth-device alle Packete dropen die eine bestimmte Anzahl übersteigen
|
|
Back to top |
|
 |
mcreed n00b

Joined: 02 Jan 2006 Posts: 11
|
Posted: Tue Jan 24, 2006 12:19 am Post subject: |
|
|
Also ich hab mir die man page durchgelesen ein bischen probiert und bin verzweifelt, nicht gerade intuitiv diese Hilfe.
Allerdings habe ich herausgefunden was ich ändern muss um das zu erreichen was ich mir dachte, wie es funktionieren könnte. Statt mangle/PREROUTE oder sowas muss ich eigentlich nur mangle/OUTPUT benutzen um die vom Laptop selbst erzeugten Pakete zu "mangeln" *lol* oder habe ich hier einen Denkfehler?
Ich habe mir aus den ganzen Tutorien ein bestimmt n00biges Script zusammengebastelt, aber woher weiß ich ob es funktioniert?
Wenn da schwachfug drinsteht bitte melden!
Ich bin mir nicht sicher ob ich bei dem filter u32 nach ports durchsuchen kann, da werde ich nochmal googeln, außerdem müsste ich noch die ganzen iptables-schrott-einträge von meinen versuchen entfernen...
(edit: hab das nach den ports durchsuchen etwas angepasst, das skript läuft sauber durch...)
(edit2: mmh ich will ja den upload einschränken, da sind 30KB/s wohl ein bisserl viel... [angepasst])
Code: | #!/bin/bash
# Alle pakete markieren
iptables -t mangle -A OUTPUT -j MARK --set-mark 10
# Struktur:
# |1:0|
# |
# |1:1|
# / \
# |1:10| |1:20|
# (5KB/s) (2KB/s)
# Alles löschen
tc qdisc del dev eth0 root handle 1: htb
sleep 10
tc qdisc add dev eth0 root handle 1:0 htb default 10
# Klassen: 10 := alles (emule) | 20 := http auf port 4080, ssh
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 7kbps ceil 7kbps
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 5kbps ceil 7kbps
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 2kbps ceil 7kbps
tc filter add dev eth0 parent 1: prio 1 protocol all handle 10 fw flowid 1:10
tc filter add dev eth0 protocol all parent 1:1 prio 0 u32 match ip dport 4080 0xffff flowid 1:20
tc filter add dev eth0 protocol all parent 1:1 prio 0 u32 match ip dport 23 0xffff flowid 1:20
tc filter add dev eth0 protocol all parent 1:1 prio 0 u32 match ip sport 4080 0xffff flowid 1:20
tc filter add dev eth0 protocol all parent 1:1 prio 0 u32 match ip sport 23 0xffff flowid 1:20 |
|
|
Back to top |
|
 |
psyqil Advocate


Joined: 26 May 2003 Posts: 2767
|
|
Back to top |
|
 |
mcreed n00b

Joined: 02 Jan 2006 Posts: 11
|
Posted: Tue Jan 24, 2006 2:23 am Post subject: |
|
|
Super, vielen Dank psyqil! Genau danach habe ich gesucht!
Für meine Zwecke mehr als ausreichend und sehr angenehm zu bedienen:
Code: | trickle -v -u 5 -d 40 -t 5 mldonkey |
Die anderen Dienste werden dabei nicht ausgebremst. Habe es grad laufen und kann dennoch einen Beitrag verfassen *froi*  |
|
Back to top |
|
 |
chilla Apprentice

Joined: 12 Dec 2004 Posts: 203 Location: Heidelberg, Germy
|
Posted: Tue Jan 24, 2006 8:40 am Post subject: |
|
|
hey! Das ist ja mal ein klasse tool. Endlich mal was schön kleines
Für die meisten sachen ist das vollkommen ausreichend.
Danke für den Tipp! _________________ "Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep."
TU-BS Wiki |
|
Back to top |
|
 |
MALON3 Tux's lil' helper


Joined: 16 Jan 2004 Posts: 87
|
Posted: Tue Jan 24, 2006 8:42 am Post subject: |
|
|
sowas such ich auch schon länger...
super!
gruß |
|
Back to top |
|
 |
76062563 l33t


Joined: 16 Aug 2004 Posts: 637 Location: 127.0.0.1
|
Posted: Tue Jan 24, 2006 8:44 am Post subject: |
|
|
chilla wrote: | ... Endlich mal was schön kleines... |
Vor allem läuft es im userspace => keine Modifikation am Kernel nötig wie bei tc und co. _________________ gentoo - compile your own world |
|
Back to top |
|
 |
|