Страница 1 из 1

Построить биллинг на radius'е

Добавлено: 2009-12-01 20:24:57
wel
Прочитав статейку:
wiki.sirmax.noname.com.ua/index.php/Simult_Chek

Подумал что если подкорректировать запросы то можно сделать биллинг... используя процедуры в mysql или postgresql...

Может кто-то такое делал или может что-то сказать...
ЗЫ:
Я знаю что есть abbils и другие биллинговый системы, но Мне хочется свое настругать :)

Re: Построить биллинг на radius'е

Добавлено: 2009-12-02 11:19:53
hizel
и в чем проблема?

Re: Построить биллинг на radius'е

Добавлено: 2009-12-02 15:46:36
wel
Давным-давно Я поставил 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, и так же вручную считать деньги...

а радиус - удобная база+универсальная авторизовалка...

Re: Построить биллинг на radius'е

Добавлено: 2009-12-04 1:56:17
wel
неужто это настолько нелепо что никто не комментирует? :shock:

Re: Построить биллинг на radius'е

Добавлено: 2009-12-04 10:01:11
hizel
биллинг - суть счет бабла за услуги, трафик собственно там изучается опосредственно, у вас получается не универсальная штука, а вдруг кто захочет щитатть время или по другим параметрам

посмотрите как устроен bgbilling, такая организация мне представляется более продвинутой чтоли :)

Re: Построить биллинг на radius'е

Добавлено: 2009-12-04 13:49:19
wel
hizel писал(а):биллинг - суть счет бабла за услуги, трафик собственно там изучается опосредственно, у вас получается не универсальная штука, а вдруг кто захочет щитатть время или по другим параметрам
радиус Я так понимаю не был спроектирован для этого :)

Я и хочу разделить людей на тех кому считать траффик*цену за Мб и тех кому это не нужно, можно тем кому время*цену за час и фиксир.время и ограничение по Мб....при этом остаться совместимым с радиусом в портах :)

Re: Построить биллинг на radius'е

Добавлено: 2009-12-04 13:52:34
hizel
подходите к созданию универсально

есть ядро билинга которое оперирует баблом, есть модули которые снимают всякие\разные данные, netflow\radius и т.д. и т.п. и есть некая прокладка которая хитро конвертирует данные в бабло, в bgbilling это тарифный план

Re: Построить биллинг на radius'е

Добавлено: 2009-12-04 15:24:29
wel
hizel писал(а):подходите к созданию универсально

есть ядро билинга которое оперирует баблом, есть модули которые снимают всякие\разные данные, netflow\radius и т.д. и т.п. и есть некая прокладка которая хитро конвертирует данные в бабло, в bgbilling это тарифный план
то есть идея №2 - отключить акаунтинг, и другими модулями считать бабло - по крайней мере на VPN&прямой инет по вланам -внешними средствами
а радиус нужен будет только для связывания >1 NAS, что бы свой огород не городить

Для VOIP and etc - второй radius/этот же но продумав всё и прокладка в биллинг для расчета...

Re: Построить биллинг на radius'е

Добавлено: 2010-03-08 14:03:04
wel
wel писал(а): Для VOIP and etc - второй radius/этот же но продумав всё и прокладка в биллинг для расчета...
freeradius 2 - конечно же можно обойтись одним сервером, но множеством виртуальных :)

ЗЫ:
Кто может подсказать по 2-му радиусу книжки ?

Re: Построить биллинг на radius'е

Добавлено: 2010-12-24 1:54:47
katadin
В наследство остался сервер на фрибсд на котором установлен фринибс с фрирадиусом.
В следствии сбоя пришлось систему переустановить. С фринибсом разобрался - работает, однако не понятно каким образом можно перенаправить его внутренние адреса в интернет (насколько понимаю что нужно копать в сторону nat)
Если есть возможность просьба подсказать каким образом можно осуществить.
Есть локальная сеть - за раздачу инета отвечает squid
Спасибо