HTB i podział na usługi nie do końca działa
: 25 marca 2009, 06:42
Witam. Mam takie pytanko odnośnie HTB. Czy udało ci się tak ustawić kolejkowanie żeby dobrze chodził internet bez różnicy na to ile osób ściąga, ja próbowałem przerzucić cały ruch, który nie jest zdefiniowany do klasy standardowej ale internet mi muli. Zrobiłem podział łącza na usługi, ponieważ nie chcę dawać indywidualnie. Mam w sieci tylko ze trzy osoby, które non stop ściągają, ale im ograniczyłem za pomocą ,,delay_pools'' w squidzie transfer na poszczególne pliki. I jeszcze mam takiego jednego gracza, który non stop gra w ,,combat arms'' i nie mogę mu zrobić żeby dobrze pingi szły (oddzielne pasma w HTB). Może coś poradzicie?
£ącze to 9MB/700KB, dzielone na dwie karty eth1 i eth2 (karty od lan - sieć wifi przez przezroczyste AP) eth0 karta WAN - nie robiłem jeszcze politykę wysyłania plików (upload).
Poniżej mój skrypt, chodzi o to żeby zrobić tak, że jak któraś usługa nie wykorzystuje pasma to wszystko idzie na port 80 i 8080. Czy trzeba jeszcze coś wpisywać w firewallu?
£ącze to 9MB/700KB, dzielone na dwie karty eth1 i eth2 (karty od lan - sieć wifi przez przezroczyste AP) eth0 karta WAN - nie robiłem jeszcze politykę wysyłania plików (upload).
Poniżej mój skrypt, chodzi o to żeby zrobić tak, że jak któraś usługa nie wykorzystuje pasma to wszystko idzie na port 80 i 8080. Czy trzeba jeszcze coś wpisywać w firewallu?
Kod: Zaznacz cały
#!/bin/bash
#skrypt do kolejkowania po usługach
#tworzę główne klasy dla eth1
tc qdisc del root dev eth1
tc qdisc add dev eth1 root handle 1:0 htb default 40
tc class add dev eth1 parent 1:0 classid 1:1 htb rate 50mbit
#tworzenie podklasy z podziałem na zakres pasma dla poszczególnej podklasy do 1:30 trafia niezdefiniowany ruch
tc class add dev eth1 parent 1:1 classid 1:10 htb rate 2.3mbit ceil 2.9mbit prio 1
tc class add dev eth1 parent 1:1 classid 1:20 htb rate 1.4mbit ceil 1.6mbit prio 2
tc class add dev eth1 parent 1:1 classid 1:30 htb rate 0.6mbit ceil 0.8mbit prio 3
tc class add dev eth1 parent 1:1 classid 1:40 htb rate 0.2mbit ceil 0.4mbit prio 4
tc class add dev eth1 parent 1:1 classid 1:50 htb rate 50mbit ceil 50mbit prio 5
#podział pasma użytkowników na równy przy otwarciu przez nich kilku stron.
tc qdisc add dev eth1 parent 1:10 handle 10:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:20 handle 20:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:30 handle 30:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:40 handle 40:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:50 handle 50:0 sfq perturb 10
#prędkość dla poszczególnych portów
#lokalne połączenia
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.1 flowid 1:50
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip dst 192.168.0.1 flowid 1:50
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip src 127.0.0.1 flowid 1:50
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 127.0.0.1 flowid 1:50
#proxy
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip sport 3127 0xffff flowid 1:50
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip dport 3127 0xffff flowid 1:50
#www
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip sport 80 0xffff flowid 1:10
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip dport 80 0xffff flowid 1:10
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip sport 8080 0xffff flowid 1:10
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip dport 8080 0xffff flowid 1:10
#skype, gg
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip sport 443 0xffff flowid 1:20
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip dport 443 0xffff flowid 1:20
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip sport 1550 0xffff flowid 1:20
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip dport 1550 0xffff flowid 1:20
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip sport 53 0xffff flowid 1:20
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip dport 53 0xffff flowid 1:20
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip sport 22 0xffff flowid 1:20
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip dport 22 0xffff flowid 1:20
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip sport 23 0xffff flowid 1:20
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip dport 23 0xffff flowid 1:20
#tworzę główne klasy dla eth2
tc qdisc del root dev eth2
tc qdisc add dev eth2 root handle 1:0 htb default 40
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 50mbit
#tworzenie podklasy z podziałem na zakres pasama dla poszczególnej podklasy do 1:30 trafia niezdefiniowany ruch
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 2.3mbit ceil 2.9mbit prio 1
tc class add dev eth2 parent 1:1 classid 1:20 htb rate 1.4mbit ceil 1.6mbit prio 2
tc class add dev eth2 parent 1:1 classid 1:30 htb rate 0.6mbit ceil 0.8mbit prio 3
tc class add dev eth2 parent 1:1 classid 1:40 htb rate 0.2mbit ceil 0.4mbit prio 4
tc class add dev eth2 parent 1:1 classid 1:50 htb rate 50mbit ceil 50mbit prio 5
#podział pasma użytkowników na rowny przy otwarciu przez nich kilku stron
tc qdisc add dev eth2 parent 1:10 handle 10:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:20 handle 20:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:30 handle 30:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:40 handle 40:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:50 handle 50:0 sfq perturb 10
#prędkość dla poszczególnych portów
#lokalne połączenia
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.1 flowid 1:50
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dst 192.168.0.1 flowid 1:50
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip src 127.0.0.1 flowid 1:50
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip dst 127.0.0.1 flowid 1:50
#proxy
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 3127 0xffff flowid 1:50
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 3127 0xffff flowid 1:50
#www
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 80 0xffff flowid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 80 0xffff flowid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 8080 0xffff flowid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 8080 0xffff flowid 1:10
#skype,gg
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 443 0xffff flowid 1:20
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 443 0xffff flowid 1:20
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 1550 0xffff flowid 1:20
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 1550 0xffff flowid 1:20
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 53 0xffff flowid 1:20
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 53 0xffff flowid 1:20
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 22 0xffff flowid 1:20
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 22 0xffff flowid 1:20
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 23 0xffff flowid 1:20
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 23 0xffff flowid 1:20
#gry
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 5400 0xffff flowid 1:30
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 5400 0xffff flowid 1:30
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 28000 0xffff flowid 1:30
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 28000 0xffff flowid 1:30
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 23000 0xffff flowid 1:30
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 23000 0xffff flowid 1:30
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 1102 0xffff flowid 1:30
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 1102 0xffff flowid 1:30
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 15400 0xffff flowid 1:30
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 15400 0xffff flowid 1:30
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip sport 29300 0xffff flowid 1:30
tc filter add dev eth2 protocol ip parent 1:0 prio 2 u32 match ip dport 29300 0xffff flowid 1:30