Биллинговая система Nodeny
23 Ноября 2024, 16:59:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: pptpd linux + nodeny 49.32  (Прочитано 6610 раз)
slava
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 26


Просмотр профиля Email
« : 22 Апреля 2010, 06:54:23 »

Доброго времени суток!

Проблема такого плана: на сервере стоит Gentoo linux установил nodeny 49.32 с авторизатором работает нормально. Поднял радиус 1.1.7, pptpd-1.3.4. Авторизация заработала инет появился но примерно через минуту пропадает. Если снова прервать соединение и пересоединится инет появится но тоже приметрно на минуту. Наблюдение показало что через минуту нодени посылает сигнал дисконнекта для пользователя  хотя баланс положительный и если поставить всегда онлай или подключится авторизатором все работает нормально.
Как написано в докуметнации по установке
Цитировать
Mpd настраивается таким образом, что с определенным периодом будет посылать radius-у так называемые accounting пакеты для каждого соединения. Эти пакеты будут интерпретироваться как keep-alive пакеты, сообщающие ядру, что соединение не зависло.
но это для MPD.
Как это реализовать на pptpd + radius?
Просьба не предлагать перейти на FreeBSD.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #1 : 22 Апреля 2010, 09:19:49 »

ну так, если pptpd поддерживает радиус, значит там тоже есть accounting, значит его можно использовать как признак keep-alave
Записан
slava
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 26


Просмотр профиля Email
« Ответ #2 : 29 Апреля 2010, 09:03:36 »

с этим разобрался
Еще вопрос подскажите кто знает как правильно передать атрибут скорости
пробую так:

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=usr_id);

SELECT NULL,login,'Framed-IP-Address',usr_ip,'=';
SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','=';
SELECT NULL,login,'Framed-Protocol','PPP','=';
SELECT NULL,login,'Acct-Interim-Interval','60','=';
SELECT NULL,login,'Ascend-Data-Rate','speed','=';
END$$
DELIMITER ;

но поле такого запроса
radtest выдает
Sending Access-Request of id 112 to 127.0.0.1 port 1812
        User-Name = "test"
        User-Password = "12345"
        NAS-IP-Address = 255.255.255.255
        NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=112, length=44

и содержимое radattr.ppp0:
Service-Type Framed-User
Framed-Protocol PPP


если запрос сформирован так:
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,'Framed-Protocol','PPP','=';
SELECT NULL,login,'Acct-Interim-Interval','60','=';
END$$
DELIMITER ;

то radattr.ppp0 :
Service-Type Framed-User
Framed-Protocol PPP
Framed-IP-Address 195.58.243.254
Framed-IP-Netmask 255.255.255.255
Acct-Interim-Interval 60

Записан
slava
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 26


Просмотр профиля Email
« Ответ #3 : 13 Мая 2010, 14:45:06 »

Продолжение предыдущего поста
radtest все таки выдает Ascend-Data-Rate но = 0
но даже с этим параметром этой записи нет в radattr.ppp0

Sending Access-Request of id 55 to 127.0.0.1 port 1812
        User-Name = "slavavpn"
        User-Password = "123456"
        NAS-IP-Address = 255.255.255.255
        NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=55, length=56
        Framed-IP-Address = 195.58.243.254
        Framed-IP-Netmask = 255.255.255.255
        Framed-Protocol = PPP
        Acct-Interim-Interval = 60
        Ascend-Data-Rate = 0
inet raddb #

запрос SELECT speed from plans2 where id=(select paket from users where id=usr_id);
где вместо usr_id подставить id пользователя выдает параметр скорости
помогите разобраться почему   Ascend-Data-Rate не появляется в radattr.ppp0
и Ascend-Data-Rate не подхватывает параметр скорости даже если ее задать константой
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #4 : 14 Мая 2010, 08:19:54 »

Код:
DECLARE spd INT;
...

SELECT speed INTO spd from plans2 where id=(select paket from users where id=usr_id);
...

SELECT NULL,login,'Ascend-Data-Rate',spd,'=';

обрати внимание на отсутствие кавычек в последнем select
Записан
slava
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 26


Просмотр профиля Email
« Ответ #5 : 14 Мая 2010, 13:19:35 »

Спасибо большое Efendy за подсказку
результат ниже кому интересно
Код:
DROP PROCEDURE IF EXISTS `radreply`;
DELIMITER $$
CREATE PROCEDURE `radreply` (IN login VARCHAR(64))
BEGIN
DECLARE usr_id INT;
DECLARE usr_ip VARCHAR(15);
DECLARE spd INT;
DECLARE spdup INT;

SELECT id,ip INTO usr_id,usr_ip FROM users WHERE name=login;
SELECT speed INTO spd from plans2 where id=(select paket from users where id=usr_id);
SELECT speed_out INTO spdup from plans2 where id=(select paket from users where id=usr_id);
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,'Framed-Protocol','PPP','=';
SELECT NULL,login,'Acct-Interim-Interval','60','=';
SELECT NULL,login,'PPPD-Upstream-Speed-Limit-1',spd,'=';
SELECT NULL,login,'PPPD-Downstream-Speed-Limit-1',spdup,'=';

END$$
DELIMITER ;
чтоб все заработало не забыть добавить в словари радиуса и клиента вот эти строчки
ATTRIBUTE       PPPD-Upstream-Speed-Limit-1     232     integer
ATTRIBUTE       PPPD-Downstream-Speed-Limit-1   233     integer

Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!