Всем не хворать!Имеется slackware 12 + tc+htb шейпер, и локалка, ходящая через него в инет.
В течение большинства времени шейпер должен не вмешиваться в проходящий трафик.
Но как только устанавливается соединение по определенному порту (например радмин) - максимально быстро сузить занимаемую полосу и освободить половину канала для радмина.
имеется вот така поделка:
#!/bin/sh
TC="/sbin/tc"
IPT="/usr/sbin/iptables"
IFACE="eth0"
RATE="100" # kbit
$TC qdisc del dev $IFACE root
$TC qdisc add dev $IFACE root handle 1:0 htb default 50
$TC class add dev $IFACE parent 1:0 classid 1:1 htb rate ${RATE}kbit ceil ${RATE}kbit
$TC class add dev $IFACE parent 1:1 classid 1:10 htb rate $[$RATE/2]kbit ceil ${RATE}kbit burst 512kb
$TC class add dev $IFACE parent 1:1 classid 1:50 htb rate $[$RATE/5]kbit ceil ${RATE}kbit
$TC filter add dev $IFACE protocol ip parent 1:0 prio 1 handle 10 fw flowid 1:1
. ./common/ipt-flush.sh
$IPT -t mangle -A PREROUTING -i $IFACE -p tcp --sport 4899 -j MARK --set-mark 10
$IPT -t mangle -A PREROUTING -o $IFACE -p tcp --dport 4899 -j MARK --set-mark 10
В принципе, работает, тока уж шибко медленно реагирует.
Т.е. с момента возникновения трафика на радминский порт, свою половину канала радмин получает через несколько минут.
Кому-нить приходилось сталкиваться?
Это как-нить лечится?
Закрывать все остальные порты на это время не предлагайте, такая идея у мну уже была =)
Юзеров полностью отрубать низя...