de wilde wereld van traffic shaping

Pagina: 1
Acties:
  • 124 views sinds 30-01-2008
  • Reageer

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Topicstarter
Hoi Tweakers,

Ik ben me momenteel aan het verdiepen in traffic shaping. Dit wil ik gebruiken op mijn server/router om per ip-adres in het interne netwerk een bepaalde upload+download snelheid toe te kennen. En in een later stadium misschien wel meer, zoals een eerlijke verdeling van de beschikbare bandbreedte.

Nu heb ik al flink liggen google'en en de GoT search gebruikt, maar ik zie eigenlijk door de bomen het bos niet meer.
Ik heb een nieuwe kernel gemaakt (2.4.26) met de benodigde modules (QoS) om traffic shaping toe te passen. Daarnaast heb ik "iproute" geinstalleerd. Ik draai debian dus dat is in principe "iproute2".

Nu zijn er al verschillende sites waar ik geprobeerd heb wat informatie in te winnen:
http://www.lartc.org/howto/
http://www.prout.be/qos/QoS-connection-tuning-HOWTO-4.html
http://sp9wun.republika.pl/linux/shaperd_cbq_en_old.html
http://windowlicker.dyn.ee/~windo/doc/bandwidth.php
http://www.linuxguruz.com/iptables/howto/2.4routing-15.html
http://luxik.cdi.cz/~devik/qos/htb/manual/theory.htm

ook heb ik de GoT search al gebruikt en heb ik de posts in deze topics bekeken:
http://gathering.tweakers.net/forum/list_messages/479171/
http://gathering.tweakers.net/forum/list_messages/686466/

Maar eigenlijk is het me nog steeds niet helemaal duidelijk. Waar moet ik me nu op focussen? In debian blijkt er ook zoiets al "shaperd" te zijn. Als ik mij niet vergis is dit een soort vooraf geimplementeerde classed base queueing die je middels een configuratiefile kunt 'instellen'.
Verder ben ik al veel termen tegen gekomen. HTB, CBQ, QoS, TBF, SFQ ..... allemaal verschillende dingen voor verschillende doelen. Nu staat er op www.lartc.org wel enige informatie over de verschillen tussen alle methodes en welke waarvoor gebruikt kan worden maar het is me toch allemaal nog een beetje vaag. En het kan uiteraard aan mij liggen, maar een heldere howto van begin tot einde ben ik eigenlijk nog niet echt tegengekomen.
Wie schept er wat duidelijkheid in deze wilde wereld van traffic shaping? ;)

  • Pastinakel
  • Registratie: December 2000
  • Laatst online: 14-02 12:29

Pastinakel

Zwammen en kwazoedels

Trax_Digitizer schreef op 23 juli 2004 @ 23:28:
[...]
Verder ben ik al veel termen tegen gekomen. HTB, CBQ, QoS, TBF, SFQ ..... allemaal verschillende dingen voor verschillende doelen. Nu staat er op www.lartc.org wel enige informatie over de verschillen tussen alle methodes en welke waarvoor gebruikt kan worden maar het is me toch allemaal nog een beetje vaag. En het kan uiteraard aan mij liggen, maar een heldere howto van begin tot einde ben ik eigenlijk nog niet echt tegengekomen.
Wie schept er wat duidelijkheid in deze wilde wereld van traffic shaping? ;)
De eigenschappen van de verschillende Simple, classless Queueing Disciplines en Classful Queueing Disciplines worden in de HowTo uitgebreid besproken.

Ik heb het min of meer zo opgevat: als je Classful Queueing wilt gebruiken, gebruik je CBQ. Behalve als je dat nodeloos ingewikkeld vindt, dan gebruik je HTB. Dus gebruik ik HTB. ;)

Verder heb ik als "QoS-NooB" het meeste gehaald uit de HowTo, met name uit 15.8. The Ultimate Traffic Conditioner: Low Latency, Fast Up & Downloads: een voorbeeld waar je zelf mee verder kunt experimenteren.

[ Voor 11% gewijzigd door Pastinakel op 23-07-2004 23:49 ]

Ik kan je niet helpen. De frutsel is warrig en niet knopig. Bovendien heb ik maar één kant | Scrobblernakel


  • eth0
  • Registratie: Mei 2002
  • Laatst online: 15-09-2025
CBQ kan voor een beginner erg complex overkomen.

Ik gebruik dit script er om heen: http://sourceforge.net/projects/cbqinit/

Dat maakt het een stuk makkelijker.

Verwijderd

Ik heb ooit QoS in de kernel gecompiled met oog op traffic shaping... CBQ vond ik zoals je zegt nogal verwarrend en moeilijk uitzien.

Nu heb ik momenteel trickle geinstalleerd die upload van bepaalde programma's beperkt:

# nohup trickle -u 4 amule &

Het doet zijn werk, maar telkens programma's starten op die manier is niet leuk.
Toen ik windows had, herinner ik me Bandwidth Monitor te gebruiken. Het is gratis en je kan er gewoon op protocol en poort niveau vanalles me instellen, zelfs 0 bytes upload als het nodig is.

Hetzelfde effect is mogelijk met iproute en die CBQ/HTB ?

Hopelijk is er een PDF versie van die howto ^^

  • Wilke
  • Registratie: December 2000
  • Nu online
Rei: je kunt het verkeer op bepaalde poorten voorrang geven (dus dat het mag voordringen in de queue, bv. handig voor SSH verkeer), of ook afknijpen op een bepaalde gemiddelde snelheid, evt. wel met een korte piek die sneller mag etc. Dus ja dat kan.

Zelf ben ik begonnen met het Wondershaper script, dat is een redelijk goed leesbaar script.

  • Niek
  • Registratie: Februari 2001
  • Laatst online: 11-02 12:26

Niek

f.k.a. The_Surfer

Ik gebruik zelf deze: http://www.niekvandermaas.nl/adsl-shaper/adsl-shaper
Script is afgeleid van Wondershaper en heb ik veel aangepast in de tussentijd. Voor een normale setup zou die moeten voldoen, de meeste poorten zitten er al in. Zoals het script daar staat is hij btw geconfigged voor ADSL Basic, gebruik de formuletjes is het script om andere up/down waarden te berekenen. Als je nog vragen hebt, stel ze maar :)

Overigens zou ik niet meer kunnen leven zonder traffic shaping, zeker als je ADSL hebt is het gewoon een must. Ik snap niet dat ze dit eigenlijk niet standaard in ADSL routers inbouwen... Zie ook The_Surfer in "Poorten forwarden voor Bittorrent"

À vaincre sans péril, on triomphe sans gloire - Pierre Corneille


  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Topicstarter
<edit>

ik verander de tekst van deze post even.
ik had deze error:
"RTNETLINK answers: Invalid argument".

Kernel was goed, maar door een foutje in lilo.conf werd er geboot met oude kernel 8)7

Maar het werkt nu iig. Ik kan nu gaan spelen 8)
</edit>

[ Voor 96% gewijzigd door Trax_Digitizer op 20-08-2004 02:46 ]


Verwijderd

Ik heb me een paar dagen geleden er ook mee bezig gehouden. Ik ben uiteindelijk het script wondershaper tegen gekomen. Daar hoef je alleen max up/down in te stellen en klaar. Er zijn nog meerdere opties, maar die heb ik niet nodig.

http://lartc.org/wondershaper/

Het werkt prima (nadat ik de RT_NETLINK problemen had verholpen :))

edit.
hmzzz. er is al een beterde versie genoemd hierboven. Ga ik ook maar eens naar kijken.

[ Voor 13% gewijzigd door Verwijderd op 20-08-2004 11:09 ]


  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Topicstarter
maar wondershaper is er alleen maar voor om je internet verbinding te "optimaliseren" door queues naar je eigen bak te halen en niet meer bij de provider plaats te laten vinden. toch?
Wat ik wil is per host in het netwerk de up en download kunnen beheren.
Nu is de download al gelukt dankzij deze regel:
tc qdisc add dev eth1 root handle 1: cbq avpkt 1000 bandwidth 100mbit
tc class add dev eth1 parent 1: classid 1:1 cbq rate 200kbit allot 1500 prio 5 bounded isolated
tc filter add dev eth1 parent 1: protocol ip prio 16 u32 match ip dst 192.168.1.2 flowid 1:1
eth1 is lan interface
eth0 is inet interface
en hierboven limiteer ik 192.168.1.2 dus op 200kbits per seconde

maar hoe doe ik de upload nu? Ik heb al vanalles geprobeerd, maar het lukt me niet.

  • wigwam
  • Registratie: Oktober 2001
  • Laatst online: 18-11-2025
Hoe kan je met tc zien welke regels je geladen hebt. Heb die laatste regels ingevoerd. En nu kan ik ze niet meer ongedaan maken, tc --help wordt ik ook niet veel wijzer van. Wel een leuke topic

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Topicstarter
zeker een leuk topic :p

je kan het zien met "tc qdisc show"
en met "tc qdisc del dev eth0 root" verwijder je alles weer. Waarbij root denkik de naam van de qdisc is.

  • SiErRa
  • Registratie: Februari 2000
  • Laatst online: 15:13
Ik heb al meerdere malen met QoS/Traffice Shaping zitten experimenteren, maar het wil maar niet lukken.

Omdat je de queue naar je router wil halen moet je je upstream iets onder je daadwerkelijke upstream zetten. Aangezien ik hier @home heb wisselt mijn upstream enorm (van 10Kb/s tot 40Kb/s) en krijg ik je queue dus niet naar mijn eigen machine.

Heeft iemand hier misschien tips voor.

ps. dit is geen poging tot topickaap, want ik denk dat er meer mensen met kabel dit probleem zullen hebben.

  • bolluserectus
  • Registratie: November 2001
  • Laatst online: 25-04-2025
Zoals de TS zegt, en ik ook wil, is het de bedoeling om 1 gebruiker op het netwerk zijn upload te cappen.
Zover als ik gekomen was in mijn research kan je de pakketjes die dat bepaalde ip
inzich hebben marken met de MANGLE functie van IPTABLES.
Hierop kan bijv. iproute2 dan weer reageren, maar zover was ik nog niet.
Het gaat dus niet om de complete upload te cappen maar alleen die van 1
ip-adres op het netwerk.

TS: Correct me if I'm wrong

Actions speak louder than words


  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Topicstarter
bolluserectus schreef op 23 augustus 2004 @ 10:34:
Zoals de TS zegt, en ik ook wil, is het de bedoeling om 1 gebruiker op het netwerk zijn upload te cappen.
Zover als ik gekomen was in mijn research kan je de pakketjes die dat bepaalde ip
inzich hebben marken met de MANGLE functie van IPTABLES.
Hierop kan bijv. iproute2 dan weer reageren, maar zover was ik nog niet.
Het gaat dus niet om de complete upload te cappen maar alleen die van 1
ip-adres op het netwerk.

TS: Correct me if I'm wrong
helemaal goed. Met mangle kun je inderdaad pakketjes markeren en daarna kun je die gemarkeerde pakketjes mbv een 'handle' weer aanspreken met iptroute2 (tc). En dan kun je die pakketjes gaan shapen. Maar de vraag is hoe.
Zoals ik hierboven al vertel is de download van een gebruiker in je netwerk makkelijk aan te passen, maar met de upload krijg ik het niet voor elkaar. Is dat dan zoveel moeilijker/anders?

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 15-01 10:55
Er mist hier en daar een stukje ongetwijfeld, de site is al een half jaar niet geupdate, maar kijk toch even naar m'n howto in m'n sig, die heeft al veel mensen geholpen :)

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Topicstarter
pierre-oord schreef op 23 augustus 2004 @ 12:05:
Er mist hier en daar een stukje ongetwijfeld, de site is al een half jaar niet geupdate, maar kijk toch even naar m'n howto in m'n sig, die heeft al veel mensen geholpen :)
je howto gaat over htb. Ik (wij) hebben het hier over cbq (toch?)...
Misschien kan iemand trouwens nog een keer uitleggen wat nu de verschillen zijn tussen htb en cbq.

Maar voor htb is je site wel een goed voorbeeld denkik.

  • Jimbolino
  • Registratie: Januari 2001
  • Laatst online: 13-02 16:07

Jimbolino

troep.com

Ik heb zowel "wondershaper" als "adsl-shaper" getest, en ze werken allebei uitermate goed!

Als ik naar een ftp aan het uploaden ben, of kazaa open heb staan, blijft mijn ping rond de 40. Dit moeten ze idd standaard in die el-cheapo routertjes stoppen :)

Jammer dat mijn upload snelheid niet echt constant is (com21 met @home). Het ene moment haal ik 25kb/s en het andere moment komt ie niet boven de 16kb/s uit (heeft met tijdstip te maken)

Komende week krijg ik hopelijk een nieuw modem, die wel een stabiele (64kb/s) upload heeft.

The two basic principles of Windows system administration:
For minor problems, reboot
For major problems, reinstall


  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Topicstarter
Ik ben weer eens even bezig geweest. Het was alweer een tijdje geleden. Omdat ik voornamelijk geinteresseerd ben om de upload per ip te beperken ben ik daar even op verder gegaan.

Ik heb het volgende en dat lijkt goed te werken, maar nog niet perfect.

eth0 = externe = internet interface
eth1 = interne = lan interface

iptables:
code:
1
2
3
  $IPTABLES -t mangle -A PREROUTING -i $LAN_IFACE -s 192.168.1.2 -j MARK --set-mark 1
  $IPTABLES -t mangle -A PREROUTING -i $LAN_IFACE -s 192.168.1.3 -j MARK --set-mark 1
  $IPTABLES -t mangle -A PREROUTING -i $LAN_IFACE -s 192.168.1.4 -j MARK --set-mark 1


cbq script:
code:
1
2
3
4
5
tc qdisc add dev eth0 root handle 10: cbq bandwidth 1024kbit avpkt 1000
tc class add dev eth0 parent 10:0 classid 10:1 cbq bandwidth 1024kbit rate 1024kbit allot 1514 weight 102kbit prio 8 maxburst 20 avpkt 1000
tc class add dev eth0 parent 10:1 classid 10:100 cbq bandwidth 1024kbit rate 300kbit allot 1514 weight 102kbit prio 5 maxburst 20 avpkt 1000 bounded
tc qdisc add dev eth0 parent 10:100 sfq quantum 1514b perturb 15
tc filter add dev eth0 parent 10:0 protocol ip prio 1 handle 1 fw flowid 10:100


Ik ben er inmiddels achter dat je, wanneer je een upload wil gaan beperken, moet werken marks van iptables. Dit omdat anders het source adres vanwege de routing niet meer klopt.

Het probleem wat ik echter heb is:
1. dat ik niet precies weet wat het bovenstaande script allemaal doet. Het zijn iets meer regels dan ik denk nodig te hebben....
2. en hij doet nu niet alleen de upload maar ook de download en dat is niet de bedoeling

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Topicstarter
*kick* :-)

niemand meer hiermee aan de slag gegaan?

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Jimbolino schreef op 29 augustus 2004 @ 19:33:
Als ik naar een ftp aan het uploaden ben, of kazaa open heb staan, blijft mijn ping rond de 40. Dit moeten ze idd standaard in die el-cheapo routertjes stoppen :)
Jammer genoeg zijn er maar weinig fabrikanten met concrete plannen voor zelfs de simpelste vorm van QoS.

  • Trax_Digitizer
  • Registratie: Januari 2002
  • Laatst online: 31-12-2025

Trax_Digitizer

are we there yet?

Topicstarter
ok, ik heb HTB maar een serieus onder de loep genomen omdat deze makkelijker te bedienen is en 'beter' zou zijn dan CBQ.
Als kernel heb ik 2.4.27. Een patch voor htb3 is vanaf 2.4.20 al niet meer nodig heb ik begrepen.
Ik heb een gepatchte TC gedownload van http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm en heb de howto doorgenomen op diezefde website.

Dit heeft tot het volgende script geleidt, wat de upload per ip zou moeten beperken:

iptables
code:
1
2
$IPTABLES -t mangle -A PREROUTING -i $INET_IFACE -s 192.168.1.3 -j MARK --set-mark 1
$IPTABLES -t mangle -A PREROUTING -i $INET_IFACE -s 192.168.1.4 -j MARK --set-mark 2


tc
code:
1
2
3
4
5
6
./tc qdisc add dev eth0 root handle 1: htb default 10
./tc class add dev eth0 parent 1: classid 1:1 htb rate 1024kbps ceil 1024kbps
./tc class add dev eth0 parent 1:1 classid 1:10 htb rate 200kbps ceil 1024kbps
./tc class add dev eth0 parent 1:1 classid 1:11 htb rate 200kbps ceil 1024kbps
./tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 1 fw flowid 1:10
./tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 2 fw flowid 1:11


Maar tot mijn verbazing, krijg ik geen enkele foutmelding maar gebeurd er verder helemaal niks. Ik heb bijna het complete GoT forum gehad, maar ik kan mijn fout niet ontdekken.
Wat is er nu fout?

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 15-01 10:55
Gebruik het script wat ook op m'n site staat. Als dat eenmaal werkt, kun je zelf afleiden hoe het werkt en hoe je het moet gebruiken :)

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)

Pagina: 1