|
|
ВНИМАНИЕ: Използвайте форумите на сайта за дa зададете вашите въпроси.
Въпрос |
От: DINO (agboy20 __@__ yahoo[ точка ]com) |
Дата: 11/08/2005 |
Zdraveyte, po princip ne sam ot tezi koito obichat da pitat
(sam se mucha cheteiki) no v sluchaia mai shte se naloji.
Bih iskal da zadam konkreten vupros otnosno HTB, no mislia
che bi bilo mnoog polezno i na drugi hora v podobno na moeto
polojenie ako niaki napishe podrobno upatvane za HTB ot
nachalo do krai s konkretni prakticheski primeri vatre bez
defaultnite klisheta koito ki ima v help failovete :-(.
Ta da se vurna na moia problem - imame mreja ot niakolko
choveka polzvashti asinhrona usluga - delim si po princip po
ravno stoinostta na uslugata, no niakoi ne mogat da se
samokontrolirat ot kum skorost na teglene, broi konekcii i
t.n. i reshihme da si slojim Linux ruter s koito da se
napravi tova - saotvetno na men mi se padna zadachata kato
chovke s nai-goliam opi :-(.
Ta kakuv e problema - nalaga mi se da ogranichavam kakto
skorost na teglene taka i na UP-stream i osven tova i broi
konekcii na daden IP (i oshte niakolko s koito ne sreshnah
osoben problem).
Uspiah da ogranicha konekciite s patch-o-matic, no
zabeliazah che lovi samo TCP konekcii, za UDP takiva ne
namerih alternativa i za sega go ostavih taka (ako niaki
moje da pomogne i za tova shte sam blagodaren).
Problema mi s HTB e (osnovnia che ne sam rabotil do sega s
nego - biah na CBQ do sega no ne sam dovoeln) che ne moga
korektno da ogranicha UP-streama, a drugia problem e v
dinamichno ogranichavane, no neka da e edno po edno.
Purvo shemata na rabota:
Server na DEBIAN Sarge 3.1
iadro 2.6.11
Inet ---- modem ---- eth1 (router) --- eth0 ---- (switch)
--- (users)
na samia ruter se izplaniava NAT (s SNAT) za userite s
iptables 1.3.3, i ogranichavane na konekciite pak s
iptables.
1.UPstream
Po patia na logikata i ot infoto koeto poluchih tuk UP se
ogranichava kato se slojat sashtite nastroiki kakvito sa za
downstream no na drugia interfeis.
Polzva se opashta bfifo na defaultna nastroika.
Rezultata e slednia - ako predi sheipvaneto na UPlaod-a
skorostta e mejdu 10 i 12KB/s (v dadenia sluchai) sled
sheipvaneto skorostta pada na 0 stoi na 0 niakolko sekundi i
pikovo skachana 6 do 8K posle pak pada na 0 i taka si varvi
- grafikata stava nakuslechna ("roshava") s pikovi
nadviashvashti puti ukazanata skorost (2KB/s).
2.Dinamichen sheip - kak tochno moga da ukaja kam daden IP
da imam edna skorost kam drugo druga.
V moa sluchai e taka - pusnah skoro edin DC++ server na
druga mashina ot mrejata na eth0 na rutera - t.e. da mogat
userite da tegliat ot DC++ na edna skorost a neta da im e na
druga - no da e dinamichno - primerno kanala e 10Mbps,
zalagam 2Mbps da e Internet i 8 da e DC i ako da rechem ne
se polzva poveche ot 1 Mbps internet drugia Mbps da se
razpredeli kum DC-to?
V moia slichai probvah sus slednite nastroiki
napravih si root klas s RATE 20KB/s (eth0-2.root)
posle 2 pod klasa (eth0-2:10.Inet) i (eth0-2:20.DC)
v Inet klasa zadadoh RATE da e na 15KB/s kato na CEIL dadoh
20KB/s, a na DC zadadoh tvardo RATE 5KB/s(t.e. ako sa i
dvete neta da e na 15KB/s a DC na 5), i poneje prioriteta na
Inet e po goliam ot tozi na DC logichno beshe pri dvete
pusnati da e 15 kum 5 K, no ne - po otdelno tova deto e na
5K diga nad 10KB/s, a kato gi pusna i dvtete si deliat
skorostta po ravno - t.e. ne 15 kum 5 ami 10 kum 10?!?
Blagodaria Vi predvaritelno, nadiavam se na help :-))
|
Отговор #1 |
От: Maznislav |
Дата: 11/08/2005 |
а сега го напиши на кирилица и обещавам да ти помогна
|
Отговор #2 |
От: DINO (agboy20 (a) yahoo< dot >com) |
Дата: 11/08/2005 |
Това е меко казано гавра, но по добра алтернатива май нямам
:-(
Здравейте, по принцип не съм от тези които обичат да питат
(сам се мъча четейки), но ж случая май ще се наложи.
Бих искал да задам конкретен въпрос относно HTB, но мисля че
би било много полезно и на хора в подобно на моето положение
ако някой напише подробно упътване за HTB от начало до край
с конкретни практически примери, без
Default-nite клишета които ги има в help файловете :-(.
Та да се върна на моя проблем – имаме мрежа от няколко
човека ползващи асинхронна услуга – делим си по принцип по
равно стойността на услугата, но някои не могат да се
самоконтролират от към скорост на теглене, брой конекции и
т.н. и решихме да сложим Linux маршрутизатор, с който да се
направи това – съответно на мен се падна като задача поради
най-големия опит с Linux :-(.
Да се върнем на проблема – налага ми се да ограничавам,
както скоростта на теглене така и тази на UP-stream и освен
това и брой конекции на даден IP (и още няколко с които не
срещнах особен проблем).
Успях да огранича конекциите с patch-o-matic, но забелязах,
че лови само TCP конекции, за UDP такива не намерих
латернатива и за сега го оставих така (ако някой може да
помогне и за това ще съм благодарен).
Основно проблема ми е с HTB (основния, че не съм работил до
сега с него – бях на CBQ до сега но не съм доволен), че не
мога коректно да огранича UP-stream-а, а другия проблем е в
динамичното ограничаване, но нека да е едно по едно.
Схемата на работа:
Сървър на DEBIAN Sarge 3.1.
Ядро 2.6.11
Интернет ---- Модем ---- eth1 (маршрутизатор) --- eth0 ----
(комутатор)
--- (потребители)
На сървъра се изпълнява NAT (със SNAT) за потребители с
iptables 1.3.3, и ограничаване на конекции пак с iptables
1.3.3.
1.UP stream
По пътя на логиката и от инфото, което получих тук, UP се
ограничава като се сложат същите настройки каквито са за
DOWN stream, но на другия интерфейс.
Използва се опашка bfifo на default-на настройка.
Резултата е следния – ако преди ограничаването на UP
stream-a скоростта е между 10 и 12KB/s (в дадения случай)
след ограничаването скоростта пада на 0, стои на 0 няколко
секунди и пикожо скача на 6 до 8KB/s, после пак пада на 0 и
така си върви – графиката става накъслечна ("рошава") с
пикове надвишаващи пъти указаната скорост (2KB/s).
2.Динамично ограничаване – как точно мога да укажа към даден
IP да имам една скорост, а към друго друга.
В моя случай е така – пуснах скоро един DC++ server на друга
машина с адрес от мрейата на eth0 на маршрутизатора – т.е.
да могат потребителите да теглят от DC++ на една скорост, а
Интернет да им е на друга, и това да става динамично.
Конкретен пример:
Канал с широчина 10Mbps, 2Mbps да е за Интернет и 8 да е за
DC++ и ако да речем не се ползва повече от 1 Mbps за
Интернет мегабит да се разпредели към DC-to?
В моя случай пробвах със следните настройки:
Направих root клас с RATE 20KB/s (eth0-2.root), после 2 под
класа (eth0-2:10.Inet) i (eth0-2:20.DC). В Inet класа
зададох RATE да е 15KB/s като на CEIL зададох 20KB/s, а на
DC++ зададох твърдо RATE 5KB/s (т.е. ако са и двете услуги
активни, то Интернет да е на 15KB/s, а DC++ на 5) и понеже
приоритета на Inet е по-голям от този на DC++ логично беше
ползваната лента да е 15KB/s към 5 KB/s, но не стана – по
отделно това което е твърдо на 5KB/s вдига над 10KB/s, а
като ги стартирам и двете да теглят си делят скоростта по
равно – т.е. не 15 към 5 ами 10 към 10?!?
Благодаря Ви предварително, надявам се на помощ :-))
|
Отговор #3 |
От: Maznislav |
Дата: 11/08/2005 |
провери си маил -а
|
Отговор #5 |
От: plamen |
Дата: 11/08/2005 |
DINO, удп е connectionless протокол, т.е. за да започне
предаване на данни не се изгражда конекция.
|
Отговор #6 |
От: DINO (agboy20< at >yahoo__dot__com) |
Дата: 11/08/2005 |
plamen: mersi
tova naistina ne go znaeh - propusk v obshtata mi kultura a
kuj se biah zanimaval s takiva neshta.
T.e. ne triabva da se trevoja za udp-tata koito ne gi lovi
connlimita ot pacha.
|
Отговор #7 |
От: steve |
Дата: 11/10/2005 |
Greshish kato si mislish che za da sheipnesh izhodqshtiqt
trafik pishesh sushtoto koeto e za vhodqshtiqt kato smenish
interfeisa. Naistina izhodqshtiqt se sheipva na interfeisa
kum ISP-to a vhodqshtiqt na interfeisa kum switch-a, no ima
edna druga podrobnost. Pri izhodqsht trafic tvoqt IP adres e
source IP adresa, a destination IP adresa e suotvetno adresa
na otdalechenata mashina. V takuv sluchai trqbva da se
sheipnesh adresa s src, a ne dst. I oshte edna podrobnost,
ako izpolzvash NAT chastnoto ti IP ne moje da se vidi na
interfeisa ti kum dostavchika, t.e. na samiqt interface nqma
kak da sheipnesh po chastno IP izhodqshtiqt ti trafic. Za
tova se izpolzva markirane s iptables v -t mangle i posle ne
se izpolzva u32 kakto pri downstream-a :)
Btw, i az da te ptiam neshto, kaji tochno patch-o-matic si
slojil na tozi kernel 2.6.11 che ne mi se igrae da testvam i
da mi gurmi kompilaciqta, kakto chesto se sluchva kogato ne
se uluchi patch-a koito trtqbva sa suotvetniqt kernel :)
|
Отговор #8 |
От: DINO (agboy20< at >yahoo __точка__ com) |
Дата: 11/10/2005 |
Mersi za otgovora steve.
Otnosno vaprosa ti:
Debian Sarge 3.1 Stable
Kernel 2.6.11
patch-o-matic-ng-20050918
iptables 1.3.3
Mojesh li da mi paste-nesh niakolko primerni conf file-a za
HTB poneje vcehra mi se sluchi neshto mnogo interesno -
eksperimentalno pusnah HTB na 10-tina choveka i pinga kam
servera (eth0) trugna baia nad dopustimoto - okolo 4000ms i
nakraia se flood-na i zabi LAN kartata na servera?!?
Eto kakvi conf failove sam izpolzval:
direktoria ot koiato se izpalniavat failovete:
/etc/sysconfig/htb
1.eth0
DEFAULT=50
2.eth0-2.root
RATE=10Mbps
BURST=5k
3.eth0-2:10.www
RATE=5Mbps
BURST=10k
4.eth0-2:10:300.11
RATE=42500
CEIL=85000
BURST=5k
PRIO=4
RULE=192.168.0.11 #User name :-)
Vsichki adresi koito sam zadaval sa kato v tochka 4
(promenial sam samo poslednoto chislo spored IP-to na user-a
- 11, 12 ...)
5.eth0-2:50.dfl
RATE=1Kbit
BURST=1k
PRIO=7
|
Отговор #9 |
От: steve |
Дата: 11/10/2005 |
Znachi shte ti dam edna ideq, da ne izpolzvash tozi script
htb.init zashtoto s nego samo moje da se oburkash oshte
poveche. Sega shte ti obqsnq zashto ti sa se vdignali
pingovete kum gateway-qt
Vsushtost ako si sheipnal IP-to si po tozi nachin s tozi
HTB.init e napulno normalno kogato si izcedish trafika koito
si sheipnal da ti se vdigne pinga i do gateway-qt.
Tova se dulji na slednata prichina. Shapinga na downsteram-a
ti se namira na interfeisa kum teb. Tui kato imash samo edin
root clas koito e s opredelena skorost i suotvetno chrez
filtur si vkaral IP-to si pri download si zapulvash vsichko
tova vaji i za chastniqt adres na interefeisa ti kum teb
koito e. Ako iskash do routera da imash dobur ping vinagi,
t.e. da ne ti se vdiga (tova e jelatelno poradi mnogo
prichini, naprimer ako na routera imash DNS server i pinga
ti e izcuklin do nego po bavno shte ti raboti DNS sistemata
na kompiutarut, t.e. po bavno shte vzemash IP-to koeto ti
trqbva za suotvetnoto ime). Tochno poradi tazi prichina e
dobre tova qvlenie da go nqma. Za celta zapochni da si
pishesh samo komandichkite s tc bez tezi neshta kato
htb.init. Toi sam po sebe si e podhodqsht samo kogato imash
nqkakuv web server, mail server i t.n. s edna mrejova karta
da im sheipnesh trafika za vsqka usluga po otdelno, To taka
e napraveno i po default dori, za www, smtp i t.n.
Po princip se procedira po sledniqt nachin. Predi da
suzdadesh shaping politikata trqbva da imsh predvid kolko
poluchavash ot ISP-to ti i dali poluchavash edna i sushta
skorost ot BG Peeringa ili mejdunarodniqt. Ako skorosta e
razlichna trqbva da gi sheipvash po otdelno.
Downstream:
suzdava se qdisk kum eth1 i se suzdavat tri klasa kato
purviqt e default. S purviqt se sheipva mejdunarodniqt.
Vtoriqt clas e za BG Peeringa. Za da opredelish trafika kato
BG Peering trqbva kum tozi klas da slojish filtri za vsqka
destinaciq ot BG Peeringa. Spokoino za da ne pishesh stotici
redove za filtri mojesh da pusnesh edin cikul i s dva reda
da realizirash tova. V Sluchaqt pri tozi itnerfeis za tozi
trafika treqbva da izpolzvash src, tui kato pri downstream
iztochnika e source adresa i po source adresckarvash tozi
trafik v tozi klas. Tretiqt klas shte e s mnogo golqma
skorost, naprimer 90 mbps V nego shte vkarash edin filtur
samo i tova shte e src IP 192.168.0.0/16 ako ti e takova
chastnoto adresno prostranstvo :) Tova se pravi tochno za da
nqmash tozi problem koito si opisal s vdigane na pingovete
kum routera ti :)
Pir upstream-a pravish sushtoto na eth0 samo che imash
predvid che otdalechenata mashina e dst, t.e. destination
adres, a ti si source adres.
Sled tova v purviqt i vtoriqt klas suzdavash otnovo
qdisk-ove i veche addvash opredelen broi podklasove, kato
obshtata skorost na podklasovete da ne previshava skorosta
na root clasa. Vuv vseki podklas moje da vkarash edin ili
poveche filtri s IP adresite na klientite. Ako v edin klas
vkarvash poveche ot edin filtur, t.e. s edin klas sheipvash
poveche ot edin klient (spodelena skorost) trqbva da
izpolzvash sfq, kato za po efektivna rabota moje da
prekompilirash kernela kato v edno failche (ot koda na
kernela) promenish stoinosta na edna konstanta SFQ_DEPTH ot
128 na 15 naprimer :)
I pak imai predvid che kato pishesh filtur za vseki klient
na eth kudeto sheipvash izhofqshtiqt tam ne se vijda
chastniqt im adres i za tova filtura ne trqbva da izpolzva
u32 a chrez markirane kakto ti opisah v predniqt posting.
Pisha ti tolkova shtoto iskam da go razberesh, nqma da ti
puskam gotovi scriptove shtot polzata e nikakva, shte go
pastnesh, shte zaraboti i do tam a tochno hubavoto e chovek
da znae kakvo pravi. Kato za nachalo si poigrai oshte malko
s htb.init. Startirai go s parametur compile i vij tochno
kak se izgrajdat qdisk i clasovete. Posle procheti tova
koeto ti trqbva ot www.lartc.org i nakraq se opitai da
napravish tova za koeto ti govorih.
JElaq ti uspeh :)
|
Отговор #10 |
От: DINO (agbo20 (a) yahoo[ точка ]com) |
Дата: 11/11/2005 |
Mersi steve, oceniavam nachina ti na obiasnenie - vse pak
ideata e da naucha neshto :-))
Ako zaciklia niakude shte pisah pak ;-P
|
<< Моля помогнете-Дебиан и SATA software RAID (1
) | видео (3
) >>
|
|
|
|
|