forum.bitel.ru http://forum.bitel.ru/ |
|
Две активных сессии вместо одной [6.0] http://forum.bitel.ru/viewtopic.php?f=44&t=10160 |
Страница 1 из 1 |
Автор: | vkulakov [ 09 фев 2015, 16:07 ] |
Заголовок сообщения: | Две активных сессии вместо одной [6.0] |
Сейчас в биллинге для сервиса установлено ограничение в одну сессию, но некоторые абоненты умудряются поднять сразу две сессии. Access-Request для этих сессий приходит в одно и тоже время, поэтому, как я подозреваю, при приходе Access-Request от второй сессии первой ещё не существует, поэтому он создаёт сразу две сессии. Проблема, собственно, в том, что биллинг не убивает вторую сессию и они так и живут длительно время. Судя по логам такие парные сессии могут жить до полутора часов. Какой параметр покрутить, чтобы сократить время жизни таких сессий до нескольких секунд, например? |
Автор: | Amir [ 09 фев 2015, 17:26 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
У обоих сессий при этом состояние "подключено"? |
Автор: | vkulakov [ 09 фев 2015, 17:44 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
Да, активна и подключено. Логин, реалм, мак, идентификатор, время начала - всё совпадает. Отличаются устройство (как повезёт), IP-адрес и время последней активности. |
Автор: | Amir [ 09 фев 2015, 17:50 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
В выводе access.sh conlist есть обе сессии? В логе InetAccess ошибок нет? authorization.sessionCountCheck в конфигурации модуля не указано? |
Автор: | vkulakov [ 09 фев 2015, 18:16 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
В выводе "access.sh conlist" есть обе сессии. В логе только классические "Connection not found with id". В конфигурации authorization.sessionCountCheck нету, т. к. я не знаю, что это такое и в документации такого нет. |
Автор: | Amir [ 09 фев 2015, 18:23 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
А сколько активных сессий максимум, примерно? |
Автор: | vkulakov [ 09 фев 2015, 18:33 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
У абонентов сейчас максимум две одинаковые сессии. Но никто не мешает им настроить роутер так, чтобы было больше сессий. |
Автор: | Amir [ 09 фев 2015, 18:37 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
Я имел ввиду всего сессий в мониторе текущих. |
Автор: | vkulakov [ 09 фев 2015, 19:30 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
Много, больше ? тыс. |
Автор: | Amir [ 09 фев 2015, 19:50 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
Похоже причина в том, что поток проверки на превышение кол-ва отрабатывает очень редко. Но на всякий случай посмотрите также, есть ли в логах InetAccess строчки: SessionCountManager - Session count 2>1. Send connection state modify event. Перед этой строчкой должен быть вывод сессий. Желательно проверить, что одна из них примерно в это же время была сброшена. |
Автор: | vkulakov [ 09 фев 2015, 20:06 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
В логах такие строчки присутствуют. Вот времена появления этих строчек в последнем логе: Код: 02-09/15:10:27 02-09/15:21:07 02-09/15:23:47 02-09/15:25:23 02-09/15:40:51 02-09/15:53:39 02-09/16:49:07 Соответствующие сессии имеют продолжительность 50 мин, 1 час, 1 час 30 мин (посмотрел всего три). После этих строк вторая сессия реально отключается. Но после отключения второй сессии приходит Acces-Request, у которого в логах Код: Alive session count 2>1 Close duplicate session method 2 и первая сессия тоже закрывается. После отключения первой сессии приходит Acces-Request и убивает вторую, но уже новую сессию. Так они друг-друга убивают, пока одновременно не создаются две сессии, которые почему-то живут больше часа. |
Автор: | vkulakov [ 09 фев 2015, 20:09 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
Кстати, в логах нашёл двойные сессии, которые жили 20 часов. |
Автор: | Amir [ 09 фев 2015, 21:20 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
Что указано в radius.connection.checkDuplicate? calling-station-id (с номера) у этих сессий разный? |
Автор: | vkulakov [ 10 фев 2015, 12:05 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
Код: radius.connection.checkDuplicate=2 calling-station-id, естественно, одинаковый. К сессиям, где он разный, и вопросов нет. |
Автор: | Amir [ 10 фев 2015, 15:39 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
Попробуйте переключить на новую проверку кол-ва сессий. Для этого в конфигурации модуля нужно указать Код: authorization.sessionCountCheck=2 А также переместить параметр accounting.deviceTypeIds из inet-access.xml в конфигурацию модуля. Т.е. строчку в inet-access.xml <param name="accounting.deviceTypeIds" value=""/> закомментировать, а значение прописать в конфигурации модуля (это мы рекомендуем делать и в других случаях).В конфигурации корневого устройства, где прописаны accounting.worker.1.... добавить еще один: Код: accounting.worker.4.thread.count=1 accounting.worker.4.sessionCount.tracking.1.delay=20 accounting.worker.4.sessionCount.tracking.1.batchSize=2000 И перезапустить InetAccess и InetAccounting. Судя по истории все необходимые изменения уже есть в вашем билде. Что делает authorization.sessionCountCheck=2? Он меняет логику проверки на кол-во сессий. Во-первых, проверка начинает работать независимо для разных типов соединений - это для схем DHCP + IP Subscription, когда у абонента сразу две сессии, одна DHCP и вторая с ASR - раньше нужно было указывать ограничение в две сессии, с этим же режимом нужно указывать ограничение в одну сессию - проверка идет отдельно по кол-ву DHCP-сессий и отдельно по кол-ву RADIUS-сессий (а в будущем - отдельно по кол-ву DHCPv6-сессий). Во-вторых, проверка текущих активных сессий начинает работать не в InetAccess, а в InetAccounting. В-третьих, можно указать worker и его параметры - как часто запускается проверка, сколько сервисов Inet проверяет за раз. Это все в будущем мы хотим сделать параметрами по умолчанию или рекомендуемыми параметрами. Но логика работы внутри все же другая, поэтому после изменения стоит последить за работой биллинга. По поводу же переподключений абонента - попробуйте указать radius.connection.checkDuplicate=5 или radius.connection.checkDuplicate=8 |
Автор: | vkulakov [ 10 фев 2015, 19:01 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
И я должен всё это сделать на живом биллинге??? Шутите? |
Автор: | Amir [ 10 фев 2015, 19:24 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
Не понял, что - всё. Всего лишь написал как нужно поменять конфиги, чтобы проверяло кол-во сессий чаще. И описал подробнее что именно меняется. Второй вариант - обновляться на последний билд, там добавили параметры для старого режима проверки кол-ва сессий connection.sessionCountCheck.batchSize= connection.sessionCountCheck.delay= Третий вариант - оставить так как есть. |
Автор: | vkulakov [ 10 фев 2015, 19:32 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
Третий - лучший вариант. Скоро должны обновляться, поэтому второй тоже ничего. Первый - слишком страшно... |
Автор: | vkulakov [ 08 апр 2015, 16:58 ] |
Заголовок сообщения: | Re: Две активных сессии вместо одной [6.0] |
Обновил биллинг до последней сборки: сессия нормально отключается, пока всё работает замечательно. Параметры Код: connection.sessionCountCheck.batchSize= connection.sessionCountCheck.delay= не задавал - настройки по-умолчанию устраивают. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |