artkas.net
Programos
Windows
Linux
Jumoras
Nuorodos
Nuorodos


Greičio reguliavimas, balansavimas (Shaping)

 

  Greitis reguliuojamas norint išvengi užsikimšimų viename tinkle dirbant keliems vartotojams arba keliems skirtingos paskirties serveriams dirbantiems skirtingais portais. Kokiu tikslu reguliuoti greitį gali pasakyti tik tinklo savininkas ar administratorius. Jeigu tinkle dirba keli serveriai web ir mail gali reikėti greiti balansuoti taip kad kiekvienam iš serverių tektų po pusė turimo trafiko, o kai vienas serveris nedirba, tai kitam suteikiamas pilnas kanalo pralaidumas. Kitu atveju gali būti kad tinkle yra daug vartotojų ir kad kurio nors vieno downloadas ar p2p programa nepasigirnbtų viso trafiko reikia išdalinti proporcingai visiems arba pagal tam tikrą vartotojų kategoriją. 
  Greičio reguliavimą galima vykdyti su htb.init scriptu parsunčiamu iš http://sourceforge.net/projects/htbinit/
  Scriptas įdedamas į /usr/loacl/bin/htb.init katalogą, sukuriamas katalogas /etc/shaping scripto failiukams. Jeigu eth0 yra internetas, o eth1 lokalus tinkas, tai visa greičio reguliavimo esmė yra ta kad jis eth0 reguliuoja išeinančio į internetą trafiko greitį, o eth1 reguliuoja išeinančio į vidinį tinklą greitį. Jeigu tai būtų ne tik routeris, bet ir serveris viename aparate būtų neįmanoma sureguliuoti ant prie interneto prijungto eth0 išeinančio į internetą srauto greitį, ir neįmanoma sureguliuoti ant localaus eth1 išeinančio iš vidinio tinklo greitį. Kaip matote htb.init skriptas reguliuoja tik išeinantį srautą iš ethX tinklo kortos.
  Norint su ta pačia tinklo korta sureguliuoti įeinantį ir išeinantį trafiką reikia pasinaudoti IMQ pagalba. Tai nėra taip paprasta todėl šio būdo neaprašinėsiu, o tik pateiksiu nuorodas. IMQ reguliavimo trūkumas yra tas kad labiau negu htb.init apkrauna bet tai aktualu tik interneto tiekėjams kur trafikas skaičiuojamas virš 100 mbps. Jo sudėtingumas yra tame kad reikalingi 2.6.x kernelio source tekstai, jie yra pach`inami, įjungiamas IMQ per make menuconfig ir perkompiliajuomas visas kernelis. Plačiau apie tai galite skaityti http://www.linuximq.net/ saite.

1. varinatas:

  Sugrįžtame prie htb.init konfigūravimo (pavyzdžiai yra ir pačiame scripte). pvz.: reikia 3-ims vartotojams padalinti 256 mbps interneto kanalą po lygiai kad galėtų ramiai siųstis failus ir vienas vartotojas neužimtų viso kanalo. Reguliuosime eth1 kortos pagalba. Sukuriami sekantys failai:

 /etc/shaping/eth1
DEFAULT=90
R2Q=100
 

/etc/shaping/eth1-2.root (jo viduje nurodome maksiamlų - 5% trafiko greitį t.y iš 256 kbit gausis tik 243 kbit
RATE=243kbit
BRUST=40k

toliau sukuriame beveik identiškus 3 failus kur aprašome kiekvieno vartotojo IP adresą, arba didesniuose tinkluose potinklių adresą, jegu reikia portus (galimybės labai plačios)

Greitį balansuosiu sekančiai: (243-60)/3=61 kbit kiekvienam - tai bus minimalus vienam vartotojui suteiktas greitis įrašomas į RATE. CEIL tai maksimalus greitis reikšmė tarp RATE ir 243kbit (šiuo atveju).
Svarbu:
Sudėjus visų failų RATE reikšmes jų suma trui būti lyggi 243 kbit t.y. maksimali kanalo pralaidumo reikšmė
PRIO - tai prioritetas, į jį atsižvelgiama dalijant trafiko greitį.

/etc/shaping/eth1:2:10.user1  (kuriant failų vardus svarbi dalis yra iki taško. Po tašo rašote ką norite panašiai kaip pastabas)

RATE=61Kbit
CEIL=192Kbit
BRUST=40K
PRIO=0
LEAD=sfq

RULE=192.168.0.10


/etc/shaping/eth1:2:20.user2
RATE=61Kbit
CEIL=192Kbit
BRUST=40K
PRIO=0
LEAD=sfq

RULE=192.168.0.11


/etc/shaping/eth1:2:30.user3
RATE=61Kbit
CEIL=192Kbit
BRUST=40K
PRIO=0
LEAD=sfq

RULE=192.168.0.12

  Štai ir viskas, visi trys vartotojai gaus bent po 61 kilo bitą download greičio, o maksimaliai 192 kilo bitus. Visų 243 kbit buvo gaila, palikau rezervui.
  Pabaigai aprašau tai kas liko 60 kbit. Juos palieku visiems kitiems neprašytiems įrenginiems kurie yra arba bus pajungti į tinklą. Jie visi dalinis likučiu 60 kbit 

/etc/shaping/eth1:2:90.def
RATE=60Kbit
CEIL=64Kbit
BRUST=10K
PRIO=1
LEAD=sfq

2. varinatas:

  Turime web ir mail serverį. Užduotis reguliuoti įeinantį ir išeinantį trafiką 1 mbps linijai. Reguliuosime eth0 ir eth1 tinklo kortų pagalba. web serveriui duosime 60% kanalo. SMTP serveriui 25 o POP3 klientams 15% kanalo. Sukuriami sekantys failai: