Мне кажется, между нами есть недопонимание сути нашей проблемы.
Я постараюсь изложить все максимально подробно.
Итак, Суть тарифа:
Если абонент скачал трафика больше чем, к примеру, разрешенные 10Гбайт,
то до конца текущего месяца у него понижается скорость.
Причем, этот трафик двух классов - внешний и внутренний+локальный. Если перекачал
внешнего трафика - понижается только внешняя скорость (посылкой CoA). Если перекачал
внутреннего+локального трафиков - должна понизиться скорость только этого класса трафика
(разрывом соединения и присваиванием другого IP адреса).
Если абонент хочет повысить себе скорость ОБОИХ классов трафика до изначальной, то он
применяет одну из двух тарифных опций, которая действует до окончания текущего месяца.
В тарифных опциях тоже есть диапазоны - и они отрабатывают верно. Скачал абонент, к примеру,
7Гбайт внешнего трафика, переходит в другой диапазон, а там скорость внешки уменьшается.
Скачал 50Гбайт внутреннего трафика - уменьшается только скорость внутреннего+локального трафиков.
Применить тарифную опцию еще раз
невозможно, тариф этого не предусматривает, да и средства
биллинга этого не позволяют же сделать, как вы сказали, активация каждый раз с нуля возможна
только в модуле Инет.
Проблема в другом - в двух ветках услуг (классов трафика) одного модуля, в данном случае модуля Диалап.
Если зоны находятся в обоих классах (ветках услуг), то зоны отрабатывают некорректно.
Зоны, которые находятся во внутреннем трафике, соединение рвут, как и заложено в зоне.
Зоны, которые находятся во внешнем трафике, CoA запросы не отправляют, никак не реагируют
на смену тарифной опции. Вот, повторяю логи с первоначального поста:
(помечаю жирным зоны скоростей внешнего трафика)
Цитата:
Цитата:
04-06/08:50:18 INFO [radiusListener-p-4-t-101] connections - [ 0072529923; mt14; 18229 ] Taking zone world:Day Speed 512k 20Gb from response on calculate sid=39
04-06/08:50:18 INFO [radiusListener-p-4-t-101] connections - [ 0072529923; mt14; 18229 ] Taking zone world:Day Speed 512k 20Gb from response on calculate sid=40
04-06/08:50:18 INFO [radiusListener-p-4-t-101] connections - [ 0072529923; mt14; 18229 ] Taking zone local:Speed Внутр. 3M 150Gb from response on calculate sid=46
04-06/08:50:18 INFO [radiusListener-p-4-t-101] connections - [ 0072529923; mt14; 18229 ] Taking zone local:Speed Внутр. 3M 150Gb from response on calculate sid=47
Вот еще подтверждающие сообщения:
Цитата:
04-06/08:50:18 INFO [radiusListener-p-5-t-33] connections - [ 0072529923; mt14; 18229 ] DialUpNASConnection startConnection mode=1
04-06/08:50:18 INFO [radiusListener-p-5-t-33] connections - [ 0072529923; mt14; 18229 ] Zone on start local:Speed Внутр. 3M 150Gb
04-06/08:50:18 INFO [radiusListener-p-5-t-33] connections - [ 0072529923; mt14; 18229 ] IP address register on collector
То есть зоны "взяты", ждем апдейт пакетов о превышении какого-либо диапазона:
Цитата:
04-06/09:14:15 INFO [radiusListener-p-5-t-57] connections - [ 0072529923; mt14; 18229 ] DialUpNASConnection update connection..
04-06/09:14:15 INFO [radiusListener-p-5-t-57] connections - [ 0072529923; mt14; 18229 ] Taking zone world:Day Speed 128k 20-0Gb from response on calculate sid=39
04-06/09:14:15 INFO [radiusListener-p-5-t-57] connections - [ 0072529923; mt14; 18229 ] Taking zone local:Speed Внутр. 3M 150Gb from response on calculate sid=46
То есть, диапазон внешнего трафика был превышен, новая зона "
Taking zone world:Day Speed 128k 20-0Gb" "взята". НО, CoA запросы на циску не уходят. Скорость у абонента остается прежней.
Дальше жмем одну из тарифных опций:
Цитата:
04-06/09:30:14 INFO [Thread-22] connections - [ 0072529923; mt14; 18229 ] Tariff option set was changed.
04-06/09:30:14 INFO [Thread-22] connections - [ 0072529923; mt14; 18229 ] Taking zone world:Day Speed 512k 7Gb from response on calculate sid=39
Как мы видим, тарифная опция сменилась, и зона тоже сменилась. ОДНАКО же, опять никаких действий со стороны биллинга. А должно быть примерно так:
Цитата:
04-06/10:20:02 INFO [Thread-57] connections - [ 0111111111; 11557; 25268 ] Change zone do: 06.04.2012 10:20:02
04-06/10:20:02 INFO [Thread-57] connections - [ 0111111111; 11557; 25268 ] Need CoA request
04-06/10:20:02 INFO [nas-con-insp-PodNasConnectionInspector-Cisco PPPoE] connections - [ 0111111111; 11557; 25268 ] CoA packet on 88.888.888.888:1700
Packet type: CoA-Request
Identifier: 25
Authenticator: {D5 7A 25 D8 3C 5A 24 F4 DD C2 05 97 3E 61 7A E7}
Attributes:
Framed-Pool=CoA
Acct-Session-Id=0001D459
cisco-avpair=lcp:interface-config=no rate-limit input access-group 111 64000 12000 32000 conform-action transmit exceed-action drop
cisco-avpair=lcp:interface-config=no rate-limit input access-group 111 128000 24000 48000 conform-action transmit exceed-action drop.................
На других тарифах, где зоны есть только в одной ветке услуг, все работает ПРЕКРАСНО. Как только помещаешь зоны в две разные ветки, происходит вышеописанная проблема.
Самое интересное дальше. Если "переполняется" диапазон в другой ветке, то происходит следующее:
Цитата:
04-06/11:11:11 INFO [radiusListener-p-5-t-1] connections - [ 0072529923; mt14; 77181 ] Changed tariff zone from local:Speed Внутр. 3M 50Gb to local:Speed Внутр. 1M 50-0Gb
04-06/11:11:11 INFO [Thread-61] connections - [ 0072529923; mt14; 77181 ] Change zone do: 06.04.2012 11:11:11
04-06/11:11:11 INFO [Thread-61] connections - [ 0072529923; mt14; 77181 ] Setting to disconnect by new zone
04-06/11:11:11 INFO [nas-con-insp-PodNasConnectionInspector-Cisco PPPoE] connections - [ 0072529923; mt14; 77181 ] PoD reset packet on 88.888.888.888:1700
Packet type: Disconnect-Request
Identifier: 29
Authenticator: {A5 9C D5 76 CC 16 A6 16 76 86 C1 ED 40 9B 86 16}
Attributes:
Acct-Session-Id=0001D451
То есть происходит корректный дисконнект, как и указано в этой зоне, абонент переподключается, получает другой IP адрес,
как и задумано тарифом.
Мы думаем, что корректная работа зон в этой ветке услуг происходит из-за того, что:
Цитата:
04-06/08:50:18 INFO [radiusListener-p-5-t-33] connections - [ 0072529923; mt14; 18229 ] Zone on start local:Speed Внутр. 3M 150Gb
Как будто биллинг "видит" только одну ветку услуг (внутреннего+локального трафиков). В ветку услуг внешнего трафика он как бы "не замечает", ее для биллинга нет.
Если убрать зоны из любой второй ветки, то зоны в оставшейся одной ветке услуг (классе трафика)
отрабатывают как положено - поставишь Разорвать соединение-рвут, поставишь Отправить CoA - отправляют CoA.
То есть, один из видов класса трафика считать и управлять проблем нет, а считать и управлять двумя
классами трафика (двумя ветками услуг) - не получается.