[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: