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

Не дает accept при установленном
http://forum.bitel.ru/viewtopic.php?f=44&t=7090
Страница 1 из 1

Автор:  madmax [ 11 авг 2012, 22:29 ]
Заголовок сообщения:  Не дает accept при установленном

При установленном значении radius.disable.accessCodes=1 когда логин не найден в биллинге модуля Inet не выдает accept а выдает reject.
Получается параметр со значением 1 не отрабатывает.

Автор:  aiwbend [ 13 авг 2012, 10:13 ]
Заголовок сообщения:  Re: Не дает accept при установленном

о, я не один такой.
viewtopic.php?f=44&t=6866#p55059

Автор:  madmax [ 13 авг 2012, 16:03 ]
Заголовок сообщения:  Re: Не дает accept при установленном

Так как разработчики могут сказать почему так происходит?

Автор:  Amir [ 13 авг 2012, 17:20 ]
Заголовок сообщения:  Re: Не дает accept при установленном

Выложили обновление модуля.
Для того, чтобы выдавался Access-Accept при не найденном inetServ дополнительно нужно создать фиктивный (системный) договор с балансом ниже лимита, в нем сервис и указать id этого сервиса в конфигурации устройства
Код:
radius.disable.servId=123
При этом все сессии, для которых не был найден inetServ будут привязаны к указанному.

Автор:  madmax [ 15 авг 2012, 11:56 ]
Заголовок сообщения:  Re: Не дает accept при установленном

Да спасибо сейчас при ошибке 1 выдает Accept, но почему-то через каждые 3 минуты послылает команду CoA disconnected
Код:
08-15/11:44:22 DEBUG [sa-p-10-t-1] AcknowledgeConsumer - Caught BGInetAccess:Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaStateModifyEvent] moduleId: 1; pluginId: no; cid: 6;
 scid: -1; userId: 0; deviceId: 4; inetServId: 3; connectionId: 97; state: 0; accessCode: 3; timestamp: 1345009462093
08-15/11:44:22  INFO [sa-p-10-t-1] ServiceActivatorDeviceWorker - Do task deviceId: 4; Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaStateModifyEvent] moduleId: 3; pluginId: no; cid:
 6; scid: -1; userId: 0; deviceId: 4; inetServId: 3; connectionId: 97; state: 0; accessCode: 3; timestamp: 1345009462093
08-15/11:44:22  INFO [sa-p-10-t-1] InetApplication - TariffOptionMap: {}
08-15/11:44:22  INFO [sa-p-10-t-1] ServiceActivatorDeviceWorker - Command result event: ServiceActivatorEvent type=2; inetServId: 3; call: true; oldState: 1; newState: 0; oldOptionSet: ; newOptio
nSet:
08-15/11:44:22  INFO [sa-p-10-t-1] ServiceActivatorDeviceWorker - Processing deviceId:4; command ServiceActivatorEvent type=2; inetServId: 3; call: true; oldState: 1; newState: 0; oldOptionSet: ;
 newOptionSet:
08-15/11:44:22  INFO [sa-p-10-t-1] ServiceActivatorSet - Invoking connectionClose
08-15/11:44:22  INFO [sa-p-10-t-1] CoAServiceActivator - Connection close
08-15/11:44:22  INFO [sa-p-10-t-1] CoAServiceActivator - Send PoD:
Packet type: Disconnect-Request
Identifier: 68
Authenticator: {80 31 35 55 6D 9F 11 6F DF 0B 8A 3B 45 67 29 B2}
Attributes:
  User-Name=0021071B757D
  NAS-Identifier=test
  NAS-IP-Address=1.1.1.1
  Framed-IP-Address=2.2.2.2

Автор:  madmax [ 15 авг 2012, 13:13 ]
Заголовок сообщения:  Re: Не дает accept при установленном

И если посмотреть на логи в Мониторе текущих соединений то там отображается множество запрсов Acces-request на которые столько же идет Access-accept

Автор:  madmax [ 15 авг 2012, 15:08 ]
Заголовок сообщения:  Re: Не дает accept при установленном

Так кажется я нашел проблему, которую необходимо разработчикам как-то исправить.
Дело в том что при установленно
Код:
radius.disable.accessCodes=1

и привязанном его к Id сервиса на договоре отрабатывает счетчик количества одновременных сессий, который у нас стоит 1, поэтому и происходит разрыв соединений, а максимум можно выставить значение 30 соединений, а если соединений с ошибкой 1 более 30 то биллинга каждые 3 минуты будет рвать все такие соединения.
Прошу разработчиков учесть данну. проблему.
И еще непонятно почему сессиям с кодом 1 идет команда на разрыв соединения с ошибкой по логам accessCode 3, если в настройках устройства
стоит значение
Код:
radius.connection.checkDuplicate=0

Хотя данное значение для всех других соединений отрабатывает корректно.
Получается что когда отрабатывает radius.disable.accessCodes биллинг применяет не значения с устройства а какие-то свои значения по умолчанию

Автор:  Amir [ 16 авг 2012, 15:48 ]
Заголовок сообщения:  Re: Не дает accept при установленном

Может быть лучше просто создать фиктивный сервис (или тип сервиса) с неограниченным количеством одновременных сессий?

Автор:  madmax [ 16 авг 2012, 16:55 ]
Заголовок сообщения:  Re: Не дает accept при установленном

Ок так и сделали

Автор:  snark [ 19 авг 2012, 04:09 ]
Заголовок сообщения:  Re: Не дает accept при установленном

Amir писал(а):
Для того, чтобы выдавался Access-Accept при не найденном inetServ дополнительно нужно создать фиктивный (системный) договор с балансом ниже лимита, в нем сервис и указать id этого сервиса в конфигурации устройства
Код:
radius.disable.servId=123
При этом все сессии, для которых не был найден inetServ будут привязаны к указанному.

А без этого разве никак не обойтись?

Автор:  Amir [ 19 авг 2012, 15:01 ]
Заголовок сообщения:  Re: Не дает accept при установленном

А куда привязывать сессии, которые некуда привязывать?

Автор:  snark [ 20 авг 2012, 11:05 ]
Заголовок сообщения:  Re: Не дает accept при установленном

Amir писал(а):
А куда привязывать сессии, которые некуда привязывать?

В /dev/null. Я слабо понимаю зачем нужно что-то делать с теми, кого в биллинге официально нет (нет логина, логин есть, но период не совпадает и т.д. и т.п.).
В dialup люди с ISG выкручивались привязывая сервисы к служебному договору и в inet Вы предлагаете делать то же самое, но я не понимаю, зачем нужно:
Amir писал(а):
Выложили обновление модуля.

Т.е. зачем нужно вообще трогать модуль в тех ситуациях, когда люди сами не хотят пораскинуть мозгами и каким либо образом обработать реализованную ими ситуацию с
Код:
radius.disable.accessCodes=1

когда ее (и еще 100500 вариантов) можно и в дин. коде обработать, вместо того, чтобы тут говорить о том что нужно исправление модуля под их конкретную, персональную ситуацию, которая сложилась в результате их личных действий и является результатом их, персонального дизайна. При этом стоит помнить о том, что многие, наверное, не попадут в эту ситуацию вообще никогда.
Упор на "персональность" ситуации тут не случаен, т.к. именно от Вас, уважаемые разработчики, я регулярно слышу о том что вы не склонны решать персональные проблемы перепиливая общее для всех решение и это похвально (персональные траблы == "хд => $ => profit"(с)), но ВНЕЗАПНО я читаю о том, что Вы трогаете общий для всех модуль в попытке решить местечковую проблему, которая, повторюсь, может и, пожалуй, должна быть решена дин. кодом. Что это за система двойных стандартов такая? Или дело в модулях и в inet мы пилим, а в, например, приснопамятном npay нет?

Автор:  madmax [ 20 авг 2012, 11:33 ]
Заголовок сообщения:  Re: Не дает accept при установленном

snark - мне кажется ты тупишь.
При чем тут - луди не могут пораскинуть мозгами. Как видно из твоей писанины ты считаешь себя самым мозговитым.
Во первых разработчики еще для модуля Diulap - реализовали поддержку reject-accept, до этого все делали это сами - своими мозгами.
Теперь в новом модуле они также реализовали данную поддержку, но она работает некорректно о чем разработчикам и было сообщено.
Как я понимаю на данном форуме обсуждают выявленные ошибки и предложения того чтобы улучшило данный продукт.
А уже разработчикам решать добавлять что-то и устранять выявленные ошибки в коде.

С ваших слов получается - зачем вы вообще реализовали поддержку reject-accept - пускай все сами ее решают динамическим кодом. Пойдем дальше - зачем вы вообще реализовали поддержку CoA - пускай думают мозгами и решают ее динамическим кодом.

Автор:  snark [ 20 авг 2012, 12:54 ]
Заголовок сообщения:  Re: Не дает accept при установленном

Я не говорю что я самый умный, но елки-палки речь то тут идет об ошибке номер 1 (один), т.е. ошибке говорящей об отсутствии логина (его физически нет в БГ или еще чего - не суть) и обрабатывать это стоит уже не в в общем контексте такой хорошей, нужной и полезной (я так серьезно считаю) ф-ции каковой является R2A, а отдельными методами. Почему? Потому что в случае с IPoE - "нет логина" - это одно, а в случае с *РРР - это другое, но все равно логина не существует и раз его не существует, то в в каждой отдельно взятой инсталяции это должно обрабатываться своими средствами и не нужно для этого пилить _общий_ модуль.
Надеюсь я ясно выразил свою позицию? Если не ясно, разъясняю по пунктам:
1. ф-ця R2A нужна и востребована
2. если кто-то хочет обрабатывать ситуацию отсутствия логина - пусть делает это сам, а не заставляет разработчиков пилить общий модуль под себя

P.S. Если у кого-то проблемы с (пере)созданием сессий - это проблемы inet и их надо решать, но не в контексте обработки ошибки номер 1 (один), а именно в контексте возникшей проблемы.

Автор:  Amir [ 21 авг 2012, 13:51 ]
Заголовок сообщения:  Re: Не дает accept при установленном

Сделали, потому что: в текущей структуре было сделать просто, в dialup это было, для однообразия (тоже самое планируем сделать для dhcp, для упрощения работы монтажников, например). Также, потому что не очень нравится, когда в предобработке работают с базой - не всегда не у всех получается оптимально.

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