forum.bitel.ru http://forum.bitel.ru/ |
|
Закрытие сессии из скрипта RADIUS-аутентификации http://forum.bitel.ru/viewtopic.php?f=19&t=5190 |
Страница 1 из 1 |
Автор: | jommys [ 25 фев 2011, 16:08 ] |
Заголовок сообщения: | Закрытие сессии из скрипта RADIUS-аутентификации |
При различных нештатных ситуациях хотелось бы динамически закрывать повисшие сессии. Определить их достаточно легко по совпадающему маку, но вот скидывать не выходит. В модуле PPPoE "BillingEventBus.publish(new DialupSessionBreakEvent ..." недоступно, но и при упавшем NAS'е оно не поможет, нужно именно закрывать сессии, а не сбрасывать. Есть решение дергать "radius.sh kill" через класс SSHSessionExec, но это не очень красиво. (: Сервер 4.6 сборка 686 |
Автор: | Kazrarr [ 15 апр 2011, 20:44 ] |
Заголовок сообщения: | Re: Закрытие сессии из скрипта RADIUS-аутентификации |
Если я верно понял... то как вариант: Сессии хранятся в базе, по идее можно скриптом предобработки проверять и закрывать.. Точно сказать не смогу, давно думал реализовать подобное у себя, но пока руки не доходили.. |
Автор: | snark [ 15 апр 2011, 20:52 ] |
Заголовок сообщения: | Re: Закрытие сессии из скрипта RADIUS-аутентификации |
закроете в базе Код: UPDATE log_session_<mid>_<yyyymm> SET status = 1 WHERE ... а БГБ ее откроет по приходу апдейта и финита ля комедия |
Автор: | Kazrarr [ 15 апр 2011, 23:57 ] |
Заголовок сообщения: | Re: Закрытие сессии из скрипта RADIUS-аутентификации |
Как может прийти апдейт на мертвую сессию? Т.е. я так понимаю мертвая сессия в данном случае это как раз та самая сессия которая "висит" не обновляется, но и не закрывается, обычно помогает в мониторе закрыть сессию.. Сбрасывать не вижу смысла потому что тот же самый например mpd в подобных моментах о ней не знает, но бгб считает ее живой и активной... А клиента в данном случае просто реджектит с превышением кол-ва сессий.. Но на сколько я могу судить подобного уже не происходит, т.е. мертвых сессий в 5.1 я уже почти не видел.. Да и те которые бывает появляются не отбрасывают клиента в ошибкой =) То же самое должно быть применимо и к клиентам которых выкинуло из сети по каким либо причинам, например клиент выдернул у себя шнурок не отключившись от сервера, и он ждет таймаута прежде чем сможет зайти. В подобном случае опять же апдейт пакеты не ходят, иначе по апдейт пакетам менялась бы инфа о сессии... Но т.к. тунеля уже нет, то и слать уже нечего.. имхо.. |
Автор: | snark [ 16 апр 2011, 00:10 ] |
Заголовок сообщения: | Re: Закрытие сессии из скрипта RADIUS-аутентификации |
я думаю определение того что сессия зависла лучше отдать на откуп БГБ |
Автор: | Kazrarr [ 16 апр 2011, 21:50 ] |
Заголовок сообщения: | Re: Закрытие сессии из скрипта RADIUS-аутентификации |
Не совсем понял, каким образом? |
Автор: | skyb [ 17 апр 2011, 05:09 ] |
Заголовок сообщения: | Re: Закрытие сессии из скрипта RADIUS-аутентификации |
Kazrarr писал(а): Не совсем понял, каким образом? drop.sleep.timeout=3600 наверное таким |
Автор: | Kazrarr [ 19 апр 2011, 09:42 ] |
Заголовок сообщения: | Re: Закрытие сессии из скрипта RADIUS-аутентификации |
skyb писал(а): Kazrarr писал(а): Не совсем понял, каким образом? drop.sleep.timeout=3600 наверное таким В 5.1 это работает лучше, но в предыдущих версиях как минимум в 4.5-4.6, если сессия завершалась в момент остановки бгб, то она висела до тех пор пока ее не закроешь в мониторе модуля dialup.. ![]() |
Автор: | jommys [ 05 окт 2012, 13:29 ] |
Заголовок сообщения: | Re: Закрытие сессии из скрипта RADIUS-аутентификации |
обновился до 5.2, таблица billing_event_bus пропала. как теперь скидывать сессии из скриптов? |
Автор: | stark [ 05 окт 2012, 15:43 ] |
Заголовок сообщения: | Re: Закрытие сессии из скрипта RADIUS-аутентификации |
jommys писал(а): обновился до 5.2, таблица billing_event_bus пропала. как теперь скидывать сессии из скриптов? А зачем вам таблица нужна была? если нужно событие бросить, то Код: EventProcessor.getInstance().publish( new DialupSessionBreakEvent( mid, recordId ) );
|
Автор: | jommys [ 05 окт 2012, 16:58 ] |
Заголовок сообщения: | Re: Закрытие сессии из скрипта RADIUS-аутентификации |
stark писал(а): jommys писал(а): обновился до 5.2, таблица billing_event_bus пропала. как теперь скидывать сессии из скриптов? А зачем вам таблица нужна была? если нужно событие бросить, то Код: EventProcessor.getInstance().publish( new DialupSessionBreakEvent( mid, recordId ) ); спасибо! (: я сам сериализовал объект и записывал в таблицу. |
Автор: | stark [ 10 окт 2012, 17:32 ] |
Заголовок сообщения: | Re: Закрытие сессии из скрипта RADIUS-аутентификации |
jommys писал(а): stark писал(а): jommys писал(а): обновился до 5.2, таблица billing_event_bus пропала. как теперь скидывать сессии из скриптов? А зачем вам таблица нужна была? если нужно событие бросить, то Код: EventProcessor.getInstance().publish( new DialupSessionBreakEvent( mid, recordId ) ); спасибо! (: я сам сериализовал объект и записывал в таблицу. ну это незачем и раньше было делать. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |