Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
HTB + IMQ oraz IPP2P i inne http://forum.freesco.pl/viewtopic.php?f=22&t=16622 |
Strona 1 z 1 |
Autor: | desertangel [ poniedziałek, 25 lutego 2008, 17:19 ] |
Tytuł: | HTB + IMQ oraz IPP2P i inne |
Witam, Chciałem wykonać dynamiczny podział pasma podług uzytkowników. Dla downloadu wszystko działa poprawnie. Jednakże natrafiam na problem z ruchem wychodzącym (upload). #nalezy jeszcze wykonac /sbin/modeprobe imq de...=X # oczywiście przerobiłem adresacje zgodnie ze swoją podsiecia ifc_zew="eth0" komputer1="192.168.2.2/24" komputer2="192.168.2.3/24" komputer3="192.168.2.4/24" max_upload="250kbit" upload_user="50kbit" upload_serv="70kbit" max_download="510kbit" download_user="127kbit" download_serv="127kbit" ip link set imq0 up tc qdisc del dev imq0 root tc qdisc add dev imq0 root handle 1: htb default 10 tc class add dev imq0 parent 1: classid 1:1 htb rate $max_upload ceil $max_upload tc class add dev imq0 parent 1:1 classid 1:10 htb rate $upload_serv ceil $max_upload tc class add dev imq0 parent 1:1 classid 1:20 htb rate $upload_user ceil $max_upload tc class add dev imq0 parent 1:1 classid 1:30 htb rate $upload_user ceil $max_upload tc class add dev imq0 parent 1:1 classid 1:40 htb rate $upload_user ceil $max_upload tc filter add dev imq0 parent 1: protocol ip prio 1 u32 match ip src $komputer1 flowid 1:20 tc filter add dev imq0 parent 1: protocol ip prio 1 u32 match ip src $komputer2 flowid 1:30 tc filter add dev imq0 parent 1: protocol ip prio 1 u32 match ip src $komputer3 flowid 1:40 tc qdisc add dev imq0 parent 1:10 handle 10:0 sfq perturb 10 tc qdisc add dev imq0 parent 1:20 handle 20:0 sfq perturb 10 tc qdisc add dev imq0 parent 1:30 handle 30:0 sfq perturb 10 tc qdisc add dev imq0 parent 1:40 handle 40:0 sfq perturb 10 iptables -t mangle -A PREROUTING -i $ifc_zew -j IMQ --todev 1 Powyższy listing jest kodem jaki znalazłem na sieci. Niestety cały ruch jest kolejkowany na 1:10. Wyglada na to, ze filtry nie wyłapują komputerów z sieci. Czy ktoś ma pomysł jak rozwiązać owo zagadnienie? Pomoże markowanie pakietów? (informuję, że iptables znam b. słabo) Dla downloadu stosuję wyłącznie htb bez imq. Mam także pytania odnośnie layer7, ipp2p itp. Z tego co rozumiem służą one do wyłapania ruchu p2p gdy dzielimy pasmo podług usług. Czy dobrze rozumiem istotę ich przeznaczenia? Dziękuję za ewentualną pomoc. Ps. Mam jeszcze jeden ciekawy problem: gdy wpiszę tc qdisc to daostajęinformacjent qdisc które utworzyłem. Jednakże gdy wpiszę tc filter lub tc class (także z paramterami -s, -d) to informacji brak nt. danego obiektu. Coś robię nie tak w skryptach? |
Autor: | zciech [ poniedziałek, 25 lutego 2008, 20:22 ] |
Tytuł: | |
ifc_zew="eth0" iptables -t mangle -A PREROUTING -i $ifc_zew -j IMQ --todev 1 weź i pomyśl nad tym chwile ![]() komputer1="192.168.2.2/24" komputer2="192.168.2.3/24" komputer3="192.168.2.4/24" Nad tym też radziłbym sie zastanowić ![]() |
Autor: | desertangel [ poniedziałek, 25 lutego 2008, 21:11 ] |
Tytuł: | |
"weź i pomyśl nad tym chwile , bo jak rozumie masz dsl." Niestety nie wiem jak to ugryźć. To jest przykładowy skrypt. Udało mi się założyć ograniczenia na download. Z uploadem nie daję rady. Głownie dlatego, że moja znajomośćiptables jest nikła. "Nad tym też radziłbym sie zastanowić " Maski 32 bit? ;] Tak więc dalej tkwię w martwym pukncie. Nie wiem jak markować pakiety (próbowałem iptables ale nie mogę ich wyłapać za pomocą filtrów, mógłby ktoś pokazać jak wykonać to poprawnie na podstawie adresu źródłowego?) Jak wcześniej już pisałem skrypt działa w odniesieniu do całego ruchu tzn. wszystko jest przypisane do 1:10. Jak chciałbym filtrować na podstawie adresu źródłowego. Ps. zciech, umiem ten skrypt przerobić tak by działał. Problemem nie jest imq ani maski. Nie umiem wyłapać pakietów za pomocą iptables (mark) i fw (handle). |
Autor: | rikardo7 [ poniedziałek, 25 lutego 2008, 21:36 ] |
Tytuł: | |
Cytuj: Niestety nie wiem jak to ugryźć. zciech napisał, ze masz pomyśleć a nie gryźć!! ![]() Cytuj: Maski 32 bit? ;]
no to uważaj żebyś zębów nie połamał!! poszukaj cos na temat HTB lub niceshapera!! jak również możesz zajrzeć do FAQ |
Autor: | zciech [ poniedziałek, 25 lutego 2008, 21:37 ] |
Tytuł: | |
Powinno być: ifc_zew="eth1" komputer1="192.168.2.2" komputer2="192.168.2.3" komputer3="192.168.2.4" imq0 to jest dev 0 a nie 1 iptables -t mangle -A PREROUTING -i $ifc_zew -j IMQ --todev 0 ps. Pozwolę sobie mieć odmienne zdanie w tej kwestii, nie potrzebujesz markowania. pss pss Sądzę, że lepiej by było gdybyś raczył zamieścić wszystko co spłodziłeś dla swojej sieci, a nie jakies fragmenty i to jeszcze przed dostosowaniem. Bo to forum to nie ITV, i tu nie ma wróżek. |
Autor: | desertangel [ poniedziałek, 25 lutego 2008, 21:59 ] |
Tytuł: | |
# download tc qdisc del dev eth1 root tc qdisc add dev eth1 root handle 1:0 htb tc class add dev eth1 parent 1:0 classid 1:1 htb rate 15Mbit ceil 15Mbit # host_test tc class add dev eth1 parent 1:1 classid 1:198 htb rate 208Kbit ceil 14560Kbit tc filter add dev eth1 protocol ip u32 match ip dst 192.168.1.98 flowid 1:198 Tak przedstawia się sytuacja dla download. Zastosowałem wcześniej podany skrypt (po dostosowaiu) dla uploadu - zmieniłem jedynie paramter dst na scr w filtrze. Użyłem imq. "poszukaj cos na temat HTB lub niceshapera!! jak również możesz zajrzeć do FAQ" Właśnie siedzę nad htb. Nice'a wcześiej użyłem ale nie trzymał uploadu. Potem użyłem shaperd'a. Po pewnym czasie program wywalił "Błąd ochrony pamięci" i nie chciał ruszyć... Dlatego postanowiłem sam napisać stosowne reguły. A teraz: modprobe imq ifconfig imq0 up tc qdisc del dev imq0 root tc qdisc add dev imq0 root handle 2: htb tc class add dev imq0 parent 2: classid 2:1 htb rate 128Kbit ceil 128Kbit tc class add dev imq0 parent 2:1 classid 2:100 htb rate 16Kbit ceil 32Kbit tc class add dev imq0 parent 2:1 classid 2:200 htb rate 16Kbit ceil 128Kbit # tutaj wg mnie popelniam blad tc filter add dev imq0 protocol ip u32 match ip src 192.168.1.100 flowid 2:100 tc filter add dev imq0 protocol ip u32 match ip src 192.168.1.200 flowid 2:100 ptables -t mangle -A PREROUTING -i eth1 -j IMQ --todev 0 "Pozwolę sobie mieć odmienne zdanie w tej kwestii, nie potrzebujesz markowania." Mógłbyś pokazać jak byś to rozwiązał? Ps. Na dodatek nie wiem do końca jak sprawa ma się z layer7 i ipp2p. O czym wcześniej pisałem. Pps. Możecie pokazać na podstawie powyższego skryptu jak poprawnie rozwiązać ten problem? Ppps. http://www.linuxhomenetworking.com/wiki ... g_iptables <== to swoją wielkość ma, nie dam rady zrozumieć tego w rozsądnej jednostce czasu. |
Autor: | zciech [ wtorek, 26 lutego 2008, 00:22 ] |
Tytuł: | |
Poza brakiem literki "i" na poczatku ptables w ostatniej linii reszta wydaje się byc OK. Cytuj: Mógłbyś pokazać jak byś to rozwiązał?
tak: http://ww2.devel-nnd.brb.pl/nnd/pakiety ... pkg.tar.gz można też tak: http://ww2.devel-nnd.brb.pl/nnd/pakiety ... pkg.tar.gz albo tak (dla zaawansowanych): http://ww2.devel-nnd.brb.pl/nnd/pakiety ... pkg.tar.gz A tu masz calkiem gratis, napisany w perlu program do oglądania ruchu w regułach htb wywołanie np.: tc-viewer --iface=imq0 --colors --unit=kbit |
Autor: | desertangel [ wtorek, 26 lutego 2008, 01:02 ] |
Tytuł: | |
"(...) reszta wydaje się byc OK." Niestety, ruch nie zostaje wyłapany. Gdy zmodyfikować tak: #tworzenie classy dla qdisc tc qdisc add dev imq0 root handle 2: htb default 10: # clasa domyslna tc class add dev imq0 parent 2: classid 2:10 htb rate X ceil Y To cały ruch jest kierowany do tej klasy. Doszedłem do wniosku, iż jest to spowodowane przez niepoprawne filtry. Rchtp wydaje mi się obejściem problemu - ktoś za mnie odrobił pracę domową. Nie mówię, że to źle. Analiza źródeł najprawdopodobniej powie mi co robię nie tak. Tylko, hmm.. po prostu to nie w moim stylu. Tc-viewer'a używam. I kolejna ciekawostka, nie pokazuje on absolutnie żadnej informacji nt. klas, kolejek czy filtrów. W każdym razie naświetlcie sprawę z layer7 i ipp2p. Czy są przydatne przy podziale na usługi. Czy też znajdą zastosowanie w "sztywnym" podziale? |
Autor: | zciech [ wtorek, 26 lutego 2008, 01:23 ] |
Tytuł: | |
To ciekawe bo umnie dziala: modprobe imq ifconfig imq0 up tc qdisc del dev imq0 root tc qdisc add dev imq0 root handle 2: htb tc class add dev imq0 parent 2: classid 2:1 htb rate 128Kbit ceil 128Kbit tc class add dev imq0 parent 2:1 classid 2:100 htb rate 16Kbit ceil 32Kbit tc class add dev imq0 parent 2:1 classid 2:200 htb rate 16Kbit ceil 128Kbit tc filter add dev imq0 protocol ip u32 match ip src 10.0.0.30 flowid 2:100 tc filter add dev imq0 protocol ip u32 match ip src 10.0.0.12 flowid 2:200 iptables -t mangle -A PREROUTING -i eth1 -j IMQ --todev 0 Tue Feb 26 00:20:47 2008 Mode: HTB imq0 ^C to QUIT 2:1 < 128Kbit - 128Kbit > 36.3 kbit/s 2:100 < 16Kbit - 32Kbit > 34.5 kbit/s 2:200 < 16Kbit - 128Kbit > 0.4 kbit/s w zwiazku z tym nasuwa się pytanie dlaczego w sekcji downloadu masz: tc filter add dev eth1 protocol ip u32 match ip dst 192.168.1.98 flowid 1:198 a uploadu tc filter add dev imq0 protocol ip u32 match ip src 192.168.1.100 flowid 2:100 tc filter add dev imq0 protocol ip u32 match ip src 192.168.1.200 flowid 2:100 to zupelnie nie takie same IP są. tc_wiewer pokazuje tylko aktywne klasy, uzyj opcji --zero |
Autor: | desertangel [ wtorek, 26 lutego 2008, 02:37 ] |
Tytuł: | |
Z dwóch różnych serwerów brałem. Na jednym (produkcyjnym) jest załączony download. Upload testuję na "domowym", że się tak wyrażę. Pomyłki związane z adresami ip i niewłaściwymi "gałęziami" można odrzucić. Ps. Przeanalizuję jeszcze raz filtry. Skoro u Ciebie działa, to i u mnie też powinno. Chyba, że brakuje jakiegoś patcha na iptables, kernel (???). W kazdym razie przyjże się rchtb. Wygląda to na kawał, dobrej roboty. |
Autor: | rikardo7 [ czwartek, 28 lutego 2008, 20:24 ] |
Tytuł: | |
nadal nie napisales jakie masz lacze. Cytuj: max_upload="250kbit"
upload_user="50kbit" upload_serv="70kbit" max_download="510kbit" download_user="127kbit" download_serv="127kbit" Ja mysle ze ten upload masz trochę przesadzony, i zapychasz upload! EDIT ja testowalem HTB zciecha i niceshapera i oba sposoby u mnie działają, ale bardziej odpowiada mi niceshaper, a i jeszcze jedno, jak kopiujesz jakieś pliki od kogos przejrzyj je najpierw i zmień do swoich potrzeb parametry w nim zawarte!! |
Autor: | -MW- [ czwartek, 28 lutego 2008, 21:50 ] |
Tytuł: | |
Cytuj: Chciałem wykonać dynamiczny podział pasma podług uzytkowników.
a jaka to metoda dynamicznego podzialu? ps. proponuje poczytac co napisal autor niceshapera na temat prob podzialu dynamicznego w bash. |
Autor: | zciech [ piątek, 29 lutego 2008, 00:41 ] |
Tytuł: | |
-MW- pisze: Cytuj: Chciałem wykonać dynamiczny podział pasma podług uzytkowników. a jaka to metoda dynamicznego podzialu? ps. proponuje poczytac co napisal autor niceshapera na temat prob podzialu dynamicznego w bash. Prszę Cię, nie mąć ludziom w głowach ![]() Reguły htb to w/g Ciebie jest podział statyczny? ps. A pamiętacie justice? To był podział dynamiczny w bashu. Ale freesco nie ma htb ![]() |
Autor: | -MW- [ piątek, 29 lutego 2008, 01:36 ] |
Tytuł: | |
dynamiczny podzial to taki gdzie klasa hosta zmienia predkosc zaleznie od panujacych warunkow, czyli jest dodawana i kasowana i tak dalej. rozumiem ze do tego potrzebny jest jakis skrypt monitorujacy i podejmujacy akcje zaleznie od potrzeby. kiedys wykombinowalem taki skrypcik zmieniajacy reguly hostom zaleznie od panujacych warunkow ale poniewaz w bashu obliczenia nie mogly byc wykonywane czesciej niz kilka-kilkanascie sekund strasznie mi sie to nie podobalo. regula dodana statycznie i okreslajaca wielkosc klasy to raczej statyczny podzial. dynamiczny podzial jest wtedy jak nie mamy zadnego podzialu - kto pierwszy sie dopcha ten ma wiecej - czasem sytuacja moze sie zmienic i host sciaga wiecej, a raz mniej. podobnie jest ze statycznym htb zapchanym na full - jest dynamiczne ![]() |
Autor: | marask [ piątek, 29 lutego 2008, 09:33 ] |
Tytuł: | |
nie do końca MW masz rację. W moim mniemaniu htb też jest dynamiczne. Po co w przeciwnym wypadku byłby parametr 'prio'? Liczby przypisane w konfiguracji mogą być stałe, ale do wewnętrznych obliczeń htb może używać własnych parametrów - zależnych od obciążenia sieci, prio itp. Niceshaper jako przykład dynamicznego podziału, sam ustawia limity dla hostów, z pominięciem wewnętrznych przeliczników w htb (nie pozwala im się dostosowywać, bo sam zmienia limity). |
Autor: | -MW- [ piątek, 29 lutego 2008, 15:57 ] |
Tytuł: | |
jesli o taka dynamike chodzi to niech bedzie ze jest to dynamiczny podzial. lepszym przykladem dynamicznego podzialu pasma jest hfsc. |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |