[Allegro.pl - aukcje online - kup lub sprzedaj w atrakcyjnej cenie!]

Dynamiczne ograniczanie pasma

Sposób na programy p2p i nie tylko.

GŁÓWNA STREFA ZRZUTU SZNURECZKI ARCHIWUM

WSTĘP
Justice jest pakietem dla mini dystrybucji linux'a o nazwie Freesco. Służy do ograniczania pasma dla użytkowników, którzy zapychają nam łącze ze światem, ściągając hurtowe ilości danych. Nie jest to stricte podział łącza, pełni raczej funkcję strażnika "sprawiedliwości", pilnuje, aby wszyscy mieli w miarę takie same warunki dostępu do sieci globalnej. Realizowane jest to za pomocą interfejsów dławiących, opartych na module jądra, o nazwie shaper. Opis modułu shaper oraz programu sterującego shapecfg znajdziecie tutaj.

NOWA WERSJA
W związku z ogromną popularnością pakietu Justice, mojego autorstwa, postanowiłem kontynuować prace nad nowymi wersjami. W temacie samego shaper'a wiele się już zrobić nie da (dla tego jądra), dodana została tylko obsługa przycinania pasma wychodzącego, za pomocą pakietu rshaper. Pomysł zastosowania rhaper'a, wcześniej zrealizowany został w kilku przeróbkach Justice, przez mat1|9s. Szlak, zatem miałem przetarty, choć zrobiłem to po swojemu. Pakiet rshaper nie jest integralną częścią pakietu Justice, więc należy sobie go doinstalować. Polecany jest pakiet autorstwa Bogdana, dostępny na witrynie http://download.freesco.pl/. Najwięcej modyfikacji poczynionych zostało w samym sterowaniu przepływem danych, oraz w ich zliczaniu. Główny skrypt sterujący Justice, został przepisany całkowicie od nowa. Wyrzuciłem poza skrypt funkcje tworzenia strony kontrolnej, aby przyspieszyć jego działanie i sprawność, dodałem osobny skrypt obróbki statystyk, przesunąłem konfigurację do osobnego pliku justice.cfg.Oprócz powyższych zmian znajdziecie w nowym pakiecie sporo dodatkowych funkcji:

  • Możliwość konfiguracji restrykcji prędkości downloadu i uploadu ze względu na przewagę określonych portów. Określone jako procent z przysługującej prędkości. Od wersji 4.5

  • Konfiguracja czasu "uśpienia" cyklu, czyli przerwy pomiędzy kolejnymi odczytami i analizami. Od wersji 4.5

  • Ćwierćinteligentny :) system rozpoznawania ruchu lokalnego FTP, poczty lub też squid'a. Jeżeli transfer przekroczy realne możliwości naszego łacza internetowego, zostanie potraktowany jako ruch wewnętrzny i host nie zostanie na tej podstawie przyblokowany. Od wersji 4.4

  • Gromadzenie statystyk transferu (tylko download), z podziałem na dni tygodnia, oraz z podziałem dziennym, tygodniowym, miesięcznym i całościowym. Od wersji 4.0

  • Możliwość przycinania określonych komputerów na stałe (tylko download), niezależnie od ilości danych. Wystarczy wpisać jego adres IP do pliku staly.blok, w katalogu /mnt/router/packages/justice/ i zresetować skrypt komendą rc_zjustice restart. Określanie prędkości stałych shaper'ów i udziałów w ogólnym paśmie opisuje akapit "podstawowa konfiguracja". Od wersji 4.0

  • Opcja limitu dziennego danych, po przekroczeniu, którego delikwent zostanie przycięty do przepustowości wynikającej z podziału na użytkowników i dominacji określonych portów, lub do przepustowości zdefiniowanej osobno w pliku justice.cfg. Wielkość limitu w megabajtach podajemy w pliku konfiguracyjnym. Od wersji 4.0. Od wersji 4.5 możliwość procentowego określenia prędkości.

  • Tryb tzw "uśpienia", i możliwość uruchomienia w tym trybie programów do ściągania na serwer dużych plików w tle. Szerzej na ten temat w akapicie "tryb uśpienia i pobierania w tle". Od wersji 4.1

OGRANICZENIA I WADY
Niestety pewnych ograniczeń, z racji użytego jądra w Freesco, nie jesteśmy w stanie w żaden sposób przeskoczyć. Wady Justice zamykają się generalnie w wadach użytych rozwiązań, shaper'a i rshaper'a.
  • Podczas dławienia ruchu z serwera do klientów, przycinane jest CAŁE pasmo, bez względu na rodzaj usługi. Więc pomimo tego, że nie jest zliczany ruch na portach netbios, czyli otoczenia sieciowego, to w przypadku trafienia do shapera dławiony jest także transfer plików z serwera w otoczeniu sieciowym, poczta z serwera, a także pobieranie z lokalnego FTP.
  • Utrata części pakietów podczas ograniczania i blokady (częściowe), oraz opóźnienia pingów przechodzących przez shaper'a. To niestety jest nie do uniknięcia, shaper działa na zasadzie kolejki, ale mając świadomość tego, że użytkownik, aby znaleźć się w "drodze przez mękę" musi naprawdę coś przeskrobać, utrata części pakietów (które i tak są retransmitowane) nie jest ogromnym problemem.
  • Pakiet Justice nie toleruje ŻADNYCH obcych reguł zliczania ruchu (ipfwadm). Niestety powoduje to niekompatybilność z standardowym pakietem MRTG, czy LAS. Alternatywą jest pakiet mrtg-just przygotowany przez Maćka S. Od wersji 4.2 jest możliwość włączenia opcji podawania przez Justice, danych ilości transferów do osobnych zewnętrznych plików. Co umożliwia połączenie MRTG z Justice.
  • W przypadkach nagłego twardego resetu, zawieszenia systemu, lub braku zasilania, może nastąpić uszkodzenie plików statystyk, jeżeli były w danym momencie zapisywane. Justice od wersji 4.1 wzwyż, wyposażone jest w mechanizm kopii bezpieczeństwa, która wykonuje się automatycznie podczas planowego zatrzymywania router'a, i również co godzinę. Podczas startu za każdym razem "przywracane" są statystyki z przed resetu, lub z ostatniej pełnej godziny. Nie zapewnia to stuprocentowego bezpieczeństwa plików statystyk, ale w znacznym stopniu je zwiększa

