forum.bitel.ru
http://forum.bitel.ru/

checkDuplicate для dhcp / closeOnNew с привязкой типу сервис (CRM)
http://forum.bitel.ru/viewtopic.php?f=44&t=11923
Страница 1 из 1

Автор:  jocker1alex [ 14 сен 2016, 21:40 ]
Заголовок сообщения:  checkDuplicate для dhcp / closeOnNew с привязкой типу сервис

Сервер: вер. 7.0.1086 / 04.08.2016 16:06:54

isg+ipoe
имеем 2 сессии в мониторе(Inet) на 1 сервис:
- сначала пользователь получает статический ip, который ему выдает BGInetAccess - сессия-1 (привязана к порту коммутатора)
- потом проходит авторизация на ISG с навешиванием сервисов - доступ в мир по тарифу - сессия-2 (привязана к ISG)

В типе сервиса указано "кол-во сессий": - 1 сессия и "тип адреса": статический адрес

Для нормальной смены роутера/компьютера указан параметр
dhcp.connection.closeOnNew=1,
который закрывает все предыдущие DHCP-сессии

dhcp.option.leaseTime=3600

Для сброса и закрытия сессии в биллинге при получении запроса Access-Request при наличии активной сессии
radius.connection.checkDuplicate=8

Это всё работает.

Но есть ещё другой сервис (WiFi-Hotspot), где на один порт коммутатора требуется назначить статическую сеть. "кол-во сессий": - не ограничено и "тип адреса": статический диапазон

немного о схеме подключения:
К порту коммутатора подключается WiFi точка доступа, ip-ы wifi-клиентам должен назначать BGInetAccess из диапазона, назначенной статической сети.

Но при использовании параметра dhcp.connection.closeOnNew=1 не получается подключить к wifi более одного клиента так как завершаются предыдущие сессии.

При dhcp.connection.closeOnNew=0 схема wifi работает, но в тоже время клиент использующий сервис с одним статическим ip не может самостоятельно менять устройства (комп, роутер, ноут), по крайней мере приходится ждать dhcp.option.leaseTime=3600 или звонить в тех.поддержку.

Можно как то реализовать для dhcp такой же параметр как radius.connection.checkDuplicate, когда завершается не любая сессия, а по какому то критерию
или может можно closeOnNew задавать в типе сервиса? так можно будет под каждый тип сервиса выбирать подходящее действие

Автор:  Amir [ 16 сен 2016, 20:40 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

Попробуем сделать на следующей неделе.

Автор:  Amir [ 22 сен 2016, 20:22 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

Выложили пока dhcp.connection.closeOnNew= в конфиге типа сервиса.

Автор:  jocker1alex [ 23 сен 2016, 13:29 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

Спасибо. Уже тестирую. Пока всё впорядке

Автор:  jocker1alex [ 04 окт 2016, 16:35 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

тесты провалились:

указал в типе сервиса WiFi-Hotspot ("кол-во сессий": - не ограничено и "тип адреса": статический диапазон)
dhcp.connection.closeOnNew=0
и ip-адреса раздавались с одного порта коммутатора, к которому подключена wifi точка доступа.

в то же время указал на другом типе сервиса ("кол-во сессий": - 1 сессия и "тип адреса": статический адрес)
dhcp.connection.closeOnNew=1
- получить ip-адрес на другой mac-адрес не удалось, пока сессия не завершилась

полагаю, что по умолчание dhcp.connection.closeOnNew=0 и по такой схеме всё и отрабатывает, а прописанные в типах сервиса "dhcp.connection.closeOnNew" эффекта не оказывают

Автор:  Amir [ 05 окт 2016, 17:07 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

На тестовом dhcp.connection.closeOnNew=1 в типе сервиса отработало нормально. InetAccess точно обновили?

Сегодня выложили, добавили поддержку dhcp.connection.checkDuplicate (serv.dhcp.connection.checkDuplicate в конфиге типа сервиса)
Должно работать также как radius.connection.checkDuplicate.

Попробуйте указать radius.connection.checkDuplicate=90 или radius.connection.checkDuplicate=80 (в зависимости от схемы).
Должно завершать самую старую сессию, если кол-во активных сессий будет превышено при новом подключении.

Автор:  jocker1alex [ 12 окт 2016, 20:09 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

обновил сервер и приложения ещё раз
прописал serv.dhcp.connection.closeOnNew=1 в типе сервиса - сработало.

приставка serv. в типе сервиса обязательна или можно и без неё??

c serv.dhcp.connection.checkDuplicate чёт не получается...
у меня в типе сервиса под хот-спот указан статический диапазон, и ip-адреса последовательно выдаются устройствам.
как только выдается последний ip- адрес из диапазона, при всех последующих подключениях ip-адреса не выдаются даже если самые первые подключенные устройства давно уже не активны.
Полагаю, что при динамической выдаче должно заработать, но как тогда привязать пул адресов под динамическую выдачу к типу сервиса?

Автор:  Amir [ 12 окт 2016, 20:15 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

Цитата:
приставка serv. в типе сервиса обязательна или можно и без неё??
В типе сервиса - лучше с ней, по аналогии с другими параметрами, но сейчас работать будет и без нее.

Цитата:
как только выдается последний ip- адрес из диапазона, при всех последующих подключениях ip-адреса не выдаются даже если самые первые подключенные устройства давно уже не активны.
Этот параметр работает только с ограничением на кол-во сессий (а не с кол-вом адресов в статическом диапазоне) - оно указано?

Автор:  jocker1alex [ 12 окт 2016, 20:22 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

Цитата:
Этот параметр работает только с ограничением на кол-во сессий (а не с кол-вом адресов в статическом диапазоне) - оно указано?

т.е. serv.dhcp.connection.checkDuplicate=90 - это аналогия serv.dhcp.connection.closeOnNew=1 ?

Автор:  jocker1alex [ 12 окт 2016, 20:24 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

как мне решить вопрос:
Цитата:
у меня в типе сервиса под хот-спот указан статический диапазон, и ip-адреса последовательно выдаются устройствам.
как только выдается последний ip- адрес из диапазона, при всех последующих подключениях ip-адреса не выдаются даже если самые первые подключенные устройства давно уже не активны.
Полагаю, что при динамической выдаче должно заработать, но как тогда привязать пул адресов под динамическую выдачу к типу сервиса?

Автор:  Amir [ 13 окт 2016, 16:23 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

Можно скриптом на событие сохранение сервиса на договоре указывать ограничение на кол-во сессий вручную по кол-ву адресов в диапазоне.
Можем попробовать сделать, чтобы ограничение можно было указывать вручную (а не как сейчас, список до 30).

Автор:  jocker1alex [ 14 окт 2016, 14:40 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

1) какое действие надо выполнить, чтобы применились новые значения параметров в "типе сервиса":
- нажать кнопку "перечитать конфигурацию серверов" на вкладке "дерево"?
- перезагрузить InetAccess?

2) что означает 0 во втором разряде параметра serv.dhcp.connection.checkDuplicate=80?

3) схема isg+opt.82
Если я указываю в "типе сервиса" статический диапазон, то при создании сервиса задаю определенные диапазон ip-адресов.
в таком случае мне обязательно задавать на сервисе количество сессий=статическому диапазону?
ведь если оставить кол-во сессий "неограниченно", то всё равно не выдастся ip-адрес, если диапазон закончился.

Автор:  Amir [ 14 окт 2016, 15:33 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

Цитата:
1) какое действие надо выполнить, чтобы применились новые значения параметров в "типе сервиса":
- нажать кнопку "перечитать конфигурацию серверов" на вкладке "дерево"?
- перезагрузить InetAccess?
Должно примениться без этого.
Однако нужно учитывать, что без галочки "неизменно" ограничение по кол-ву сессий в типе сервиса работает просто как значение по умолчанию при создании сервиса.

Цитата:
2) что означает 0 во втором разряде параметра serv.dhcp.connection.checkDuplicate=80?
Аналогично https://docs.bitel.ru/pages/viewpage.action?pageId=43385867#id-Процессорru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor-ДействиеприполученииAccess-Requestприналичииактивнойсессии
Но для DHCP вместо Calling-Station-Id используется MAC-адрес и ситуации для первого разряда (есть активная сессия, но идет запрос на новую с таким же MAC-адресом) не должно быть.

Цитата:
3) схема isg+opt.82
Если я указываю в "типе сервиса" статический диапазон, то при создании сервиса задаю определенные диапазон ip-адресов.
в таком случае мне обязательно задавать на сервисе количество сессий=статическому диапазону?
ведь если оставить кол-во сессий "неограниченно", то всё равно не выдастся ip-адрес, если диапазон закончился.
Если нужно, чтобы отключало старые сессии при попытке подключения новой - это работает только по ограничению на кол-во сессий.
К тому же если в устройстве настроена динамическая выдача, то после того как диапазон закончился, если ограничения на кол-во сессий нет - начнет выдавать динамический адрес.

Автор:  jocker1alex [ 14 окт 2016, 16:58 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

Цитата:
1) какое действие надо выполнить, чтобы применились новые значения параметров в "типе сервиса":
- нажать кнопку "перечитать конфигурацию серверов" на вкладке "дерево"?
- перезагрузить InetAccess?

Цитата:
Должно примениться без этого.

т.е. если я в типе сервиса на вкладке конфигурация меняю значение параметра serv.dhcp.connection.checkDuplicate, то изменения вступают в силу сразу после нажатия кнопки "сохранить"?

Цитата:
Однако нужно учитывать, что без галочки "неизменно" ограничение по кол-ву сессий в типе сервиса работает просто как значение по умолчанию при создании сервиса.

это понятно. без галочки "неизменно" я на сервисе могу менять значение по умолчанию на другое, но в пределах 30 сессий.
здесь, действительно было бы лучше:
Цитата:
Можем попробовать сделать, чтобы ограничение можно было указывать вручную


Цитата:
К тому же если в устройстве настроена динамическая выдача, то после того как диапазон закончился, если ограничения на кол-во сессий нет - начнет выдавать динамический адрес.

динамическая выдача на устройстве не используется.
Но очень хотелось бы, что бы "динамическую выдачу" можно было привязать к сервису, что бы на разных типах сервисов, которые используют одни и те же устройства можно было задавать свои пулы динамической выдачи. и тогда сюда же в тип сервиса нужны будут свои dhcp.option.serverIdentifier и dhcp.option.leaseTime

Цитата:
Но для DHCP вместо Calling-Station-Id используется MAC-адрес и ситуации для первого разряда (есть активная сессия, но идет запрос на новую с таким же MAC-адресом) не должно быть.

хммм, я про 2-ой разряд спрашивал.
8 и 80 - это одно и тоже? или имелось ввиду 08
Поясните, пожалуйста, варианты для serv.dhcp.connection.checkDuplicate
8 - ?
88 - ?
888 - ?

Автор:  Amir [ 14 окт 2016, 18:22 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

Цитата:
т.е. если я в типе сервиса на вкладке конфигурация меняю значение параметра serv.dhcp.connection.checkDuplicate, то изменения вступают в силу сразу после нажатия кнопки "сохранить"?
Да.

Цитата:
Но очень хотелось бы, что бы "динамическую выдачу" можно было привязать к сервису, что бы на разных типах сервисов, которые используют одни и те же устройства можно было задавать свои пулы динамической выдачи.
На данный момент можно сделать только через опцию, которая будет указана в тарифе.
https://docs.bitel.ru/pages/viewpage.ac ... 385867#id-Процессорru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor-ВыдачаIP-адреса
Цитата:
и тогда сюда же в тип сервиса нужны будут свои dhcp.option.serverIdentifier и dhcp.option.leaseTime
Не понятно, зачем. serverIdentifier довольно специфичная вешь, а leaseTime связан с connection.close.timeout (т.к. закрытие сессии идет по таймауту DHCP-пакетов).

Цитата:
хммм, я про 2-ой разряд спрашивал.
8 и 80 - это одно и тоже? или имелось ввиду 08
Поясните, пожалуйста, варианты для serv.dhcp.connection.checkDuplicate
8 - ?
88 - ?
888 - ?
Разное. Значение по умолчанию - 000 (просто не пускаем при превышении ). Каждая из трех цифр для своего случая. Для DHCP вроде как нужен только второй разряд.
В документации по ссылке:
Цитата:
Для обработки ситуации, когда количество активных соединений превышено, но соединения с таким Calling-Station-Id не найдено, и нужно отключить просто самое старое соединение, нужно указать цифру во втором разряде

Автор:  jocker1alex [ 14 окт 2016, 19:36 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

а в вашем сообщении
Цитата:
Попробуйте указать radius.connection.checkDuplicate=90 или radius.connection.checkDuplicate=80 (в зависимости от схемы).
Должно завершать самую старую сессию, если кол-во активных сессий будет превышено при новом подключении.

80 или 90 - тут в каком разряде указана цифра?
как разряды считают: справа налево или слева направо?

Автор:  Amir [ 14 окт 2016, 19:58 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

Вроде справа налево.
Подразумевалось, что во втором.
Т.е. 90 или 090, 80 или 080.

Автор:  jocker1alex [ 19 окт 2016, 19:57 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

Цитата:
Не понятно, зачем. serverIdentifier довольно специфичная вешь, а leaseTime связан с connection.close.timeout (т.к. закрытие сессии идет по таймауту DHCP-пакетов).

т.к. у меня к каждому типу сервиса привязан свой ip-ресурс, решил serverIdentifier указывать в конфигурациях ip-ресурсов

Мне как то надо у типа сервиса WiFi-Hotspot сделать длительность сессии в районе 15 минут,
в тоже время на корневом устройстве для остальных сервисов сессия должна быть выставлена 1 час

Сейчас на корневом устройстве указано:
connection.suspend.timeout=900
connection.close.timeout=3600
dhcp.option.leaseTime=3600

leaseTime оказалось, что в конфигурации ip-ресурса задавать можно, но вот как connection.close.timeout привязать либо к Ip-ресурсу или типу сервиса?

Автор:  Amir [ 24 окт 2016, 19:17 ]
Заголовок сообщения:  Re: checkDuplicate для dhcp / closeOnNew с привязкой типу се

Выложили обновление:
Цитата:
Возможность указать в типе сервиса serv.connection.close.timeout/serv.connection.suspend.timeout/serv.connection.disable.close.timeout/serv.connection.disable.suspend.timeout.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/