Ограничение скорости

Установка, настройка, поддержка
knyaz2008
Сообщения: 1
Зарегистрирован: Ср сен 05, 2007 7:36 pm

Ограничение скорости

Сообщение knyaz2008 »

Никак немогу настроить... :cry:

Данные передаются в :
/var/run/radattr.ppp1 :

MS-CHAP2-Success \324S=6A3D7B909E2B063800513832929F6254ADBACA34
MS-MPPE-Recv-Key \222\271\350\204F\011\260_\231\377:\311\213\027\340\007\240&9s~\035\364+.[\274\037v\302_e;\324
MS-MPPE-Send-Key \235xA\367q\274\333\015\262\336\327$\023\345\266\345\203F\207\012\335\334\305\344\2335\341\316]"\302\363\211\351
MS-MPPE-Encryption-Policy
MS-MPPE-Encryption-Types
Session-Timeout 2165313
Session-Octets-Limit 79691776
PPPD-Downstream-Speed-Limit 16
Acct-Interim-Interval 60
PPPD-Upstream-Speed-Limit 16
Octets-Direction Sum
Framed-IP-Address 192.168.1.2
Framed-IP-Netmask 255.255.255.0

Файла /etc/ppp/ip-up.local небыло, я его создал, назначил права запуска, тоесть вот:
-rwxr-xr-x 1 root root 1645 Сен 5 22:18 /etc/ppp/ip-up.local
Вот его содержимое:
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
##### speed client->server
if [ "$DOWNSPEED" != "0" ] ;
then
/sbin/tc qdisc add dev $1 handle ffff: ingress
/sbin/tc filter add dev $1 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNSPEED}kbit burst 12k drop flowid :1
fi
fi

Содержимое файла /etc/ppp/ip-up :

#!/bin/bash

# this is a script which is executed after connecting the ppp interface.
# look at man pppd for details

# the followings parameters are available:
# $1 = interface-name
# $2 = tty-device
# $3 = speed
# $4 = local-IP-address
# $5 = remote-IP-address
# $6 = ipparam

if [ "$USEPEERDNS" ]; then

if [ -x /sbin/resolvconf ]; then
conf="# Generated by ppp for $1\n"
[ -n "$DNS1" ] && conf="${conf}nameserver $DNS1\n"
[ -n "$DNS2" ] && conf="${conf}nameserver $DNS2\n"
echo -e "$conf" | resolvconf -a "$1"
else
# add the server supplied DNS entries to /etc/resolv.conf
# (taken from debian's 0000usepeerdns)

# follow any symlink to find the real file
REALRESOLVCONF=$(readlink --canonicalize /etc/resolv.conf)

if [ "$REALRESOLVCONF" != "/etc/ppp/resolv.conf" ]; then

# merge the new nameservers with the other options from the old configuration
{
grep --invert-match '^nameserver[[:space:]]' $REALRESOLVCONF
cat /etc/ppp/resolv.conf
} > $REALRESOLVCONF.tmp

# backup the old configuration and install the new one
cp -dpP $REALRESOLVCONF $REALRESOLVCONF.pppd-backup
mv $REALRESOLVCONF.tmp $REALRESOLVCONF

# correct permissions
chmod 0644 /etc/resolv.conf
chown root:root /etc/resolv.conf
fi
fi
fi

if [ -x /etc/init.d/net.$1 ]; then
if ! /etc/init.d/net.$1 --quiet status ; then
export IN_BACKGROUND="true"
/etc/init.d/net.$1 --quiet start
fi
fi

[ -f /etc/ppp/ip-up.local ] && . /etc/ppp/ip-up.local "$@"

Помогите пожалуйста разобраться с этой проблемой. Очень нужно это ограничение по скорости :(

Sliderbook
Сообщения: 8
Зарегистрирован: Пн авг 27, 2007 8:19 am
Контактная информация:

Сообщение Sliderbook »

а у меня почему-то вообще не пишутся доп. параметры в radattr.ppp*

пишется только Framed-IP-Address и Framed-Netmask

вопрос, почему?

ssh
Сообщения: 28
Зарегистрирован: Сб авг 25, 2007 5:44 am

Сообщение ssh »


knyaz2008

Проверь где у тебя находиться awk
У меня он например не в /bin/awk а в /usr/bin/awk

Sliderbook
В
/etc/radiusclient/dictionary
Добавляем

Код:
ATTRIBUTE Acct-Interim-Interval 85 integer
ATTRIBUTE Session-Octets-Limit 227 integer
ATTRIBUTE Octets-Direction 228 integer

ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237 integer


И это же все добавляем в
/etc/freeradius/dictionary
Должно помочь

TiM
Сообщения: 3
Зарегистрирован: Сб дек 22, 2007 7:28 pm

Сообщение TiM »

Народ, подскажите. Такая же проблема. Биллинг очень нравится, но никак не могу понять, мочем не срабатывает параметр ограничения скорости. Система FreeBSD 6.2 + Freeradius 1.1.7 + MPD4 ...

fjey
Сообщения: 99
Зарегистрирован: Сб дек 29, 2007 5:51 pm

Сообщение fjey »

допустим он (awk) находится не там где положено... что делать?

Zyb
Сообщения: 4
Зарегистрирован: Пн янв 14, 2008 10:48 am

Сообщение Zyb »

TiM писал(а):Народ, подскажите. Такая же проблема. Биллинг очень нравится, но никак не могу понять, мочем не срабатывает параметр ограничения скорости. Система FreeBSD 6.2 + Freeradius 1.1.7 + MPD4 ...
А не пробовал прописать в mpd.conf :

set iface up-script "/usr/abills/libexec/linkupdown mpd up"
set iface down-script "/usr/abills/libexec/linkupdown mpd down"

Это работает как для l2p так и на pptp, ну это конечно если ты не через радиус передаешь скорость:)

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

Сообщение ran »

fjey писал(а):допустим он (awk) находится не там где положено... что делать?
Ну... вариантов масса...

1. Например, там где положено сделать симлинк на туда, где лежит.
2. Подправить в скрипте.
3. Грубо и цинично скопировать, куда положено :D

Заодно и путь к tc проверь... Так, на всякий случай :lol:

Это ладно, там ещё и в перловом коде абсолютные пути есь... И у тебя ЭТО может лежать совсем не там, где у Автора... Ну, а тут только контекстным поиском по сырцам, а дальше - см. выше :D

HikeR
Сообщения: 30
Зарегистрирован: Вс янв 06, 2008 2:18 pm

Сообщение HikeR »

ran писал(а):1. Например, там где положено сделать симлинк на туда, где лежит.
2. Подправить в скрипте.
3. Грубо и цинично скопировать, куда положено :D
самый правильный вариант - 2. ибо стандарт LBS каждый производитель дистрибов понимает по своему.
Это ладно, там ещё и в перловом коде абсолютные пути есь... И у тебя ЭТО может лежать совсем не там, где у Автора... Ну, а тут только контекстным поиском по сырцам, а дальше - см. выше :D
угу. типа вызов пинга, или snmpget.

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

Сообщение ran »

HikeR писал(а):самый правильный вариант - 2. ибо стандарт LBS каждый производитель дистрибов понимает по своему.
Самый правильный - ВАРИАНТ 1!. Ибо ничего в коде править не надо! Не пробовал править пути например в Abills/defs.conf, а потом обновляться с цвс? :D :D :D А в перловом коде? Нет уж... лучше симлинки.

fjey
Сообщения: 99
Зарегистрирован: Сб дек 29, 2007 5:51 pm

Сообщение fjey »

так и сделал.
вот только не могу найти /sbin/tc
и в /usr/sbin/ тоже нету... там начинает от tcpd и дальше

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

Сообщение ran »

fjey писал(а):так и сделал.
вот только не могу найти /sbin/tc
и в /usr/sbin/ тоже нету... там начинает от tcpd и дальше
which tc

А если нету - значит iproute2 не установлен.

упс... а у тебя ось-то какая? не фря часом? :D

fjey
Сообщения: 99
Зарегистрирован: Сб дек 29, 2007 5:51 pm

Сообщение fjey »

debian... но устанавливал просто ось... практически пустую.
which не надохит его )
сейчас попробую поставить.
я использую debian+freradius1.1.3 без шифрования/компрессии (mppe mppc) а просто chap pptpd, должно ж работать ограничение скорости?
значение заданной скорости в /var/run/radattr.ppp1 перелается, но скорость не ограничивается =(

fjey
Сообщения: 99
Зарегистрирован: Сб дек 29, 2007 5:51 pm

Сообщение fjey »

пакет iproute2 на репе не находит. проклятье какое-то
репа mirror.yandex.ru + куча других
tc нигде найти не могу... пожалуйста помогите :)

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

Сообщение ran »

fjey писал(а):пакет iproute2 на репе не находит. проклятье какое-то
репа mirror.yandex.ru + куча других
tc нигде найти не могу... пожалуйста помогите :)
В дебиане по-идее в дистре должен быть. Сайт вот: http://www.linux-foundation.org/en/Net:Iproute2 там всё есть.
fjey писал(а):я использую debian+freradius1.1.3 без шифрования/компрессии (mppe mppc) а просто chap pptpd, должно ж работать ограничение скорости?
Да какая разница, что ты используешь??? В линухе шейпинг - прерогатива тс из ипроут2.

Кстати, прежде чем засорять форум, самому ну совсем чуть-чуть погуглить можно, а? Вводим в браузере http://www.google.com в строке поиска debian iproute2 и находим мильон ссылок на пакет ипроут2 для дебиан.

fjey
Сообщения: 99
Зарегистрирован: Сб дек 29, 2007 5:51 pm

Сообщение fjey »

ran писал(а): Кстати, прежде чем засорять форум, самому ну совсем чуть-чуть погуглить можно, а? Вводим в браузере http://www.google.com в строке поиска debian iproute2 и находим мильон ссылок на пакет ипроут2 для дебиан.
Спасибо вам за помощь.
погуглил, нашел этот репозиторий: http://ftp.debian.org/debian/pool/main/i/iproute/ ... всё установилось.

но самый последний вопрос, можете пожалуйста сказать как поставить на запуск скрипт /etc/ppp/ip-up.local

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

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 
 ##### speed client->server
   if [ "$DOWNSPEED" != "0" ] ;
   then
     /sbin/tc qdisc add dev $1 handle ffff: ingress
     /sbin/tc filter add dev $1 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNSPEED}kbit burst 12k drop flowid :1
   fi
 fi
я так понимаю он должен запускатся не от рута?

Ответить