INSTALACJA PAKIETU
Instalujemy poprzez wydanie komendy
installpkg http://www.freesco.internetdsl.pl/plik/justice/justice45
W czasie instalacji trzeba odpowiedzieć na kilka pytań. Pierwsze będą po angielsku i dotyczą przeglądania pliku instalacyjnego, oraz kontynuacji instalacji. Potem już komunikaty z instalatora pakietu Justice, wyłącznie po polsku. Jeżeli była zainstalowana wcześniejsza wersja, pojawi się monit o nadpisanie poprzedniej instalacji. Potem podamy (lub nie:) adresy komputerów, które działają w naszej sieci. Należy podać wszystkie adresy IP hostów, gdyż pominięcie któregoś wprowadzi chaos w działaniu pakietu. Kończąc podawanie należy wcisnąć enter bez adresu. Następnie należy przeczytać uważnie co pisze na ekranie :) potwierdzając enterem. Pod koniec instalacji będzie możliwość instalacji kilku poprawek do całości systemu oraz pakietu rshaper_Bogdan (ograniczanie upload'u), z serwerów download.freesco.pl. W poprawkach znajdziemy alternatywną wersję programu date, który po instalacji wpłynie na szybszą i stabilniejszą pracę pakietu Justice. Dodatkowo poprawiony ipfwadm, oraz "normalny" program grep, który zastąpi "protezę" stosowaną w Freesco. Wszystkie te pliki, oczywiście jeżeli administrator zeche :), znajdą się w katalogu /mnt/router/fix i aktywne będą dopiero po restarcie systemu. Po instalacji zanim Freesco zostanie zresetowane, lub uruchomiony ręcznie pakiet Justice, należy skonfigurować podstawowe parametry skryptu.
Deinstalacja pakietu:
removepkg justice
i to wszystko...

PODSTAWOWA KONFIGURACJA
Konfiguracji pracy Justice, dokonujemy poprzez edycję pliku justice.cfg, (co jest nowością w stosunku do poprzednich wersji). Niektóre podstawowe wartości trzeba ustalić, jeszcze przed uruchomieniem skryptu lub restartem router'a. Na początek należy zdefiniować prędkości łącza internetowego:

  • Zmienna SPDINET_DOWNLOAD określa nominalną prędkość łącza internetowego do podziału, w kierunku "download", czyli danych płynących z Internetu do serwera. Znając parametry ISP nie powinno być z tym problemu. Jednostki wartości to bity na sekundę (bps). Dla przypomnienia, InternetDSL512 z Telekomunikacji to wartość 512000, SDI 115200, Neostrada+, tak jak DSL 512000.
  • Zmienna SPDINET_UPLOAD to nominalna prędkość łącza internetowego do podziału, dla danych wychodzących z serwera do Internetu. Ustawienie odpowiedniej wartości dla łącza, powinno uwzględnić asymetryczność niektórych form dostępu do Internetu. Dla przykładu, wartości: dla SDI to 115200, dla InternetDSL512 z TPSA to 128000, dla Neostrady+ 128000. Oczywiście do ograniczania upload'u będzie potrzebny pakiet rshaper'a. Wystarczy tylko jego instalacja, nie trzeba ingerować w pliki pakietu rshaper'a, skrypt Justice sam zajmie się sterowaniem upload'em. Jednostki podawane j.w.
  • Po ustawieniu parametrów prędkości przesyłania danych, należy określić zmienną progową blokowania download'u, czyli MAXTRAN_DOWNLOAD. Jest to podstawowe kryterium ograniczania, i przekroczenie tego progu powoduje ograniczanie przepływu danych do danego komputera w sieci lokalnej. Zmienną tą dobieramy eksperymentalnie, według indywidualnej konfiguracji sieci, ilości użytkowników, ilości namiętnych "ssaczy" i preferencji administratora. Generalnie wartości dla poszczególnych typów łącz: Dla SDI 430000-470000 (u siebie używam 460000), dla DSL i Neostrady+ to 2000000-2800000, jednostki dla tej zmiennej (ilość) to bajty. Poniżej w odpowiedziach na najczęściej zadawane pytania, nieco przybliżam sposób wyliczenia tej zmiennej. Trzeba pamiętać, że wartości, o których tu mówimy przeznaczone są dla czasu "uśpienia" cyklu, czyli przerwy pomiędzy odczytami i analizą, 60-sekundową. Dla krótszych cykli należy określać wartość proporcjonalnie, np. 30-sekundowych należy przyjąć połowę proponowanych wartości progu blokowania.
  • Bliźniaczą zmienną, jest zmienna progowa upload'u MAXTRAN_UPLOAD. W tym przypadku, jeżeli zostanie zostawiona wartość 0 dla tej zmiennej, Justice samodzielnie wyliczy, na podstawie progu download'u i różnicy asymetryczności łącza, wartość progu upload'u. Oczywiście, gdy ktoś ma inne, własne preferencje, to wskazane będzie podanie własnej wartości progu upload'u.

Teraz już właściwie można wystartować skrypt, lub zresetować router, w przypadku instalacji rshaper'a. Ale warto zapoznać się z pozostałymi opcjami konfiguracyjnymi, aby można było lepiej dostosować skrypt do własnych potrzeb.

  • Następną w kolejności edycji pliku konfiguracyjnego, jest zmienna PROG. Określamy nią wartość transferu w bajtach, po przekroczeniu, której host (IP) zostanie zaliczony do aktywnych i będzie brał udział w wyliczaniu progów i prędkości. Ma to na celu ignorowanie ruchu powodowanego przez komunikatory internetowe, i inne automatyczne czynności (sprawdzanie poczty), przez użytkowników nie korzystających z Internetu.

Justice zostało tak skonstruowane, aby użytkownik (administrator) miał wpływ na miejsce tworzenia i nazewnictwo stron kontrolnych oraz statystyk. Opcje te definiujemy za pomocą zmiennych:

  • MAIN_SCI - ścieżka do katalogu www z stronami kontrolnymi, statystykami, oraz z historią blokowania.
  • MAIN_WEB - to zmienna nazwy głównej strony kontrolnej Justice
  • Zmienną HIS_WEB określamy nazwę pliku historii i komunikatów.

Kolejne zmienne konfigurują sprawy statystyk ściągania.:

  • I tak w kolejności pierwsza zmienna to opcja ich gromadzenia - STATS, która może przyjmować wartości "tak" lub "nie". Wartość powinna być umieszczona w cudzysłowie, chociaż dopuszczalne jest pisanie wprost, to cudzysłów pozwoli czasem uniknąć komplikacji.
  • Dalej zmienna STAT_SCI to ścieżka do katalogu z plikami statystyk. Jeżeli katalogu nie ma skrypt powinien go sam stworzyć. Pliki statystyk mają jako nazwę adres IP hosta, którego dane przechowują. Nic poza nimi nie może się znajdować w tym katalogu.
  • Ostatnią opcją statystyk transferów jest zmienna STATS_WEB, definiująca nazwę pliku strony statystyk.

Teraz możemy skonfigurować pozostałe opcje, limitowanie, czas "uśpienia", procentowe restrykcje dla poszczególnych portów, stałe shaper'y, oraz tryb uśpienia, i uruchamianie w tym trybie programów.

  • Kolejna opcja konfiguracyjna STALY_SPD, dotyczy prędkości (w bitach na sekunde bps) hostów ograniczanych na stałe w pliku staly.blok. Jeżeli wartość tej opcji pozostawimy jako 0, prędkość stałego ograniczania będzie dynamicznie wyliczana na podstawie ilości aktywnych użytkowników i przewagi portów blokowanego hosta. Czyli będzie ów komputer traktowany tak jakby przekroczył próg maksymalnego transferu, z tą różnicą, że nigdy nie będzie odblokowany. Jeżeli natomiast określimy wartość prędkości stałego ograniczania, host będzie zawsze w shaper'ze o stałej prędkości. Czy ta prędkość będzie wydzielona z prędkości ogólnej interfejsu określi następna opcja konfiguracyjna.
  • MNSPD definiuje czy stała prędkość będzie odejmowana od pełnej prędkości łącza internetowego. Jeżeli podamy "nie" to komputer będzie liczony do podziału na zwykłych warunkach, ale prędkość stałego shapera, przez który przepływają do niego dane, będzie udziałem całej prędkości. Zdefiniowana prędkość nie będzie prędkością gwarantowaną, tylko górną granicą szerokości pasma. Natomiast, jeżeli zdecydujemy się na opcję "tak", prędkość stałego shaper'a każdego komputera wpisanego w plik staly.blok będzie odjęta od całkowitej przepustowości download'u naszego łącza. Od wersji 4.5, przy ustawieniu powyższej opcji na "tak", host blokowany na stałe nie będzie brany po duwagę przy liczeniu komputerów aktywnych.
  • LIMIT to opcja limitu dziennego ilości danych (w megabajtach), po przekroczeniu którego, komputer zostanie ograniczony do prędkości z podziału, lub zdefiniowanej poniżej.
  • LIMIT_SPD określa prędkość ograniczania po przekroczeniu dziennego limitu transferu. Podobnie jak w przypadku prędkości blokowania na stałe, pozostawienie domyślnej wartości 0, spowoduje automatyczne wyliczenie prędkości blokowania, tak jak po przekroczeniu progu maksymalnego transferu. Przy określeniu własnej prędkości, będzie ona górną granicą dla hosta.
  • PRCT_LIMIT to procentowa prędkość hosta po przekroczeniu dziennego limitu. Procent wyliczany jest z pasma przysługującego, wyliczonego na podstawie aktywności komputerów. Rozkład portów nie jest brany pod uwagę. Przy procentowym określeniu prędkości KONIECZNIE LIMIT_SPD musi wynosić 0. Wartość podawać należy liczbowo np. PRCT_LIMIT=75 bez znaczka procentów.
  • Jeżeli denerwują cię lub przeszkadzają alarmy o czasach wykonywania skryptu, istnieje możliwość ich wyłączenia poprzez ustawienie opcji ALM na "nie". Nie będą wtedy wyświetlane, i zapisywane w historii, alarmy.
  • Za pomocą zmiennej USP, możemy się określić, czy skrypt będzie wchodził w tryb "uśpienia", w wypadku nie używania łącza zewnętrznego. Łączy się to bezpośrednio z poniższą funkcją.
  • PBR to opcja uruchamiania w tle, podczas uśpienia skryptów/programów, na przykład programów do ściągania większych rzeczy z internetu. Komendy wydawane przy przechodzeniu w tryb uśpienia, określa zmienna CMD1. Trzeba pamiętać jednak o tym ze nie jest on przy uruchamianiu poprzedzony komendą fork, zatem jeżeli ma działać w tle to najlepiej napisać sobie osobny skrypt obsługi danego programu. Przy wychodzeniu z trybu uśpienia, celem zatrzymania uruchomionych programów, wykonywana jest komenda CMD2. Aby dowiedzieć się więcej na ten temat, oraz skorzystać z przykładów, przejdź do akapitu "tryb uśpienia i pobierania w tle".
  • MRTGCP jest opcją kompatybilności z statystykami MRTG i powoduje (opcja "tak") tworzenie plików z nazwami jako adresy hostów i "wyrzucanie" do tych plików danych na temat downloadu i uploadu, do wykorzystania w MRTG.
  • MRTG_SCI zawiera ścieżkę do plików kompatybilności z MRTG (patrz opcja wyżej)
  • PRZERWA To czas uśpienia w cyklu, czyli przerw pomiędzy kolejnymi odczytami i analizami danych. Należy pamiętać o dostosowaniu zmiennych progowych dla odpowiedniego czasu cyklu. Nie wolno też przesadzać, manipulacje tym parametrem robisz na własną odpowiedzialność.
  • Od wersji 4.5 można we własnym zakresie konfigurować jak traktowane będą hosty z przewagą portów np. wysokich w stosunku dla komputerów z przewagą np. portów średnich. Restrykcje są określane procentowo w stosunku do prędkości z podziału łącza na ilość aktywnych użytkowników. I tak w kolejności, komputery, do których najwięcej danych płynie na portach niskich dostaną pasmo konfigurowane zmienną PRCT_LOW (domyślnie 95%, czyli PRCT_LOW=95), dla komputerów z przewagą transferu na portach średnich zmienna PRCT_MID (domyślnie 100%), oraz portów wysokich, PRCT_HI (domyślnie 75%). Dla danych płynących od klientów w świat, czyli tzw upload, nie ma podziału na zakresy portów uploadu. Restrykcje procentowe pasma nadawane są na podstawie przewagi portów downloadu. Są to odpowiednio zmienne PRCT_UPL_LOW, PRCT_UPL_MID i PRCT_UPL_HI.

UWAGA ! po każdej zmianie konfiguracji należy zrestartować skrypt komendą rc_zjustice restart !

URUCHAMIAMY Justice 4.x
Łatwa sprawa, wpisujemy rc_zjustice, lub rc_zjustice start. Jeżeli instalowaliśmy też pakiet rshaper'a, lub poprawki, wymagany jest restart, aby przy starcie załadowały się już właściwe moduły obsługi kart sieciowych dla ruchu przychodzącego. Jak stwierdzić czy Justice pracuje ?. Najlepszym sposobem jest otworzenie strony kontrolnej, w domyślnej konfiguracji to http://adres_serwera/justice/justice.htm. Jeżeli widać zmiany na witrynie, czas wykonania pokrywa się mniej więcej z czasem bieżącym, oznacza to, że skrypt pracuje. Można też sprawdzić czy interfejsy shaper'a zostały prawidłowo utworzone, poprzez wydanie polecenia ifconfig. Powinno pokazać nam nowe interfejsy sieciowe od shaper0 do shapern gdzie n jest liczbą komputerów zadeklarowanych w justice.hst (o jeden mniejszą jako że liczymy od zera...). Testowanie konfiguracji i restrykcji nadmiernego ściągania i/lub wysyłania uczynić można poprzez włączenie download'u/upload'u jakiegoś większego pliku przy aktywnej pewnej liczbie kilku użytkowników sieci, i po minucie patrząc na wykres, np. programu DUmeter obserwować obniżenie średniej prędkości ściągania/wysyłania. I teraz zaglądając na stronę kontrolną, nasz IP powinien lekko poczerwienieć :). Zatrzymanie pakietu komendą rc_zjustice stop

