Повторю снова свой вопрос, может кто-то из уважаемых знатоков подскажет:
Узнав, что
"253 19.01.2011 09:57:35 ДОБАВЛЕНО Вызов тарификации при изменении состава текущих тарифных опций соединения. Применение тарифных опций до Update пакета.", решили протестировать столь долгожданный функционал. Для этого обновили тестовую 4.6 версию биллинга до 5.1. Но CoA-пакет упорно посылался только
после прихода update. Так как реальная абонентская база не маленькая, то и интервал между update-пакетами не маленький, (не такой как в тестовой базе,) приходится очень долго ждать, из-за этого не можем использовать функционал тарифных опций вообще.
Так как на тестовом стенде, на котором было произведено обновление с 4.6 до 5.1, желаемого результата так и не получилось, (пост в этой теме от Вс фев 20, 2011 3:08 pm),
то решили поставить еще один тестовый стенд с версией 5.1 с нуля.
Но СоА-пакет при смене тарифной опции все-равно срабатывает не сразу, а только после прихода update-пакета:
Код:
02-27/23:46:39 INFO [radiusListener-p-3-t-6] connections - [ 0003; user3; 99749 ] DialUpNASConnection startConnection mode=1
02-27/23:46:39 INFO [radiusListener-p-3-t-6] connections - [ 0003; user3; 99749 ] Zone on start normal
02-27/23:46:39 INFO [radiusListener-p-3-t-6] connections - [ 0003; user3; 99749 ] IP address register on collector
02-27/23:51:39 INFO [radiusListener-p-3-t-7] connections - [ 0003; user3; 99749 ] DialUpNASConnection update connection..
02-27/23:51:39 INFO [radiusListener-p-3-t-7] connections - [ 0003; user3; 99749 ] Taking zone normal from response on calculate sid=1
02-27/23:52:27 INFO [Thread-20] connections - [ 0003; user3; 99749 ] Tariff options was changed!
02-27/23:52:27 INFO [Thread-20] connections - [ 0003; user3; 99749 ] 2 => 2011.02.27 23:52:27-2011.02.28 00:52:26
02-27/23:52:30 INFO [Thread-30] connections - [ 0003; user3; 99749 ] Tariff option set was changed.
02-27/23:56:39 INFO [radiusListener-p-3-t-8] connections - [ 0003; user3; 99749 ] DialUpNASConnection update connection..
02-27/23:56:39 INFO [radiusListener-p-3-t-8] connections - [ 0003; user3; 99749 ] Taking zone opt_activated from response on calculate sid=1
02-27/23:56:39 INFO [radiusListener-p-3-t-8] connections - [ 0003; user3; 99749 ] Changed tariff zone from normal to opt_activated
02-27/23:56:39 INFO [Thread-31] connections - [ 0003; user3; 99749 ] Change zone do: 27.02.2011 23:56:39
02-27/23:56:39 INFO [Thread-31] connections - [ 0003; user3; 99749 ] Need CoA request
02-27/23:56:40 INFO [nas-con-insp-PodNasConnectionInspector-192.168.1.214] connections - [ 0003; user3; 99749 ] CoA packet on
192.168.1.214:3799
Packet type: CoA-Request
Сервер: вер. 5.1 сборка 598 от 22.02.2011 13:50:30
os:Linux; java:Sun Microsystems Inc., v.1.6.0_22
dialup вер. 5.1 сборка 171 от 22.02.2011 13:50:16
raduis version 5.1 build 268 from 25.02.2011 13:13:56
Скажите пожалуйста, каких опций может не хватать, в какую сторону копать, чтобы заработал долгожданный функционал (
прилагаю полные конфиги NAS'а (биллинг тестовый, поэтому биллинг и NAS на одной машине),
radius'а, и скриншоты тарифного плана и опций. Тарифный план создан простейший, из документации.
NAS: (тип NAS'a - Unix PPP)
Код:
#телефоны по портам, * - все порты (если параметр не указан, вызываемый номер берётся из Calling-Station-Id)
#nas.port_phone.*=900111
#числовые коды услуг времени, трафика входящего и исходящего
nas.port_time.default.*=3
nas.port_traffic.default.*=1:RADIN;2:RADOUT
#разрешение активировать все типы карточек на этом NASе
card.activate.service=0
#поддержка CallBack (1-включите)
callback.support=0
#принудительный разрыв соединений на границе месяца
month.break=1
#время в секундах после начала месяца, в течении которого должны быть сброшены соединения предыдущего месяца с NASа
month.break.period=3600
#интервал между посылками на проверку либо сброс соединения в секундах
nas.inspector.sleep_time=60
#максимальное число попыток сброса соединения
nas.inspector.kill.max_messages=5
############################
dialup.workmode=1
#
nas.inspector.class=ru.bitel.bgbilling.kernel.network.radius.inspectors.PodNasConnectionInspector
#на какой порт слать PoD/CoA запросы
nas.inspector.radius.port=3799
#на какой хост слать (если не указан - берется IP адреса NASа)
nas.inspector.radius.host=192.168.1.214
#секрет для подписи пакетов (если не указан - берется секрет NASа)
#nas.inspector.radius.secret=
#какие атрибуты добавлять в PoD/CoA запрос из сессии, если пустой параметр - высылаются все атрибуты
#nas.inspector.radius.attributes=User-Name;Framed-IP-Address;Acct-Session-Id
nas.inspector.radius.attributes=Framed-IP-Address
#опции, относящиеся только к CoA пакетам
#таймаут ожидания ответа в секундах ответа между попытками отправки пакета СoA
nas.inspector.coa.timeout=5
#количество попыток отправить пакет CoA
nas.inspector.coa.retries=2
#количество потоков отправки CoA пакетов
nas.inspector.coa.threads=4
#отправка при смене CoA пакета всех атрибутов, аналогично ответу на авторизацию
#nas.inspector.coa.send.all.attributes=1
#логирование в RADIUS логе сессии отправляемых CoA пакетов
coa.log=1
#фиксированные атрибуты CoA пакета
#nas.inspector.coa.fixed.attributes=
#фиксированные атрибуты PoD пакета
#nas.inspector.pod.fixed.attributes=
RADUIS
Код:
#минимальная и максимальная длина пароля
password.length.min=5
password.length.max=10
#длина автоматически генерируемого пароля
password.length.auto=6
#допустимые в пароле символы
password.chars=1234567890qwertyuopasdfghkzxcvbnmQWERTYUOPASDFGHJKLZXCVBNM
#пункты Web - меню
web.menuItem1=Просмотр сессий DialUp
web.menuItem2=Наработка по логинам DialUp
web.menuItem3=Смена пароля на логины DialUp
web.menuItem4=Учётные периоды
web.menuItem5=Управление динамическим ДНС
#сколько лет отображать в просмотре сессий через web
showyears=5
#в просмотре сессий в на Web странице кол-во выводимых на странице сессий
show.sessions.on.page=25
#XSL для печати и отправки на почту сессий
xslt.1=dialup_login_sessions.xsl
xslt.1.csv=dialup_login_sessions_csv.xsl
reportTitle.1=Отчет по сессиям DialUp
#XSL для печати и отправки на почту наработки по логинам
xslt.2=dialup_login_amount.xsl
xslt.2.csv=dialup_login_amount_csv.xsl
reportTitle.2=Отчет по наработке на логины DialUp
#вендоры - производители оборудования и их коды
vendors=9=Cisco;2011=Huawei;2021=Unix PPP;529=Lucent;6618=Quintum;529=Ascend;311=Microsoft;12341=MPD;14988=Mikrotik
#коды услуг, не затрагиваемых при перерасчёте, например, если услуга используется для занесения наработки скриптом
#service.recalc.ignore=
#Атрибуты радиуса доступные в списке атрибутов в редактировании логина
radius.attributes=Service-Type;Framed-Protocol;Framed-IP-Address;Framed-IP-Netmask;Framed-Routing;Filter-Id;Framed-MTU;Framed-Compression;Login-IP-Host;Login-Service;Login-TCP-Port;Old-Password;Reply-Message;Callback-Number;Callback-Id;Expiration;Framed-Route;Framed-IPX-Network;State;Class;Session-Timeout;Idle-Timeout;Termination-Action;NAS-Identifier;Proxy-State;Framed-Pool
#----------------------------------------
#выборочное отключение проверки закрытого периода
#Перенос логина с даты
#closed.date.disabled.ActionWrapLogin=1
#Обсчет максимальных трафиков
#closed.date.disabled.ActionMaxRecalculate=1
#Удаление учетного периода
#closed.date.disabled.ActionPeriodDelete=1
#Удаление учетного периода
#closed.date.disabled.ActionPeriodUpdate=1
#Начислений сессий
#closed.date.disabled.ActionRecalculateSessions=1
#Редактировани логина
#closed.date.disabled.ActionUpdateLoginInfo=1
#----------------------------------------
############### опции RADIUS сервера #######################
#граница не карточных логинов
top.nocard.login=10000
#код модуля "карточки", 0 - модуль "карточки" не используется
card.module.id=0
#количество одновременных сессий, разрешённых карточным логинам
#card.login.session.count=1
#1 - проверять наличие в договоре всех требуемых услуг при авторизации, иначе ошибка авторизации "Услуга запрещена"
check.service=0
#режим работы радиуса
#1 - режим UPDATE - пересчёт во время прохождения UPDATE пакетов
#2 - режим CHECKER - пересчёт по таймеру, UPDATE пакеты используются для получения информации о трафике
dialup.workmode=1
#для режима UPDATE - время в секундах после последнего UPDATE пакета, по истечении которого сессия считается неактивной
#(не учитывается в подсчёте числа одновременных соединений)
#max.update.timeout=120
max.update.timeout=600
#сколько максимально секунд соединение в статусе wait ждёт Start пакета
#max.wait.timeout=120
max.wait.timeout=600
#время в секундах, через которое происходит пересчёт в режиме CHECKER
update.time=60
#время в секундах, через которое проверяется необходимость пересчёта в режиме CHECKER
run.sleep=3
#игнорировать длительность соединения в Acct-Session-Time атрибуте с NASа, вычислять самостоятельно
#ignore.acct.session.time=1
#задержка закрытия сессий в секундах, используется при тарификации по данным NetFlow
#для исключения потери "хвостов" сессий, т.е. информации о трафике, пришедшей после завершения сессии
#delay.stop=5
#прерывать сессии с того же Calling-Station-Id, если при авторизации произошла ошибка "Превышен лимит сессий"
#(может быть полезно, если на насе остаются несуществующие сессии и клиент не может переподключится)
#check.duplicate.session=1
#Не разрывать сессии, при изменении действующего тарифного плана в ходе обсчёта.
#При установке этой опции разрывы и отправку CoA пакетов нужно контроллировать устновкой зон в тарифах.
#no.session.break.on.tariff.change=1
#глобальный пул адресов
pools.global=192.168.1.70-192.168.1.75
#если установлено в 1 - принудительная передача Service-Type=2;Framed-Protocol=1 (рекомендуется передача этих атрибутов иными способами, см. выше realm.default)
add.service.type.and.framed.protocol=0
#если установлено в 1 - добавление в Auth Accept при MPPE-128 авторизации атрибутов MS_mppe_encryption_types (поддержка 128 битного шифрования) и MS_mppe_encryption_policy=1 (шифрование поддерживается)
#согласно http://rfclibrary.hosting.com/rfc/rfc2548/rfc2548-25.asp
add.mppe.enc.types.and.policy=1
#удалять из Accept пакета атрибуты Framed-Pool в случае, если адрес был успешно выдан адрес RADIUS сервером
#drop.framed.pool.attr=1
#удаление из атрибута User-Name данных перед \ (в случае его наличия), используется для Windows клиентов, от которых при авторизации зачастую приходит имя пользователя предваряемое именем домена, 0 - отключить
remove.user.name.before.backslash=1
#разрешение пользователям без определённой группы REALM ов использовать группу default
realmgr.default=default
#атрибуты, передаваемые в AUTH_ACCEPT пакете при авторизации по реалму default
#в данном случае это интервал между отправкой Update пакетов, в секундах, протокол PPP, и тип сервиса, см: RFC2865
realm.default=Acct-Interim-Interval=300;Service-Type=2;Framed-Protocol=1
#####
attrset.1.title=bezlimit256
attrset.1.attributes=PPPD-Upstream-Speed-Limit=256;PPPD-Downstream-Speed-Limit=256
attrset.2.title=bezlimit512
attrset.2.attributes=PPPD-Upstream-Speed-Limit=512;PPPD-Downstream-Speed-Limit=512
attrset.3.title=bezlimit1024
attrset.3.attributes=PPPD-Upstream-Speed-Limit=1024;PPPD-Downstream-Speed-Limit=1024
attrset.4.title=bezlimit2048
attrset.4.attributes=PPPD-Upstream-Speed-Limit=2048;PPPD-Downstream-Speed-Limit=2048