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
/etc/shaping/eth1-2.root (jo viduje nurodome maksiamlų - 5% trafiko greitį
t.y iš 256 kbit gausis tik 243 kbit
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: |