TRYB UŚPIENIA i pobieranie w tle
Jak wykorzystać nasze łącze internetowe w czasie, kiedy sieć jest pusta i nie ma żadnych aktywnych użytkowników ?. Justice w wersji od 4.1 wzwyż jest wyposażone w tzw "tryb uśpienia" i uruchamiania w tle, w tym trybie zdefiniowanych przez administratora rzeczy. Jeżeli ustawimy obie opcje konfiguracyjne (USP i PBR) na "tak", w sytuacji niewykorzystania łącza internetowego przez pięć kolejnych cykli Justice, zostanie wykonana komenda CMD1 którą podajemy w justice.cfg. W trybie uśpienia skrypt główny Justice nie jest normalnie wykonywany, pracuje w pętli, sprawdzając co 5 sekund aktywność od strony sieci lokalnej. W momencie wykrycia transmisji większej od zera, Justice wychodzi z trybu uśpienia i pobieranie w tle zostaje zatrzymane poprzez wykonanie komendy określonej poprzez zmienną CMD2. Dla swoich potrzeb zastosowałem skrypt uruchamiający program wget, którego dokładny opis konfiguracji znajdziecie tutaj. Podzielę się jednak z Wami swoim rozwiązaniem, gdyby były jakieś problemy ze zrozumieniem dokumentacji wget'a. Po pierwsze należy zainstalować pakiet wget. Po drugie ściągnąć prosty skrypt getftp, na dysk lokalnie, nadać mu atrybuty wykonywalności i umieścić go w katalogu /mnt/router/fix/. W nowszych wersjach dołączany jest do paczki z Justice, wystarczy przekopiować go do w/w katalogu. Następnie trzeba ów skrypt wyedytować i podać ścieżki dostępowe, pierwsza do katalogu, w którym wget będzie zapisywał to, co ściągnie, druga do pliku tekstowego, z którego będzie pobierał adresy do ściągania (nazwałem to plik kolejki). Ostatnia ścieżka prowadzić powinna do pliku tekstowego, w którym wget zapisze logi z wyników swojej pracy. Proponuję umieścić miejsce docelowe zapisywania danych ściągniętych w katalogu, który udostępnimy następnie w otoczeniu sieciowym za pomocą samby. To samo dotyczy również pliku "kolejki", aby łatwo móc wprowadzać nowe pozycje do ściągania, a także pliky log z pracy wget'a. Adresy do pliku kolejki, należy podawać jako pełne skróty do określonych plików, jeden pod drugim, np. poprzez kliknięcie na odnośnik w IE prawym przyciskiem, i wybranie opcji "kopiuj skrót". Po restarcie systemu (niestety, aby skrypt znalazł się w /bin, wymagany jest restart), możemy podać w pliku justice.cfg CMD1="getftp start", dla zmiennej CMD2="getftp stop". W trakcie działania wget'a nie będziemy mieć pełnego dostępu do plików ściganych, dopiero po zakończeniu (getftp stop) skrypt zmieni prawa dostępu, i będziemy mogli operować na ściągniętych plikach.

