задача. В сети три компьютера. все они ходят в интэрнет через локалку. подключение в WAN обычный TCP/IP. статический айпи. нужно динамически распределять скорость между этими компами. так же есть приоритеты. наивыший приоритет .8, средний .10, наименьший .55
Скорость инета внешнего 2М, скорость локальных ресурсов провайдера 100Мб.
Составил скрипт. но не уверен в правельности его составления. проверьте кто-то.
#/bin/sh
# Wonder Shaper
# please read the README before filling out these values
#
# Set the following values to somewhat less than your actual download
# and uplink speed. In kilobits. Also set the device that is to be shaped.

if [ "$1" = "status" ]
then
echo "[qdisc br0]"
/usr/sbin/tc -s qdisc show dev br0
echo "[qdisc vlan1]"
/usr/sbin/tc -s qdisc show dev vlan1
echo "[class br0]"
/usr/sbin/tc -s class show dev br0
echo "[class vlan1]"
/usr/sbin/tc -s class show dev vlan1
echo "[filter br0]"
/usr/sbin/tc -s filter show dev br0
echo "[filter vlan1]"
/usr/sbin/tc -s filter show dev vlan1
exit
fi

# clean existing down- and uplink qdiscs, hide errors
/usr/sbin/tc qdisc del dev br0 root 2> /dev/null > /dev/null
/usr/sbin/tc qdisc del dev br0 ingress 2> /dev/null > /dev/null
/usr/sbin/tc qdisc del dev vlan1 root 2> /dev/null > /dev/null
/usr/sbin/tc qdisc del dev vlan1 ingress 2> /dev/null > /dev/null

if [ "$1" = "stop" ]
then
exit
fi


if [ "$1" = "start" ]
then
# install root HTB, point default traffic to 1:99
/usr/sbin/tc qdisc add dev br0 root handle 1:0 htb default 99

# root class 1
/usr/sbin/tc class add dev br0 parent 1:0 classid 1:1 htb rate 100mbit

# router traffic subslass 2 (router IP=192.168.15.1)
/usr/sbin/tc class add dev br0 parent 1:1 classid 1:2 htb rate 100mbit ceil 100mbit
/usr/sbin/tc qdisc add dev br0 parent 1:2 handle 2: sfq perturb 2
/usr/sbin/tc filter add dev br0 parent 1: protocol ip prio 10 u32 match ip src 192.168.15.1 flowid 1:2

# internet traffic subclass 10
/usr/sbin/tc class add dev br0 parent 1:1 classid 1:10 htb rate 100mbit ceil 100mbit

# internet traffic subclasses 12, 13,... for each client IP
/usr/sbin/tc class add dev br0 parent 1:10 classid 1:12 htb rate 512kbit ceil 100mbit burst 6k prio 10
/usr/sbin/tc class add dev br0 parent 1:10 classid 1:13 htb rate 128kbit ceil 100mbit burst 6k prio 20
/usr/sbin/tc class add dev br0 parent 1:10 classid 1:14 htb rate 128kbit ceil 100mbit burst 6k prio 30

# creating quques for each class
/usr/sbin/tc qdisc add dev br0 parent 1:12 handle 12: sfq perturb 2
/usr/sbin/tc qdisc add dev br0 parent 1:13 handle 13: sfq perturb 2
/usr/sbin/tc qdisc add dev br0 parent 1:14 handle 14: sfq perturb 2

#sending traffic from clinet's IP's to classes
/usr/sbin/tc filter add dev br0 parent 1: protocol ip prio 10 u32 match ip dst 192.168.15.8 flowid 1:12
/usr/sbin/tc filter add dev br0 parent 1: protocol ip prio 10 u32 match ip dst 192.168.15.10 flowid 1:13
/usr/sbin/tc filter add dev br0 parent 1: protocol ip prio 10 u32 match ip dst 192.168.15.55 flowid 1:14

# install root HTB, point default traffic to 1:99
/usr/sbin/tc qdisc add dev vlan1 root handle 1:0 htb default 99

# root class 1
/usr/sbin/tc class add dev vlan1 parent 1:0 classid 1:1 htb rate 100mbit

# router traffic subslass 2 (router IP=192.168.15.1)
/usr/sbin/tc class add dev vlan1 parent 1:1 classid 1:2 htb rate 100mbit ceil 100mbit
/usr/sbin/tc qdisc add dev vlan1 parent 1:2 handle 2: sfq perturb 2
/usr/sbin/tc filter add dev vlan1 parent 1: protocol ip prio 10 u32 match ip dst 192.168.15.1 flowid 1:2

# internet traffic subclass 10
/usr/sbin/tc class add dev vlan1 parent 1:1 classid 1:10 htb rate 100mbit ceil 100mbit

# internet traffic subclasses 12, 13,... for each client IP
/usr/sbin/tc class add dev vlan1 parent 1:10 classid 1:12 htb rate 512kbit ceil 100mbit burst 6k prio 10
/usr/sbin/tc class add dev vlan1 parent 1:10 classid 1:13 htb rate 128kbit ceil 100mbit burst 6k prio 20
/usr/sbin/tc class add dev vlan1 parent 1:10 classid 1:14 htb rate 128kbit ceil 100mbit burst 6k prio 30

# creating quques for each class
/usr/sbin/tc qdisc add dev vlan1 parent 1:12 handle 12: sfq perturb 2
/usr/sbin/tc qdisc add dev vlan1 parent 1:13 handle 13: sfq perturb 2
/usr/sbin/tc qdisc add dev vlan1 parent 1:14 handle 14: sfq perturb 2

# sending traffic from clinet's IP's to classes
/usr/sbin/tc filter add dev vlan1 parent 1: protocol ip prio 10 u32 match ip src 192.168.15.8 flowid 1:12
/usr/sbin/tc filter add dev vlan1 parent 1: protocol ip prio 10 u32 match ip src 192.168.15.10 flowid 1:13
/usr/sbin/tc filter add dev vlan1 parent 1: protocol ip prio 10 u32 match ip src 192.168.15.55 flowid 1:14
fi