Биллинговая система Nodeny
22 Ноября 2024, 00:50:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
  Начало Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2 3 ... 9
1  Главная категория / Модули NodenyPlus / Re: CoA проверка работы : 06 Марта 2018, 10:40:32
состояния абона переходить из on - off или из off - on  ( ip меняется )
почему меняется ip? Если абон подключен и ты ему просто меняешь параметр "заблокирован" на "да", то ip не меняется. Или у тебя меняется?

Да меняется.

Код:
DROP FUNCTION IF EXISTS `get_ip`;
DELIMITER $$
CREATE FUNCTION `get_ip` ( user_id INTEGER UNSIGNED )
    RETURNS VARCHAR(15) NO SQL
BEGIN
    DECLARE user_ip VARCHAR(15);
    DECLARE real_ip VARCHAR(15) DEFAULT 0;
    DECLARE row_cnt INTEGER;
    DECLARE ip_id INTEGER;
    DECLARE tries INTEGER DEFAULT 30;
    DECLARE id_min INTEGER;
    DECLARE id_max INTEGER;
    DECLARE blocked INTEGER DEFAULT 0;

    SELECT 1 INTO blocked FROM users WHERE state='off' AND id=user_id LIMIT 1;

    SELECT INET_NTOA(ip) INTO user_ip FROM ip_pool
        WHERE uid = user_id AND type = 'static' AND blocked = 0 LIMIT 1;
    IF( user_ip IS NOT NULL ) THEN RETURN user_ip; END IF;

    SELECT 1 INTO real_ip FROM users_services WHERE uid = user_id AND tags LIKE '%,realip,%';

    SELECT id, INET_NTOA(ip) INTO ip_id, user_ip FROM ip_pool
        WHERE uid = user_id AND type = 'dynamic' AND realip = IF(real_ip>0,1,0)
            AND IF(blocked>0, tags LIKE '%,blocked,%', tags NOT LIKE '%,blocked,%')
        LIMIT 1;

    IF( ip_id IS NOT NULL) THEN
        UPDATE ip_pool SET `release` = UNIX_TIMESTAMP() + 3600
            WHERE id = ip_id AND uid = user_id;
        SELECT ROW_COUNT() INTO row_cnt;
        IF( row_cnt > 0 ) THEN RETURN user_ip; END IF;
    END IF;

    SELECT MAX(id), MIN(id) INTO id_max, id_min
        FROM ip_pool
        WHERE type = 'dynamic' AND realip = IF(real_ip>0,1,0);

    sel_ip: WHILE tries > 0 DO
        SELECT id, INET_NTOA(ip) INTO ip_id, user_ip
            FROM ip_pool
            WHERE uid = 0
                AND id >= (CEIL(RAND() * (id_max - id_min)) + id_min)
                AND id <= id_max
                AND IF(blocked>0, tags LIKE '%,blocked,%', tags NOT LIKE '%,blocked,%')
                LIMIT 1;
        IF( user_ip IS NOT NULL) THEN
            UPDATE ip_pool SET uid = user_id, `release` = UNIX_TIMESTAMP() + 3600
                WHERE id = ip_id AND uid = 0;
            SELECT ROW_COUNT() INTO row_cnt;
            IF( row_cnt > 0 ) THEN RETURN user_ip; END IF;
            SET tries = tries - 5;
        END IF;
        SET tries = tries - 1;
    END WHILE;

END$$
DELIMITER ;

COA надо когда он заблокирован выдавать IP из пула (динамичиского) с тегом blocked - а когда он оплачивает, возвращать его статистический айпи.

Рекомендую переделать на один пул и слать просто l4-redirect или через ipset рулить. Ну вот представь сделают фикс COA. У абонента заканчивается тариф, его блокирует отправляет COA disconect этому юзеру. А юзер то пока не запросит новый IP будет считать что интернет отвалился, начнутся звонки в ТП. Реально не понимаю удобство с разными пулами. Есть уже хорошие рабочие конфиги на форуме под один пул
2  Главная категория / Nodeny 50 / Re: freeradius 3 : 06 Марта 2018, 09:34:27
Так пробовал изначально, не помогло. В дебаге радиуса не вижу попыток выполнять sql запрос, и не могу найти в документации описания Acct-Status-Type = Stop


Если кому нужно рабочий пример для freeradius3
Код:
sql {
    driver = "rlm_sql_mysql"
    mysql {
        warnings = auto
    }
    server = "localhost"
    port = 3306
    login = "login"
    password = "pass"
    radius_db = "db_name"
        authorize_check_query = "call radcheck('%{User-Name}')"
        authorize_reply_query = "call radreply('%{User-Name}', 'accel')"
        accounting {
                reference = "%{tolower:type.%{Acct-Status-Type}.query}"
                type {
                        start {
                                query = "call radupdate('%{User-Name}','%{Framed-IP-Address}','nas=%{NAS-IP-Address}')"
                        }
                        stop {
                                query = "call radstop('%{Framed-IP-Address}')"
                        }
                        interim-update {
                                query = "call radupdate('%{User-Name}','%{Framed-IP-Address}','nas=%{NAS-IP-Address}')"
                        }
                }
        }
        post-auth {
                query = "call radupdate('%{User-Name}','%{reply:Framed-IP-Address}','nas=%{NAS-IP-Address}')"
        }
}

post-auth можете закоментить в site-enable и тогда не будет лишний раз вызывать radupdate


Сама процедура у меня выглядит так для ipoe
Код:
CREATE PROCEDURE radstop(IN aip VARCHAR(16))
  BEGIN
    DECLARE user_id INT;
    DECLARE start_at INT;
    DECLARE end_at INT;
    DECLARE auth_properties VARCHAR(255);

    SELECT uid, v_ips.start, v_ips.last, properties INTO user_id, start_at, end_at, auth_properties FROM v_ips WHERE ip = aip LIMIT 1;
    DELETE FROM auth_now WHERE ip = aip LIMIT 1;
    IF (start_at AND start_at > 0) THEN
      INSERT INTO auth_log (uid, ip, start, end, properties) VALUES (user_id, INET_ATON(aip), start_at, end_at, IF(auth_properties!='',auth_properties,properties));
    END IF;
  END;

3  Главная категория / Модули NodenyPlus / Re: ping server : 04 Февраля 2018, 14:28:12
В предыдущем вопросе разобрался, подскажите можно ли несколько пингсерверов запустить на каждом nas?
4  Главная категория / Модули NodenyPlus / Re: ping server : 04 Февраля 2018, 13:19:10
Сорри, решил вопрос)
5  Главная категория / Ревизии / Re: rev 267 : 12 Июня 2017, 15:02:52
Патч актуален для последней версии биллинга ?
С тех пор вопрос решен, патч на текущий момент актуален ? Из коробки планируется или уже работает ?
Привет, я посмотрел последнюю версии модуля кредита, если я все верно понял по коду, то возможность взять кредит для замороженной услуги есть, но я не устанавливал не пробовал) Т.е. последняя версия модуля кредита должна работать так же как с моим патчем на старую версию
6  Главная категория / Nodeny Plus / Re: Nodeny plus + Debain + Accel-ppp : 11 Марта 2017, 22:16:25
Так, чтоб уточнить: set_auth на прямую не вызывает state_on в coa. noserver мониторит таблицу юзеров и как только там что-либо (по дефолту только параметры авторизации) меняется - вызывается соответствующая процедура в coa. Запусти с ключем -v  и -u (это заставит обрабатывать одного абонента) и посмотри в консоль что посылается. Если команды "шейпинга" посылаются - значит вопрос не к биллингу

Да, теперь понял. Выходит что когда тестировал то сессия на accel закрывалась, а в nodeny юзер был авторизован, делаю авторизацию в accel но повторно coa не высылает шейпер, т.к. состояние авторизации не изменилось.. Как можно решить эту ситуацию?
7  Главная категория / Nodeny Plus / Re: Nodeny plus + Debain + Accel-ppp : 11 Марта 2017, 13:57:25
Подскажите по модулю COA,я его настроил в связке с accel в ipoe режиме, но есть не понятная вещь. После авторизации клиент получает IP от mysql процедуры но не получает шейпер.  Я так понимаю по логике после  CALL set_auth( должен выполниться state_on в coa что бы отправить шейпер, но у меня не выполняет. Как применять шейкер при авторизации клиентом?
8  Главная категория / Nodeny Plus / Re: Попытка перейти на ipfw NAT : 17 Января 2016, 13:29:39
странно .
у меня есть тазики на которых  pf и  3G+
притом то  uname 9.3

вот например
lagg0  in    227.781 MB/s        227.781 MB/s         1203.180 TB
       out    35.567 MB/s         35.567 MB/s          172.294 TB

pfctl -sn | wc
No ALTQ support in kernel
ALTQ related functions disabled
     245    2649   16773

uname -an 9.3-RELEASE-p2 FreeBSD 9.3-RELEASE-p2


как перестает пропускать ?. что происходит ?
top -SHPi
netstat -w1
systat -ifstat
netstat -m

покажите.


netstat -m
65885/19495/85380 mbufs in use (current/cache/total)
65879/8751/74630/524288 mbuf clusters in use (current/cache/total/max)
65879/8745 mbuf+clusters out of packet secondary zone in use (current/cache)
0/3353/3353/262144 4k (page size) jumbo clusters in use (current/cache/total/max)
0/0/0/131072 9k jumbo clusters in use (current/cache/total/max)
0/0/0/65536 16k jumbo clusters in use (current/cache/total/max)
148345K/35787K/184133K bytes allocated to network (current/cache/total)
0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters)
0/0/0 requests for mbufs delayed (mbufs/clusters/mbuf+clusters)
0/0/0 requests for jumbo clusters delayed (4k/9k/16k)
0/0/0 requests for jumbo clusters denied (4k/9k/16k)
0/0/0 sfbufs in use (current/peak/max)
0 requests for sfbufs denied
0 requests for sfbufs delayed
1108 requests for I/O initiated by sendfile
0 calls to protocol drain routines

last pid: 31739;  load averages:  3.33,  3.36,  3.42                                                                                  up 7+11:32:50  13:27:20
340 processes: 23 running, 267 sleeping, 50 waiting
CPU 0:   1.0% user,  0.0% nice,  5.4% system, 17.7% interrupt, 75.9% idle
CPU 1:   1.5% user,  0.0% nice,  5.9% system, 13.3% interrupt, 79.3% idle
CPU 2:   2.0% user,  0.0% nice,  9.4% system,  8.9% interrupt, 79.8% idle
CPU 3:   2.0% user,  0.0% nice,  9.4% system, 13.8% interrupt, 74.9% idle
CPU 4:   0.5% user,  0.0% nice,  8.4% system,  7.4% interrupt, 83.7% idle
CPU 5:   1.5% user,  0.0% nice,  8.9% system,  9.4% interrupt, 80.3% idle
CPU 6:   3.0% user,  0.0% nice,  7.9% system,  8.4% interrupt, 80.8% idle
CPU 7:   1.5% user,  0.0% nice,  7.4% system, 11.8% interrupt, 79.3% idle
CPU 8:   1.0% user,  0.0% nice,  5.4% system, 23.6% interrupt, 70.0% idle
CPU 9:   3.0% user,  0.0% nice,  7.4% system, 18.2% interrupt, 71.4% idle
CPU 10:  2.0% user,  0.0% nice,  4.4% system, 15.8% interrupt, 77.8% idle
CPU 11:  0.0% user,  0.0% nice,  3.9% system, 23.6% interrupt, 72.4% idle
CPU 12:  4.0% user,  0.0% nice, 15.5% system,  1.0% interrupt, 79.5% idle
CPU 13: 13.3% user,  0.0% nice, 23.2% system,  0.0% interrupt, 63.5% idle
CPU 14:  8.9% user,  0.0% nice, 15.3% system,  0.0% interrupt, 75.9% idle
CPU 15: 26.1% user,  0.0% nice, 20.7% system,  0.0% interrupt, 53.2% idle
Mem: 3920M Active, 1695M Inact, 1325M Wired, 27M Cache, 1656M Buf, 16G Free
Swap: 35G Total, 35G Free

  PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
   11 root       155 ki31     0K   256K RUN     7 160.0H 93.65% idle{idle: cpu7}
   11 root       155 ki31     0K   256K RUN     0 161.6H 91.16% idle{idle: cpu0}
   11 root       155 ki31     0K   256K RUN     4 159.8H 91.06% idle{idle: cpu4}
   11 root       155 ki31     0K   256K CPU2    2 159.6H 91.06% idle{idle: cpu2}
   11 root       155 ki31     0K   256K CPU6    6 160.0H 88.87% idle{idle: cpu6}
   11 root       155 ki31     0K   256K CPU1    1 162.9H 88.77% idle{idle: cpu1}
   11 root       155 ki31     0K   256K CPU3    3 159.5H 88.09% idle{idle: cpu3}
   11 root       155 ki31     0K   256K RUN     5 159.8H 87.70% idle{idle: cpu5}
   11 root       155 ki31     0K   256K CPU12  12 147.6H 85.35% idle{idle: cpu12}
   11 root       155 ki31     0K   256K CPU11  11 153.0H 84.28% idle{idle: cpu11}
   11 root       155 ki31     0K   256K RUN    13 145.2H 82.86% idle{idle: cpu13}
   11 root       155 ki31     0K   256K RUN    15 145.7H 81.98% idle{idle: cpu15}
   11 root       155 ki31     0K   256K CPU9    9 153.0H 80.76% idle{idle: cpu9}
   11 root       155 ki31     0K   256K CPU14  14 146.1H 80.57% idle{idle: cpu14}
   11 root       155 ki31     0K   256K CPU8    8 153.0H 80.47% idle{idle: cpu8}
   11 root       155 ki31     0K   256K CPU10  10 153.1H 79.88% idle{idle: cpu10}
 8580 root        69  -15   199M   126M RUN    10  73.6H 40.09% ipcad{ipcad}
 8580 root        43  -15   199M   126M CPU3    3  57.8H 38.67% ipcad{ipcad}
   12 root       -92    -     0K   832K WAIT    8  20.6H 21.29% intr{irq266: igb2:que}
   12 root       -92    -     0K   832K CPU10  10  20.5H 19.97% intr{irq268: igb2:que}


netstat -w1
            input        (Total)           output
   packets  errs idrops      bytes    packets  errs      bytes colls
    213208     0     0  128885156     254902     0  277694533     0
    224232     0     0  132601170     257044     0  274306792     0
    220798     0     0  132908178     258221     0  278986623     0
    219639     0     0  131236913     257215     0  277010683     0
    223772     0     0  134660970     268902     0  295640867     0
    233377     0     0  137884396     274461     0  296557311     0
    231269     0     0  136968611     268604     0  286746518     0
    228472     0     0  138051675     267468     0  289345304     0
    234982     0     0  143060491     275357     0  297888122     0
    230557     0     0  140429051     271290     0  292475435     0


name -a
FreeBSD vector-net 9.2-RELEASE-p2 FreeBSD 9.2-RELEASE-p2 #7: Fri Dec  6 13:06:55 EET 2013     ivan@vector-net:/usr/obj/usr/src/sys/NODENY  amd64


Просто выше 750 не поднимает, есть небольшие потери в час пик. По рессурсам сервера запас огромен, веню во всем PF
9  Главная категория / Nodeny Plus / Попытка перейти на ipfw NAT : 17 Января 2016, 10:13:37
Привет всем, могли бы помочь с конфигом фаервола для IPFW что бы он занимался натом?
Хочу перейти на ipfw т.к. pf перестал пропускать более 750Мбит(
Я вот взял пример forum.nodeny.com.ua/index.php?topic=2235.0
Но с net.inet.ip.fw.one_pass=0 перестает работать нат, а net.inet.ip.fw.one_pass=1 не режет скорость.
10  Главная категория / Модули NodenyPlus / Re: Модуль кредита : 03 Ноября 2014, 20:02:42
А как будет выдаваться кредит если в услуге стоит галочка не уходить в минус. Клиент не оплатил услуга удалилась. Теперь клиенту придется сначала взять кредит, а потом добавить нужную услугу?

Чет вы велосипед изобретаете, пользуйтесь возможностью "Заморозка" услуги
Ну так клиент на короткое время хочешь взять кредит именно и не бесплатно.
Пусть берёт. Заморозка это когда на долгий период и если у него деньги на счету есть..а так какой смысл.  В Минус по любому ничего не уходит.
Ну как не уходит? Вот он взял кредит на 2недели к примеру и через 2 недели у него будет минус!
Похоже вы не поняли о какой Заморозке я говорил, о той которая добавилась в последних ревизиях для возможности не ухода в минус. Т.е. услуга уходит в режим ожидания, и когда на счету появляется нужная сумма то она запускается,нужная сумма может появится когда абон пополняет счет, или берет кредит на   нужную сумму (я выкладывал нужный патч). Все работает замечательно
11  Главная категория / Модули NodenyPlus / Re: Модуль кредита : 02 Ноября 2014, 19:34:44
А как будет выдаваться кредит если в услуге стоит галочка не уходить в минус. Клиент не оплатил услуга удалилась. Теперь клиенту придется сначала взять кредит, а потом добавить нужную услугу?

Чет вы велосипед изобретаете, пользуйтесь возможностью "Заморозка" услуги
12  Главная категория / Nodeny Plus / Re: Доработки (В помощь разработчику) : 30 Сентября 2014, 22:50:55
тайм пикер, под последнюю версию которая 287

Так же тайм пикер для карт, так что без яндекс карт не станет нормально
13  Главная категория / Модули NodenyPlus / Re: Модуль TurboSMS : 30 Сентября 2014, 18:38:37
Перестало появляться меню "операции" в инфе клиента, дебаг:

Код:
Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 85.
Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86.
Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86.
Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224.
Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224.

код этих строк:

Код:
 #Adm->chk_privil('Admin')  or last;        my %p = Db->line("SELECT name, AES_DECRYPT(passwd,?) AS pass FROM users WHERE id=?", $cfg::Passwd_Key, $uid);
        %p or last;
        my $message = "login: $p{name} pass: $p{pass}";
        my $phone = $info->{dopdata}{_adr_telefon} or last;
        $phone = $phone->show;
        $phone =~ s/^\s*//;
 
rev 286
Только у меня не работает в 286й ревизии?

Привет, похоже на то что это патчем ломает, посмотри там где у тебя есть в патче  #Adm->chk_privil('Admin')  or last;  
поставь энтер в конце этой строки, и сделай install
14  Главная категория / Nodeny Plus / Re: Реальный IP : 29 Сентября 2014, 18:30:41
Всем привет!
Как запретить всем, кроме суперадминов назначать пользователям реальные ip? спасибо!

Вот патч
15  Главная категория / Nodeny Plus / Re: Дороботки (В помощь разработчику) : 28 Сентября 2014, 20:44:27
Может кому понравится, поменял штуку в которой выбирается дата.
Так же теперь при изменении старта-окончания услуги у клиента, можно выбирать(менять) так же час. Все на скринах
потрібно написати стасеві щоб добавив в коробку ) Улыбающийся
дякую.
поддержу
архив битый
Проверил, не битый.

Вот еще патч просто отображает (Заморожена) вместо 0
Страниц: [1] 2 3 ... 9
Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!