ssh and cs LAG

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux