Правильный шейпер. Исходящая скорость и интервалы

Установка, настройка, поддержка
Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Правильный шейпер. Исходящая скорость и интервалы

Сообщение Abram »

Предлагаю на рассмотрение свой шейпер для PPPD. Основан на шейпере от NiTr0, с некоторыми дополнениями. Главное - скорость берётся из базы напрямую, а не из radius-атрибутов, работает смена скорости по интервалам (!!!).

ip-up:

Код: Выделить всё

#!/bin/sh
#ABillS %DATE% %TIME%
#
# When the ppp link comes up, this script is called with the following
# parameters
#       $1      the interface name used by pppd (e.g. ppp3)
#       $2      the tty device name
#       $3      the tty device speed
#       $4      the local IP address for the interface
#       $5      the remote IP address
#       $6      the parameter specified by the 'ipparam' option to pppd
#

# Uncoment the line below to enable logging
#LOGFILE=/tmp/pppd_log

# This one is for replacing the log
LOGREPLACE=1
if [ "$LOGFILE" == "" ]; then LOGFILE='/dev/null'; fi
if [ "$LOGREPLACE" == "1" ]; then exec 1> "$LOGFILE"; else exec 1>> "$LOGFILE"; fi

INPUT=ifb0;
UBURST="burst 512k"
DBURST="burst 512k"
TCFR="/sbin/tc filter replace"
TCCR="/sbin/tc class replace"
TCQR="/sbin/tc qdisc replace"
TCQD="/sbin/tc qdisc del"
USER=`who|grep "$1\ "|awk '{print $1}'`

