Witam. Uzywam instancji tc na wielu serwerkach i zawsze smiga jak trzeba. W tym przypadku ruch do i z internetu dziala co do kilobajta... Problem mam z przydzielaniem ruchu do odpowiednich widelek lokalnie z samego routera. Np, chce aby dane z apacza na porcie 666 lecialy z predkoscia 512 kbit/s. Gdy ustawiam takie widelki, to dane leca okolo 500kilobajtow na sekundę, natomiast gdy ustawiam 1Mbit/s to dane leca okolo 1 megabajta na sekunde...dziwna sprawa...wszedzie dziala, tylko na tym jednym nie...podrzucam skrypt rc.htb ktory uruchamia sie po firewallu i wszystkim innym:
#!/bin/bash
BURST="burst 8kbit" BURST1="burst 8kbit"
iptables -t mangle -D POSTROUTING -o eth0 -j LIMITS >/dev/null 2>&1 iptables -t mangle -D POSTROUTING -o eth1 -j LIMITS >/dev/null 2>&1 iptables -t mangle -F LIMITS >/dev/null 2>&1 iptables -t mangle -X LIMITS >/dev/null 2>&1 iptables -t mangle -N LIMITS iptables -t mangle -I POSTROUTING -o eth0 -j LIMITS iptables -t mangle -I POSTROUTING -o eth1 -j LIMITS
#DOWNLOAD#
# kasujemy poprzednie ustawienia kolejek filtrow itp tc qdisc del root dev eth1
# zakladamy glowna kolejke na interfejsie eth1 tc qdisc add dev eth1 root handle 1:0 htb
# ustawiamy przepustowosc interfejsu, # ktory bedzie ograniczal ruch do LAN tc class add dev eth1 parent 1:0 classid 1:1 htb rate 90mbit ceil 90mbit
# podzielimy przepustowosc interfejsu na internet # i polaczenia lokalne tc class add dev eth1 parent 1:1 classid 1:2 htb rate 20mbit ceil 20mbit burst 2048kbit tc class add dev eth1 parent 1:1 classid 1:3 htb rate 30mbit ceil 30mbit tc class add dev eth1 parent 1:1 classid 1:4 htb rate 30mbit ceil 30mbit tc class add dev eth1 parent 1:1 classid 1:5 htb rate 512kbit ceil 512kbit
tc qdisc add dev eth1 parent 1:3 handle 31:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:4 handle 32:0 sfq perturb 10 tc qdisc add dev eth1 parent 1:5 handle 33:0 sfq perturb 10
### UPLOAD ###
# kasujemy poprzednie ustawienia kolejek filtrow itp tc qdisc del root dev eth0
# zakladamy glowna kolejke na interfejsie eth0 tc qdisc add dev eth0 root handle 1:0 htb default 3 # ustawiamy przepustowosc interfejsu, # ktory bedzie ograniczal ruch do internetu tc class add dev eth0 parent 1:0 classid 1:1 htb rate 20mbit ceil 20mbit tc class add dev eth0 parent 1:1 classid 1:2 htb rate 19mbit ceil 19mbit tc class add dev eth0 parent 1:1 classid 1:3 htb rate 1mbit ceil 1mbit
tc qdisc add dev eth0 parent 1:3 handle 30:0 sfq perturb 10
#tutaj moj komp, ktory ma ciagac dane z portu 666 z predkoscia 512 kbit/s a ciagnie okolo 500 kilobajtow/s
iptables -t mangle -A LIMITS -s 192.168.0.10 -j MARK --set-mark 100 iptables -t mangle -A LIMITS -d 192.168.0.10 -j MARK --set-mark 100 tc class add dev eth0 parent 1:2 classid 1:100 htb rate 24.0000kbit ceil 256.0000kbit $BURST1 quantum 1500 tc qdisc add dev eth0 parent 1:100 sfq perturb 10 tc filter add dev eth0 protocol ip parent 1:0 handle 100 fw classid 1:100 tc class add dev eth1 parent 1:2 classid 1:100 htb rate 24.0000kbit ceil 256.0000kbit $BURST quantum 1500 tc qdisc add dev eth1 parent 1:100 sfq perturb 10 tc filter add dev eth1 protocol ip parent 1:0 handle 100 fw classid 1:100
#na koniec odpowiednie wpisy aby dzialalo to co chce.. iptables -A POSTROUTING -t mangle -o eth1 -p tcp -s 192.168.0.1 --sport 666 -j MARK --set-mark 2000 iptables -A POSTROUTING -t mangle -o eth1 -p udp -s 192.168.0.1 --sport 666 -j MARK --set-mark 2000 tc filter add dev eth1 protocol ip preference 1 parent 1:0 handle 2000 fw flowid 1:5
Ruch z internetu i do internetu leci idealnie 256kbit/s.
A nie dzialaja widelki lokalne...mozliwe ze cos wydaje mi sie tak oczywiste ze nie widze byka...
Pozdrawiam i dziekuje za podpowiedzi z gory.
-- Matys Łukasz mobile: (+ 48) 504257944 gg: 6808288 msn: lukasz@e-matys.com