OpenWrt - QoS
Quality of service w OpenWrtOstatnia zmiana: 2013-05-11 09:07
1. qos-scripts
2. simpleshaper
3. The Wonder Shaper
4. Inne skrypty
Użytkując łącze internetowe wraz z kilkoma osobami (komputerami) prędzej czy później zaistnieje sytuacja, kiedy jeden z osób całkowicie zajmuje pasmo np. ściągając plik, a inne nie mogą wtedy korzystać z internetu. Albo coś ściąga z www, albo np. gra i wymaga minimalnych opóźnień albo nagminnie korzysta z programów p2p. Wtedy z pomocą przychodzi QoS, czyli odpowiedni podział i priorytetowanie łącza. Łącze można dzielić na poszczególne adresy ip (wtedy określone adresy dostają określone pasmo gwarantowane i maksymalne), na usługi lub porty (wtedy ruch np. www ma pierwszeństwo na p2p) lub połączyć to wszystko w jedno. Poniżej przedstawiono dwa warianty: podział na usługi (pakiet qos-scripts) oraz podział na adresy ip (pakiet simpleshaper). Wszystkie te programy wykorzystują mechanizmy dostępne normalnie w linuksie - programy tc oraz iptables. Jeżeli ktoś ma już sprawdzoną i działającą konfigurację, zapewne da się ją przenieść do OpenWrt.
UWAGA: ten poradnik z żaden sposób nie wyczerpuje tematu. Właściwe ustawienie QoS to temat-rzeka i wymaga wielu godzin prób i dopracowania konfiguracji.
qos-scripts
Zawarty jest standardowo w repozytorium OpenWrt. Instalacja sprowadza się do wydania polecenia
# opkg update
# opkg install qos-scripts
# uci set qos.wan.download=4096
# uci set qos.wan.upload=512
# uci commit qos
UWAGA: należy zmierzyć ile faktycznie ma łącze (nie należy ufać ISP) - jeżeli podczas pomiarów wyjdzie że łącze ma 3,5Mbps a nie 4Mbps to taką rzeczywistą wartość należy podać. A najlepiej podać wartość lekko zaniżoną (np. o 10%).
simpleshaper
Jest to pakiet autorstwa Artura Wronowskiego i realizuje sztywny podział pasma na adresy IP (czyli mamy w sieci np. trzy komputery i każdemu przydzielamy określone pasmo). Instalacja:
# opkg install ftp://artekw.cerbero.pl/simpleshaper/simpleshaper-latest.ipk
# /etc/init.d/simpleshaper enable
# uci set simpleshaper.@settings[0].line_download=4096
# uci set simpleshaper.@settings[0].line_upload=512
# uci commit simpleshaper
# uci add simpleshaper shape
# uci set simpleshaper.@shape[-1].ip_addr=192.168.1.3
# uci set simpleshaper.@shape[-1].guaranted_dl=256
# uci set simpleshaper.@shape[-1].max_dl=512
# uci set simpleshaper.@shape[-1].guaranted_ul=256
# uci set simpleshaper.@shape[-1].max_ul=512
# uci commit simpleshaper
# /etc/init.d/simpleshaper start
- ip_addr - adres ip komputera
- guaranted_dl - gwarantowane pasmo pobierania
- max_dl - maksymalne pasmo pobierania
- guaranted_ul - gwarantowane pasmo wysyłania
- max_ul - maksymalne pasmo wysyłania
The Wonder Shaper
Skrypt ten ma być "złotym gralem" kształtowania transferu. Utworzony na podstawie kolejek HTB i SFQ ma za zadanie priorytetyzować ruch interaktywny przed resztą ("bulk") co ma zapobiec opóźnieniom i przestojom przy dużym obciążeniu ruchem. Przy okazji można także ograniczyć ruch na określonym interfejsie.
# opkg install wshaper
# uci set wshaper.settings.network=wan
# uci set wshaper.settings.downlink=2000
# uci set wshaper.settings.uplink=240
# uci commit wshaper
# /etc/init.d/wshaper start
# /etc/init.d/wshaper enable
Inne skrypty
Konfiguracja QoS opiera się o tworzenie odpowiednich reguł z wykorzystaniem narzędzi tc oraz iptables. Poniżej linki prezentujące przykładowe konfiguracje. https://forum.openwrt.org/viewtopic.php?id=23285
http://openrouter.info/forum/viewtopic.php?f=30&t=125&p=5148#p5148