Traffic shaping = rizeni provozu

Založil skudlik, Září 28, 2004, 10:18:07 DOPOLEDNE

« předchozí - další »

skudlik

Dost lidi zajimalo "jak to vlastne funguje", tak se pokusim shrnout co se to tu vlastne snazim nasadit. :wink:   (zkratky uvedene velkymi pismeny v zavorkach jsou druhy algoritmu pouzitych pri implementaci)

Maximimalni rychlost pro spoj[/b]

Zakladem systemu je pevne nastavene maximum pro kazdy (wifi)spoj. Toto maximum momentalne zadavam manualne - podle toho jak dana linka funguje - trebas takova midway-door uz moc "ne"funguje nad 2M celkoveho trafficu (half-duplex). Jako vylepseni planujeme zavedeni dynamicke hranice v zavislosti na pingach. Plati totiz, ze kdyz je wifi na maximu, tak odezvy na pingy jdou zavratne nahoru (cisla v oblastech 500-1500ms nejsou vyjimka) coz v posledni dobe videl snad kazdy.    

Rozdeleni linky[/b]

Linku delim (HTB) na 4 zakladni tridy : 1 servisni + 3 uzivatelske

Servisni trida ma nejvyssi prioritu, ale je omezena na rychlost - takze by nemela jit moc dobre zneuzivat uzivateli. Svistej po ni pingy, dns, ssh, snmp, routovaci protokoly.

3 uzivatelske tridy jsou:

rychle uzivatelske pasmo - smi pouzit 70-100% celkove linky.
stredni uzivatelske pasmo - smi pouzit 20-100% celkove linky.
pomala uzivatelske pasmo - smi pouzit 10-100% celkove linky.

Funguje to tak, ze pasmo ma "jistych" svych 70,20,10% a pokud nektere nepouziva celou svoji kapacitu, tak ho pujcuje ostatnim.

Kazde z techto pasem se dale deli na dalsi podtridy. Deleni probiha zatim podle portu :
- interaktivni - hry + veci, co potrebuji rychlou odezvu
- data - www, ftp, mail
- ostatni.

Priorita klesa od zhora dolu - tridy si deli rovnomerne linku sveho pasma. Ve finale se v kazde teto male "krabicce" rozdeli traffic mezi uzivatele, co do ni spadnou. Deleni bude probihat podle IP adres.(ESFQ) - momentalne je to podle spojeni (SFQ)- vydelavaj no tom ti, co pouzivaj download akceleratory a spol.). Dalsi veci, ktera je ve vyvoji je klasifikace P2P paketu podle obsahu a jejich zarazeni do vlastni skupiny.

Zarazeni do uzivatelskych pasem (rychle, stredni, pomale)

Zarazeni zajistuje program, ktery na routeru sleduje traffic jednotlivych clenu, ktery protece pres tento router. Sledovani se uchovava za cca hodinu zpet - uklada se do "fronty" - takze program vi, kolik toho slo od/k uzivateli za posledni hodinu. (sampluje se to zhruba po 5-10 minutach). Jakmile presahne clen prvni kritickou hodnotu (momentalne 15M) je zarazen do stredniho pasma. Jakmile presahne druhou (50M), tak se dostane do pomaleho.  

Zarazeni do pasem je pro nekoho "nevyhodne" pouze pokud je linka vytizena. Jestlize neni vyuzita kapacita vice priorizovanych skupin, tak samozrejme i nekdo v pomalem pasmu muze vyuzit 100% linky.

Cilem je, aby system bezel na kazdem routeru. Tudiz clenovi bude  limitovana pouze urcita linka (resp. traffic pres urcite AP) - pokud bude mit treba velky traffic ven do netu, tak bude omezen pouze na teto lince ven, ale napr. na jine lokalni AP nebude vubec limitovan.

Implementovane uz to nejak tak nahrubo mam. Ted delam monitoring - aby bylo mozne pres www sledovat, kdo ma kolik nasosano na damem AP.

Uvitam jakekoli pripominky, napady .. proste cokoli by pomohlo tento system zdokonalit.

Skudlik.

jo

Jak můžu zneužít tento systém pokud mám více přidělených IP adres?

Asi nebude problém omezovat to v souladu s nějakou databází členů,
místo podle IP adresy?

skudlik

Citace: "jo"Jak můžu zneužít tento systém pokud mám více přidělených IP adres?

Asi nebude problém omezovat to v souladu s nějakou databází členů,
místo podle IP adresy?

Pri pocitani kolik toho kdo prenesl vychazim z databaze IP jednotlivych clenu (tzn. i kdyz ma nejaky clen vice IP ci subnetu, tak se mu to nascita dohromady). Vlastni deleni uvnitr trid probiha uz jen podle unikatni IP adresy , takze na tom "vydelavaj" ti co jich maji vic ... ale pouze v ramci sveho aktualniho pasma. Skutecny dopad by tak mel byt minimalni. Jakmile totiz nekdo nasosa hodne a linka je vytizena, tak se propadne do pomaleho pasma, a jeho vic IP adres mu pomuze akorat v boji o linku se svymi konkurenty v tomto pasmu.