FILOZOFIA DZIAŁANIA, w trakcie przygotowań do publikacji

FAQ - KILKA ODPOWIEDZI NA PYTANIA
Jak dobrać zmienną MAXTRAN_DOWNLOAD ?
  • Poczekać na moment, kiedy nasz komputer będzie sam w sieci
  • Zapodać ściąganie jakiegoś większego pliku z szybkiego serwera
  • Obserwować na stronie testowej parametry transferu i zapisywać sobie szczytowe wartości. To da nam realny transfer maksymalny naszego łącza, liczony przez reguły zliczania
  • Dobrać zmienną MAXTRAN_DOWNLOAD na poziomie 60-65% transferu maksymalnego.
  • Ewentualnie można też spróbować wyliczyć "matematycznie" próg MAXTRAN_DOWNLOAD. Zakładając że łącze szeregowe na bajt danych zużywa średnio 10 bitów, należy pomnożyć SPDINET_DOWNLOAD razy 6 (to będzie w okolicach maksymalnego transferu na minutę - 115200 * 6 = 691200 w bajtach), i zredukować to do około 67%. Czyli 691200 * 0,67 = 463104, na przykładzie SDI. To się tyczy łącza szeregowego, w przypadku DSL jest to temat bardziej skomplikowany. Licząc podobnie jak powyżej (z tym, że DSL pracuje na 8 bitach w bajcie) 512/8 da nam ilość danych na sekundę (64 kB/sek), co mnożymy *60 co daja nam wynik 3840. Z tego 70 % to 2688 kB co w bajtach w zaokrągleniu wynosi 2750000. Jednak w przypadku DSL i innych łącz szerokopasmowym, mamy większe pole do manewru, zatem można założyć, że MAXTRAN_DOWNLOAD dla DSL powinien mieć od 2000000 do 2800000. Opis, przy założeniu czasu uśpienia 60 sek.

Czy mogę sobie ustawić inny czas cyklu Justice ?

  • Do wersji 4.4 obecnie jest to niemożliwe. Od wersji 4.5 jest to opcja konfiguracyjna

Strona kontrolna Justice wygląda jakby się załadowała tylko do połowy, nie widzę wszystkich IP

  • Do odświeżania użyj ctrl-F5

Na stronie kontrolnej Justice same krzaki, chaos kompletny

  • Najprawdopodobniej twoje Freesco jest w trybie read-only. Receptę na to znajdziesz we Freesco INFO

ZMIANY czyli CZENDŻ LOG ;)

ZMIANY W WERSJI 4.5 w stosunku do wersji 4.4

  • Wprowadzenie możliwości manipulacji czasem "uśpienia"
  • Możliwość określenia procentowych restrykcji hostów (w stosunku do wyliczonej "należnej" prędkości) na podstawie przewagi określonych portów. W poprzednich wersjach było to określone na "sztywno".
  • Opcja procentowego określenia prędkości hosta po przekroczeniu dziennego limitu danych.
  • Komputer przycięty na stałe, może nie być liczony jako aktywny (nie być brany pod uwagę podczas wyliczania prędkości)
  • Poprawione kilka błędów, zmieniony wygląd i niektóre informacje na stronie kontrolnej.

ZMIANY w wersji 4.4 w stosunku do wersji 4.2

  • Załatwiony raz na zawsze problem serwera plików SAMBA i problemów z blokowaniem i liczeniem transferów lokalnego serwera plików.
  • Ćwierćinteligentny :) system rozpoznawania ruchu lokalnego FTP, poczty lub też squid'a. Nie jest skuteczny w 100% ale sporo pomaga, nie blokując lokalnego ruchu.
  • Poprawki błędów i niedociągnięć oraz skryptu startowego rc_zjustice
  • Poprawki stabilności i czasu wykonywania.

Instalacja wersji Justice 4.2
installpkg http://www.freesco.internetdsl.pl/plik/justice/justice42

Wersja Justice 4.3 usunięta z powodu błędów.

ZMIANY w wersji 4.2 w stosunku do wersji 4.1

  • Naprawione kilka błędów, m.in. błąd pochopnego restartu skryptu
  • Optymalizacja skryptu, zmniejszony czas działania.
  • Dołożone przekazywanie danych do zewnętrznych plików dla MRTG
  • Użycie innego programu do odczytu czasu i daty. Oryginalny "date" z Freesco jest mocno zakręcony, i często powoduje zawieszanie, i "wypadanie" procesu Justice. Niestety spowodowało to niemożliwość wyłączania HDD podczas pracy Justice. Nowy program "mdate" jest zbyt duży aby umieścić go w RAMDISKu. Może uda mi się kiedyś napisać własny program do odczytu czasu i daty.
  • Zmiana sposobu realizacji odczytu blokowania przez rshaper. Niestety program rshaper okazał się być wielce niedoskonały i podczas odczytu tablicy blokowania lubił się zawiesić. THX -> _rmtl
  • Zmiany w rc_zjustice.
  • Poprawki stabilności pakietu.

Instalacja wersji 4.1
installpkg http://www.freesco.internetdsl.pl/plik/justice/justice41

ZMIANY w wersji 4.1 w stosunku do wersji 4.0

  • Tryb tzw "uśpienia", i możliwość uruchomienia w tym trybie programów do ściągania na serwer dużych plików w tle.
  • Automagiczne tworzenie i przywracanie kopii bezpieczeństwa statystyk. Niestety nie zabezpieczają na 100% przed ich uszkodzeniem. Brutalne traktowanie Freesco zawsze przynosi problemy.
  • Kilka zmian rozwiązań działania skryptów. Dodane zabezpieczenie restartu skryptu w wypadku poważnego błędu.
  • Poprawienie kilku błędów, większych i mniejszych
  • Przyspieszenie działania poprzez optymalizację skryptów
  • Zmiany w rc_zjustice

Instalacja wersji 4.0
installpkg http://www.freesco.internetdsl.pl/plik/justice/justice40

ZMIANY w wersji 4.0 w stosunku do wersji 3.x

  • Przepisany CAŁY skrypt od nowa, nowocześniejsze rozwiązania, szybszy algorytm, gruntowna zmiana sposobu działana. Aby przyspieszyć działanie głownego skryptu, stworzone zostały dwa inne skryptu do "działań specjalnych", to znaczy do tworzenia strony kontrolnej, skrypt strona, oraz do tworzenia statystyk, plik stat.
  • Przebudowany gruntownie plik rc_zjustice
  • Dodane zliczanie, i kształtowanie ruchu wychodzącego (upload) z serwera. Za pomocą programu rshaper, do zainstalowania z osobnego pakietu.
  • Konfiguracja przesunięta do osobnego pliku justice.cfg
  • Gromadzenie statystyk transferu (tylko download), z podziałem na dni tygodnia, oraz z podziałem dziennym, tygodniowym, miesięcznym i całościowym.
  • Możliwość przycinania określonych komputerów na stałe (tylko download), niezależnie od ilości danych.
  • Opcja limitu dziennego danych, po przekroczeniu, którego delikwent zostanie przycięty do przepustowości wynikającej z podziału na użytkowników i dominacji określonych portów, lub do przepustowości zdefiniowanej osobno
  • Komunikaty i alarmy o nieprawidłowościach w działaniu skryptu.
  • Na bieżąco podawany czas wykonywania skryptu.

opis do wersji 3.3

Instalacja wersji 3.3
installpkg http://www.freesco.internetdsl.pl/plik/justice/justice33

ZMIANY w wersji 3.3 w stosunku do wersji 3.2

  • Zmienny próg mintran (odblokowywanie), zależny od wyliczonej prędkości shaper'a, co powinno wyeliminować efekt "migotania" ssaczy w większych sieciach (czyt. przy większej ilości komputerów).
  • Liczony transfer dzienny do konkretnego hosta (i na tym też działa testowane obecnie MRTG dla ).
  • Poprawiona konfiguracja, w tym momencie konfigurowalne są oprócz maxtran także ścieżki dostępu do plików witryny kontrolnej i pliku tekstowego historii, nazwy tych plików (uwaga tutaj, zamiast justdbg.htm domyślnie jest justice.htm), jednostki w jakich będzie podawana wartość transferu dziennego, oraz minimalny próg zaliczenia danego kompa do aktywnych.
  • Poprawiono "log rotate", a właściwie w tej wersji jest tylko jeden, dzienny plik historii blokowania, który jest kasowany razem z licznikami dziennymi o północy.
  • Wyeliminowano osobną wersję dla FreeSCO dyskietkowego, wersja 3.3 może działać zarówno z twardym dyskiem jak i z dyskietką
  • Kilka poprawek mechanizmu wyliczania progów blokowania, już nie powinny się zdarzać ujemne wartości.

