QOS
Opcja ma na celu zablokowanie uploadu, tak by ściąganie z np. FTP nie blokowało nam całego ruchu.
Poniżej znajdziesz dwa rozwiązania tego problemu.
Pierwsze to blokowanie
dla wszystkich także dla LAN ruchu na poziomie 512 kbit/s oczywiście wartość tą należy dobrać indywidualnie na poziomie 50-80% szybkości Twojego uploadu.
Tworzymy plik
/sbin/htb z zawartością:
KOD
#Wartość w kbit (dla łącza z uploadem 1mbit = 1024 kbit)
UPLOAD=512
DEV=br0
tc qdisc del dev $DEV root 2> /dev/null > /dev/null
tc qdisc add dev $DEV root handle 1: htb default 10
tc class add dev $DEV parent 1: classid 1:1 htb rate 100mbit
tc class add dev $DEV parent 1:1 classid 1:10 htb rate $UPLOADkbit prio 1
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
Drugie rozwiązanie to ograniczenie ruchu tylko dla jednego interface'u.
Przyjmijmy, że obudowa do internetu łączy się poprzez kabel
eth1 natomiast użytkownik ma dostęp do zasobów obudowy poprzez wifi
wl0.
Tworzymy plik
/sbin/htb z zawartością:
KOD
LAN=wl0
NET=eth1
KBIT=50
#lan
tc qdisc del dev $LAN root
tc qdisc add dev $LAN root sfq perturb 10
#net
tc qdisc del dev $NET root
tc qdisc add dev $NET root handle 1:0 htb r2q 5 default 7
tc class add dev $NET parent 1:0 classid 1:1 htb rate "$KBIT"kbit ceil "$KBIT"kbit
tc qdisc add dev $NET parent 1:1 handle 2:0 sfq perturb 10
W tym momencie cały ruch odbywający się poprzez
eth1 jest ograniczany, natomiast wszystko przez
wifi ściągamy na maksa.
Powyższe dwa rozwiązania dotyczyły standardowego firmware Jokera w wersji
M2, ostatnie rozwiązanie możliwe jest na firmware
Webcam Edidion obsługującym więcej opcji QOS niż firmware standardowy.
KOD
#!/bin/ash
tc qdisc del dev eth1 root 2> /dev/null > /dev/null
tc qdisc add dev eth1 root handle 1: htb default 10
#Upload
tc class add dev eth1 parent 1: classid 1:1 htb rate 100mbit
#Wysyłanie do NET (ograniczone do około 50 kB/s)
tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit prio 1
tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
#Wysyłanie do LAN (bez ograniczeń)
tc class add dev eth1 parent 1:1 classid 1:20 htb rate 100mbit prio 2
tc filter add dev eth1 parent 1: protocol ip prio 2 u32 match ip dst 192.168.123.0/4
tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
Na koniec do pliku startowego dodajemy:
KOD
#Uruchamiam podział łącza...
htb