Witam,
Chciałem wykonać dynamiczny podział pasma podług
uzytkowników. Dla downloadu wszystko działa poprawnie. Jednakże natrafiam na problem z ruchem wychodzącym (upload).
#nalezy jeszcze wykonac /sbin/modeprobe imq de...=X
# oczywiście przerobiłem adresacje zgodnie ze swoją podsiecia
ifc_zew="eth0"
komputer1="192.168.2.2/24"
komputer2="192.168.2.3/24"
komputer3="192.168.2.4/24"
max_upload="250kbit"
upload_user="50kbit"
upload_serv="70kbit"
max_download="510kbit"
download_user="127kbit"
download_serv="127kbit"
ip link set imq0 up
tc qdisc del dev imq0 root
tc qdisc add dev imq0 root handle 1: htb default 10
tc class add dev imq0 parent 1: classid 1:1 htb rate $max_upload ceil $max_upload
tc class add dev imq0 parent 1:1 classid 1:10 htb rate $upload_serv ceil $max_upload
tc class add dev imq0 parent 1:1 classid 1:20 htb rate $upload_user ceil $max_upload
tc class add dev imq0 parent 1:1 classid 1:30 htb rate $upload_user ceil $max_upload
tc class add dev imq0 parent 1:1 classid 1:40 htb rate $upload_user ceil $max_upload
tc filter add dev imq0 parent 1: protocol ip prio 1 u32 match ip src $komputer1 flowid 1:20
tc filter add dev imq0 parent 1: protocol ip prio 1 u32 match ip src $komputer2 flowid 1:30
tc filter add dev imq0 parent 1: protocol ip prio 1 u32 match ip src $komputer3 flowid 1:40
tc qdisc add dev imq0 parent 1:10 handle 10:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:20 handle 20:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:30 handle 30:0 sfq perturb 10
tc qdisc add dev imq0 parent 1:40 handle 40:0 sfq perturb 10
iptables -t mangle -A PREROUTING -i $ifc_zew -j IMQ --todev 1
Powyższy listing jest kodem jaki znalazłem na sieci. Niestety cały ruch jest kolejkowany na 1:10. Wyglada na to, ze filtry nie wyłapują komputerów z sieci. Czy ktoś ma pomysł jak rozwiązać owo zagadnienie?
Pomoże markowanie pakietów? (informuję, że iptables znam b. słabo)
Dla downloadu stosuję wyłącznie htb bez imq.
Mam także pytania odnośnie layer7, ipp2p itp. Z tego co rozumiem służą one do wyłapania ruchu p2p gdy dzielimy pasmo podług usług. Czy dobrze rozumiem istotę ich przeznaczenia?
Dziękuję za ewentualną pomoc.
Ps. Mam jeszcze jeden ciekawy problem: gdy wpiszę tc qdisc to daostajęinformacjent qdisc które utworzyłem. Jednakże gdy wpiszę tc filter lub tc class (także z paramterami -s, -d) to informacji brak nt. danego obiektu. Coś robię nie tak w skryptach?