Такаа .... след дълга и мъчителна битка с Load Balancing-а (м/у другото ако някой го интерисува скрипта за лоад балансинг нека ми пише ЛС) стигнах до момента в който трябва да си изградя шейповете за интерфейсите и за клиентите. Спрях се на НТВ ....
Тъй като правилата ми дойдоха в повечко (а и м/у другото немога да се оправя с класовете нс ТС-то) се опитах да проявя малко творчество, като взех кеша от НТВ-то и по него да си направя направя едно Shell-че с което да се прескочи момента в които трябва да се създадат "928437693847698346" фаила за отделните интерфейси и отделните клиенти. Като замисъл нали ми се стори мн добре докато не стигнах момента в който да напиша "./rc.shape start"
Започна да ми връща съобщение:
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
...............
и така без да спира и разбира се никакъв ефект освен че изгубих връзка със сървъра
Ето го и rc.shape-а:
#!/bin/sh
#
#
#
#
#############################################################################################################
IF0="eth0" #Modem 1
IF0_IP="192.168.1.2"
IF1="eth1" #Modem 2
IF1_IP="192.168.121.2"
IF2="eth2" #Vytreshna mreja
IF2_IP="192.168.197.2"
IF0_IN="10400Kbit"
IF0_OUT="768Kbit"
IF1_IN="10400Kbit"
IF1_OUT="768Kbit"
IF2_IN="20800Kbit"
IF2_OUT="1400"
CNET="192.168.197."
START_IP="8"
END_IP="254"
CSPEED="2560"
CLN_UPL="240"
CMETRIC="Kbit"
CLSID="10"
#################
function htb_start ()
{
echo "Startirane..."
/sbin/tc qdisc del dev $IF0 root
/sbin/tc qdisc add dev $IF0 root handle 1 htb default 50 r2q 2
/sbin/tc qdisc del dev $IF1 root
/sbin/tc qdisc add dev $IF1 root handle 1 htb default 50 r2q 2
/sbin/tc qdisc del dev $IF2 root
/sbin/tc qdisc add dev $IF2 root handle 1 htb default 50 r2q 2
/sbin/tc class add dev $IF0 parent 1: classid 1:2 htb rate 10Mbit
/sbin/tc class add dev $IF1 parent 1: classid 1:2 htb rate 10Mbit
/sbin/tc class add dev $IF2 parent 1: classid 1:2 htb rate 20Mbit
#################################################################################################
#IF0 Download Limit
/sbin/tc class add dev $IF0 parent 1:2 classid 1:3 htb rate $IF0_IN
/sbin/tc qdisc add dev $IF0 parent 1:3 handle 10 sfq perturb 10
/sbin/tc filter add dev $IF0 parent 1:0 protocol ip prio 100 u32 match ip dst $IF0_IP classid 1:3
#IF0 Upload Limit
/sbin/tc class add dev $IF0 parent 1:2 classid 1:4 htb rate $IF0_OUT
/sbin/tc qdisc add dev $IF0 parent 1:4 handle 10 sfq perturb 10
/sbin/tc filter add dev $IF0 parent 1:0 protocol ip prio 100 u32 match ip src $IF0_IP classid 1:4
#################################################################################################
#IF1 Download Limit
/sbin/tc class add dev $IF1 parent 1:2 classid 1:5 htb rate $IF1_IN
/sbin/tc qdisc add dev $IF1 parent 1:5 handle 10 sfq perturb 10
/sbin/tc filter add dev $IF1 parent 1:0 protocol ip prio 100 u32 match ip dst $IF1_IP classid 1:5
#IF1 Upload Limit
/sbin/tc class add dev $IF1 parent 1:2 classid 1:6 htb rate $IF1_OUT
/sbin/tc qdisc add dev $IF1 parent 1:6 handle 10 sfq perturb 10
/sbin/tc filter add dev $IF1 parent 1:0 protocol ip prio 100 u32 match ip src $IF1_IP classid 1:6
#################################################################################################
#IF2 Download Limit
/sbin/tc class add dev $IF2 parent 1:2 classid 1:7 htb rate $IF0_IN
/sbin/tc qdisc add dev $IF2 parent 1:7 handle 10 sfq perturb 10
/sbin/tc filter add dev $IF2 parent 1:0 protocol ip prio 100 u32 match ip dst $IF0_IP classid 1:7
#IF2 Upload Limit
/sbin/tc class add dev $IF2 parent 1:2 classid 1:8 htb rate $IF2_OUT
/sbin/tc qdisc add dev $IF2 parent 1:8 handle 10 sfq perturb 10
/sbin/tc filter add dev $IF2 parent 1:0 protocol ip prio 100 u32 match ip src $IF2_IP classid 1:8
#################################################################################################
#Users Rules .....
while test $START_IP -le $END_IP
do
#Clients Download Limit
/sbin/tc class add dev $IF2 parent 1:2 classid 1:$CLSID htb rate $CSPEED$CMETRIC
/sbin/tc qdisc add dev $IF2 parent 1:$CLSID handle 10 sfq perturb 10
/sbin/tc filter add dev $IF2 parent 1:0 protocol ip prio 100 u32 match ip dst $CNET$START_IP classid 1:$CLSID
#Clients Upload Limit
CLSID=$[CLSID+1]
/sbin/tc class add dev $IF2 parent 1:2 classid 1:$CLSID htb rate $CLN_UPL$CMETRIC
/sbin/tc qdisc add dev $IF2 parent 1:$CLSID handle 10 sfq perturb 10
/sbin/tc filter add dev $IF2 parent 1:0 protocol ip prio 100 u32 match ip src $CNET$START_IP classid 1:$CLSID
CLSID=$[CLSID+1]
START_IP=$[START_IP+1]
done
echo "... OK"
##################################################################################################
}
function htb_stop ()
{
echo "Stop ..."
/sbin/tc qdisc del dev $IF0 root 2> /dev/null
/sbin/tc qdisc del dev $IF1 root 2> /dev/null
/sbin/tc qdisc del dev $IF2 root 2> /dev/null
echo "... OK"
}
#####################################################################################################################################################33
case $1 in
start)
htb_start
;;
stop)
htb_stop
;;
restart)
htb_stop
sleep 3
htb_start
;;
*)
echo "Useg: rc.shape (start|stop|restart)"
exit 1
;;
esac
Моля някой с повече опит да удари едно рамо
п.п. дистрото е Slackware 12.0