_J_ Posted March 25, 2007 Posted March 25, 2007 Доброго времени суток. Есть радиус (freeradius 1.1.4) в связке с nas (mikrotik 2.9.27) Клиенты соединяются с nas`ом нормально и работают, все данные нормально текут в базу данных радиуса (mysql). Пользователю разрешен только один вход на сервер, (один логин = одна сессия) реализовано через simultaneous-use. Так вот, бывают моменты, когда пакет от nas с сообщением об отключении пользователя не проходит, и в радиусе тот пользователь может висеть хоть несколько дней - радиус считает что пользователь залогинился и второй вход запрещает. Подскажите как настроить связку так, чтобы в случае отсутствия пользователя на nas`е радиус тоже его отключал через некоторое время? Вставить ник Quote
sirmax Posted March 26, 2007 Posted March 26, 2007 (edited) Копать в сторону keep-alive пакетов IMHO Что именно крутить на микротике, увы, не подскажу. Edited March 26, 2007 by sirmax Вставить ник Quote
Alferov Posted March 26, 2007 Posted March 26, 2007 имхо можно написать скрипт, который будет вытягивать из базы активные сессии (AcctTerminateCause=online, или что там радиус пишет?) и проверять у этих сессий время последнего обновления. У сессий с временем обновления большим, чем текущее+таймаут, менять статус в базе. Вставить ник Quote
disappointed Posted April 1, 2007 Posted April 1, 2007 микротик умеет эливы? Acct-Interim-Interval Вставить ник Quote
mystic Posted April 1, 2007 Posted April 1, 2007 Встречал такую проблему. Но ничего сделать не удалось. Пришлось писать скрипт по определению висящих сессий типа select * from billing.session where end_time is null; А затем их просто закрывал таким образом update billing.session set end_time = last_time_update where id_user = ****; Или всех их сразу. Только так я избавилсы от такой проблемы. Можно поставить это в cron. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.