Zarządzanie pasmem (QoS)

Wybór skryptu i instalacja

Instalacja pakietów i skryptów odpowiedzialnych za QoS w OpenWrt jak wszystko (prawie) jest prosta i banalna. Trochę bardziej problematycznym jest wybór skryptu odpowiedzialnego za QoS. W OpenWrt dominują dwa skrypty: autorem jednego jest niejaki Rudi zaś drugiego nbd - jeden z developerów OpenWrt. Analizując watek na oficjalnym forum OpenWrt poświęcony QoS zauważyć można, że zarówno jeden jak i drugi skrypt ma swoich gorących zwolenników jak i przeciwników. Można spotkać się z opinią że skrypt autorstwa nbd jest gorszy niż skrypt Rudi'ego jako, że słabiej priorytetyzuje ruch VoIP. Trudno to jednoznacznie ocenić; najlepiej samemu zainstalować jedną z wersji i przeprowadzić odpowiednie testy. Skryty nbd w przeciwieństwie do skryptów Rudi'ego posiadają możliwość konfiguracji za pośrednictwem X-Wrt.

Skrypt qos-scripts

Instalacja skryptu nbd jest prosta i banalna i sprowadza się do kliknięcia przycisku znajdującego się na stronie X-Wrt Network\QoS . Spowoduje to, iż system samodzielnie dociągnie sobie wszystkie potrzebne mu pakiety i skrypty oraz przeładuje stronę X-Wrt.

Jeżeli używamy Kamikaze to instalacja pakietu sprowadza się do jednej komendy

 opkg install qos-scripts

Podstawowa konfiguracja QoS

Kamikaze

Ustawiamy wartości maksymalne UL/DL zależne od posiadanego łącza internetowego.

uci set qos.wan.upload=256
uci set qos.wan.download=1024 
uci commit qos

Automatyczny start QoS przy starcie systemu

/etc/init.d/qos enable
Whiterussian X-Wrt

Po pomyślnym zainstalowaniu skryptów odpowiedzialnych za QoS na stronie Network\Qos wypełniamy poszczególne opcje tj.

  • włączamy QoSQoS Service: Enabled
  • podajemy parametry posiadanego łącza (w kbps):
    • szybkość uploadu → WAN Upload Speed
    • szybkość downloadu → WAN Download Speed
  • ostatnią pozycję tj. Show Advanced Rules nalezy zostawić wyłączoną tj. Disabled chyba, że ktoś jest bardzo ciekawy.

Ręczne sterowanie QoS

qos-start - uruchomienie usługi QoS
qos-stop - zatrzymanie QoS
qos-stat - podgląd priorytetów

Zaawansowana konfiguracja QoS zawarta jest w pliku /etc/config/qos

Skrypt Rudy'ego

Mimo nieposiadania konfiguratora graficznego, sama konfiguracja skryptu jest stosunkowo łatwa, nie powinna nastręczyć problemów nawet początkującym użytkownikom o ile nie boją się oni linii poleceń.

Pierwszym etapem będzie zainstalowanie skryptu za pomocą opkg:

opkg install http://files.eschauzier.org/qos-re_1.05_all.ipk # nietestowane na 8.09

Następnie należy otworzyć plik /etc/qos.conf w dowolnym edytorze i odnaleźć linie:

# Download speed in kilobits per second
# Set 5% - 10% lower than *measured* line speed (set to zero to disable)
DOWNLOAD=100
# Upload speed in kilobits per second
# Set 5% - 10% lower than *measured* line speed (set to zero to disable)
UPLOAD=50

Zmieniamy wartości DOWNLOAD i UPLOAD na te nam odpowiadające pamiętając o zmniejszeniu rzeczywistych wartości o 5 do 10%. Jeśli ustawimy te wartości na zbyt wysokie to zacznie nam się zapychać kolejka pakietów i wtedy cały QoS na nic nam się nie zda. Po tej operacji mamy właściwie poprawnie skonfigurowane zarządzanie pasmem.

Kamikaze

Jako, że nie pojawiają się nowe wersje skryptu Rudego, a co za tym idzie nie ma wersji na Kamikaze. Poniżej przedstawiono skuteczny sposób na zmuszenie tego skryptu do pracy z Kamikaze.

- Instalujemy pakiety

  opkg install qos-script (potrzeba nam zależności tego pakietu, **potem go usuwamy!!**)
  opkg remove qos-scripts
  opkg install ip
  opkg install http://files.eschauzier.org/qos-re_1.05_all.ipk -nodeps (wersja HTB)

lub

  opkg install  http://files.eschauzier.org/qos-re-hfsc_1.05_all.ipk -nodeps (wersja HFSC)

- Konfiguracja

 
 nano /etc/qos.conf

Na dole zmieniamy parametr QOS_IF na interfejs do którego podłączony jest Internet.

 # Define custom QoS interface. Defaults to wan interface.
 #QOS_IF=br0

W przypadku połaczeń po PPPoE to będzie „ppp0”, w innych przypadkach(DHCP, statik) eth0(informacja niepewna). Oczywiście przed zapisaniem usuwamy znak hasha(#)

- Skrypt startowy

  nano /etc/rc.d/S99qos
 
  #!/bin/sh
  qos-start

Filtry Level7

Modyfikując QoS pod własne potrzeby wykorzystać możemy zaawansowane filtry klasyfikujące ruch sieciowy m.in. na podstawie nagłówków pakietów (L7-filters). Przestrzegam tutaj przed nadmiernym optymizmem w wykorzystaniu tych filtrów, jednakże w przypadku niektórych rodzajów ruchu sieciowego sprawdzają się całkiem przyzwoicie.

Standardowo skrypt nbd oferuje dosyć ograniczoną liczbę tych filtrów. Aby poszerzyć sobie możliwości klasyfikacji i priorytetyzowaniu ruchu sieciowego za pomocą filtrów L7 musimy ściągnąć sobie sygnatury interesującego nas ruchu ze strony http://l7-filter.sourceforge.net/protocols i zapisać je w katalogu /etc/l7-protocols. Tak zapisane sygnatury możemy później wykorzystać w samodzielnie tworzonych przez nas regułach QoS.

SimpleShaper

Najnowsza wersja stabilna: v.0.4-20

Instalujemy pakiet poprzez dodanie do pliku /etc/opkg.conf linijki przed „dest root /”

 src shaper ftp://artekw.cerbero.pl/simpleshaper/old                    # dla 7.09 tylko brcm-2.4
 src shaper ftp://artekw.cerbero.pl/simpleshaper/8.09.1/    # dla 8.09.1

Następnie koniecznie jest wykonanie aktualizacji drzewa pakietów

 opkg update

Ostatecznie instalujemy pakiet

 opkg install simpleshaper

Pakiet zainstaluje wszystkie potrzebne inne pakiety do poprawnego działania.

Alternatywnym wyjściem jest pobranie pakietu do /tmp

 cd /tmp
 wget ftp://artekw.cerbero.pl/simpleshaper/simpleshaper_<wersja>.ipk

oraz zainstalowanie ręcznie

 opkg install simpleshaper_<wersja>.ipk

Program zawiera plik konfiguracyjny(/etc/config/simpleshaper), który można edytować naszym ulobionym edytorem lub poprostu uci.

Przykład konfiguracji

config settings
    option line_download 1024
    option line_upload 1024

config shape
    option ip_addr 192.168.1.1
    option guaranted_dl 512
    option max_dl 1024
    option guaranted_ul 768
    option max_ul 1024
    option prio 0
    option queue 11

config shape
    option ip_addr 192.168.1.2
    option guaranted_dl 768
    option max_dl 1024
    option guaranted_ul 768
    option max_ul 1024
    option prio 1
    option queue 12

config shape
     option ip_addr 192.168.1.3
     option guaranted_dl 256
     option max_dl 512
     option guaranted_ul 256
     option max_ul 512
     option prio 1
     option queue 13

Skrypt posiada regułę dotyczącą ograniczania pasma dla sieci P2P przy pomocy IPP2P. Domyslnie ustawienia powodują, że ruch P2P(zarówno download i upload) osięgnie maksymalnie 30% łącza całego.

Zarządzanie pasmem aktywujemy komendą

 ss-start

Natomiast wyłączamy

 ss-stop

Dostępne są również proste statystyki

 ss-stat

Domyślnie dostarczany skrypt init jest wyłaczony, dlatego też, aby aktywować usługę podziału pasma na starcie naszego routera wydajemy komendę

 /etc/init.d/simpleshaper enable 

Kompilowanie wersji z git'a

Jeżeli korzystamy z środowiska SDK lub kompilujemy własnoręcznie niestabilny kod(trunk) to jesteśmy w stanie samodzielnie utworzyć pakiet simpleshaper nie czekając aż autor zrobi to za nas :-)

Pobieramy najnowszą wersje ze strony http://artekw.cerbero.pl/gitweb, klikając na 'snapshot' przy najakualniejszej zmianie. Pobieramy plik tgz i rozpakowujemy archiwum. Powstały folder simpleshaper przegrywamy do katalogu packages w SDK lub buildrocie.

W przypadku korzystania z SDK wystarczy wejśc do głównego folderu tegoż SDK i wykonać polecenie

  make

Natomiast w przypadku buildroota(trunk) musimy w menu konfiguracyjnym w kategorii Network wybrać nasz pakiet zaznaczanąc '*' lub 'M' jeżeli niechcemy go integrować z obrazem. Ostatnią czynnością jest zapisanie konfiguracji i wykonanie komendy

  make package/simpleshaper/{clean,compile,install}

konfiguracja/software/pasmo.txt · ostatnio zmienione: 2010/01/06 15:38 przez arteq
Do góry
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0