Название: Radius + Opt82 Отправлено: goletsa от 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... Неясно как это в автоматическом режиме разбирать (где и как). И сравнивать допустим с дополнительными полями. Название: Re: Radius + Opt82 Отправлено: stix от 26 Сентября 2012, 18:40:14 Можно sql процедурами многое делать
Название: Re: Radius + Opt82 Отправлено: 0xbad0c0d3 от 26 Сентября 2012, 23:40:46 Да, если лень разбираться, то проще всего - мускуль. Но я бы покопал radius. Не ставил связки DHCP+RADIUS потому не знаю какие там механизмы задействованы. Может котортко опишите - подумаем
Название: Re: Radius + Opt82 Отправлено: goletsa от 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 скорее всего работать не будет. |