Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
IMQ czy potrzebne ??? Na moim przykładzie widać że chyba nie http://forum.freesco.pl/viewtopic.php?f=24&t=9528 |
Strona 1 z 1 |
Autor: | w_o_j [ piątek, 21 października 2005, 10:58 ] |
Tytuł: | IMQ czy potrzebne ??? Na moim przykładzie widać że chyba nie |
Witam Zainstalowalem sobie squida, niceshaper na DLS 1024/256. Mam ok 48 użytkowników. W configu niceshapera przycinam wszystkich na dl_ceil 40kbps i dl_ceil 2kbps. Z forum wyczytałem, że dobrym rozwiązaniem dla pogodzenia www z p2p jest korzystanie z imq. Tak też zrobiłem, podnislem imq od 0-3, niceshapera ustawilem na imq metod, squida mam transparentnego i wylapuje pakiety i przekazuje na imq: niceshaper conf: <global> iface inet eth0 83.17.10.142/29 iface local eth1 10.0.0.1/24 do not shape local 83.17.10.142 with 10.0.0.0/24 # do not shape local 10.0.0.1 with 10.0.0.0/24 prio 1 # shape router true low 6kbps ceil 3kbps prio 2 stats unit kbps dump 5c file /home/httpd/html/nsstats.txt resolve hostname true method imq reload 4s </global> <download> link speed 116kbps shape 105kbps user low 0kbps ceil 95kbps strict 40% prio 5 # interactive rate 20kbps ceil 50kbps # interactive rcport 80 dstport 80 interactive u32 match ip protocol 1 0xff interactive u32 match ip tos 0x10 0xff policy dynamic # interactive rate 50kbps ceil 70kbps # interactive srcip 10.0.0.1 ### Squid interactive scrport 8080,80 dstport 8080,80 ########################################### </download> <upload> link speed 28kbps shape 25kbps user low 0kbps ceil 22kbps strict 1% prio 5 # interactive srcport 80 dstport 80 policy dynamic # interactive rate 0kbps ceil 0kbps # interactive dstip 208.231.90.235 ### Wydzielone pasmo na FTP na moim kompie # interactive rate 10kbps ceil 20kbps # interactive scrport 21 dstport 21 # interactive dstip 10.0.0.200 ########################################### ### Squid # interactive scrport 8080,80 dstport 8080,80 ########################################### </upload> wylapywanie imq: #!/bin/bash ipt="/usr/sbin/iptables" port="8080" wew_if="eth1" trans="1" # proxy transparent if [ $trans == "1" ]; then $ipt -t nat -A PREROUTING -i $wew_if -p tcp --dport 80 -j REDIRECT --to-port $port echo Port 80 przelaczony na port squida $port fi # wylapywanie $ipt -A OUTPUT -t mangle -p tcp --sport $port -m connmark --mark 0 \ -m string --string 'X-Cache: MISS from ' -j CONNMARK --set-mark 1 $ipt -A OUTPUT -t mangle -p tcp --sport $port -m connmark --mark 0 \ -m string --string 'X-Cache: HIT from ' -j CONNMARK --set-mark 2 $ipt -A OUTPUT -t mangle -p tcp --sport $port \ -j CONNMARK --restore-mark $ipt -t mangle -A OUTPUT -m mark --mark 1 -j IMQ --todev 3 Przy takiej konfiguracji jak odpale emule, pingi na www oczywiscie sa salbe albo ich nie ma, stronki sie nie otwieraja w zasadzie. Wystarczy jednak że zmienie: wylacze wylapywanie: # wylapywanie #$ipt -A OUTPUT -t mangle -p tcp --sport $port -m connmark --mark 0 \ #-m string --string 'X-Cache: MISS from ' -j CONNMARK --set-mark 1 #$ipt -A OUTPUT -t mangle -p tcp --sport $port -m connmark --mark 0 \ #-m string --string 'X-Cache: HIT from ' -j CONNMARK --set-mark 2 #$ipt -A OUTPUT -t mangle -p tcp --sport $port \ #-j CONNMARK --restore-mark #$ipt -t mangle -A OUTPUT -m mark --mark 1 -j IMQ --todev 3 w niceshaperze zmienie method na mark i zaplotkuje: ... method mark ... ### Squid # interactive scrport 8080,80 dstport 8080,80 a stronki z emule jednoczesnie smigaja jak glupie, pingi co prawda nie ida, ale stronki sie otwieraja. Po zo zatem to cale imq i gadanie o nim. Prosze o wyjasnienie, pewnie mam coś źle zapisane w skryptach, jeżeli tak to proszę o pomoc, bo jak widze te wszystkie opisy, ze temu dziala, temu dziala wysmienice to dochodze do wniosku, że to imq jest potrzebne, a u mnie wydaje się być zbędne Thx ![]() |
Autor: | Anonymous [ piątek, 21 października 2005, 12:06 ] |
Tytuł: | |
ja mam co prawda konfig standardowy HTB od Zciecha, ale zdeczka go przerobilem....dolozylem imq oraz poustawialem przekazywanie do imq...zadnego squid'a nie mam...uzytkownikow 10 w tym 3 ktorzy zawsze i non stop ciagna maxa...i wszystko smiga pieknie bez IMQ nie bylo tylko...stronki sie przycinaly lub nawet wcale nie chodzily...a oto moj konfig (z dosc szczegółowym opisem)...akurat pracuje nad skryptem konfiguracyjnym: #!/bin/bash # skrypt rc.htb z zalaczonym imq dla uploadu i downloadu # nie zapomnij dopisac imq do pliku /etc/rc.conf w sekcji # MODULES na samym koncu !!!! # oraz jesli nie zamierzasz uruchamiac ponownie serwera # wpisz na konsoli: # modprobe imq # oraz nie zapomnij dopisac uruchamiania skryptow fwmarks.htb # oraz rc.htb do /etc/ppp/ip-up :) HTB_TC=/sbin/rchtb_tc stop() { # zgodnie ze schematem wpisujemy interfejsy do laczenia z internetem # dla neostrady ppp0 dla dsl eth0 /usr/sbin/iptables -t mangle -D PREROUTING -i ppp0 -j IMQ --todev 0 > /dev/null 2> /dev/null /usr/sbin/iptables -t mangle -D POSTROUTING -o ppp0 -j IMQ --todev 1 > /dev/null 2> /dev/null $HTB_TC qdisc del root dev imq0 2> /dev/null $HTB_TC qdisc del root dev imq1 2> /dev/null /sbin/ip link set imq0 down /sbin/ip link set imq1 down } start() { stop # dla bezpieczenstwa /sbin/ip link set imq0 up /sbin/ip link set imq1 up sleep 5 /usr/sbin/iptables -t mangle -A PREROUTING -i ppp0 -j IMQ --todev 0 > /dev/null 2> /dev/null /usr/sbin/iptables -t mangle -A POSTROUTING -o ppp0 -j IMQ --todev 1 > /dev/null 2> /dev/null # INTERFEJS IMQ0 (download) $HTB_TC qdisc add dev imq0 root handle 1:0 htb default 3 r2q 1 # Glowna klasa imq0 - tutaj wartosci rate i ceil sa okreslone dla downloadu # w wysokosci 1024kbit. Zapytasz pewnie dlaczego 993kbit, ano dlatego iz # jest to 97% wydajnosci lacza, przyjmuje sie taka wartosc zeby tegoz lacza # nie zapchac $HTB_TC class add dev imq0 parent 1:0 classid 1:1 htb rate 993kbit ceil 993kbit # Podzial na pasmo dla lacza internetowego i reszta # tutaj zupelnie identycznie jak wyzej $HTB_TC class add dev imq0 parent 1:1 classid 1:2 htb rate 993kbit ceil 993kbit # pasmo priorytetowe dla ICMP, TOS 0x10 (min. delay) oraz wybranego portu 3333 # tutaj rowniez musisz zmienic wartosc rate i ceil na swoje # rate to wartosc minimalna jaka moze zostac dana okreslonemu komputerowi okresla # sie ja na poziomie nastepujacym: [(97% razy max wydajnosc lacza):ilosc komputerow w sieci]*90% # natomiast wartosc ceil to 97% maksymalnej wydajnosci lacza $HTB_TC class add dev imq0 parent 1:2 classid 1:20 htb rate 124kbit ceil 993kbit prio 1 quantum 1500 $HTB_TC qdisc add dev imq0 parent 1:20 esfq perturb 10 hash dst $HTB_TC filter add dev imq0 protocol ip prio 3 parent 1:0 u32 match ip sport 3333 0xffff flowid 1:20 $HTB_TC filter add dev imq0 protocol ip prio 2 parent 1:0 u32 match ip tos 0x10 0xff flowid 1:20 $HTB_TC filter add dev imq0 protocol ip prio 2 parent 1:0 u32 match ip protocol 1 0xff flowid 1:20 # ponizej ustalone zostaja skrypty i klasy dla konretnych komputerow w sieci. nalezy zmienic # wartosci rate oraz ceil zgodnie ze schematem wyzej podanym oraz: # - classid 1:21 (pierwsza) i rosnie z kazdym komputerem w sieci np. komputer 2 bedzie miec classid 1:22 # - parent 1:21 i rosnie tak samo z kazdym komputerem w sieci # - flowid 1:21 zupelnie identycznie jak powyzej # - zmiana ip konkretnego komputera w sieci - linia 3 skryptu dla kazdego komputer, UWAGA !! musi sie zgadzac # z wpisami w pliku /etc/hosts !! # Komp_1 $HTB_TC class add dev imq0 parent 1:2 classid 1:21 htb rate 124kbit ceil 993kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq0 parent 1:21 esfq perturb 10 hash dst $HTB_TC filter add dev imq0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.2 flowid 1:21 # Komp_2 $HTB_TC class add dev imq0 parent 1:2 classid 1:22 htb rate 124kbit ceil 993kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq0 parent 1:22 esfq perturb 10 hash dst $HTB_TC filter add dev imq0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.3 flowid 1:22 # Komp_3 $HTB_TC class add dev imq0 parent 1:2 classid 1:23 htb rate 124kbit ceil 993kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq0 parent 1:23 esfq perturb 10 hash dst $HTB_TC filter add dev imq0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.4 flowid 1:23 # Komp_4 $HTB_TC class add dev imq0 parent 1:2 classid 1:24 htb rate 124kbit ceil 993kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq0 parent 1:24 esfq perturb 10 hash dst $HTB_TC filter add dev imq0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.5 flowid 1:24 # Komp_5 $HTB_TC class add dev imq0 parent 1:2 classid 1:25 htb rate 124kbit ceil 993kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq0 parent 1:25 esfq perturb 10 hash dst $HTB_TC filter add dev imq0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.6 flowid 1:25 # Komp_6 $HTB_TC class add dev imq0 parent 1:2 classid 1:26 htb rate 124kbit ceil 993kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq0 parent 1:26 esfq perturb 10 hash dst $HTB_TC filter add dev imq0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.7 flowid 1:26 # router $HTB_TC class add dev imq0 parent 1:2 classid 1:27 htb rate 124kbit ceil 993kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq0 parent 1:27 esfq perturb 10 hash dst $HTB_TC filter add dev imq0 protocol ip prio 5 parent 1:0 u32 match ip dst 192.168.1.1 flowid 1:27 # transfer serwer->LAN $HTB_TC filter add dev imq1 protocol ip prio 1 parent 1:0 handle 1 fw flowid 1:3 # INTERFEJS IMQ1 (upload) $HTB_TC qdisc add dev imq1 root handle 2:0 htb default 11 r2q 1 # glowna klasa # klasa uploadu - zmienic wpis rate i ceil na odpowiednie wartosci w wysokosci 97% # maksymalnej wydajnosci lacza $HTB_TC class add dev imq1 parent 2:0 classid 2:1 htb rate 248kbit ceil 248kbit # klasa priorytetowa ACK # nalezy rowniez zmienic wartosci rate i ceil, lecz tym razem liczymy to w nastepujacy sposob: # (97%*maksymalny upload)*20% $HTB_TC class add dev imq1 parent 2:1 classid 2:10 htb rate 49kbit ceil 49kbit prio 1 quantum 1500 $HTB_TC qdisc add dev imq1 parent 2:10 esfq perturb 10 hash dst $HTB_TC filter add dev imq1 parent 2:0 protocol ip prio 2 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 1 match u8 0x10 0xff at 33 flowid 2:10 # klasa priorytetowa TOS 0x10 oraz ICMP # tutaj okreslona zostaje klasa priorytetowa dla okreslonego portu w tym wypadku port 3333 # rate zawsze 1kbit a ceil okreslamy w wysokosci max 80% maksymalnego upload (dowolnie jak chcemy) $HTB_TC class add dev imq1 parent 2:1 classid 2:9 htb rate 16kbit ceil 198kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq1 parent 2:9 esfq perturb 10 hash dst $HTB_TC filter add dev imq1 parent 2:0 protocol ip prio 1 u32 match ip tos 0x10 0xff flowid 2:9 $HTB_TC filter add dev imq1 parent 2:0 protocol ip prio 2 u32 match ip dport 3333 0xffff flowid 2:9 $HTB_TC filter add dev imq1 parent 2:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 2:9 # ruch serwerowy (pasmo dla gosci z zewnatrz) # tutaj okreslamy ilosc pasma jakie ma byc dostepne dla gosci z zewnatrz (ftp, www itp.) # rate i ceil liczymy do max 80% wydajnosci uploadu lacza $HTB_TC class add dev imq1 parent 2:1 classid 2:11 htb rate 198kbit ceil 198kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq1 parent 2:11 esfq perturb 10 hash dst $HTB_TC filter add dev imq1 parent 2:0 protocol ip prio 3 handle 1 fw flowid 2:11 # Komp_1 # ponizej ustalone zostaja skrypty i klasy dla konretnych komputerow w sieci. nalezy zmienic # wartosci rate (bez zmian) i ceil na wysokosci max 80% wydajnosci uploadu lacza oraz: # - classid 1:12 (pierwsza) i rosnie z kazdym komputerem w sieci np. komputer 2 bedzie miec classid 1:22 # - parent 1:12 i rosnie tak samo z kazdym komputerem w sieci # - flowid 1:12 zupelnie identycznie jak powyzej # - zmiana ip konkretnego komputera w sieci - linia 3 skryptu dla kazdego komputer, UWAGA !! musi sie zgadzac # z wpisami w pliku /etc/hosts !! # - nalezy rowniez zmienic ....handle 2 fw.... na dane zgodne z plikiem fwmarks.htb !! # liczbe w tej linii zmieniamy na konkretna liczbe znakowania jaka zostala uzyta w pliku fwmarks.htb $HTB_TC class add dev imq1 parent 2:1 classid 2:12 htb rate 16kbit ceil 198kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq1 parent 2:12 esfq perturb 10 hash dst $HTB_TC filter add dev imq1 parent 2:0 protocol ip prio 5 handle 2 fw flowid 2:12 # Komp_2 $HTB_TC class add dev imq1 parent 2:1 classid 2:13 htb rate 16kbit ceil 198kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq1 parent 2:13 esfq perturb 10 hash dst $HTB_TC filter add dev imq1 parent 2:0 protocol ip prio 5 handle 3 fw flowid 2:13 # Komp_3 $HTB_TC class add dev imq1 parent 2:1 classid 2:14 htb rate 16kbit ceil 198kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq1 parent 2:14 esfq perturb 10 hash dst $HTB_TC filter add dev imq1 parent 2:0 protocol ip prio 5 handle 4 fw flowid 2:14 # Komp_4 $HTB_TC class add dev imq1 parent 2:1 classid 2:15 htb rate 16kbit ceil 198kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq1 parent 2:15 esfq perturb 10 hash dst $HTB_TC filter add dev imq1 parent 2:0 protocol ip prio 5 handle 5 fw flowid 2:15 # Komp_5 $HTB_TC class add dev imq1 parent 2:1 classid 2:16 htb rate 16kbit ceil 198kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq1 parent 2:16 esfq perturb 10 hash dst $HTB_TC filter add dev imq1 parent 2:0 protocol ip prio 5 handle 6 fw flowid 2:16 # Komp_6 $HTB_TC class add dev imq1 parent 2:1 classid 2:17 htb rate 16kbit ceil 198kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq1 parent 2:17 esfq perturb 10 hash dst $HTB_TC filter add dev imq1 parent 2:0 protocol ip prio 5 handle 7 fw flowid 2:17 # router $HTB_TC class add dev imq1 parent 2:1 classid 2:18 htb rate 16kbit ceil 198kbit prio 2 quantum 1500 $HTB_TC qdisc add dev imq1 parent 2:18 esfq perturb 10 hash dst $HTB_TC filter add dev imq1 parent 2:0 protocol ip prio 5 handle 8 fw flowid 2:18 $HTB_TC filter add dev imq1 parent 2:0 protocol ip prio 9 u32 match ip dst 0/0 flowid 2:11 } case "$1" in 'start') echo -n "Uruchamianie kolejkowania..." start echo " wykonano." ;; 'stop') echo -n "Zatrzymywanie kolejkowania..." stop echo " wykonano." ;; 'restart') echo -n "Restartowanie kolejkowania: stop" stop echo -n " start" start echo " wykonano." ;; 'status') echo "Klasy na interfejsie imq0 - download" echo "================================" tc class show dev imq0 | grep root tc class show dev imq0 | grep -v root | sort | nl echo "Klasy na interfejsie imq1 - upload" echo "===================================" tc class show dev imq1 | grep root tc class show dev imq1 | grep -v root | sort | nl ;; *) echo -e "\nUzycie: rc.htb start|stop|restart|status" ;; esac oraz znakowanie pakietow: #!/bin/bash IPT=/usr/sbin/iptables stop() { $IPT -F -t mangle $IPT -X -t mangle } start() { # nalezy wpisac odpowiednie ip komputera i markowanie zgodnie ze # ze schematem na dole :) gdzie ostatni zawsze jest serwer # nalezy rowniez zwrocic uwage na znakowanie pakietow # przyda sie to do wpisywania odpowienikow w pliku rc.htb !!! $IPT -t mangle -A OUTPUT -j MARK --set-mark 1 $IPT -t mangle -A PREROUTING -s 192.168.1.2 -j MARK --set-mark 2 $IPT -t mangle -A PREROUTING -s 192.168.1.3 -j MARK --set-mark 3 $IPT -t mangle -A PREROUTING -s 192.168.1.4 -j MARK --set-mark 4 $IPT -t mangle -A PREROUTING -s 192.168.1.5 -j MARK --set-mark 5 $IPT -t mangle -A PREROUTING -s 192.168.1.6 -j MARK --set-mark 6 $IPT -t mangle -A PREROUTING -s 192.168.1.7 -j MARK --set-mark 7 $IPT -t mangle -A PREROUTING -s 192.168.1.1 -j MARK --set-mark 8 } case $1 in 'start') stop start ;; 'stop') stop ;; *) echo -e "\nUycie: fwmarks.htb start|stop" esac |
Autor: | zciech [ piątek, 21 października 2005, 12:20 ] |
Tytuł: | |
Otoz sa trzy metody traktowania SQUIDA: 1. ruch Squida traktujemy jako ruch lokalny i wtedy zaruwno strony miss i hit nie sa ograniczane przez niceshaper, jest to w miare bezpieczne, bo wiekszosc ruchu squidowego jes z internetu do serwera a tom przewaznie jest stosunkowo duze pasmo. Do tego wystarczy wpis w configu niceshapera: do not shape local 10.0.0.1 with 10.0.0.0/24 prio 1 Oczywiscie w konfiguracji squida musimy zapewnic odpowiednie ograniczanie predkosci (nie wiem czy jest to mozliwe) i wtedy strony smigaja jak glupie zwlaszcza z cache. 2. Ruch squida traktowac jako ruch internetowy i ograniczac pasmem usera, wystarczy nie wpisywac w configu: # do not shape local 10.0.0.1 with 10.0.0.0/24 prio 1 3. Ruch squida HIT traktowac jak w p. 1 Ruch squida MISS traktowac jak w p. 2 I do tego potrzebne sa te kolejki imq dodatkowe. Ale o ile sie orientuje to nikt tego jesdzcze porządnie nie zrobil. |
Autor: | w_o_j [ piątek, 21 października 2005, 12:26 ] |
Tytuł: | |
No właśnie, na forum o imq można znaleźć tyle postów, że aż główka boli, ale prawdę mówiąc żadne z tych rozwiązań nie działa tak jak powinno. Liczę na to, że niceshaper tnie wszystko, nawet p2p i jak ograniczy się ilość otwartych połączeń to wystarczy do stabilnego działania sieci. Przy konfiguracji jaką przedstawiłem powyżej jakoś to się kręci ![]() |
Autor: | -MW- [ piątek, 21 października 2005, 16:55 ] |
Tytuł: | |
[quote]3. Ruch squida HIT traktowac jak w p. 1 Ruch squida MISS traktowac jak w p. 2 quote] oj chyba nie do konca tak to jest poniewaz "zmuszenie" nice zeby nie obcinal squida polega w gruncie na wydzieleniu ruchu na poszczegolnych portach - np.80 i proxy i owe porty sa wyjete z pod dzialania nice, czyli sa puszczone samopas. z postow opisujacych dzialanie tej metody wynika ze pakiety na w/w portach sa puszczone bez kontroli a spowalniane w squidzie dopiero po przekroczeniu limitu danych - a jak ktos nie zamierza ograniczyc limitem transferu to ma przeje..... chyba ze pozadnie zrobi kolejki,klasy itp na tym interfejsie --- tak mi sie wydaje |
Autor: | zciech [ piątek, 21 października 2005, 17:26 ] |
Tytuł: | |
przeciez dokladnie to mialem na mysli: Ruch squida HIT traktowac jak w p. 1 Ruch squida MISS traktowac jak w p. 2 I do tego potrzebne sa te kolejki imq dodatkowe. Ale o ile sie orientuje to nikt tego jeszcze porządnie nie zrobil. |
Autor: | -MW- [ piątek, 21 października 2005, 19:56 ] |
Tytuł: | |
Cytuj: np.80 i proxy i owe porty sa wyjete z pod dzialania nice, czyli sa puszczone samopas.
mnie to boli - jakbym chcial miec net bez kontroli to nie instalowalbym nice i innych pierdul. |
Autor: | -MW- [ poniedziałek, 29 stycznia 2007, 22:54 ] |
Tytuł: | |
Cytuj: Ale o ile sie orientuje to nikt tego jeszcze porządnie nie zrobil.
eeee ![]() |
Autor: | zciech [ poniedziałek, 29 stycznia 2007, 23:11 ] |
Tytuł: | |
-MW- pisze: Cytuj: Ale o ile sie orientuje to nikt tego jeszcze porządnie nie zrobil. eeee ![]() Czyżby szachista? |
Autor: | -MW- [ poniedziałek, 29 stycznia 2007, 23:13 ] |
Tytuł: | |
archiwista odswiezacz ![]() |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |