logo
PolskiPL Flag EnglishUK Flag Strona NiceShapera
NiceShaper jest programem działającym w środowisku routera z systemem operacyjnym Linux. Wykorzystuje sprawdzony algorytm podziału łącza HTB. Umożliwia efektywniejsze dzielenie pasma, niż to, utworzone poprzez przydzielenie użytkownikom sieci stałych przepustowości. Dodatkowo upraszcza to, co w kształtowaniu ruchu sieciowego w Linuksie skomplikowane, a także wprowadza wiele dodatkowych funkcjonalności. NiceShaper stale monitorując ilości danych przepływających przez router, w odpowiedzi na zmieniające się obciążenie i charakterystykę ruchu generowanego przez użytkowników, dynamicznie dostosowuje przepustowość działających klas, do poziomu umożliwiającego możliwie najpełniejsze wykorzystanie łącza. Jednocześnie nie dopuszczając do powstawania przeciążeń, gwarantuje wygodę użytkowania usług interaktywnych.

NiceShape chroni pasma użytkowników, rozsądnie korzystających z przepustowości łącza i dba o to, by nie dopuścić do nadmiernego wysycenia pasma uploadu blokującego łącze.

Ponadto NiceShaper oferuje:

  • Przejrzysta i intuicyjna konfiguracja wymiernie skraca nakład czasu wymagany, do osiągnięcia pierwszego uruchomienia podziału łącza.
  • Dyrektywa o nazwie "user", będąca uproszczonym zamiennikiem klas, daje odpowiedni dla większości standardowych konfiguracji kompromis pomiędzy: prostotą, przejrzystością i elastycznością.
  • Funkcjonalność makr, umożliwiającą, automatyczne generowanie (w oparciu o proste pętle) większej liczby podobnych do siebie klas.
  • Wyzwalacze (triggery) automatycznie zmieniające wybrane parametry klas o wskazanych porach dnia (trigger alter) lub po przekroczeniu wskazanej ilości pobranych/wysłanych danych (trigger quota).
  • Zautomatyzowaną obsługę mechanizmu markowania pakietów oraz interfejsów IMQ, używanych w celu zapewnienia, obsługi kontroli pasm wychodzących, hostów używających prywatnej adresacji IP maskowanych za pomocą Source NAT.
  • Wygodny, również zdalny, monitoring pracy.
  • A także automatyczny, zgodny z ustalonym interwałem, zapis do wskazanego pliku aktualnych przydziałów klas - chociażby w celu udostępnienia przez serwis www.

Oto wykres MRTG prezentujący efekt działania NiceShapera:
Wykres MRTG
Wykres został zarejestrowany w sieci, w której użytkownicy bardzo intensywnie wykorzystują oprogramowanie P2P, wymagające udostępniania zasobów. Jest to zabójcze dla łącz asymetrycznych charakteryzujących się małym pasmem wychodzącym. Na zielono download, upload - niebieska linia, obydwa kierunki przepływu danych praktycznie zawsze w pełni obciążone. Mimo to każdy użytkownik ma zagwarantowane wygodne surfowanie, pracę lub grę online. Konfiguracja statyczna praktycznie wyklucza tak skuteczne wysycenie pasma w obydwu kierunkach, wymuszając kompromis pomiędzy stopniem wykorzystania łącza a wygodą użytkowania usług interaktywnych.

[2015-09-20]

Dziś zdecydowałem się na publikację NiceShaper'a w wersji 1.2pre3.

Jest to bardzo ważne wydanie. Linia 1.2 jest mocno zmodernizowana względem 1.0 oraz już na tym etapie niezwykle dokładnie przetestowana. Poza oprogramowaniem, dokumentacja również doczekała się porządnego przeglądu oraz mnóstwa poprawek: językowych oraz merytorycznych.

Po informacje odnośnie wprowadzonych zmian odsyłam do "changeloga" a po kompletne opisy do dokumentacji. Zaznaczając, że changelog nie zawiera wszystkich drobnych poprawek a skupia się na ważnych zmianach wprowadzonych od wersji 1.0.

Na co warto zwrócić uwagę?: W celu wyeliminowania zgłaszanych problemów, praktycznie od zera przepisano algorytm dynamicznego podziału. Wprowadzono makra plików klas. Zaimplementowano 3 typy makr, umożliwiających automatyzowanie tworzenia dużej liczby klas. Ograniczono wykorzystywanie programu iptables w procesie zliczania ruchu i wykrywania aktywności hostów. Ponownie zaimplementowano obsługę użytkowników sieci, czyli znanego z wersji 0.5 uproszczonego zamiennika klas. Tym razem utworzono dyrektywę user. Dyrektywa ta, może być mieszana razem z klasami a jej przejrzystość i elastyczność jest wreszcie naprawdę zadowalająca. Szczegóły oczywiście w dokumentacji, w rozdziale "Użytkownicy sieci i klasy NiceShapera" oraz dołączonym przykładowym pliku class.conf

Wydanie to będzie, co najwyżej, przedostatnim PreRelease. Następnie pojawi się jedno lub maksymalnie dwa wydania Release Candidate.

[2013-07-04]

W odróżnieniu od wersji 0.6 która nigdy nie uzyskała oficjalnie statusu stabilnej, linia 1.0 doczekała się tylko jednego Release Candidate a na dodatek lista poprawek jest niezwykle skromna.

Zatem - zapraszam do pobierania!

[2013-05-04]

W udostępnionej dwa dni temu wersji 1.0pre4, pojawił się błąd uniemożliwiający uruchomienie w systemach z architekturą AMD64. Z racji tego że powód błędu był banalny a nową wersję zdążono pobrać tylko kilkanaście razy. Zdecydowałem na przepakowanie pakietu bez zmiany wersji. Zapraszam do ponownego pobierania.

[2013-03-23]

W niedawno udostępnionej wersji 1.0pre3, wykryto problem uniemożliwiający w pewnych konfiguracjach poprawną inicjalizację tabel iptables. Błąd został już namierzony i usunięty a poprawka znajdzie się w kolejnej wersji NiceShapera. Nie ma powodu do instalacji poprzedniej wersji, by tymczasowo obejść problem wystarczy użyć dyrektywy fallback iptables.

Druga informacja - umieściłem dziś uaktualnioną wersję tutoriala.

[2013-02-09]

Zapraszam do testowania kolejnej wersji pre release linii 1.0.

Wersja ta - oznaczona jako 1.0pre2 - wprowadza nową ciekawą funkcjonalność w postaci wyzwalaczy. Pozwalających na wprowadzenie quoty dla klas oraz alternatywnych wartości konfiguracyjnych o określonych porach doby.

Pojawiają się również poprawki kilku problemów. Pełna lista zmian jak zwykle, znajduje się w changelogu. Pakiet źródlowy do pobrania w dziale "Pobierz", w którym również postaram się umieścić pakiety .deb dla Squeeze oraz .rpm dla Centos 5 i 6.

[2012-06-01]

Witam Was. Cóż rzec:)

Z dniem wczorajszym udostępniłem pierwszą wersje PreRelease NiceShapera 1.0.

Skąd taki przeskok wersji? Zmiany nie każdy z Was oceni jako rewolucyjne ale w ustabilizowanym projekcie nie ma miejsca na ciągłe rewolucyjne przemeblowania koncepcji. Powiem wprost. Filozofia wielu projektów OpenSource, polegająca na wiecznym nieosiąganiu wersji 1.0, zaczyna mnie trochę drażnić a przynajmniej jej nie rozumiem. Ale spokojnie, nie zamierzam iść drogą Mozilla Foundation, takich skrajności tym bardziej nie lubię;)

To co najważniejsze w nowym NS to wyeliminowanie uruchamiania komendy systemowej tc. NiceShaper rozmawia bezpośrednio z kernelem więc dodawanie/usuwanie/modyfikowanie klas i filtrów HTB jest teraz piekielnie szybkie i tym większy zysk z tej zmiany im więcej operacji wykonywanych w jednym cyklu. Wreszcie usunięte zostało to ciążące od początku istnienia projektu wąskie gardło wydajności.