forum.bitel.ru http://forum.bitel.ru/ |
|
[5.2] Проблема с обработкой CoA http://forum.bitel.ru/viewtopic.php?f=44&t=9180 |
Страница 1 из 1 |
Автор: | vkulakov [ 22 апр 2014, 16:16 ] |
Заголовок сообщения: | [5.2] Проблема с обработкой CoA |
В последнее время начала проявляться проблема с отключением активных сессий абонентов при закрытии договора по балансу. Например, 14 апреля абонент поднял сессию и благополучно работал. 22 апреля у абонента закончились средства. В час ночи договор был заблокирован задачей по недостаточному балансу. После этого сервис перешёл в состояние "Отключен". Всё бы хорошо, но вот уже 2 часа дня, а сессия абонента всё висит в состоянии "Подключено" и статусе "Активна" и не думает переключаться в состояние "Отключено". У нас настроен Cisco ISG с посервисным аккаунтингом, при отключении сервиса у сессии обычно отключаются сервисы INTERNET и LOCAL и включается REDIRECT, после чего сессия переходит в состояние "Отключено". Но в данном случае этого не происходит. Начали разбираться и выяснили, что при закрытии договора вызывается connectionModify, который отправляет на Cisco следующие CoA-запросы: Код: connection 04-22/01:12:37 INFO [sa-p-11-t-38] ISGServiceActivator - Send deactivate service CoA: Packet type: CoA-Request Identifier: 241 Authenticator: {42 89 0E 27 D6 56 D7 28 1B 00 BD B7 02 0F 9E BA} Attributes: User-Name=XXX Acct-Session-Id=0/1/0/2281.1263_03764390 cisco-avpair=subscriber:service-name=LOCAL_SIMPLE cisco-avpair=subscriber:command=deactivate-service connection 04-22/01:12:37 INFO [sa-p-11-t-38] ISGServiceActivator - Send deactivate service CoA: Packet type: CoA-Request Identifier: 242 Authenticator: {F0 BB 8F 2C DF E7 9A 2D A2 9D E7 62 80 A9 EF 6A} Attributes: User-Name=XXX Acct-Session-Id=0/1/0/2281.1263_03764390 cisco-avpair=subscriber:service-name=INTERNET_30mbps cisco-avpair=subscriber:command=deactivate-service connection 04-22/01:12:37 INFO [sa-p-11-t-38] ISGServiceActivator - Send activate service CoA: Packet type: CoA-Request Identifier: 243 Authenticator: {E6 22 40 49 35 C4 D5 EC 73 DB 9C A0 25 99 3C 07} Attributes: User-Name=XXX Acct-Session-Id=0/1/0/2281.1263_03764390 cisco-avpair=subscriber:service-name=REDIRECT_SIMPLE cisco-avpair=subscriber:command=activate-service Но ответа на эти запросы никакого нет, лишь через некоторое время появляется следующее: Код: connection 04-22/01:12:42 INFO [sa-p-11-t-38] EventWorker - Timeout waiting futures connection 04-22/01:12:42 ERROR [sa-p-11-t-38] AcknowledgeConsumer - java.util.concurrent.TimeoutException ru.bitel.bgbilling.common.BGException: java.util.concurrent.TimeoutException at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.notify(AsyncEventWorker.java:181) at ru.bitel.bgbilling.kernel.event.AcknowledgeConsumer.onMessage0(AcknowledgeConsumer.java:75) at ru.bitel.bgbilling.kernel.event.EventWorker.internalDoTask(EventWorker.java:177) at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.doTasks(AsyncEventWorker.java:75) at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runWorker(ServiceActivatorDeviceWorker.java:179) at ru.bitel.bgbilling.kernel.event.EventWorker.internalRunWorker(EventWorker.java:113) at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runImpl(ServiceActivatorDeviceWorker.java:117) at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40) Caused by: java.util.concurrent.TimeoutException ... 18 more Правда я на 100% не уверен, что это таймаут именно по нужным запросам. В дебаге на Cisco видно, что запросы приходят, но из подозрительного там только: Код: COA: Message Authenticator missing or failed decode В итоге запросы ушли, на Cisco пришли, но сервисы на Cisco при этом остались и никакого ответа на запросы нет. Очень странная ситуация, особенно если учесть, что большая часть запросов обрабатывается нормально. Для решения пробовали добавить в запрос Message-Authenticator следующим образом: Код: sa.radius.coa.attributes=Message-Authenticator=0x00 Аутентификатор в запрос добавился, но имел неправильную длину и вообще, после такого его добавления радиус пакет очень печально выглядел. Другого способа добавить аутентификатор я не нашёл, да и не уверен, что в нём проблема. Дальше пробовал отключить сессию, отправляя событие: Код: ep.publish(new InetSaStateModifyEvent(moduleId, contractId, userId, deviceId, servId, connectionId, (short) 0, 44)); но ситуация повторилась и сессия не отключилась. В итоге, сессию можно отключить лишь разорвав её. Проблема вроде как и не связана с биллингом напрямую, но спросить больше негде. Есть ли у кого идеи, с чем всё это может быть связано и куда копать? |
Автор: | Amir [ 22 апр 2014, 16:24 ] |
Заголовок сообщения: | Re: [5.2] Проблема с обработкой CoA |
Цитата: В дебаге на Cisco видно, что запросы приходят, но из подозрительного там только Те, на которые биллинг не получил ответа - тоже видно в логах Cisco?
|
Автор: | vkulakov [ 22 апр 2014, 16:42 ] |
Заголовок сообщения: | Re: [5.2] Проблема с обработкой CoA |
Запросы без ответа тоже в логах видны... Если бы было так просто... Когда аутентификатор добавлял, вот тогда не видны были. |
Автор: | Amir [ 22 апр 2014, 18:07 ] |
Заголовок сообщения: | Re: [5.2] Проблема с обработкой CoA |
А в InetServiceAccess при этом все нормально, запросы не пропускает? Cisco же с него получает информацию о сервисах ISG? |
Автор: | vkulakov [ 22 апр 2014, 19:02 ] |
Заголовок сообщения: | Re: [5.2] Проблема с обработкой CoA |
InetServiceAccess - это что такое и как посмотреть, всё ли в нём хорошо? В момент отправки запросов никаких проблем не видно. В tcpdump'е запросы видно, на Cisco тоже видно. Такое ощущение, что Cisco их игнорит по неизвестной причине. Ведь после получения запросов сервисы на Cisco никак не изменяются. Если бы они изменились, а биллинг бы не увидел этих изменения, было бы проще, но это не так. Биллинг здесь как бы ни при чём. По крайней мере мне так кажется. |
Автор: | Amir [ 22 апр 2014, 19:10 ] |
Заголовок сообщения: | Re: [5.2] Проблема с обработкой CoA |
InetServiceAccess - имел ввиду отдельный InetAccess, который отвечает на авторизационные запросы Cisco для сервисов ISG. Те, у которых User-Name=INTERNET_30mbps, например. Подумал, что может быть Inet на них иногда не очень быстро отвечает. Видимо у вас этим занимается тот же самый InetAccess, либо параметры сервисов ISG заведены локально на Cisco. |
Автор: | vkulakov [ 22 апр 2014, 19:47 ] |
Заголовок сообщения: | Re: [5.2] Проблема с обработкой CoA |
Сервисы типа INTERNET_30mbps авторизуются в биллинге, просто они уже все есть в "кеше" циски и дополнительные запросы не отправляются. REDIRECT_SIMPLE уже назначен некоторым сессиям, поэтому он не грузится, INTERNET_30mbps и LOCAL_SIMPLE тоже есть. И, опять же, у части абонентов всё нормально проходит, а у маленькой части - проблемы. Но идея интересная. Попробую понаблюдать за тем, какие сервисы отключаются/включаются. Может быть проблемы с конкретным сервисом. |
Автор: | vkulakov [ 23 апр 2014, 12:47 ] |
Заголовок сообщения: | Re: [5.2] Проблема с обработкой CoA |
Проанализировал сервисы у проблемных абонентов и оказалось, что у всех абонентов нет сервисов INTERNET_*, а есть только LOCAL_SIMPLE. При этом по сервисам INTERNET_* не идёт аккаунтинг. На циске все необходимые сервисы на сессии есть и трафик по ним считается. Из странного вот это: Код: Configuration Sources: Type Active Time AAA Service ID Name SVC 1w1d 4026537347 LOCAL_SIMPLE SVC 1w5d 2466320359 PORTAL_SIMPLE SVC 1w1d 4026537347 INTERNET_20mbps USR 1w5d - Peruser INT 1w5d - Virtual-Template2 Видно, что "AAA Service ID" совпадает для LOCAL_SIMPLE и INTERNET_20mbps. я так думаю, от этого все проблемы. Может кто знает, с чем это связано? |
Автор: | vkulakov [ 17 июл 2014, 18:04 ] |
Заголовок сообщения: | Re: [5.2] Проблема с обработкой CoA |
Обновили циски. Уже больше месяца проблема не повторяется, но пока ждём... |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |