24 Listopada 2024 19:08:59
Nawigacja
· Strona Główna
· Forum

· Tomato by Shibby
· FreshTomato


Wątki na forum
Najnowsze dyskusje
· Nowe routery: UX, UC...
· DIR868l OFW asus vs ...
· [S] Asus RT-AC56U
· Szukam zaproszenia n...
· [MOD] FreshTomato-AR...
· Asus RT-AC5300 ,prob...
· archer c6 v3.20
· [S] Nighthawk R7000P...
· [S]Asus RT-AC5300 - ...
· Tanie N100 na promce...
· net z telefonu wifi+...
· Tomato - bugi/proble...
· HUAWEI z światłowodem
· Asus TUF-AX3000_V2 p...
· rt-ax88upro częste ...
· [Howto] Xpenology na...
· Jaki router pod Open...
· Ruter z tomato
· Czy to jeszcze NAS?
· RT AC66U B1
Najpopularniejsze obecnie wątki
· DIR868l OFW asus ... [10]
· Nowe routery: UX,... [0]
· [S] Asus RT-AC56U [0]
Ankieta
Jaki procesor posiada twój router?

Broadcom MIPSEL
Broadcom MIPSEL
36% [151 głosów]

Broadcom ARM
Broadcom ARM
52% [219 głosów]

Atheros
Atheros
5% [22 głosów]

Marvell
Marvell
1% [4 głosów]

Ralink
Ralink
1% [3 głosów]

Intel/AMD/VIA
Intel/AMD/VIA
1% [5 głosów]

Żaden z powyższych
Żaden z powyższych
4% [15 głosów]

Ogółem głosów: 419
Musisz zalogować się, aby móc zagłosować.
Rozpoczęto: 02/02/2015 09:38
Twoje IP
18.219.18.238
Zobacz wątek
OpenLinksys » :: PORTAL :: » Tutoriale
 Drukuj wątek
Skrypt do kontroli QoS i Limitera
LivingXadrian
Witam. Myślę że jest to dobry dział aby zaprezentować swój skrypt.

Ostatnio pojawiła się u mnie potrzeba:
  • kontroli QoS'a zależnie od godziny,
  • kontroli limitera pasma zależnie od ilości podłączonych użytkowników.


Więc napisałem sobie następujący skrypt którym zamierzam się podzielić.

#!/bin/sh

QosApply() {
    nvram commit
    service qos restart
    sleep 1
}

LimiterON() {
    nvram set new_qoslimit_enable=1
    QosApply
}

LimiterOFF() {
    nvram set new_qoslimit_enable=0
    QosApply
}

QosON() {
    nvram set qos_enable=1
    QosApply
}

QosOFF() {
    nvram set qos_enable=0
    QosApply
}

TestIP() {
    # Początkowa liczba aktywnych hostów wynosi 0
    i=0

    # Przeszukanie wszystkich adresów IP z zakresu 192.168.1.xxx na podstawie ARP
    for WERS in `arp -a | grep -Eo '192\.168\.1\.[0-9]{1,3}'`; do
        if [ `arping $WERS -f -I br0 -c 3 -w 3 | grep -Ec '^Unicast'` = 1 ] then
            # jeżeli host odpowiada to inkrementacja zmiennej 'i'
            i=`expr $i + 1`
        fi
    done

    # Funkcja wyświetla liczbę aktywnych hostów
    echo $i
}

# Gdy jest jeden lub mniej uzytkowników limit pasma jest wyłączony
if [ `TestIP` -le 1 ] then
    if [ `nvram get new_qoslimit_enable` = 1 ] then
        LimiterOFF
    fi
# Limit pasma zostaje włączony gdy jest przybajmniej dwóch użytkowników
else
    if [ `nvram get new_qoslimit_enable` = 0 ] then
        LimiterON
    fi
fi

# Od 00:00 do 09:59 QoS OFF (mozna ściągać torrenty)
if [ `date +%H` -le 09 ] then
    if [ `nvram get qos_enable` = 1 ] then
        QosOFF
    fi
# Od 10:00 do 23:59 QoS ON (torrenty są ograniczone)
elif [ `date +%H` -ge 10 ] then
    if [ `nvram get qos_enable` = 0 ] then
        QosON
    fi
fi


Jak można zauważyć skrypt jest podzielony na trzy sekcje:
  • 1) Definicje funkcji.
  • 2) Testowanie użytkowników.
  • 3) Sprawdzanie godziny.


Więc jeżeli ktoś będzie potrzebował tylko jednej z dwóch funkcjonalności skryptu to z łatwością sobie wybierze potrzebne elementy.

Jak uruchomić skrypt?
  • 1) Wejdź do panelu administracyjnego TOMATO
  • 2) Przejdź do "Administracja" >> "Harmonogram"
  • 3) W obszarze "Własne 1" zaznacz ptaszkiem "Włączony"
  • 4) Ustaw "Czas" na "Co 5 minut"
  • 5) W wierszu "Dni" zaznacz ptaszkiem "Codziennie"
  • 6) Do pola "Polecenie" wklej skrypt, możesz przedtem usunąć z skryptu komentarze.
  • 7) Na dole strony kliknij przycisk "Zapisz"
  • 8) GOTOWE :)


U mnie skrypt działa na:
  • Sprzęt "Netgear WNR3500L/U/v2"
  • Oprogramowanie "Tomato PL 1.28.0000 MIPSR2-108-PL K26 USB VPN"

Testuje go od poniedziałku (30.09.2013) i obecnie nie sprawia żadnego problemu.
Chcę również oznajmić że nie jestem specjalistą od pisania w powłoce bash, shell wiec jeżeli ktoś uważa że można to zrobić inaczej, to bardzo proszę opisać swój sposób.
Bardzo chętnie nauczę się czegoś nowego, jak i zapewne inny użytkownicy również.
 
belliash
Nie wiem czy ktos Ci mowil, ale QOS i BW Limiter to nie to samo i ogolnie nie powinno sie tego laczyc, tj. uzywac obu. Poza tym, to co pokazales mozna zrobic samym BW Limiterem ustawiajac odpowiednio rate i ceil tak aby 1 uzytkownik mogl wysycic cale lacze, ale gdy bedzie ich wiecej, to przepustowosc zostanie podzielona miedzy nich.
Linksys WRT1900AC: OpenWrt 19.07.2
Jetway JC390F841AA34B: OpenWrt 19.07.2
 
shibby
jw. BW Limiter i QoS nie mogą pracować jednocześnie. Przynajmniej nie na moim tomato.

Tomato od Toastmana używa innej zasady działania BW Limitera (podział przez imq tylko dla br0) i tam qos i bw limiter może działać jednocześnie.

Victek ma obecnie moją wersję bw limitera więc u niego też dwa jednocześnie pracować nie mogą.
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
 
LivingXadrian
Dzięki za info.
Nie wiedziałem wcześniej że QoS i BW Limiter nie mogą działać razem.
U mnie są włączone oba na raz i nie wiem jakich skutków się mogłem spodziewać - nie zauważyłem nieprawidłowej pracy, jak dla mnie wszytko działało OK - to znaczy internet na komputerach działał.
Przyglądnę się teraz temu bardziej, poczytam i po testuję u siebie.
Z twoim sposobem belliash się zgodzę i też to przetestuję.
A ten skrypt to pierwsze co mi do głowy przyszło, no i odświeżyłem sobie znajomość basha, shella bo rzadko z tego środowiska mam okazję korzystać.
 
shibby
bo będzie działał net, po prostu jedna z usług (przeważnie bw limiter) przestaje działać.
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
 
Przejdź do forum
Zaloguj
Wprowadź adres e-mail lub nazwę użytkownika

Hasło



Nie masz jeszcze konta? Zarejestruj się.

Zapomniałeś/aś hasła?
Aktualnie online
· Gości online: 79

· Użytkowników online: 0

· Łącznie użytkowników: 24,115
· Najnowszy użytkownik: Ja
Czat
Musisz się zalogować, aby opublikować wiadomość.

Maniek91PL
06-11-2024 22:37
dzięki !Grin

maxikaaz
29-10-2024 14:27
@Maniek91PL - Administration=> Admin Access, i tam masz "Allow Wireless Access" do zaznaczenia

Maniek91PL
26-10-2024 22:07
siemka! ktoś przypomni co się ustawiało jeśli nie mogę wejść od strony wifi do tomato? od lan działa

overflow2
04-10-2024 17:34
Kupowałem Asusy n10u albo n12d1 ale nie widzę ich, chyba już nie produkują, Chodzi o coś nowego i taniego. Transfery niewielkie.

maxikaaz
04-10-2024 09:38
@overflow2 patrząc po dostępności funkcji w nowych kompilacjach, to chyba nawet WRT54G/GL jeszcze ma OpenVPN, albo jakiś odpowiednik... zależy, na jakie transfery liczysz.

overflow2
30-09-2024 20:53
Jaki aktualnie najtańszy router do tomato do openvpn?

maxikaaz
27-07-2024 15:07
@servee - na początek router do rozebrania i obejrzenia, ciężko wróżyć tak tylko po objawach

maxikaaz
27-07-2024 14:55
@servee - cały kontroler nie pada tak sobie z powodu "zbiegu okoliczności",
więc prawdopodobnie gdzieś przepięcie.

servee
25-07-2024 13:33
@maxikaaz: działało, aż pewnego pięknego dnia przestało działać. W tym dniu była też burza, ale to raczej zbieg okoliczności.

maxikaaz
25-07-2024 11:38
@servee - o ile problem jest w obrębie samych wyjść (dławiki, warystory), to naprawialne, ale jeśli w samym SoC - to nienaprawialne ze względu na koszta. A co było przyczyną?

95,607,376 unikalnych wizyt