# Everything below is fucking scary
QUERY="SELECT s.in_speed, s.out_speed, TIME_FORMAT(i.end,'%H:%i')
FROM \`trafic_tarifs\` AS s, \`intervals\` AS i, \`dv_main\` AS dv, \`users\` AS u
WHERE u.id = '$USER' 
AND dv.uid = u.uid
AND dv.tp_id = i.tp_id
AND s.interval_id = i.id
AND i.begin <= NOW()
AND i.end > NOW();"
Q_RESULT=`/bin/echo $QUERY |  /usr/bin/mysql -u mysql_user -p -h mysql_host -D abills_db --password=mysql_passwod --silent`
UPSPEED=`/bin/echo $Q_RESULT | /bin/awk '{print $1}'` 
DOWNSPEED=`/bin/echo $Q_RESULT | /bin/awk '{print $2}'` 
NEXTINT=`/bin/echo $Q_RESULT | /bin/awk '{print $3}'`

TASKS=`at -l | awk '{print $1}'`
for i in $TASKS
do
   TASK_TEXT=`at -c $i`
   if echo $TASK_TEXT | grep $1 > /dev/null;
   then
      atrm $i
   fi
done

/bin/echo "/etc/ppp/ip-up.d/shaper $1" | at $NEXTINT

if [ -f /var/run/radattr.$1 ]
then
   PPPNUM=`echo $1|sed 's/ppp//'|awk '{printf "%03d",$1}'`
   IP=$5
   QDISC_ETH=`tc qdisc show dev $INPUT|grep -v sfq|awk '{print $2}'`
   FILTERS=`/bin/awk  '/Filter-Id/ {print $2}'  /var/run/radattr.$1`
   DOWNSPEED=$(($DOWNSPEED*110/100))
   UPSPEED=$(($UPSPEED*105/100))


   if [ "$QDISC_ETH" != "htb" ];
   then
     ip l s $INPUT up
     $TCQD dev $INPUT root &>/dev/null
     $TCQR dev $INPUT root handle 1: htb default 2 r2q 100
     $TCCR dev $INPUT parent 1: classid 1:1 htb rate 100mbit ceil 1000mbit burst 1024k cburst 64k prio 2
     $TCCR dev $INPUT parent 1: classid 1:2 htb rate 100mbit ceil 1000mbit burst 1024k cburst 64k prio 1
     $TCQR dev $INPUT parent 1:2 handle 2: sfq perturb 10 quantum 1514
  fi


   if [ w${debug} = w1 ] ; then
     echo "Debug mode"
     echo $DOWNSPEED 
     echo $UPSPEED
     echo $FILTERS
   fi;

    $TCQD dev $1 root    
    $TCQD dev $1 ingress

##### speed server->client
   if [ "$UPSPEED" != "0" ] ;
   then
#     UPSPEED=$[$UPSPEED*4/3]
     URATE=$[$UPSPEED/2]
     $TCQR dev $1 root handle 1: htb default 20 r2q 100
     $TCCR dev $1 parent 1: classid 1:1 htb rate ${UPSPEED}kbit $UBURST quantum 1514
     $TCCR dev $1 parent 1:1 classid 1:10 htb rate ${URATE}kbit ceil ${UPSPEED}kbit $UBURST prio 1 quantum 1514
     $TCCR dev $1 parent 1:1 classid 1:20 htb rate ${URATE}kbit ceil ${UPSPEED}kbit $UBURST prio 2 quantum 1514
     $TCQR dev $1 parent 1:10 handle 10: sfq perturb 10 quantum 1514
     $TCQR dev $1 parent 1:20 handle 20: sfq perturb 10 quantum 1514
     $TCFR dev $1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10
     $TCFR dev $1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10
   fi

##### speed client->server
   if [ "$DOWNSPEED" != "0" ] ;
   then
#     DOWNSPEED=$[$DOWNSPEED*4/3]
     DRATE=$[$DOWNSPEED/2]

     $TCQR dev $1 handle ffff: ingress
     $TCFR dev $1 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev $INPUT

     $TCCR dev $INPUT parent 1:1 classid 1:1$PPPNUM htb rate ${DOWNSPEED}kbit $DBURST quantum 1514
     $TCCR dev $INPUT parent 1:1$PPPNUM classid 1:2$PPPNUM htb rate ${DRATE}kbit ceil ${DOWNSPEED}kbit $DBURST prio 10 quantum 1514
     $TCCR dev $INPUT parent 1:1$PPPNUM classid 1:3$PPPNUM htb rate ${DRATE}kbit ceil ${DOWNSPEED}kbit $DBURST prio 1 quantum 1514
     $TCQR dev $INPUT parent 1:2$PPPNUM handle 2$PPPNUM: sfq perturb 10 quantum 1514
     $TCQR dev $INPUT parent 1:3$PPPNUM handle 3$PPPNUM: sfq perturb 10 quantum 1514

     $TCFR dev $INPUT parent 1: protocol ip prio 1$PPPNUM handle 0x1$PPPNUM u32 match ip src $IP/32 flowid 1:2$PPPNUM
     $TCFR dev $INPUT parent 1:2$PPPNUM protocol ip prio 2$PPPNUM handle 0x2$PPPNUM u32 match ip src $IP/32 match ip tos 0x10 0xff flowid 1:3$PPPNUM
     $TCFR dev $INPUT parent 1:2$PPPNUM protocol ip prio 3$PPPNUM handle 0x3$PPPNUM u32 match ip src $IP/32 match ip protocol 6 0xff \
             match u8 0x05 0x0f at 0 match u16 0x0000 0xfc0 at 2 match u8 0x10 0xff at 33 flowid 1:3$PPPNUM
     $TCFR dev $INPUT parent 1:2$PPPNUM protocol ip prio 4$PPPNUM handle 0x4$PPPNUM u32 match ip src $IP/32 match ip protocol 1 0xff flowid 1:3$PPPNUM
   fi

#### Filters
  if [ w$FILTERS != w ] ;
  then
    echo "filters are not yet supported";
  fi;

fi
В параметры команды mysql вставить свои имя пользователя базы (я лично создал пользователя и дал ему право на SELECT), пароль, хост и имя базы ABillS.
ip-down:

Код: Выделить всё

#!/bin/sh
#ABillS %DATE% %TIME%
#
# When the ppp link comes up, this script is called with the following
# parameters
#       $1      the interface name used by pppd (e.g. ppp3)
#       $2      the tty device name
#       $3      the tty device speed
#       $4      the local IP address for the interface
#       $5      the remote IP address
#       $6      the parameter specified by the 'ipparam' option to pppd
#

# Uncoment the line below to enable logging
#LOGFILE=/tmp/pppd_log

# This one is for replacing the log
LOGREPLACE=1
if [ "$LOGFILE" == "" ]; then LOGFILE='/dev/null'; fi
if [ "$LOGREPLACE" == "1" ]; then exec 1> "$LOGFILE"; else exec 1>> "$LOGFILE"; fi

INPUT=ifb0;
UBURST="burst 512k"
DBURST="burst 64k"
TCFD="/sbin/tc filter del"
TCFR="/sbin/tc filter replace"
TCCR="/sbin/tc class replace"
TCCD="/sbin/tc class del"
TCQR="/sbin/tc qdisc replace"
TCQD="/sbin/tc qdisc del"


TASKS=`at -l | awk '{print $1}'`
for i in $TASKS
do
   TASK_TEXT=`at -c $i`
   #echo $TASK_TEXT
   if echo $TASK_TEXT | grep $1 > /dev/null;
   then
      atrm $i
   fi
done

if [ -f /var/run/radattr.$1 ]
then
   PPPNUM=`echo $1|sed 's/ppp//'|awk '{printf "%03d",$1}'`
   DOWNSPEED=`/bin/awk  '/PPPD-Downstream-Speed-Limit/ {print $2}'  /var/run/radattr.$1`
   FILTERS=`/bin/awk  '/Filter-Id/ {print $2}'  /var/run/radattr.$1`

    $TCQD dev $1 root    &>/dev/null
    $TCQD dev $1 ingress &>/dev/null

##### speed client->server
   if [ "$DOWNSPEED" != "0" ] ;
   then

     $TCFD dev $INPUT parent 1:2$PPPNUM protocol ip prio 4$PPPNUM
     $TCFD dev $INPUT parent 1:2$PPPNUM protocol ip prio 3$PPPNUM
     $TCFD dev $INPUT parent 1:2$PPPNUM protocol ip prio 2$PPPNUM
     $TCFD dev $INPUT parent 1: protocol ip prio 1$PPPNUM
     $TCQD dev $INPUT parent 1:2$PPPNUM
     $TCQD dev $INPUT parent 1:3$PPPNUM
     $TCCD dev $INPUT parent 1:1$PPPNUM classid 1:2$PPPNUM
     $TCCD dev $INPUT parent 1:1$PPPNUM classid 1:3$PPPNUM
     $TCCD dev $INPUT parent 1:1 classid 1:1$PPPNUM

   fi

#### Filters
  if [ w$FILTERS != w ] ;
  then
    echo "filters not supported";
  fi;

fi
Замечания приветствуются.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение ran »

не будет работать раздельный шейпинг по классам трафика ;)

ЗЫ: кстати это не сложно и доработать... а вот если изменится формат базы... :D
Любой тупик - это тщательно замаскированный выход.

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение Abram »

ran писал(а):не будет работать раздельный шейпинг по классам трафика ;)
... а он, собственно, кому-то нужен кроме тебя?

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение ran »

ну ты ж как-бы не подсебятину делаешь, а нечто универсальное... иначе зачем выкладывать? к тому же
ran писал(а):кстати это не сложно и доработать
и ватета
а вот если изменится формат базы... :D
Любой тупик - это тщательно замаскированный выход.

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение Abram »

ran писал(а):ну ты ж как-бы не подсебятину делаешь, а нечто универсальное... иначе зачем выкладывать?
Это лучше выложенного на данный момент. А ты свою лень так и не поборол, хотя собирался сделать то же самое :mrgreen:. Сделаешь фильтры - я тебе спасибо скажу.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение ran »

Abram писал(а):
ran писал(а):ну ты ж как-бы не подсебятину делаешь, а нечто универсальное... иначе зачем выкладывать?
Это лучше выложенного на данный момент. А ты свою лень так и не поборол, хотя собирался сделать то же самое :mrgreen:. Сделаешь фильтры - я тебе спасибо скажу.
а при чём здесь лень? я если и буду делать - то только в рамках линкапдаун и только если это для меня будет актуально (пока не очень, есть более актуальные задачи... ну или если кто-то закажет ;) )... а какие фильтры ты имеешь ввиду? :shock:
Любой тупик - это тщательно замаскированный выход.

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение Abram »

ran писал(а):а какие фильтры ты имеешь ввиду? :shock:
Фильтры подсетей.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение ran »

а шо тут военного?
/usr/abills/libexec/linkupdown.ifb ipn up ifb1 avalon 10.16.0.167 OS=Linux debug
Count: 0 Remain Time: 0
Day: 0 Session_start: 44861 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 1 Remain Time: 41539
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 2 Remain Time: 127939
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 3 Remain Time: 214339
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 4 Remain Time: 300739
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 5 Remain Time: 387139
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 6 Remain Time: 473539
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 7 Remain Time: 559939
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 8 Remain Time: 646339
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 9 Remain Time: 732739
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 10 Remain Time: 819139
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 11 Remain Time: 905539
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 12 Remain Time: 991939
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 13 Remain Time: 1078339
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 14 Remain Time: 1164739
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 15 Remain Time: 1251139
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 16 Remain Time: 1337539
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 17 Remain Time: 1423939
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 18 Remain Time: 1510339
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 19 Remain Time: 1596739
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 20 Remain Time: 1683139
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 21 Remain Time: 1769539
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 22 Remain Time: 1855939
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 23 Remain Time: 1942339
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 24 Remain Time: 2028739
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 25 Remain Time: 2115139
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 26 Remain Time: 2201539
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 27 Remain Time: 2287939
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 28 Remain Time: 2374339
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 29 Remain Time: 2460739
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 30 Remain Time: 2547139
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 31 Remain Time: 2633539
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 32 Remain Time: 2719939
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 33 Remain Time: 2806339
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 34 Remain Time: 2892739
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 35 Remain Time: 2979139
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 36 Remain Time: 3065539
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 37 Remain Time: 3151939
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 38 Remain Time: 3238339
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 39 Remain Time: 3324739
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 40 Remain Time: 3411139
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 41 Remain Time: 3497539
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 42 Remain Time: 3583939
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 43 Remain Time: 3670339
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 44 Remain Time: 3756739
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 45 Remain Time: 3843139
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 46 Remain Time: 3929539
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 47 Remain Time: 4015939
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 48 Remain Time: 4102339
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
Count: 49 Remain Time: 4188739
Day: 0 Session_start: 0 => Int Begin: 0 End: 86400 Int ID: 23
<<!=
TT, 23
TIME_PRICE, 0
FIRST_INTERVAL, 23
Expresion:================================

END: =====================================
/sbin/tc filter del dev ifb1 protocol ip parent 1: prio 3932 &>/dev/null
/sbin/tc filter del dev ifb1 protocol ip parent 1: prio 3931 &>/dev/null
/sbin/tc class del dev ifb1 parent 1: classid 1:f5c &>/dev/null
/sbin/tc class add dev ifb1 parent 1: classid 1:f5c htb rate 512Kibit quantum 1536
/sbin/tc class del dev ifb1 parent 1: classid 1:f5b &>/dev/null
/sbin/tc class add dev ifb1 parent 1: classid 1:f5b htb rate 64Kibit quantum 1536
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 3932 u32 match ip src 0.0.0.0/0 match ip dst 10.16.0.167 flowid 1:f5c
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 3931 u32 match ip src 10.16.0.167 match ip dst 0.0.0.0/0 flowid 1:f5b
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 3932 u32 match ip src 0.0.0.0/0 match ip dst 10.16.0.167 flowid 1:f5c
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 3931 u32 match ip src 10.16.0.167 match ip dst 0.0.0.0/0 flowid 1:f5b
/sbin/tc filter del dev ifb1 protocol ip parent 1: prio 2932 &>/dev/null
/sbin/tc filter del dev ifb1 protocol ip parent 1: prio 2931 &>/dev/null
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 2932 u32 match ip src 10.0.0.0/8 match ip dst 10.16.0.167 flowid 1:
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 2931 u32 match ip src 10.16.0.167 match ip dst 10.0.0.0/8 flowid 1:
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 2932 u32 match ip src 172.16.0.0/12 match ip dst 10.16.0.167 flowid 1:
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 2931 u32 match ip src 10.16.0.167 match ip dst 172.16.0.0/12 flowid 1:
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 2932 u32 match ip src 192.168.0.0/16 match ip dst 10.16.0.167 flowid 1:
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 2931 u32 match ip src 10.16.0.167 match ip dst 192.168.0.0/16 flowid 1:
/sbin/tc filter del dev ifb1 protocol ip parent 1: prio 1932 &>/dev/null
/sbin/tc filter del dev ifb1 protocol ip parent 1: prio 1931 &>/dev/null
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 1932 u32 match ip src 192.168.1.1/32 match ip dst 10.16.0.167 flowid 1:
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 1931 u32 match ip src 10.16.0.167 match ip dst 192.168.1.1/32 flowid 1:
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 1932 u32 match ip src 192.168.1.1/32 match ip dst 10.16.0.167 flowid 1:
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 1931 u32 match ip src 10.16.0.167 match ip dst 192.168.1.1/32 flowid 1:
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 1932 u32 match ip src 192.168.1.1/32 match ip dst 10.16.0.167 flowid 1:
/sbin/tc filter add dev ifb1 protocol ip parent 1: prio 1931 u32 match ip src 10.16.0.167 match ip dst 192.168.1.1/32 flowid 1:
Любой тупик - это тщательно замаскированный выход.

Dendj
Сообщения: 12
Зарегистрирован: Ср дек 05, 2007 8:43 pm
Контактная информация:

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение Dendj »

что та у меня не работают эти скрипты. debian lenyy 2.6.31

почемуто

USER=`who|grep "$1\ "| awk '{print $1}'`

выдаёт пустой ответ.

и в итоги *110/100: syntax error: operand expected (error token is "*110/100")

в NAS авторизация system

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение Abram »

Dendj писал(а):что та у меня не работают эти скрипты. debian lenyy 2.6.31

почемуто

USER=`who|grep "$1\ "| awk '{print $1}'`

выдаёт пустой ответ.

и в итоги *110/100: syntax error: operand expected (error token is "*110/100")

в NAS авторизация system
Странно. У меня под Debian Lenny работает. Откуда, кстати, 2.6.31? О_О
Дай вывод who.
А вообще мы в конференции abills@conference.jabber.dn.ua тусуемя :D.

Dendj
Сообщения: 12
Зарегистрирован: Ср дек 05, 2007 8:43 pm
Контактная информация:

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение Dendj »

Abram писал(а): Откуда, кстати, 2.6.31? О_О
из исходников :)
Abram писал(а): Дай вывод who.
who
root pts/0 2009-10-25 23:50 (192.168.0.249)

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение Abram »

Dendj писал(а):
Abram писал(а): Откуда, кстати, 2.6.31? О_О
из исходников :)
Я б не стал в Debian этого делать. Ну да ладно :).
Dendj писал(а):
Abram писал(а): Дай вывод who.
who
root pts/0 2009-10-25 23:50 (192.168.0.249)
Странно, у меня там PPP-сессии висят :). Ищи, значит, какой-либо другой способ.

Dendj
Сообщения: 12
Зарегистрирован: Ср дек 05, 2007 8:43 pm
Контактная информация:

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение Dendj »

может radius не правильно настроен?

NiTr0
Сообщения: 767
Зарегистрирован: Пт фев 08, 2008 4:46 pm

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение NiTr0 »

Сессии в who висят только при пользовании accel-pptp

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Re: Правильный шейпер. Исходящая скорость и интервалы

Сообщение Abram »

Dendj писал(а):может radius не правильно настроен?
Пофиг, по идее.
NiTr0 писал(а):Сессии в who висят только при пользовании accel-pptp
Странно, у меня на простом pptp висят. ЧЯДНТ?

Можно, конечно, переделать SQL-запрос и смотреть не по юзеру, а по IP. Но тут выходит бяка :D.

Ответить