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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: маки абонентов PPPoE  (Прочитано 4995 раз)
sergey104
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 24


Просмотр профиля Email
« : 21 Июня 2018, 15:04:22 »

Добрый день, для userside нам необходимо чтобы маки абонентов PPPoE сохранялись в таблице mac_uid. Есть ли такая возможность?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #1 : 21 Июня 2018, 15:13:25 »

А в чем сложность? В конфиге радиуса call radreply('%{User-Name}', '%{Calling-Station-Id}')
 - Calling-Station-Id по идее мак, ну если не мак, то поставить нужный атрибут.
Изменяешь процедуру radreply:

CREATE PROCEDURE `radreply` (IN login VARCHAR(64), IN usr_mac VARCHAR(64))
...
INSERT INTO mac_uid SET mac=usr_mac,
                uid=usr_id, device_mac='', device_port='', ip=INET_ATON(usr_ip), time=UNIX_TIMESTAMP()
             ON DUPLICATE KEY UPDATE
                uid=usr_id, device_mac='', device_port='', ip=INET_ATON(usr_ip), time=UNIX_TIMESTAMP();
Записан
sergey104
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 24


Просмотр профиля Email
« Ответ #2 : 21 Июня 2018, 16:24:22 »

сделали, появилась ошибка в логах радиуса

Thu Jun 21 17:23:06 2018 : ERROR: (15679) sql: ERROR: rlm_sql_mysql: ERROR 1366 (Incorrect integer value: '' for column 'device_port' at row 1): HY000


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

Карма: 0
Offline Offline

Сообщений: 24


Просмотр профиля Email
« Ответ #3 : 21 Июня 2018, 16:32:31 »

процедура выглядит после правок так:
Код:
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `radreply`(IN login VARCHAR(64), tag VARCHAR(64), IN usr_mac VARCHAR(64))
BEGIN
  DECLARE usr_id INT;
  DECLARE usr_ip VARCHAR(15) DEFAULT NULL;

  SELECT id INTO usr_id FROM users WHERE name=login LIMIT 1;
  SELECT get_ip_by_tag(usr_id, tag) INTO usr_ip;
  CALL set_auth(usr_ip, 'mod=pppoe;');

  SELECT NULL,login,'Framed-IP-Address',usr_ip,'=';
  SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','=';
  SELECT NULL,login,'Framed-Protocol','PPP','=';


    INSERT INTO mac_uid SET mac=usr_mac,
                uid=usr_id, device_mac='', device_port='', ip=INET_ATON(usr_ip), time=UNIX_TIMESTAMP()
    ON DUPLICATE KEY UPDATE
                uid=usr_id, device_mac='', device_port='', ip=INET_ATON(usr_ip), time=UNIX_TIMESTAMP();
END ;;
DELIMITER
;

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

Карма: 0
Offline Offline

Сообщений: 24


Просмотр профиля Email
« Ответ #4 : 25 Июня 2018, 14:11:56 »

ошибка ушла после изменения
Код:
device_port='' 
на
Код:
device_port='0'

и функционал заработал
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

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