PHP Code:
#!/bin/sh
DEV=br0
UPLINK=100
IPADD=$1
RATE=$2
tc qdisc del dev $DEV root > /dev/null 2>&1
tc qdisc del dev $DEV ingress > /dev/null 2>&1
# install root HTB, point default traffic to 1:99:
tc qdisc add dev $DEV root handle 1: htb default 99
# root class 1
tc class add dev $DEV parent 1: classid 1:1 htb rate 100mbit
# router traffic subslass 2 (router IP=192.168.1.1)
tc class add dev $DEV parent 1:1 classid 1:2 htb rate 100mbit
tc qdisc add dev $DEV parent 1:2 handle 2: sfq perturb 10
tc filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip src 192.168.1.1 flowid 1:2
# internet traffic subclass 10
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${UPLINK}kbit ceil ${UPLINK}kbit
# internet traffic subclasses 12, for each client IP
tc class add dev $DEV parent 1:10 classid 1:13 htb rate ${RATE}kbit burst 6k prio 2
# creating quques for each class
tc qdisc add dev $DEV parent 1:12 handle 12: sfq perturb 10
tc qdisc add dev $DEV parent 1:13 handle 13: sfq perturb 10
#sending traffic from clinet's IP's to classes
tc filter add dev $DEV parent 1: protocol ip prio 20 u32 match ip dst ${IPADD} flowid 1:12
запускать например так: ./shaper 192.168.1.5 30
192,168,1,5-адресс кого ограничить, 30 - ограничение по скорости, в килобитах...
скрипт не проверял... кто найдет ошибку сообщите