smile_2008 Posted October 21, 2012 (edited) freeradius-2.1.12-4 mikrotik 5.17 на микротике поднят dhcp-сервер, перед тем, как выдать адрес, микротик должен консультироваться с БД mysql, передавая туда в качестве входных параметров в разное время mac, ip коммутатора, порт коммутатора. Естественно, через freeradius. На freeradius приходит запрос от микротика, с User-Name (mac) проблем никаких нет, можно использовать этот параметр при запросах к mysql базе, все ок. А вот с коммутатором\портом (option 82) все хуже. Микротик кидает их в виде Agent-Circuit-Id = 0x000400c70009 (для примера). попробовал прямо в sql запросе распарсить эту строку через conv, substring, right и пр. функции mysql. Но не тут-то было( Даже если пишешь в явной форме select 2+2, то freeradius выдает не 4, а именно '2+2' при запуске -Xx. Задействовал perl. Тут с парсингом никаких проблем... а вот как сделать запрос к mysql сложнее.... То-есть я решил сразу и example.pl обращаться к mysql и все проверять, в случае успеха делать $RAD_CHECK{'Auth-Type'} = "Accept"; или надо в перле просто распарсить, а потом юзать то, что sql.conf? тогда вопрос как)? Edited October 21, 2012 by smile_2008 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
smile_2008 Posted October 24, 2012 (edited) если кому понадобится: если на freeradius юзать perl, то отдельно sql.conf не надо, можно прямо из DBI: mysql устанавливать коннекты с базой, только юзать CLONE: our $dbh ; and then in CLONE sub CLONE { $dbh = DBI->connect("DBI:mysql:$database",$dbuser,$dbpass) or die $DBI::errstr; } http://freeradius.1045715.n5.nabble.com/rlm-perl-CLONE-thread-identification-td2755054.html Edited October 24, 2012 by smile_2008 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...