Re: деление траффика cbq, htb and etc.
> думаю будет многим интересно, поэтому лучше в лист :)
> вообще по htb было бы интересно увидеть ссылки на документацию и более
> подробно услышать что за зверь и с чем его едят :)
>
картинка такая: клиенты в работе используют входящий канал в 2 Mbit. К
ним траффик уходит через маршрутизатор по eth0 -- 10Mbit. Так как
нормальных средст для деления входящего траффика еще не придумали --
делим на eth0.
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=done
DESC="QoS ip service"
tc=/sbin/tc
test -x $DAEMON || exit 0
set -e
#set -x
case "$1" in
start)
echo -n "Starting $DESC: "
#HTB qdisc
$tc qdisc add dev eth0 root handle 1: htb default 16
#root class
$tc class add dev eth0 parent 1: classid 1:1 htb \
rate 10mbit ceil 10mbit
#client 1 leased line class
$tc class add dev eth0 parent 1:1 classid 1:10 htb \
rate 19Kbit ceil 19Kbit prio 1
#client 2 leased line class
$tc class add dev eth0 parent 1:1 classid 1:11 htb \
rate 57kbit ceil 57kbit prio 1
#client 3 leased line class
$tc class add dev eth0 parent 1:1 classid 1:12 htb \
rate 128kbit ceil 128kbit prio 1
.............................и еще сколько надо........
#dial-up pool class
$tc class add dev eth0 parent 1:1 classid 1:15 htb \
rate 235kbit ceil 235kbit prio 0
#all other class
$tc class add dev eth0 parent 1:1 classid 1:16 htb \
rate 5mbit ceil 6mbit prio 1
#filter for client 1
$tc filter add dev eth0 protocol ip parent 1:0 prio 2 u32 \
match ip dst 2.2.47.158 flowid 1:10
#filter for client 2
$tc filter add dev eth0 protocol ip parent 1:0 prio 2 u32 \
match ip dst 2.2.7.155 flowid 1:11
#filter for client 3
$tc filter add dev eth0 protocol ip parent 1:0 prio 2 u32 \
match ip dst 2.2.7.157 flowid 1:12
.............................и еще сколько надо........
#filter for diai-up
$tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
match ip dst 2.2.7.148 flowid 1:15
$tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
match ip dst 2.2.7.149 flowid 1:15
$tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
match ip dst 2.2.7.150 flowid 1:15
.............................и еще сколько надо........
#filter for other
$tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
match ip dst 2.2.7.145 flowid 1:16
$tc filter add dev eth0 protocol ip parent 1:0 prio 2 u32 \
match ip dst 2.2.7.146 flowid 1:16
$tc qdisc add dev eth0 parent 1:15 handle 10: sfq perturb 10
$tc qdisc add dev eth0 parent 1:16 handle 20: sfq perturb 10
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
#
$tc qdisc del dev eth0 10:
#
$tc qdisc del dev eth0 20:
$tc qdisc del dev eth0 root
echo "$NAME."
;;
restart)
echo -n "Restarting $DESC: "
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
Reply to: