I have htb on 486 sx with 16mb ram. Slackware 9.1. Connection : dsl 1Mbit.
486 works as router and trafic shaper for network made of 12 pc's. it does the job quite well, but when i play Counter-Strike or connect to my 486 via ssh (on lan), i get huge lag every 11-20 sec. when i connect to 486 via ssh and run iptraf program i see all the trafic, and after a while when lag comes the kb/s stats reset. and iptraf shows that there is only 50% bandwith usage. What could be the problem ?
root@gecon:/home/bernard# cat /etc/rc.d/rc.htb
#!/bin/sh
HIGHSPEED="19 "
CLIENTS="01 05 07 11 12 13 15 18 63"
SLOW="20 21 22"
htb_start() {
echo "tc qdisc add dev eth1 root handle 1: htb default 12"
tc qdisc add dev eth1 root handle 1: htb default 12
echo "tc qdisc add dev eth0 root handle 2: tbf rate 230kbit latency 50ms burst 1540"
tc qdisc add dev eth0 root handle 2: tbf rate 230kbit latency 50ms burst 1540
echo "tc class add dev eth1 parent 1: classid 1:1 htb rate 1000kbit ceil 1000kbit"
tc class add dev eth1 parent 1: classid 1:1 htb rate 1000kbit ceil 1000kbit
# tc class add dev eth1 parent 1: classid 1:2 htb rate 200kbit ceil 200kbit
echo "Ustawianie klas"
for IP in $HIGHSPEED; do
echo "tc class add dev eth1 parent 1:1 classid 1:1${IP} htb rate 500kbit ceil 1000kbit"
tc class add dev eth1 parent 1:1 classid 1:1${IP} htb rate 500kbit ceil 1000kbit
# tc class add dev eth1 parent 1:2 classid 1:2${IP} htb rate 20kbit ceil 20kbit
done
for IP in $CLIENTS; do
echo "tc class add dev eth1 parent 1:1 classid 1:1${IP} htb rate 100kbit ceil 1000kbit"
tc class add dev eth1 parent 1:1 classid 1:1${IP} htb rate 100kbit ceil 1000kbit
# tc class add dev eth1 parent 1:2 classid 1:2${IP} htb rate 20kbit ceil 20kbit
done
for IP in $SLOW; do
echo "tc class add dev eth1 parent 1:1 classid 1:1${IP} htb rate 50kbit ceil 1000kbit"
tc class add dev eth1 parent 1:1 classid 1:1${IP} htb rate 50kbit ceil 1000kbit
done
# dla niezakwalifikowanych gdzie indziej
echo "tc class add dev eth1 parent 1:1 classid 1:100 htb rate 50kbit ceil 50kbit quantum 4"
tc class add dev eth1 parent 1:1 classid 1:100 htb rate 50kbit ceil 50kbit quantum 4
# tc class add dev eth1 parent 1:2 classid 1:200 htb rate 10kbit ceil 10kbit
echo "Ustawianie filtrów i SFQ"
for IP in $HIGHSPEED; do
echo "tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match ip dst 192.168.0.1${IP} flowid 1:1${IP}"
tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match ip dst 192.168.0.1${IP} flowid 1:1${IP}
# tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match ip src 192.168.0.1${IP} flowid 1:2${IP}
echo "tc qdisc add dev eth1 parent 1:1${IP} handle 1${IP}:0 sfq perturb 10"
tc qdisc add dev eth1 parent 1:1${IP} handle 1${IP}:0 sfq perturb 10
# tc qdisc add dev eth1 parent 1:2${IP} handle 2${IP}:0 sfq perturb 10
done
for IP in $CLIENTS; do
echo "tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match ip dst 192.168.0.1${IP} flowid 1:1${IP}"
tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match ip dst 192.168.0.1${IP} flowid 1:1${IP}
# tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match ip src 192.168.0.1${IP} flowid 1:2${IP}
echo "tc qdisc add dev eth1 parent 1:1${IP} handle 1${IP}:0 sfq perturb 10"
tc qdisc add dev eth1 parent 1:1${IP} handle 1${IP}:0 sfq perturb 10
# tc qdisc add dev eth1 parent 1:2${IP} handle 2${IP}:0 sfq perturb 10
done
for IP in $SLOW; do
echo "tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match ip dst 192.168.0.1${IP} flowid 1:1${IP}"
tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match ip dst 192.168.0.1${IP} flowid 1:1${IP}
# tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match ip src 192.168.0.1${IP} flowid 1:2${IP}
echo "tc qdisc add dev eth1 parent 1:1${IP} handle 1${IP}:0 sfq perturb 10"
tc qdisc add dev eth1 parent 1:1${IP} handle 1${IP}:0 sfq perturb 10
done
echo "tc filter add dev eth1 protocol ip parent 1: prio 3 u32 match ip dst 192.168.0.0/24 flowid 1:100"
tc filter add dev eth1 protocol ip parent 1: prio 3 u32 match ip dst 192.168.0.0/24 flowid 1:100
# tc filter add dev eth1 protocol ip parent 1: prio 3 u32 match ip src 192.168.0.0/24 flowid 1:200
echo "tc qdisc add dev eth1 parent 1:100 handle 100:0 sfq perturb 10"
# tc qdisc add dev eth1 parent 1:200 handle 200:0 sfq perturb 10
}
htb_stop() { echo "tc qdisc del dev eth1 root" tc qdisc del dev eth1 root echo "tc qdisc del dev eth0 root" tc qdisc del dev eth0 root }
case "$1" in 'start') htb_start ;; 'stop') htb_stop ;; 'restart') htb_stop htb_start ;; *) echo "usage $0 start|stop|restart"
_______________________________________________ LARTC mailing list / LARTC@xxxxxxxxxxxxxxx http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/