forum.bitel.ru http://forum.bitel.ru/ |
|
Пытаюсь настроить SE100 + dhcp http://forum.bitel.ru/viewtopic.php?f=44&t=10816 |
Страница 1 из 1 |
Автор: | dm777 [ 21 авг 2015, 18:10 ] |
Заголовок сообщения: | Пытаюсь настроить SE100 + dhcp |
Раньше работало dClips и что самое интересное работало Сейчас пробую настроить nondhcp и как говориться держаться нету больше сил то работает то не работает то какие-то ошибки то их нет то меняю скорость то нет Код: connection 08-21/15:00:07 ERROR [sa-p-13-t-1] AcknowledgeConsumer - Error on device:122 - java.lang.NullPointerException ru.bitel.bgbilling.common.BGException: Error on device:122 - java.lang.NullPointerException at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.doTask(ServiceActivatorDeviceWorker.java:495) at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.internalDoTaskImpl(AsyncEventWorker.java:211) at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.notify(AsyncEventWorker.java:201) at ru.bitel.bgbilling.kernel.event.AcknowledgeConsumer.onMessage0(AcknowledgeConsumer.java:83) at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.internalDoTask(AsyncEventWorker.java:176) at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.doTasks(AsyncEventWorker.java:109) at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runWorker(ServiceActivatorDeviceWorker.java:245) at ru.bitel.bgbilling.kernel.event.EventWorker.internalRunWorker(EventWorker.java:139) at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runImpl(ServiceActivatorDeviceWorker.java:151) at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46) Caused by: java.lang.NullPointerException at java.nio.CharBuffer.wrap(CharBuffer.java:487) at java.nio.charset.Charset.encode(Charset.java:863) at ru.bitel.bgbilling.kernel.network.radius.info.StringInfo.wrapValue(StringInfo.java:56) at ru.bitel.bgbilling.kernel.network.radius.info.StringInfo.wrapValue(StringInfo.java:11) at ru.bitel.bgbilling.kernel.network.tlv.Tlv.<init>(Tlv.java:36) at ru.bitel.bgbilling.kernel.network.radius.RadiusAttribute.<init>(RadiusAttribute.java:39) at ru.bitel.bgbilling.kernel.network.radius.RadiusAttribute.<init>(RadiusAttribute.java:51) at ru.bitel.bgbilling.modules.inet.dyn.device.radius.AbstractRadiusServiceActivator.prepareRequest(AbstractRadiusServiceActivator.java:333) at ru.bitel.bgbilling.modules.inet.dyn.device.redback.SmartEdgeServiceActivator.connectionModify(SmartEdgeServiceActivator.java:347) at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorSet.connectionModify(ServiceActivatorSet.java:278) at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.doCommand(ServiceActivatorDeviceWorker.java:528) at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.doTask(ServiceActivatorDeviceWorker.java:491) А теперь внимание вопрос: -Дорогие знатоки, КАК его настроить, уже какие команды слать таки и т.д. Код: #порт для отправки PoD и CoA запросов (по умолчанию - порт, заданный в параметрах устройства Хост/порт) radius.port=3799 #идентификатор - Nas-Identifier (по умолчанию - значение из поля Идентификатор параметров устройства) #radius.identifier=<идентификатор устройства> #используемый secret для общения по radius-протоколу (по умолчанию - значение из поля Community/secret параметров устройства) #radius.secret=<community/sercret устройства> radius.password.verification=0 radius.servSearchMode=7 # При выдаче Access-Accept добавлять запись в базу. # Создавать соединение сразу после отправки Access-Accept # Hеобходимо, если используется Reject-To-Accept и по Start-пакету нельзя определить в каком состоянии соединение connection.start.fromAccept=1 # Бывают ситуации, когда Start-пакет не дошел до Accounting-сервера. В этом случае, при # 1 (значение по умолчанию) - сессия создастся от текущего момента, # 2 - Accounting проверит, что время сессии из Update/Stop пакета не больше, чем значение connection.close.timeout и создаст сессию от ее начала, иначе, # если время сессии больше чем connection.close.timeout, сессия создастся от текущего момента, # 0 - сессия без Start-пакета создана не будет. connection.start.fromUpdate=1 # При создании сессии по Update-пакету нужно ли игнорировать отсутствие IP-адреса сессии (Framed-Ip-Address). По умолчанию сессия # по Update-пакету без адреса не создается (0). #connection.start.fromUpdate.ignoreFramedIpLack=1 # При закрытии соединения по таймауту, 0 (по умолчанию) - просто закрыть, # 1 - попытаться сбросить также на NAS'е (вызвать connectionClose у обработчика активации сервисов) connection.close.timeout.forceClose=1 # Коды ошибок, при которых отвечать Access-Accept в состоянии disable (rejectToAccept) radius.disable.accessCodes=1,12,10,11 # Id фиктивного сервиса, к которому будут привязываться сессии, по которым нормальный сервис не был найден (код ошибки: 1, логин не найден). # Необходим, если в radius.disable.accessCodes присутствует код 1 #radius.disable.servId=3 # Проверка на повторную аутентификацию при Access-Request. Бывает нужна в случаях, когда NAS сбрасывает (теряет) сессию, но # Stop-пакет не присылает и клиент пытается подключиться повторно, но у него стоит ограничение на максимум одну сессию. При совпадении # callingStationId с одной из активных сессий и установленным параметром: 1 - осуществляется попытка закрытия старой сессии (connectionClose), # 2 - попытка закрытия сессии (connectionClose) и завершение ее в базе, не дожидаясь стоп пакета, 3 - завершение в базе. radius.connection.checkDuplicate=2 # Нужно ли убирать домен перед поиском сервиса по логину из поля User-Name. По умолчанию - да (1). # Следует отключить, если при посылке CoA и PoD пакетов NAS'у необходим атрибут User-Name. #radius.username.removeDomain=0 # Нужно ли убирать пробелы из поля User-Name перед поиском логина. По умолчанию - нет (0). # Следует отключить, если при посылке CoA и PoD пакетов NAS'у необходим атрибут User-Name. #radius.username.removeWhitespace=0 # Должен ли поиск по логину идти без учета регистра. По умолчанию - нет (0). #radius.username.ignoreCase=1 # Шаблон вывода ошибки в мониторе с использованием атрибутов из RADIUS-пакета #radius.accessError.infoPattern=LOGIN:$User-Name # Атрибуты, которые передаются для всех сессий. # IP-Interface-Name соответствует интерфейсу в конфиге RedBack, к которому "биндится" абонентская сессия (обязательный параметр). # DHCP-Max-Leases - обязательный параметр, необходим для получения адреса по DHCP. DHCP-Max-Leases=1; #Context-Name=CTX1 const.access.attributes=IP-Interface-Name=CLIENTS;Acct-Interim-Interval=900 # Наборы атрибутов для разных опций. В данном случае указываются разные скорости доступа option.13.attributes=Service-Name:0=RSE-SVC-EXT;Service-Options:0=1;Service-Parameter:0=Rate=10240 Burst=1280000 # Наборы атрибутов для разных опций. В данном случае указываются разные скорости доступа option.14.attributes=Service-Name:0=RSE-SVC-EXT;Service-Options:0=1;Service-Parameter:0=Rate=20480 Burst=2560000 #атрибуты, выдаваемые при авторизации по реалму default (default - реалм по умолчанию) radius.realm.default.attributes= radius.inetOption.13.attributes={@const.access.attributes};{@option.13.attributes} radius.inetOption.14.attributes={@const.access.attributes};{@option.14.attributes} const.disable.attributes=IP-Interface-Name=CLIENTS;Acct-Interim-Interval=900;Service-Name:0=RSE-REJECT # атрибуты, выдаваемые в Accept когда доступ нужно ограничить radius.disable.attributes={@const.disable.attributes} # Нужно ли посылать CoA при переводе из disable в enable sa.radius.connection.coa.onEnable=1 # Не выдаем DHCP NaK, не инициируем разрыв из connectionModify. sa.radius.connection.withoutBreak=1 # при значении 1 InetAccess при вызове для изменения состояния метода connectionModify из ServiceActivator # поменяет состояние в БД (вызовет e.setConnectionStateModified( true )) sa.radius.connection.stateModify=1 # Лог CoA запросов #sa.radius.log=1 # Параметры обработчика активации сервисов # добавлять ли при отправке CoA-атрибуты реалма (для default - из radius.realm.default.attributes) #sa.radius.realm.addAttributes=0 # атрибуты CoA-запроса для прекращения доступа (используется при sa.radius.connection.withoutBreak=1) #sa.radius.disable.attributes=IP-Interface-Name=NOAUTH # фиксированные атрибуты, добавляемые в запрос перед отправкой CoA #sa.radius.coa.attributes=TEST1=XXX;TEST2=YYY; # фиксированные атрибуты, добавляемые в запрос перед отправкой PoD #sa.radius.pod.attributes=TEST1=XXX;TEST2=YYY; #атрибуты, посылаемые при закрытии сервисов #sa.radius.service.closeAttributes=Deactivate-Service-Name:1=RSE-SVC-EXT #---------------------------------------- #параметры обработчика активации сервисов #---------------------------------------- #откуда при отправке CoA брать атрибуты опций (по умолчанию - те же атрибуты, что выдаются при удачной авторизации) sa.radius.option.attributesPrefix=option. #User-Name, Framed-IP-Address, Acct-Session-Id #0101FFFFD800266D-55D61088-RSE-SVC-EXT-5730DB7D sa.radius.connection.attributes=User-Name #атрибуты CoA запроса для прекращения доступа (используется при sa.radius.connection.withoutBreak=1) #sa.radius.disable.attributes={@redirect.attributes} radius.serviceName.disable=RSE-REJECT #фиксированные атрибуты, добавляемые в запрос перед отправкой CoA sa.radius.coa.attributes=Contex-Name=CTX1 #добавлять ли при отправке CoA атрибуты реалма (для default - из radius.realm.default.attributes) #sa.radius.realm.addAttributes=1 #атрибуты, посылаемые при закрытии сервисов # эти атрибуты отправляются в CoA когда происходит смена опций или включение доступа, # т.е. сначала все деактивируется, с помощью sa.radius.service.closeAttributes, затем активируется с помощью опций #Deactivate-Service-Name:1=RSE-REJECT sa.radius.service.closeAttributes=Deactivate-Service-Name:0=RSE-SVC-EXT #sa.radius.disable.attributes=Deactivate-Service-Name:1=RSE-SVC-EXT #фиксированные атрибуты, добавляемые в запрос перед отправкой PoD #sa.radius.pod.attributes=Context-Name=CTX1 перепробовали уже кучу вариантов пошла вторая неделя при смене тарифа кстати опция (скорость) меняется когда ей вздумается иногда надо сервак перегрузить версия 6.2 |
Автор: | Amir [ 21 авг 2015, 18:53 ] |
Заголовок сообщения: | Re: Пытаюсь настроить SE100 + dhcp |
Напомните, чем отличается nondhcp? В Radius-Accounting приходит атрибут User-Name? |
Автор: | Amir [ 21 авг 2015, 18:55 ] |
Заголовок сообщения: | Re: Пытаюсь настроить SE100 + dhcp |
Когда возникает ошибка при синхронизации - он делает паузу и пытается снова несколько раз. Только потом переходит к следующему заданию - возможно поэтому такое поведение "то меняется, то нет", т.к. иногда возникают какие-то ошибки, как приведенная выше. |
Автор: | dm777 [ 21 авг 2015, 19:39 ] |
Заголовок сообщения: | Re: Пытаюсь настроить SE100 + dhcp |
Amir писал(а): Напомните, чем отличается nondhcp? В Radius-Accounting приходит атрибут User-Name? В атрибуте User-Name передается ипадрес |
Автор: | dm777 [ 21 авг 2015, 19:51 ] |
Заголовок сообщения: | Re: Пытаюсь настроить SE100 + dhcp |
Amir писал(а): Напомните, чем отличается nondhcp? В Radius-Accounting приходит атрибут User-Name? Отличие в том, что триггером сессии является первый транзитный IP пакет от неизвестног оадреса. В Атрибуте User-Name передается IP address. DHCP или статика здесь не важно. Поэтому план такой: 1. dhcp (BGAccess) дает адрес из некоторого пула (белые и серые для нат) абоненту всегда один и тот же без деления есть доступ или нет. 2. А вот уже радиус должен регулировать есть доступ или нет (меняя сервис на сервис с редиректом) и менять скорость. И все ... Вроде так просто. К вопросу о скорости меняем тариф и ждем, что смениться скорость Вложение: но к удивлению замечаем, что нет не меняется ... ингода это происходит потом иногда только после перезапуска сервера Вложение:
|
Автор: | Amir [ 25 авг 2015, 16:31 ] |
Заголовок сообщения: | Re: Пытаюсь настроить SE100 + dhcp |
Я бы попросил доступ, но пока загружены сильно, не уверен когда и во сколько появится время посмотреть. |
Автор: | dm777 [ 31 авг 2015, 13:34 ] |
Заголовок сообщения: | Re: Пытаюсь настроить SE100 + dhcp |
Вообщем суммируя можно вкратце описать ситуацию так: Дано: Два сервиса 1. RSE-SVC-EXT -доступ открыт 2. RSE-REJECT -доступ закрыт 3. ИП адреса всегда одни и те же. DHCP выдает отдельно от радиуса привязывать не нужно пусть висят в мониторе двумя сессиями. (И тут кстати проблема иногда в CoA вижу Acct-Session-Id не той сессии где SE, а другой где dhcp). Ручками работает такая схема 1.Выключить сервис RSE-SVC-EXT Команда 1:(Деактивируем сервис RSE-SVC-EXT) Acct-Session-Id =...., Deactivate-Service-Name=RSE-SVC-EXT Команда 2:(Активируем сервис RSE-REJECT) Acct-Session-Id =...., Service-Name=RSE-REJECT,Sevice-Action=1 2. Включить сервис RSE-SVC-EXT Команда 1:(Деактивируем сервис RSE-REJECT) Acct-Session-Id =...., Deactivate-Service-Name=RSE-REJECT Команда 2:(Активируем сервис RSE-SVC-EXT) Acct-Session-Id =...., Service-Name=RSE-SVC-EXT,Sevice-Action=1, +Параметры Причем работает как часы Если использую SmartEdgeServiceActivator, точно предсказать результат работы оказывается очень сложнo, иногда сработает иногда нет, иногда висят два сервиса и RSE-SVC-EXT, RSE-REJECT |
Автор: | dm777 [ 03 сен 2015, 19:23 ] |
Заголовок сообщения: | Re: Пытаюсь настроить SE100 + dhcp |
Коллеги !!! Есть у кого-нибудь предположения ... или надо свой клаcc писать вместо SmartEdgeServiceActivator |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |