Давным-давно Я поставил freeNibs... После попытки скомпилить его с более новой версией radius'а и облома Я задумался

Сейчас у Меня FreeNIBS+FreeRadius+myasql на ветке 6.2 висит... желания обновится на новую ветку есть, но гемор получить - нет, при том что по части секурности или запаса производительности железа - вопросов нет...
Потом Я начал думать о том как бы от FreeRadius'а уйти...
Хотел написать к mpd свою авторизовалку через скрипты...Траффик?Траффик считать очень легко

через netflow - раз в минуту до 4Мб файлик с данными получался...
Но потом Я вспомнил что кроме mpd, есть еще другие разные девайсы и задачи: voip, asterisk, cisco, mikrotik, hotspot,wi-fi....
Получается что Я мог бы потратить много времени на написание скриптов для mpd, но в будущем Я от radius'а Я все равно не избавился бы

А значит если нельзя отказаться - значит надо приручить...
Но есть radius - остается, то почему не использовать то что готово или так сказать ничем не отличается... то есть abills?
Во первых - там нет готового postgresql, что было бы кошернее
Во вторых: Я ненавижу перл(с) из статей

В третьих: abills всегда может постичь участь freenibs -> заброшено, хотя и то что Я делаю тоже такая участь может постигнуть
PS:
Посмотрел daloradius -> он еще не готов
Больше всего Мне не нравится в: freeradius+web, freenibs, abbils ...
Что у них есть таблица: radacct или actions...
Несколько раз авторизация отваливалась когда она вырастала ОЧЕНЬ большая на 1М записей и много народу хотело авторизоваться после перезагрузки
hizel писал(а):и в чем проблема?
Проблема в одной и той же штуке - смысле всех моих телодвижений ("доцільністі")...
Я просто думаю что с моей проблемой сталкиваются многие админы - делать свое или не делать
Опишу что Я хотел сделать:
Я хочу вести статистику пользователей по потреблённому траффику суммируя её...
То есть последние 7-мь дней включая текущий день траффик будет записываться для клиента с детализацией по часам:
На php Я писал запрос примерно так:
Код: Выделить всё
INSERT INTO netflow (`ip`,`all_traff`,`year_date_hour`) VALUES (inet_aton('".$ll[0]."'),'".$ll[3]."', '".date('YmdH',mktime())."' ) ON DUPLICATE KEY UPDATE....
Раз в сутки Я буду агрегировать траффик клиентов в траффик за день, а детализацию буду убивать
Добавлю если это возможно:
в таблице NAS тип NAS - > тот что обсчитывать моим методом или стандартными средствами
freeradius
Код: Выделить всё
accounting_update_query = " \
UPDATE ${acct_table1} \
SET \
framedipaddress = '%{Framed-IP-Address}', \
acctsessiontime = '%{Acct-Session-Time}', \
acctinputoctets = '%{%{Acct-Input-Gigawords}:-0}' << 32 | \
'%{%{Acct-Input-Octets}:-0}', \
acctoutputoctets = '%{%{Acct-Output-Gigawords}:-0}' << 32 | \
'%{%{Acct-Output-Octets}:-0}' \
WHERE acctsessionid = '%{Acct-Session-Id}' \
AND username = '%{SQL-User-Name}' \
AND nasipaddress = '%{NAS-IP-Address}'"
будет что-то типа:
Код: Выделить всё
accounting_update_query ="CALL my_accounting_update_query('%{Framed-IP-Address},%{Acct-Session-Time},%{%{Acct-Input-Gigawords}:-0}' << 32 |'%{%{Acct-Input-Octets}:-0}', '%{%{Acct-Output-Gigawords}:-0}' << 32 | '%{%{Acct-Output-Octets}:-0}' )"
Хотя ключ по %{Framed-IP-Address} -плоховатая идея, навреное лучше по %{SQL-User-Name}
В sql my_accounting_update_query(....) Я и буду производить расчет денег...
Идея номер 2:
accounting отключить и все данные о траффике высчитывать с помощью ipcad/netflow, и так же вручную считать деньги...
а радиус - удобная база+универсальная авторизовалка...