Vilik1

jo je to hezky, je to dobre ze uz to funguje.

Magus

Citace: "Vilik1"jo je to hezky, je to dobre ze uz to funguje.

Takže už můžu vypnout Netlimiter při nějakém větším stahování  :?:

jo


Zajimalo by me ,jestli ma vyssi prioritu komunikace po LAN (tj. mezi adresami 10.102.*.*) oproti komunikaci s internetem ?
Dale jakou prioritu ma VoIP (jako gamesy nebo http,ftp nebo ostatni) ?

BlackSUN

Citace: "fstembera"Zajimalo by me ,jestli ma vyssi prioritu komunikace po LAN (tj. mezi adresami 10.102.*.*) oproti komunikaci s internetem ?
Dale jakou prioritu ma VoIP (jako gamesy nebo http,ftp nebo ostatni) ?

Adresy nesouvisí s tim, jestli je to LAN nebo ne.

yaro

Zkouším VoIP, mám Sipuru 2100 a potýkám se s velkou nespolehlivostí, často jde totiž jen o komunikaci ke mně, na druhé straně slyší jen "bublání", jakoby dávkový přenos toho co říkám (a nezávisí to na kodeku). Znamená to, že to mohou být zrovna chvíle, kdy jsem zrovna v pomalém pásmu? Ale mně to nefunguje i ve chvílích, kdy jsem před tím žádné megabajty dat nestahoval (že by kolegové na společné anténě?). Mám dvě IP adresy – nicméně pochopil jsem, že kdybych použil jednu jen pro VoIP a druhou pro přístup na net, tak si stejně moc nepomůžu.
Jaká je tedy možnost vyzkoušet, jestli by pomohla priorizace portů pro RTP pakety – tedy jestli to jde? Možná je to blbost, já do toho zas tak nevidím – ale četl jsem, že telefonování přes SIP se bude do budoucna podporovat ve spolupráci s 802.VOX a pokud RTP pakety budou závislé plus mínus na tom v jakém bude uživatel náhodou pásmu, tak bude zřejmě VoIP nespolehlivé...
Co přiřadit pro VoIP IP adresy s vyšší priorizací? (Dá se ale pak zabránit jejich zneužití např. pro download?)

skudlik

Priorizace podle sluzeb se v nove verzi traffic shapingu az na systemove vyjimky uplne rusi (moc se to neosvedcilo). Navic porad by kazdy chtel neco priorizovat - takovy stav neni moc unosny (a hlavne vyhledove celkem snadno zneuzitelny, pokud by se zarazovani provadelo pouze podle portu --- staci nastavit P2P klienta aby fungoval na techto portech a veskara priorizace je o nicem).

Nove (bezi to jiz nejakou dobu v testovaci fazi na nekolika routrech) bude mit kazdy jakesi garantovane minimum a take bude mit prisneji dany strop, kdy mu to rychleji nepobezi. Toto reseni je mnohem vice restriktivni nez stavajici system, kdy lze vyuzivat komplet celou linku, ale zatim neznam jine reseni, jak zarucit prave rozumne odezvy prave treba pro telefonii nebo pro hrani her.

Rozepsal jsem clanek na web, kde jsem se to pokousel trosku vysvetlit, ale ted o zkouskovem neni cas, abych to dotahl do konce, tak zatim neni vydan.

Pro zajemce je torzo k nahlednuti na:

https://twiki.klfree.net/twiki/bin/view/Sandbox/JanSechovecSandbox

scorpio

Citace: "skudlik"

Pro zajemce je torzo k nahlednuti na:

https://twiki.klfree.net/twiki/bin/view/Sandbox/JanSechovecSandbox

Nahlizel jsem. Mas pravdu, asi to fakt jinak nejde nez jedna "po hube"
-- by Scorpio ---

yaro

Citace: "skudlik"Nove (bezi to jiz nejakou dobu v testovaci fazi na nekolika routrech) bude mit kazdy jakesi garantovane minimum a take bude mit prisneji dany strop, kdy mu to rychleji nepobezi. Toto reseni je mnohem vice restriktivni nez stavajici system, kdy lze vyuzivat komplet celou linku, ale zatim neznam jine reseni, jak zarucit prave rozumne odezvy prave treba pro telefonii nebo pro hrani her.

Co si můžu pod garantovaným minimem představit? Je to laťka, která by nám zoufalcům, co jim VoIP na SIPu funguje/nefunguje pomohla k lepší funkčnosti než nyní?

skudlik

jde to nastavit dle moznosti v danem miste .. cca 128kbit by nemel byt problem snad nikde.

scorpio

Citace: "skudlik"... cca 128kbit by nemel byt problem snad nikde.

to je cca 10-16 KB/s ...
... ooo to je zradlo, to je 2x - 3x rychlejsi nez vytacenej modem !!!
-- by Scorpio ---

belakos

Citace: "scorpio"... ooo to je zradlo, to je 2x - 3x rychlejsi nez vytacenej modem !!!
Chtel si VoIP, tak na reziji kodeku ti tohle staci, ne? :)