opis do wersji 3.2

Instalacja wersji 3.2
installpkg http://www.freesco.internetdsl.pl/plik/justice/justice32

ZMIANY w wersji 3.2 w stosunku do wersji 3.1

  • Pełny zakres portów branych pod uwagę przy liczeniu ruchu, czyli włącznie z pasywnym FTP i całą maskaradą. (1-79, 80-136, 140-65535, tylko bez NetBIOS'u) Oczywiście porty tylko TCP, jeżeli ktoś Mnie przekona to weźmiemy się też za UDP
  • Zmiana lokalizacji strony przedstawiającej działanie , przerzucona do katalogu, aby w razie potrzeby można było zabezpieczyć hasłem. By ją zobaczyć należy wpisać teraz http://TWOJ_SERWER/justice/jusdbg.htm
  • Osobna wersja dla FreeSCO na dyskietce
  • Kosmetyczne zmiany samej strony kontrolnej
  • Poprawione kilka błędów

Instalacja wersji 3.1
installpkg http://www.freesco.internetdsl.pl/plik/justice/justice31

ZMIANY w wersji 3.1 w stosunku do wersji 3.0

  • Wersja 3.1 to poprawiona wersja 3.0, pod kątem wielu błędów technicznych, literówek itp. Brak zamian w sposobie działania czy konstrukcji skryptu

ZMIANY w wersji 3.0 w stosunku do wersji 2.3

  • Podział liczenia ruchu na trzy zakresy portów TCP (1-79, 80-136, 140-32768), ruch 137:139, nie brany pod uwagę (chodzi o nieliczenie transferu z lokalnego serwera plików samba)
  • W związku z powyższym osobne kryteria blokowania i prędkości shaper'a dla każdego zakresu portów TCP
  • Wyeliminowana została ręczna konfiguracja zmiennej $maxsuma, jest ona wyliczana automatycznie, natomiast zmienną $maxtran trzeba ustawić do własnych potrzeb jak w poprzedniej wersji.
  • Możliwość śledzenia na bieżąco pracy poprzez przeglądarkę internetową (warunek-> serwer lokalny www), pod adresem http://adres_serwera/jusdbg.htm, z automatycznym odświeżaniem co minutę.
  • Przebudowany gruntownie skrypt

opis do wersji 2.3

Instalacja wersji 2.3
installpkg http://www.freesco.internetdsl.pl/plik/justice/justice23

ZMIANY w wersji 2.3 w stosunku do starszych wersji

  • Nie ma co opisywać, to były bardzo prymitywne skrypty, do konfiguracji na każdym serwerze bardzo żmudnej. Wykasowałem je z dysku i z pamięci :)

SŁOWO NA KONIEC

Obecnie 4 pracuje u mnie dzielnie, pilnując ruchu dla 10 komputerów w sieci lokalnej zasilanej przez iDSL512. Czas wykonywania skryptu na p2 350, 64 SDRAM, FSB100, HDD4,3GB UDMA33, to około 1-2 sekund. Poprzednio na p200 64 SIMM FSB66 było około 3 sekund. Inne serwery i czasy: p166 32SIMM 11 kompów na iDSL512 ok 3 sek, p133 32SIMM 25 kompów iDSL512 ok 6-7sekund. Na moim serwerze odpukać wszystko śmiga w miarę sprawnie, czasem tylko wydłuża się nagle czas wykonania skryptu, ale nie wiem dlaczego. Polecam pakiet wszystkim administratorom serwerów na Freesco !. Proszę także o kliknięcie w banner u góry witryny, jeżeli skorzystałeś z moich rozwiązań.

PRZESTROGA

WSZYSTKICH ZMIAN W STOSUNKU DO ORYGINALNEJ KONFIGURACJI DOKONUJECIE NA WŁASNĄ ODPOWIEDZIALNOŚĆ !!! W RAZIE NIEPOWODZENIE UMYWAM RĘCE !!!

Z uwagi na problemy z kompatybilnością (znak końca linii), edycja plików DOS z poziomu linux'a i plików linux'a z poziomu DOS/Windows, niesie za sobą zagrożenie utraty funkcjonalności plików wykonywalnych !!!

PLIKOLOGIA

getftp justice justice.cfg strona justice.hst stat staly.blok limit.blok rc_zjustice shaper.o insmod shapecfg mdate

PODZIĘKOWANIA

PGF, MAC!EK (macieks), _rmtl, zciech, Kipa (korzenie), cała społeczność Freesco-maniaków

© 2002 - 2003 Robert R - Kopiowanie w całości lub części bez pozwolenia autora zabronione