Название: Передача параметров скорости клиента через радиус на микротик Отправлено: traktor150 от 13 Декабря 2009, 14:35:24 Доброго времени суток.
Помогите дописать процедуру DROP PROCEDURE IF EXISTS `radreply`; DELIMITER $$ CREATE PROCEDURE `radreply` (IN login VARCHAR(64)) BEGIN DECLARE usr_id INT; DECLARE usr_ip VARCHAR(15); SELECT id,ip INTO usr_id,usr_ip FROM users WHERE name=login; INSERT into dblogin (mid,act,time) VALUES (usr_id,47,unix_timestamp()); SELECT NULL,login,'Framed-IP-Address',usr_ip,'='; SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','='; SELECT NULL,login,'Acct-Interim-Interval','50','='; END$$ DELIMITER ; Задача передать на микротик еще и скорость клиента. Так вот скорость клиента хранится в таблице plans2 в таблице users поле paket указывает на тариф в котором и хранится информация о скорости клеинта. Помогите правильно составить SQL запрос чтоб получить скорость клиента. Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: Efendy от 14 Декабря 2009, 14:19:04 select speed from plans2 where id=(select paket from users where id=24);
Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: traktor150 от 17 Декабря 2009, 16:56:21 DROP PROCEDURE IF EXISTS `radreply`;
DELIMITER $$ CREATE PROCEDURE `radreply` (IN login VARCHAR(64)) BEGIN DECLARE usr_id INT; DECLARE usr_ip VARCHAR(15); DECLARE speed VARCHAR(15); SELECT id,ip INTO usr_id,usr_ip FROM users WHERE name=login; INSERT into dblogin (mid,act,time) VALUES (usr_id,47,unix_timestamp()); SELECT speed from plans2 where id=(select paket from users where id=user_id); SELECT NULL,login,'Framed-IP-Address',usr_ip,'='; SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','='; SELECT NULL,login,'Acct-Interim-Interval','50','='; SELECT NULL,login,'Ascend-Data-Rate','speed','='; END$$ DELIMITER ; Сделал вот так. не работает скорость не режет. Где ошибка подскажите? Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: goletsa от 17 Декабря 2009, 17:11:08 speed в кавычках?
покажите что пишет radtest Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: Efendy от 17 Декабря 2009, 17:26:16 speed в кавычках? ага, здесь и ошибкаНазвание: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: traktor150 от 17 Декабря 2009, 22:02:22 всеравно не работает
Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: Efendy от 17 Декабря 2009, 22:34:33 покажите что пишет radtest Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: traktor150 от 18 Декабря 2009, 14:30:02 %radtest admin 12345678 127.0.0.1 0 test
Sending Access-Request of id 38 to 127.0.0.1 port 1812 User-Name = "admin" User-Password = "12345678" NAS-IP-Address = 255.255.255.255 NAS-Port = 0 rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=38, length=38 Framed-IP-Address = 192.168.70.154 Framed-IP-Netmask = 255.255.255.255 Acct-Interim-Interval = 50 DROP PROCEDURE IF EXISTS `radreply`; DELIMITER $$ CREATE PROCEDURE `radreply` (IN login VARCHAR(64)) BEGIN DECLARE usr_id INT; DECLARE usr_ip VARCHAR(15); DECLARE speed VARCHAR(15); SELECT id,ip INTO usr_id,usr_ip FROM users WHERE name=login; INSERT into dblogin (mid,act,time) VALUES (usr_id,47,unix_timestamp()); SELECT speed from plans2 where id=(select paket from users where id=user_id); SELECT NULL,login,'Framed-IP-Address',usr_ip,'='; SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','='; SELECT NULL,login,'Acct-Interim-Interval','50','='; SELECT NULL,login,'Ascend-Data-Rate',speed,'='; END$$ DELIMITER ; Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: VitalVas от 18 Декабря 2009, 19:32:03 те все ето в ответ приходит??
Код: %radtest admin 12345678 127.0.0.1 0 test п.с. разделяй чемто, а то получается что все ето тебе в ответ Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: versus от 19 Декабря 2009, 11:16:24 Код: SELECT id,ip INTO usr_id,usr_ip FROM users WHERE name=login; Странно, а где именно берется переменная user_id в процедуре ? Я так понимаю, что ее все таки надо назвать usr_id, потому что если посмотреть на первый селект, то именно так называется переменная с айди пользователя. Я понимаю что копипаст от Стаса рулит, но голова дана для того что бы думать, а не слепо копировать, что дали. Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: traktor150 от 19 Декабря 2009, 12:42:56 копипаст не рулит так как Стас ничо не давал, сам затупил. Спасибо что указали где. Исправил и теперь вот так
admin 12345678 127.0.0.1 0 test Sending Access-Request of id 131 to 127.0.0.1 port 1812 User-Name = "admin" User-Password = "12345678" NAS-IP-Address = 255.255.255.255 NAS-Port = 0 rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=131, length=20 Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: stix от 13 Июля 2010, 15:14:50 т.к. закрыли свежий топик, то продолжу тут
http://forum.nodeny.com.ua/index.php?topic=777.msg8117;boardseen#new Код: DROP PROCEDURE IF EXISTS `radreply`; очень удобно для ресурсосбережения с биллинга идет выборка целого значения, например тариф 4000 в биллинге это значение килобит, а на микротик передается значение в битах соответственно будет шейпер в 4кбит как правильней решить, добавить нулей в биллинг или изменить процедуру? Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: stix от 13 Июля 2010, 15:22:41 а все проще простого :D
Код: DROP PROCEDURE IF EXISTS `radreply`; и получаем динамический шейпер для микротика. часть из hw_mikrotik ответственную за добавление удаление шейперов можно вырезать. но это касается только случаев использования PPP Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: goletsa от 13 Июля 2010, 17:32:34 Вот только меня одного смущает SELECT ... WHERE id=(SELECT?
Вложенные запросы както неособо быстро выполняютcя мускулом. Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: stix от 13 Июля 2010, 19:10:11 запрос занял 0.0010 сек
не так часто строятся ppp соединения чаще идет выборка данных сателитом. я планирую изменить немного на более простой алгоритм адрес-листы Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: YuSHa от 22 Июля 2010, 18:47:58 в таком случае создаётся шейпер с одинаковой скоростью что на приём, что на отдачу. А если я ставлю отдачи меньше? скажем 1024/256? как быть?
Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: stix от 22 Июля 2010, 18:52:24 делать программируемый тариф и в нем выставлять скорость.
и поменять запрос выборки из БД Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: Demeo от 23 Июля 2010, 11:22:52 в таком случае создаётся шейпер с одинаковой скоростью что на приём, что на отдачу. А если я ставлю отдачи меньше? скажем 1024/256? как быть? Моя процедура для разных скоростей отдачи/приема Код: DROP PROCEDURE IF EXISTS `radreply`; Название: Re: Передача параметров скорости клиента через радиус на микротик Отправлено: stix от 23 Июля 2010, 12:23:44 точно, там же отдельно идет вход и исход.
|