Strona 1 z 1

Iptables regułka - dynamiczny podział pasma

: 25 maja 2010, 16:43
autor: bryn1u
Witajcie.

Na jednym z serwerów mam spore pobieranie (obrazy iso płyt). Niestety niektórzy użytkownicy używający różnych akceleratorów pobierania plików potrafią tak zapchać łącze, że dla innych ledwo starcza. Czy da się to jakoś dynamicznie i sprawiedliwie podzielić? Łącze do serwera to 8Mbit. Od razu mówię, że limitowanie ruchu na sztywno nie wchodzi w grę. Wiem jak to zrobić we FreeBSD za pomocą ipfw+dummynet, ale zmiana systemu będzie uciążliwa.

We FreeBSD regułki wyglądałyby następująco:

Kod: Zaznacz cały

ipfw add pipe 1 tcp fron any to  10.0.0.1 80
ipfw queue 1 config weight 5 pipe 2 mask src-ip  0xffffffff
ipfw pipe 1 config 8Mbit/s
Ta reguła wydaje mi się, że jest łatwa do rozszyfrowania, ale na wszelki wypadek wyjaśniam. Szerokość ,,pipe'' jest ustawiona na 8MB bo takie jest tam łącze symetryczne. Przy takiej konfiguracji każdemu użytkownikowi zostanie dynamicznie przydzielone takie samo pasmo z/do serwera, czyli np.:[INDENT]- jeśli dwóch będzie użytkowników ściągało jednocześnie to każdy dostanie po 4M łącza
- jeśli dwóch będzie użytkowników ściągało jednocześnie ale jeden z nich otworzy kilka sesji jednoczesnego pobierania (np. takie windowsowe programy typu flashget co dzielą plik na części i otwierają wiele sesji na raz) to i tak każdy dostanie po 4MB
- przy 4 użytkowników jednoczesnych podzieli to się samo równo po 2MB na głowę bez względu na liczbę otwartych połączeń.[/INDENT]
Da się coś takiego w Linuksie uzyskać w podobnie prosty sposób?

Z góry dziękuje. Pozdrawiam.

: 27 maja 2010, 21:20
autor: grzesiek
iproute2 lub HTB

no, no dobre pytanie, za pomocą iptables chyba nie da się tego zrobić...

: 29 maja 2010, 15:41
autor: andqur
Wg mnie HTB. Dość dobry opis konfiguracji znalazłem tam:
http://linio.terramail.pl/htb.pdf