Pri pouziti HTB (a imho i jinych qdiscu) musis traffic rozdelit do definovanych trid podle nejakych kriterii. V zasade to muzes tridit bud podle IP nebo podle portu (nebo podle obojiho). Samozrejme daji se nadefinovat i podstatne slozitejsi pravidla, ale v problemu na ktery se ptas si moc nepomuzes. Protoze to bys musel ty pravidla a tridy vytvaret dynamicky podle toho jaka IP se zrovna snazi neco tlacit pres tvuj router a to samozrejme nejde.
Nicmene asi neni potreba, aby jsi shapoval IP adresy, ktere jsou vzdalene 5 hopu od tebe, protoze stejne nebudou schopny vygenerovat nejaky obtezujici traffic.
Odpoved na tvoji otazku je podle me "ne", ale muzu se plest - nejsem v tehle oblasti zadny odbornik.
Pritom mi to nepripada nijak moc slozite (oproti normalnimu HTB). Nasledujici vety budou naprosto amaterske, tak me prosim nemlatte.
Postup reseni problemu:
1)QoS zjisti, kolik pres dane sitove rozhranni tece aktivnich spojeni .
2)Zjisti pocet ruznych IP adres techto spojeni (zdroju nebo cilu??) = N.
3)Pro kazde spojeni vytvori jednu trisu, ale pokud jde z jedne IP adresy vice spojeni, dostanou spolecnou jednu tridu.
4)Kazda trida dostane garantovanou 1/N tinu z celkove sirky pasma daneho sitoveho rozhranni,s moznosti vyuzivat nevyuzitou sirku pasma - to uz je klasicke HTB.
5) V pripade vytvoreni noveho nebo zaniku nejakeho spojeni se uz "jenom" upravi cislo N a popripade se pozmeni tridy.
Jediny problem je tedy v dynamickem generovani jednotlivych trid, coz, pokud se nepletu, stavajici HTB neumi. Kdybych umel Ccko a umel progamovat, klidne bych se na to vrhnul, ale protoze mam jen zalady pascalu, nemam sanci :-))
Sice jsem na netu nenasel manual k SFQ, ale vypada to, ze to pujde. Je tu nejaky znalec, ktery vytvori pouzitelny skript pro routery CZfree.Net , nejlepe i s plnym navodem, jak jej nainstalovat a zprovoznit? Pokud to bude fungovat, dam jej za odmenu do FAQ
petrik: manual k SFQ snad ani nepotrebujes - ma totiz pokud vim jen 2 parametry (perturb a quantum)
Kdyz se do toho skriptu podivas poradne, tak zjistis ze sfq je tam pro koncove tridy (leafy) pouzito - viz. predposledni radek skriptu a pak jeste jednou o par radku vys pro default class.
Skript, ktery ti na vystup celeho rozhrani priradi jen SFQ bez jakehokoli filtrovani ti sem klidne hodim, ale jsem hodne skepticky k tomu, ze to bude delat to co si predstavujes.
toto je moje emailova komunikace s Devikem, autorem HTB:
On Fri, 13 Jun 2003, Petrik wrote:
>Predem se omlouvam, ze pisu zrovna tobe, ale asi o tom budes >vedet nejvic.
> Mam nasledujici problem/dotaz:
> Chtel bych pouzit nejakou QoS disciplinu, nejlepe tvoje HTB, ktera by
> umela nasledujici: Kazde IP adrese, ktera chce nejakym zpusobem projit
> pres muj linux router (a taky wifi AP), by dynamicky pridelila 1/N tinu
> z celkove pouzitelne sirky pasma na danem sitovem interfacu, kde N je
> pocet IP adres, ktere zrovna tento interfejs pouzivaji, navic aby si
> mohla pujcovat nevyuzitou sirku pasma od ostatnich. Duvod? Chuystam se
> zapojit do prazske CZfree.net site, kde by se toto velmi hodilo, nebot
> wifi je dost rusena a casto se stava, ze nejaky stahovac zahlti danou
> wifi trasu a spoj je prakticky nepouzitelny. Protoze je v CZfree zhruba
> 300-400 ruznych IP adres, je nemozne vytvorit pro kazdou IP adresu jednu
> HTB class. Je to proste nejjednoduzsi (ne na imlepmentaci) a zaroven
> nejlepsi funkce pro vetsinu routeru, ktere chteji poskytovat tranzit
> mnoha uzivatelu (ip adres) a kazdemu spravedlive garantovat kvalitu
> tranzitu. Tvuj manual k HTB mam samozrejmne precteny, ale tuto vlasnost
> jsem tam nenasel. Diky moc za odpoved, moc by to pomohlo vsem z asi 150
> linuxovych routeru v CZfree a dalsim stovkam jjich uzovatelu. Cau Petrik
Devik odpovedel:
Tento problem je obecne velmi slozity. zalezi jak
se chova dany wifi interface - tj zda ceka pokud
je linka zahlcena - moc retransmisi.
Pokud ano (to se pozna tak ze na danem eth zarizeni
je nenulova fronta - zkuste pripojit PFIFO qdisc
a uvidi se) pak naveste na onen eth ESQF qdisc.
To je patchle SFQ ktere vsak dela flow per IP ne
per port. ESFQ udela presne co chcete.
HTB se nehodi na kanaly se silne promenlivou rychlosti.
Pokud wifi lze - tj. nemuzete zjistit zda odeslany paket
vubec prosel - jinymi slovy tvari se to jako 10MBit za
vsech okolnosti pak nemate sanci.
Dejte vedet, jsem docela zvedav.
end-of-message
Z toho vypliva, ze obycejne SQF ne, protoze to balancuje podle spojeni, ale ESFQ snad ano, to balancuje podle IP, cili presne to, co potrebujeme. Navrhne nekdo nejaky skript kombinujici HTB a ESQF, nebo staci zmenit ESQF za SQF ve skriptu Dzuse?Po odzkouseni to hodim do FAQ misto soucaseneho Dzusova skriptu, uvital bych taky navod na zprovozneni.
Vyborne, zkus prosim vytvorit nejaky skript, opatchovat jadro a nejak to vyzkouset, potom to hodim do FAQ anejaky moderator by to mozna mohl hodit do hlavnich zprav na hlavni stranku, aby si toho vsichni vsimli a zacali to implementovat. Ja bych to taky rad zkusil, ale nemam funkcni wifi spoj :-((
Jo tenhle skript znam - je to presne ten o kterem jsem rikal, ze se resi v connected foru.
Ovsem neni to Fair-per-IP, ale tim, ze je tam pouzito SFQ, tak v ramci jedne HTB tridy je to Fair-per-connection. Cimz ovsem nijak nezpochybnuju, ze to funguje
Bylo by zajimave zjistit, jak by se to chovalo, kdyby se tam misto SFQ dalo ESFQ s hashtype=src.
Urcite si pisu ESFQ do " Vyzkouset " Ale v soucasne dobe je tento skript naprosto vyhovujici, aspon co muzu soudit a bude treba zprovoznit detailni statistiky prutoku dat pres nekolik routeru, aby se dalo s klidnym svedomim rict, ze ten ci onen script zalozeny na te ci one discipline vykazuje lepsi vysledky.
Ja osobne jsem s HTBckem velmi nepsokojen na WiFi zarizenich. Hlavnim duvodem bude nejspis Half Duplex, extremni kolisani rychlosti, rozdilne rychlosti pro upload a download. Proto u tohoto scriptu hraje HTB az druhe housle.
Naproti tomu SFQ vykazuje skvelou ucinost. Holt v jednoduchosti je sila