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

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

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« : 26 Сентября 2012, 16:52:56 »

Никто не занимался вопрос разбора радиусом opt82?
Какими средствами лучше это сделать? Самим радиусом или можно както mysql'ом?
Просто судя по всему часть полей закодирована в hex, т.е. надо както конвертировать и выделять значения порт,влан.
Вот пример запроса со свича с 26 порта, 80 vlan:
"0800.27a8.fc67.00040050011A.00067072CF7149E0"
Где:
0800.27a8.fc67 мак юзера
7072CF7149E0 мак свича
0050 vid
1A port
Причем последние два значения в hex...

Неясно как это в автоматическом режиме разбирать (где и как). И сравнивать допустим с дополнительными полями.

Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #1 : 26 Сентября 2012, 18:40:14 »

Можно sql процедурами многое делать
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #2 : 26 Сентября 2012, 23:40:46 »

Да, если лень разбираться, то проще всего - мускуль. Но я бы покопал radius. Не ставил связки DHCP+RADIUS потому не знаю какие там механизмы задействованы. Может котортко опишите - подумаем
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #3 : 27 Сентября 2012, 12:37:28 »

Да, если лень разбираться, то проще всего - мускуль. Но я бы покопал radius. Не ставил связки DHCP+RADIUS потому не знаю какие там механизмы задействованы. Может котортко опишите - подумаем
Ну есть железка - Juniper MX80
Там есть DHCP сервер который умеет забирать данные с radius сервера.
В качестве UserName он передает строку которую можно настроить в конфиге, в данном случае склеивается mac клиента, circuit id и remote id.
От Radius'а в атрибутах он должен получить адрес, маску, днс и так далее.

MySQL'ом я в принципе разобрался как разделить строку, получилось что-то типа такого:

Цитировать
DROP PROCEDURE IF EXISTS `mx80radcheck`;
DELIMITER $$ 
CREATE PROCEDURE `mx80radcheck` (IN login VARCHAR(64))
BEGIN
 DECLARE usr_id INT; 
 DECLARE usr_mac VARCHAR(12);
 DECLARE usr_vid INT;
 DECLARE usr_port INT;
 DECLARE usr_swmac VARCHAR(12);
 
SELECT UPPER(REPLACE(SUBSTRING(login,1,14),'.','')) INTO usr_mac;
SELECT CONV(SUBSTRING(login,20,4),16,10) INTO usr_vid;
SELECT CONV(SUBSTRING(login,26,2),16,10) INTO usr_port;
SELECT SUBSTRING(login,33,12) INTO usr_swmac;


  SELECT usr_mac AS 'MAC', usr_vid AS 'VID', usr_port AS 'PORT', usr_swmac AS 'SWMAC';
END$$
DELIMITER ;

Но оно пока заточено на железо Edge-Core, при других форматах Opt82 скорее всего работать не будет.
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

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