> думаю будет многим интересно, поэтому лучше в лист :)
 > вообще по 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







Ответить