traffic shaping alap kérdés

Fórumok

Nagyon egyszerű volna az igényem. Van egy kábelnet előfizetés, fix X kilobit feltöltés és Y letöltés, azon csücsül egy Linux, mögötte pár kliens, és azt szeretném, hogy minden kliens (vagy esetleg minden flow) fair módon használhassa a netet (mindkét irányban).

Fair alatt azt értem, hogy ha csak egy kliens aktív, akkor az megkapja a maximális létező sávszélt, egyébként ha mondjuk valaki facebookozik, valaki más HD filmet néz, akkor pl. kb. 10:90 arányban legyen elosztva a sávszélesség. A fő problémám jelenleg nem torrent, hanem az egyik gépen van egy DPM kliens, ami szereti megenni a teljes feltöltési sávszélt. Mivel a feltöltés kb. 60 kilobájt/mp, ezért nem örülnék, ha mondjuk 5%-nál többet csökkene a maximális kihasználhatóság többfelhasználós esetben, egyfelhasználós esetben meg igazából a 0% csökkenés lenne a jó.

Sok howto-t olvasgattam, de ez még pont nem jött le. Azt kezdem sejteni, hogy a htb talán nem nekem való, nálam nincsenek prioritások, mindenki egyenlő. Az sfq jónak tűnt, amíg meg nem láttam ezt: "Please note that SFQ, like all non-shaping (work-conserving) qdiscs, is only useful if it owns the queue...Most often, cable modems and DSL devices do not fall into this category." Szóval passz... Azt szeretném továbbá, amit az sfq nem tud, hogy egy kicsi ráhatásom legyen arra, hogy mi kerül egy vödörbe, tehát ha pl. a DPM 8 szálon tölt fel, akkor azt mégiscsak szeretném egybe venni, mintha az 1 db igény vagy flow lenne. Az mondjuk egy jó szabály, hogy 1 flow = 1 forrás IP-1 cél IP páros, de port már nem számít bele.

Én pontosan tudom, hogy mit szeretnék, de az lehet, hogy nem tökéletesen érthetően írtam le :). Megoldási ötlete van valakinek?

Hozzászólások

nézd meg a shaperd-et.
Bizonyos időközönként megnézed az aktuális sávszélességet és annak megfelelően konfigurálod a shaperd-et.

A HTB jó lenne neked, pl.:


$max=$total*0.95   # 5% szűkítés, hogy nálad legyen a queue
$hdvideo_max = $max*0.9
$facebook_max = $max*0.1

Root rate=$max ceil=$max
+- HD-videózás rate=$hdvideo_max ceil=$max
 +- ClientIP1-flow rate=$hdvideo_max*(1/$clients) ceil=$max
 +- ClientIP2-flow rate=$hdvideo_max*(1/$clients) ceil=$max
+- Facebookozás rate=$facebook_max ceil=$max
 +- ClientIP1-flow rate=$facebook_max*(1/$clients) ceil=$max
 +- ClientIP2-flow rate=$facebook_max*(1/$clients) ceil=$max

Így minden flow felmehet $max-ig, de ha mind pörög, akkor 90-10% a HD videók javára és azon belül a klienseknek egyenlő lesz a jussuk.

Ennél jobban nincs időm kifejteni, de ebbe az irányba keresgélj.