шейпер (настройка)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

zakachkin
Сообщения: 137

шейпер

Сообщение zakachkin »

имееться скрипт
if [ -f /var/run/radattr.$1 ]
then
DOWNSPEED=`/bin/awk '/PPPD-Downstream-Speed-Limit/ {print $2}' /var/run/radattr.$1`
UPSPEED=`/bin/awk '/PPPD-Upstream-Speed-Limit/ {print $2}' /var/run/radattr.$1`
FILTERS=`/bin/awk '/Filter-Id/ {print $2}' /var/run/radattr.$1`
#echo $DOWNSPEED
#echo $UPSPEED
#echo $FILTERS
/sbin/tc qdisc del dev $1 root > /dev/null
/sbin/tc qdisc del dev $1 ingress > /dev/null

##### speed server->client
if [ "$UPSPEED" != "0" ] ;
then
/sbin/tc qdisc add dev $1 root handle 1: htb default 20 r2q 1
/sbin/tc class add dev $1 parent 1: classid 1:1 htb rate ${UPSPEED}kbit burst 4k
/sbin/tc class add dev $1 parent 1:1 classid 1:10 htb rate ${UPSPEED}kbit burst 4k prio 1
/sbin/tc class add dev $1 parent 1:1 classid 1:20 htb rate ${UPSPEED}kbit burst 4k prio 2
/sbin/tc qdisc add dev $1 parent 1:10 handle 10: sfq perturb 10 quantum 1500
/sbin/tc qdisc add dev $1 parent 1:20 handle 20: sfq perturb 10 quantum 1500
/sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10
/sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10
/sbin/tc filter add dev $1 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u160x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10
fi

Нужно сделать так чтоб к каждому классу автоматически прибавлялось еще 100kbit.
Как реализовать?

РЕШЕНО!
вот:

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

#!/bin/bash
if [ -f /var/run/radattr.$1 ]
    then
        DOWNSPEED=`/bin/awk  '/PPPD-Downstream-Speed-Limit/ {print $2}'  /var/run/radattr.$1`
        UPSPEED1=`/bin/awk '/PPPD-Upstream-Speed-Limit/ {print $2}'  /var/run/radattr.$1`
        FILTERS=`/bin/awk  '/Filter-Id/ {print $2}'  /var/run/radattr.$1`
        #echo $DOWNSPEED
        #echo $UPSPEED
        #echo $FILTERS
            A="$UPSPEED1"; B='100';
            UPSPEED=`echo "$A + $B" | bc -ql`
        /sbin/tc qdisc del dev $1 root    > /dev/null
        /sbin/tc qdisc del dev $1 ingress > /dev/null

                         ##### speed server->client
        if [ "$UPSPEED" != "0" ];
            then
                /sbin/tc qdisc add dev $1 root handle 1: htb default 20 r2q 1
                /sbin/tc class add dev $1 parent 1: classid 1:1 htb rate ${UPSPEED}kbit
                /sbin/tc class add dev $1 parent 1:1 classid 1:10 htb rate ${UPSPEED}kbit prio 1
                /sbin/tc class add dev $1 parent 1:1 classid 1:20 htb rate ${UPSPEED}kbit prio 2
                /sbin/tc qdisc add dev $1 parent 1:10 handle 10: sfq perturb 10 quantum 1500
                /sbin/tc qdisc add dev $1 parent 1:20 handle 20: sfq perturb 10 quantum 1500
                /sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10
                /sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10
                /sbin/tc filter add dev $1 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u160x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10
        fi
Спасибо сказали: