POPTOP ограничение скорости
POPTOP ограничение скорости
Есть машина, с поднятым PPTP-server как ограничить скорость согласно тарифному плану из UTM ?
откопал вот что:
добавляем в RADIUS словарь /etc/radiusclient-ng/dictionary дополнительные атрибуты:
в биллинге добавляю RADIUS атрибуты:
подключиться и выполнить cat /var/run/radattr.pppXX (pppXX имя интерфейса по которому подключились)
но желаемая скорость совсем не та =( помогайте народ) пиво с меня)
добавляем в RADIUS словарь /etc/radiusclient-ng/dictionary дополнительные атрибуты:
Код: Выделить всё
ATTRIBUTE PPPD-Upstream-Speed-Limit 230 string
ATTRIBUTE PPPD-Downstream-Speed-Limit 231 string
Код: Выделить всё
Vendor:0;Attr:230;Val:1024 тип String
Vendor:0;Attr:231;Val:1024 тип String
подключиться и выполнить cat /var/run/radattr.pppXX (pppXX имя интерфейса по которому подключились)
Код: Выделить всё
PPPD-Upstream-Speed-Limit 1024
PPPD-Downstream-Speed-Limit 1024
прикрепил файл
к /etc/ppp/ip-up поставил разрешение 777
но все осталось на своих местах
лог радиуса
атрибуты такие -
Код: Выделить всё
if [ -f /var/run/radattr.$1 ]
then
DOWNSPEED=`/usr/bin/awk '/PPPD-Downstream-Speed-Limit/ {print $2}' /var/run/radattr.$1`
UPSPEED=`/usr/bin/awk '/PPPD-Upstream-Speed-Limit/ {print $2}' /var/run/radattr.$1`
#echo $DOWNSPEED
#echo $UPSPEED
/sbin/tc qdisc del dev $1 root > /dev/null
/sbin/tc qdisc del dev $1 ingress > /dev/null
##### speed server->client
if [ "$UPSPEED" != "0" ] ;
/sbin/tc qdisc add dev $1 root tbf ${UPSPEED} latency 25ms
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: handle 1 protocol ip prio 50 basic police ${DOWNSPEED} drop flowid :1
fi
fi
но все осталось на своих местах
лог радиуса
Код: Выделить всё
?Debug : Dec 15 09:11:21 AuthServer: User <qwe1> connecting
?Debug : Dec 15 09:11:21 AuthServer: Session for sessionid <qwe1> not found in <191.191.81.14> cache
?Debug : Dec 15 09:11:21 RADIUS DBA: Info for login <qwe1> found. type <1>
?Debug : Dec 15 09:11:21 AuthServer: Auth scheme: MS-CHAPv2
?Debug : Dec 15 09:11:21 AuthServer: MS-CHAPv2: Authorized user <qwe1>
?Debug : Dec 15 09:11:21 AuthServer: MS-CHAPv2: MPPE Keys send
?Debug : Dec 15 09:11:21 AuthServer: IP claimed: 0xc3bf5291 (<195.191.82.145>)
?Debug : Dec 15 09:11:21 AuthServer: Calling fill radius attributes for service. Attr storage size <2>
?Debug : Dec 15 09:11:21 AuthServer: fill_radius_data Vendor:<0> Attr:<230> Val:<148137000> Size<1>
?Debug : Dec 15 09:11:21 AuthServer: fill_radius_data result <0> message <Success>
?Debug : Dec 15 09:11:21 AuthServer: fill_radius_data verifying packet. fetched val <1> size:<1>
?Debug : Dec 15 09:11:21 AuthServer: fill_radius_data Vendor:<0> Attr:<231> Val:<148752064> Size<1>
?Debug : Dec 15 09:11:21 AuthServer: fill_radius_data result <0> message <Success>
?Debug : Dec 15 09:11:21 AuthServer: fill_radius_data verifying packet. fetched val <1> size:<1>
?Debug : Dec 15 09:11:21 AuthServer: Calling fill radius attributes for slink. Attr storage size <2>
?Debug : Dec 15 09:11:21 AuthServer: fill_radius_data Vendor:<0> Attr:<230> Val:<808464434> Size<4>
?Debug : Dec 15 09:11:21 AuthServer: fill_radius_data result <0> message <Success>
?Debug : Dec 15 09:11:21 AuthServer: fill_radius_data verifying packet. fetched val <144585568> size:<1>
?Debug : Dec 15 09:11:21 AuthServer: fill_radius_data Vendor:<0> Attr:<231> Val:<808464434> Size<4>
?Debug : Dec 15 09:11:21 AuthServer: fill_radius_data result <0> message <Success>
?Debug : Dec 15 09:11:21 AuthServer: fill_radius_data verifying packet. fetched val <148129760> size:<1>
?Debug : Dec 15 09:11:21 AuthServer: Calling fill radius attributes for NAS. Attr storage size <0>
Notice: Dec 15 09:11:21 AuthServer: Login OK <qwe1> from NAS <195.191.82.14> CLID <> Calling-station <>
Код: Выделить всё
Vendor:0;Attr:230;Val:1 тип String
Vendor:0;Attr:231;Val:1 тип String
Код: Выделить всё
[root@vpnhost ~]# cat /var/run/radattr.ppp0
Service-Type Framed-User
Framed-Protocol PPP
Framed-IP-Address 191.191.81.141
Framed-IP-Netmask 255.255.255.255
Session-Timeout 86400
PPPD-Upstream-Speed-Limit 1
PPPD-Downstream-Speed-Limit 1
MS-MPPE-Encryption-Policy
MS-MPPE-Encryption-Types
MS-MPPE-Send-Key \207\005\300-;i\202^\207\231\363 \330\260@\012\320(\277\265\244e\021\235\236\302\205f\246\035\201\202_\324
MS-MPPE-Recv-Key \200\214\001O\226\265Dm\001\232\247\340>\015\270\010\224\200zd~)\245\026\251H\3779 \015[\321\025"
MS-CHAP2-Success \201S=E6C0D4B4CE9CF2E2D5405ECE148A082291EEC030
заметил что при смене скорости в атрибутах меняется очень странно сам VAL
Код: Выделить всё
?Debug : Dec 15 09:11:21 AuthServer: fill_radius_data Vendor:<0> Attr:<230>Val:<148137000>Size<1>
исключено, ведь сами данные берутся ведь из атрибутов...
а скрипт лишь устанавливает заданную скорость
он берет переменную из $UPSPEED, $DOWNSPEED заданную из 230.231 атриибута.
Я задумываюсь над тем как ведет себя радиус...
и думаю какой именно тип у переменной VAL integer или string ? в разных мануалах по-разному
а скрипт лишь устанавливает заданную скорость
он берет переменную из $UPSPEED, $DOWNSPEED заданную из 230.231 атриибута.
Я задумываюсь над тем как ведет себя радиус...
и думаю какой именно тип у переменной VAL integer или string ? в разных мануалах по-разному