Strona 1 z 1

HTB - jak dopracować.

: 19 lutego 2008, 23:37
autor: mavarick87
Witam

Napisałem sobie taki skrypt HTB

Kod: Zaznacz cały

#HTB - koleiki


#eth0 - internet
#eth1 - lan

#kasowanie 

tc qdisc del root dev eth1
tc qdisc del root dev eth0

#zaklada glowna kolejke
   #download
tc qdisc add dev eth1 root handle 1:0 htb
   #upload
tc qdisc add dev eth0 root handle 2:0 htb

# zaklada glowna klase z maksymalna przepustowosci na glownej kolejce
   #download
tc class add dev eth1 parent 1:0 classid 1:1 htb rate 1000kbit ceil 1000kbit
   #upload
tc class add dev eth0 parent 2:0 classid 2:1 htb rate 240kbit ceil 240kbit

#podział pasma na klasy dla  usług
    #dla voip i www max pasma
tc class add dev eth1 parent 1:1 classid 1:2 htb rate 1000kbit ceil 1000kbit
tc class add dev eth0 parent 2:1 classid 2:2 htb rate 100kbit ceil 100kbit
    #dla pozostałych usług
tc class add dev eth1 parent 1:1 classid 1:3 htb rate 600kbit ceil 600kbit
tc class add dev eth0 parent 2:1 classid 2:3 htb rate 30kbit ceil 30kbit



#filtry dla voip i www
#www
tc filter add dev eth1 protocol ip parent 1:0 u32 match ip sport 80 0xffff flowid 1:2
tc filter add dev eth0 protocol ip parent 2:0 u32 match ip sport 80 0xffff flowid 2:2
#voip
tc filter add dev eth1 protocol ip parent 1:0 u32 match ip sport 5060 0xffff flowid 1:3
tc filter add dev eth0 protocol ip parent 2:0 u32 match ip sport 5061 0xffff flowid 2:3

#wszystkim po równo
tc qdisc add dev eth1 parent 1:2 handle 3:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:3 handle 4:0 sfq perturb 10
tc qdisc add dev eth0 parent 2:2 handle 5:0 sfq perturb 10
tc qdisc add dev eth0 parent 2:3 handle 6:0 sfq perturb 10
założenie jest takie chce ażeby usługa voip która działa na portach 5060 i 5061 miała pierwszeństwo tzn gdy nawer łacze jest zapchanę to usługa voip dostaje je w pierwsej kolejności tzn przepustowośc jest wszystkim obcinana po to ażeby zapewnic usłudze działającej na wymienonych portach odpowiednie pasmo. drugą sprawą są strony www chce ażeby priorytet ich ładowania był zaraz po voip a resztę pasma które nie wykorzystuje ani voip ani www podzieliły sobie równo inne aplikacje między innymi p2p.

Co powinienem jescze dopisać do mojego skryptu??
Po uruchomieniu skkryptu mierze prędkość łacza i niby wszytsko działa bo jak dam na www 1000kb to taka jest prędkośc a jak dam 500kb to jest 500 tlko z uploadem nie potrafie sobie poradzić bo czy napisze w skrypcie 30 czy 100 to i tak idzię 256. A to przeciez ważne bo jak kilka osób uruchomi p2p to zapcha cały upload i kich.

Prosze o rady

: 21 lutego 2008, 08:27
autor: tomii
ja bym zrobił to tak ze voip ma wlasna kolejke z prawie calym laczem i prorytetem 1 ,www ma troszke z priorytetem 2 i reszta ma troszke z prio 3. wtedy gy potrzebny jest transfer dla voip to on jest, jesli voip go nie uzywa to mogo go pozycyc www a jak www i voip nie urzywa to może być użyty przez reszte.

żeby ograniczac upload musisz zamarkowac ruch wychodzacy od każdego uzytkownika i z serwera a póżniej go skierować do odpowiednich kolejek.

: 21 lutego 2008, 10:11
autor: mavarick87
możesz mi podac przykładowy skrypt jak zrobic te priorytety??

w jaki sposób mogę się uporać z tym markowanie pakietów

: 21 lutego 2008, 10:59
autor: tomii
aktualnie nie mam gotowego skryptu ale fragmenty moge dać

Kod: Zaznacz cały

iptables -t mangle -N MYSHAPER-OUT
    iptables -t mangle -I POSTROUTING -o eth0 -j MYSHAPER-OUT

 tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 21 fw flowid 1:3
iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.1.2 -j MARK --set-mark 21
tuylko to znakuje calosc od jednego ip a ty musisz sobie przerobic na konkretny port

a co do priorytetowania to

Kod: Zaznacz cały

#podział pasma na klasy dla  usług 
 #dla voip 
tc class add dev eth1 parent 1:1 classid 1:2 htb rate 900kbit ceil 1000kbit prio 1
#www
tc class add dev eth1 parent 1:1 classid 1:3 htb rate 50kbit ceil 1000kbit prio 2
#reszta
tc class add dev eth1 parent 1:1 classid 1:4 htb rate 50kbit ceil 1000kbit prio 3
i teraz tylko kierujesz odpowiedni ruch w odpowiednie miejsce

: 22 lutego 2008, 22:33
autor: mavarick87
może ktoś z was koledzy pomoże z tym skryptem na markowanie pakietów po nr portów.

rozumiem że te polecenia odpowiadające za markowanie pakietów można zapisać w pliku z poleceniami htb

: 24 lutego 2008, 18:21
autor: tomii
może to pomoże

Kod: Zaznacz cały

tc filter add dev $wan protocol ip preference 1 parent 1:0 handle 21 fw flowid 1:3
iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.1.2 -j MARK --set-mark 21
a to markowanie możesz dać w pliku z htb.