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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
  Начало Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2 3 ... 6
1  Главная категория / Модули NodenyPlus / Re: EASYPAY разнесение платежей по разным получателям : 24 Июня 2021, 18:29:14
да все вірно цого теба створити
2  Главная категория / Модули NodenyPlus / Re: EASYPAY разнесение платежей по разным получателям : 14 Июня 2021, 18:12:19
Код:
my $use_BankingDetails = 1; # 1: использовать банковские реквизиты, 0 - нет
my $bankdetails_dopfield = '_easypay'; # имя допполя, в зависмости от которого разные банковские реквизиты
# Значение допполя → банковские реквизиты

і далі по коду все що потрібно.....
3  Главная категория / Модули NodenyPlus / Re: EASYPAY разнесение платежей по разным получателям : 12 Июня 2021, 14:04:08
День добрий!!!

В тому модулі що доступний для купівлі вже є такий функціонал.
4  Главная категория / Модули NodenyPlus / Re: ping server : 14 Января 2020, 16:56:30
Цитировать
error: wrong regexp in pingserver.cfg. Ping result:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ тут відповідь на ваше питання файл pingserver.cfg
Как бы я уже дргадаля. Но где собака порылась?. Менял bin на sbin.
FreBSD 12.1 S.

у мене лінукс
# регулярное выражение, позволяющее вычленить потери в ответе ping
regexp       => '(\d+)% packet loss',

у вас буде по іншому
5  Главная категория / Модули NodenyPlus / Re: ping server : 14 Января 2020, 10:52:13
А почему получаеться порт 8888? Я вроде бы уже назначил руками 8081.
настройки многих модулей ядра теперь задаются в вебинтефейсе
Я знаю. Но все по пингсерверу по умолчани.
в файлу create.pingserver.cfg:
Цитировать
port => 8888,
Исправил.
Все равно ошибка. При пинге из билинга:
Цитировать
Start

Слушаем порт 8081

[127.0.0.1:30874] Header:
  connection    = 'TE, close'
  content-type  = 'text/xml'
  host          = '127.0.0.1:8081'
  query         = 'cmd=ping&timeout=2&count=100&ip=10.1.1.2'
  te            = 'deflate,gzip;q=0.3'
  uri           = '/'
  url           = '/?cmd=ping&timeout=2&count=100&ip=10.1.1.2'
  user-agent    = 'WebNoDeny'

[127.0.0.1:30874] Query:
  cmd      = 'ping'
  count    = '100'
  ip       = '10.1.1.2'
  timeout  = '2'

[127.0.0.1:30874] Отправляем: HTTP/1.1 200 OK
Pragma:no-cache
Cache-Control:no-store
Content-Type:text/html; charset=utf-8
Content-Length:24

cookie: 339-861184120251

/bin/ping -q -n -i0.001 -c 100 -t 2 10.1.1.2 2>&1

[127.0.0.1:30874] close connection 127.0.0.1:30874

[127.0.0.1:30874] close connection 127.0.0.1:30874



[127.0.0.1:60834] Header:
  connection    = 'TE, close'
  content-type  = 'text/xml'
  host          = '127.0.0.1:8081'
  query         = 'cmd=cookie&cookie=339-861184120251'
  te            = 'deflate,gzip;q=0.3'
  uri           = '/'
  url           = '/?cmd=cookie&cookie=339-861184120251'
  user-agent    = 'WebNoDeny'

[127.0.0.1:60834] Query:
  cmd     = 'cookie'
  cookie  = '339-861184120251'

[127.0.0.1:60834] Отправляем: HTTP/1.1 200 OK
Pragma:no-cache
Cache-Control:no-store
Content-Type:text/html; charset=utf-8
Content-Length:52

error: wrong regexp in pingserver.cfg. Ping result:

[127.0.0.1:60834] close connection 127.0.0.1:60834

[127.0.0.1:27521] Header:
  connection    = 'TE, close'
  content-type  = 'text/xml'
  host          = '127.0.0.1:8081'
  query         = 'cmd=cookie&cookie=339-861184120251'
  te            = 'deflate,gzip;q=0.3'
  uri           = '/'
  url           = '/?cmd=cookie&cookie=339-861184120251'
  user-agent    = 'WebNoDeny'

[127.0.0.1:27521] Query:
  cmd     = 'cookie'
  cookie  = '339-861184120251'

[127.0.0.1:27521] Отправляем: HTTP/1.1 200 OK
Pragma:no-cache
Cache-Control:no-store
Content-Type:text/html; charset=utf-8
Content-Length:52

error: wrong regexp in pingserver.cfg. Ping result:

[127.0.0.1:27521] close connection 127.0.0.1:27521

[127.0.0.1:19153] Header:
  connection    = 'TE, close'
  content-type  = 'text/xml'
  host          = '127.0.0.1:8081'
  query         = 'cmd=cookie&cookie=339-861184120251'
  te            = 'deflate,gzip;q=0.3'
  uri           = '/'
  url           = '/?cmd=cookie&cookie=339-861184120251'
  user-agent    = 'WebNoDeny'

[127.0.0.1:19153] Query:
  cmd     = 'cookie'
  cookie  = '339-861184120251'

[127.0.0.1:19153] Отправляем: HTTP/1.1 200 OK
Pragma:no-cache
Cache-Control:no-store
Content-Type:text/html; charset=utf-8
Content-Length:52

error: wrong regexp in pingserver.cfg. Ping result:

[127.0.0.1:19153] close connection 127.0.0.1:19153

[127.0.0.1:40261] Header:
  connection    = 'TE, close'
  content-type  = 'text/xml'
  host          = '127.0.0.1:8081'
  query         = 'cmd=cookie&cookie=339-861184120251'
  te            = 'deflate,gzip;q=0.3'
  uri           = '/'
  url           = '/?cmd=cookie&cookie=339-861184120251'
  user-agent    = 'WebNoDeny'

[127.0.0.1:40261] Query:
  cmd     = 'cookie'
  cookie  = '339-861184120251'

[127.0.0.1:40261] Отправляем: HTTP/1.1 200 OK
Pragma:no-cache
Cache-Control:no-store
Content-Type:text/html; charset=utf-8
Content-Length:52

error: wrong regexp in pingserver.cfg. Ping result:

[127.0.0.1:40261] close connection 127.0.0.1:40261

[127.0.0.1:27666] Header:
  connection    = 'TE, close'
  content-type  = 'text/xml'
  host          = '127.0.0.1:8081'
  query         = 'cmd=cookie&cookie=339-861184120251'
  te            = 'deflate,gzip;q=0.3'
  uri           = '/'
  url           = '/?cmd=cookie&cookie=339-861184120251'
  user-agent    = 'WebNoDeny'

[127.0.0.1:27666] Query:
  cmd     = 'cookie'
  cookie  = '339-861184120251'

[127.0.0.1:27666] Отправляем: HTTP/1.1 200 OK
Pragma:no-cache
Cache-Control:no-store
Content-Type:text/html; charset=utf-8
Content-Length:52

error: wrong regexp in pingserver.cfg. Ping result:

[127.0.0.1:27666] close connection 127.0.0.1:27666

Где порытся?

error: wrong regexp in pingserver.cfg. Ping result:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ тут відповідь на ваше питання файл pingserver.cfg
6  Главная категория / Nodeny Plus / Re: DHCP + Opt82 + Radius : 13 Ноября 2019, 14:16:40

Спасибо, будем разбираться.
Подскажите, еще, какие радиус атрибуты вы передаете?

Я планирую, передавать гостевой сервис, с редиректом на заглушку, и через модуль CoA активировать следующий сервис с тарифом.
В верную сторону смотрю?
[/quote]

Код:
/etc/freeradius/3.0/mods-available# cat sql
sql {
    driver = "rlm_sql_mysql"
    mysql {
        warnings = auto
    }
    server = "localhost"
    port = 3306
    login = "nodeny"
    password = "hardpass"
    radius_db = "nodeny"

    authorize_check_query = "call radcheck('%{User-Name}')"
    authorize_reply_query = "call radreply('%{User-Name}','%{DHCP-Agent-Remote-Id}','%{DHCP-Agent-Circuit-Id}')" ####, '%{User-Password}')"

    accounting {
        reference = "%{tolower:type.%{Acct-Status-Type}.query}"
        type {
            start {
                query = "call radupdate('%{User-Name}','%{Framed-IP-Address}',\
                        'user=%{Calling-Station-Id};nas=%{NAS-IP-Address}','%{Acct-Session-Id}',\
                '%{DHCP-Agent-Remote-Id}','%{DHCP-Agent-Circuit-Id}',\
                (%{%{Acct-Input-Gigawords}:-0} * POWER(2, 32)) + %{%{Acct-Input-Octets}:-0},\
                (%{%{Acct-Output-Gigawords}:-0} * POWER(2, 32)) + %{%{Acct-Output-Octets}:-0})"
            }
            interim-update {
                query = "${..start.query}"
            }
            stop {
                query = "call radstop('%{User-Name}')"
            }
        }
    }

    post-auth {
                query = "call radupdate('%{User-Name}','%{Framed-IP-Address}',\
                        'user=%{Calling-Station-Id};nas=%{NAS-IP-Address}','%{Acct-Session-Id}',\
                '%{DHCP-Agent-Remote-Id}','%{DHCP-Agent-Circuit-Id}',\
                (%{%{Acct-Input-Gigawords}:-0} * POWER(2, 32)) + %{%{Acct-Input-Octets}:-0},\
                (%{%{Acct-Output-Gigawords}:-0} * POWER(2, 32)) + %{%{Acct-Output-Octets}:-0})"
    }
}


Код:
[ipoe]
verbose=1
level=5

username=lua:username
password=ipoe
unit-cache=0
lua-file=/etc/accel-ppp.lua
lease-time=120 #120   #60
renew-time=90  #30
max-lease-time=600  #90
attr-dhcp-client-ip=Framed-IP-Address
gw-ip-address=10.111.0.1/20
#### guest ip network
#gw-ip-address=172.16.0.1/20
### redirect
attr-l4-redirect=L4-Redirect
attr-l4-redirect-ipset=L4-Redirect-ipset
#attr-l4-redirect-table=L4-Redirect-table
#l4-redirect-ipset=l4
#L4-Redirect-table=4051
####
proxy-arp=1
shared=1
ifcfg=1
mode=L2
start=dhcpv4
interface=re:ens160
vlan-mon=re:ens160,4080
vlan-timeout=60
vlan-name=%I.%N
#agent-remote-id=accel-ppp
attr-dhcp-opt82=DHCP-Option82
attr-dhcp-opt82-remote-id=DHCP-Agent-Remote-Id
attr-dhcp-opt82-circuit-id=DHCP-Agent-Circuit-Id

Я роблю таким чином, всі по замовчуванню заблоковані, відразу іх завертає на заглушку, потім спрацьовує модуль СОА і робить все так як вказано в обліковому запису. як на мене так менше мороки.
Модуль СОА запускається таким чином
/usr/bin/perl /usr/local/nodeny/noserver.pl -a -i -g=coa.cfg.pm -d &

В цьому позитивно, якщо втрачається зв'язок з радіусом то клієнти працюють і не відвалюються, і якщо зв'язок відновлено то відновлюється авторизація, і ніби не виникає момент що сесії на брасі є а в білінгу нема.

ось десь так воно робить. Авторизує по маку ону та маку олт
7  Главная категория / Nodeny Plus / Re: DHCP + Opt82 + Radius : 12 Ноября 2019, 23:43:11

поделитесь своими радиус-процедурами для accel, radreply/radupdate_ipoe
Спасибо! Улыбающийся
[/quote]

Код:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `radreply`(IN login VARCHAR(64), IN r_id VARCHAR(64), IN c_id VARCHAR(64))
    DETERMINISTIC
BEGIN
DECLARE usr_id INT;
  DECLARE usr_ip VARCHAR(15) DEFAULT NULL;
  DECLARE add_attr MEDIUMTEXT;
  DECLARE line MEDIUMTEXT;
  DECLARE i INT DEFAULT 1;
  DECLARE usr_mac VARCHAR(12);
  DECLARE c_ID_m  VARCHAR(12) DEFAULT NULL;
  DECLARE r_ID_m  VARCHAR(12) DEFAULT NULL;
 
 SELECT REPLACE(c_id,'0x', '') INTO c_ID_m;   
 SELECT REPLACE(r_id,'0x', '') INTO r_ID_m;
 
 
    SELECT REPLACE(login, ':', '') INTO usr_mac;
    SELECT uid INTO usr_id FROM mac_uid WHERE device_mac=r_ID_m AND device_port=c_ID_m AND (mac=usr_mac OR (oneconnect>0 AND device_mac<>''));
    SELECT radius_attr INTO add_attr FROM users_services WHERE uid=usr_id AND tags LIKE '%,inet,%' LIMIT 1;
   
    IF usr_id IS NOT NULL AND usr_id>0 THEN
   
    SELECT get_ip(usr_id) INTO usr_ip;
        UPDATE mac_uid SET ip=0 WHERE ip=INET_ATON(usr_ip) AND uid<>usr_id;
        UPDATE mac_uid SET mac=usr_mac, ip=INET_ATON(usr_ip), time=UNIX_TIMESTAMP() WHERE device_mac=r_ID_m AND device_port=c_ID_m AND (mac=usr_mac OR (oneconnect>0 AND device_mac<>''));
        SELECT NULL, login, 'Framed-IP-Address', usr_ip, '=';
attr_loop:  WHILE TRUE DO
    SELECT strSplit(add_attr, '
', i) INTO line;
    IF LENGTH(line) = 0 OR i > 20 THEN LEAVE attr_loop; END IF;
    IF line LIKE '%+=%' THEN
        SELECT NULL,login,strSplit(line, '+=', 1),REPLACE (strSplit(line, '+=', 2),'\r',''),'+=';
    ELSEIF line LIKE '%=%' THEN
        SELECT NULL,login,strSplit(line, '=', 1),REPLACE (strSplit(line, '=', 2),'\r',''),'=';
    END IF;
    SET i = i + 1;
            END WHILE;
ELSE
        UPDATE mac_uid SET ip=0 WHERE uid=0 AND time<(UNIX_TIMESTAMP()-360);
        START TRANSACTION;
        SELECT INET_NTOA(ip) INTO usr_ip FROM ip_pool p WHERE uid=0
        AND type='dynamic'
        AND NOT EXISTS (SELECT ip FROM mac_uid WHERE ip=p.ip)
            ORDER BY RAND() LIMIT 1 FOR UPDATE;
        INSERT INTO mac_uid VALUES(
            NULL, usr_mac, INET_ATON(usr_ip), 0, UNIX_TIMESTAMP(), r_ID_m,c_ID_m , 0, '')
        ON DUPLICATE KEY
            UPDATE ip=IF(ip>0,ip,INET_ATON(usr_ip)), time=UNIX_TIMESTAMP(),device_mac=r_ID_m, device_port=c_ID_m;
        COMMIT;
        SELECT INET_NTOA(ip) INTO usr_ip FROM mac_uid WHERE mac=usr_mac;
SELECT NULL, login, 'Framed-IP-Address', usr_ip, '=';
END IF;
END$$
DELIMITER ;

Код:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `radupdate`(IN login VARCHAR(64), IN ipa VARCHAR(16), IN properties VARCHAR(255), IN ses VARCHAR(32), IN r_id VARCHAR(64), IN c_id VARCHAR(64), IN trafin BIGINT(20), IN trafout BIGINT(20))
    DETERMINISTIC
BEGIN
 DECLARE usr_id INT;
 DECLARE usr_mac VARCHAR(12) DEFAULT NULL;
 DECLARE c_ID_m  VARCHAR(12) DEFAULT NULL;
 DECLARE r_ID_m  VARCHAR(12) DEFAULT NULL;
 
 SELECT REPLACE(c_id,'0x', '') INTO c_ID_m;   
 SELECT REPLACE(r_id,'0x', '') INTO r_ID_m;

 
 SELECT REPLACE(login, ':', '') INTO usr_mac;
 SELECT uid INTO usr_id FROM `mac_uid` WHERE device_mac=r_ID_m AND device_port=c_ID_m AND (mac=usr_mac OR (oneconnect>0 AND device_mac<>'')) limit 1;   

 UPDATE ip_pool SET `release` = UNIX_TIMESTAMP() + 300 WHERE ip = INET_ATON(ipa);

 IF( usr_id > 0 ) THEN
 
  CALL set_auth(ipa, CONCAT('mod=ipoe;',REPLACE(properties,':','')));
  INSERT INTO ses_traf SET ses_id=ses, traf_in=trafin, traf_out=trafout, time=UNIX_TIMESTAMP(), uid=usr_id;
 
 END IF;
END$$
DELIMITER ;
Ось десь так у мене працює, авторизує по маку ОЛТ та маку ОНУ, freeradius3, трафік через радіус також рахує
8  Главная категория / Модули NodenyPlus / Re: Честные услуги : 15 Апреля 2019, 13:18:10
Доброго дня!!!

 Як даний модуль буде взаємодіяти з тарифами де активовано "короткі послуги", абонплата за добу?
9  Главная категория / Nodeny Plus / Re: Сбор трафика через Radius : 10 Апреля 2019, 20:19:30
Підкажіть хто небуть, вже весь мозг зірвало. В мене звязка Nodeny+, Mikrotik, Freeradius3 не працює збір трафіка і графіки, перевірив таблицю ses_traf а вона пуста. Раніше запускав радіус з виводом на екран, то радіус писав що uid немає значення по замовчуванню. Можливо щось треба включити в мікротіку, хоча акаунтінг включено, в конфігурації радіуса виклик вункції параметри правильні згідно документації на мікрот.

як, пам'ять мене не підводить Мікротік не шле акаунтінг коли ІРОЕ
10  Главная категория / Модули NodenyPlus / Re: EasyPay : 28 Марта 2019, 20:44:40
Дыра в системе изипей - подтверждается, проверил на нескольких провайдерах.
Абонент действительно может пополнить себе и другим счёт через данный модуль.
Если кто-то победил данную проблемму - расскажите.

В изипей подтвердили возможность доступа к биллингу через логин/пароль.
Надо в модуле организовать авторизацию какую нибудь.

у мене доступ до скрипта ізіпей по логіну паролю
логін пароль передав в ізізпей, вони дали ір адрес з якого буде доступ
зроблено таким чином
Код:
root@bill:/usr/local/nodeny/cgi-bin# cat .htaccess
<Files "easypay.pl">
AuthType Basic
AuthName «Prompt»
AuthUserFile /usr/local/nodeny/cfg/.htpasswd
Require valid-user
Order Deny,Allow
Deny from all
Allow from 93.183.196.26
</Files>
root@bill:/usr/local/nodeny/cgi-bin# ls -la
dr-x------  2 www-data staff  4096 сер 20  2018 .
drwx------ 16 www-data staff  4096 сер 28  2018 ..
-r-x------  1 www-data staff 10894 лип 24  2018 easypay.pl
11  Главная категория / Модули NodenyPlus / Re: Интересует модуль быстрого пополнения : 07 Марта 2019, 16:08:27
Что-то тестировщики не отвечают, кто следующий будет тестировать?
бля, потратил время на написание, а никому не надо(
надо даже очень, только щас нет возможности потестить, с следующего месяца, и куда денег закинуть?
12  Главная категория / Модули NodenyPlus / Re: Интересует модуль быстрого пополнения : 26 Февраля 2019, 09:56:42
Кто-то делал у себя быстрое пополнение через липей и укрпей по логину абонента или персональному платежному коду-без входа в лк.
500 грн
Доброго дня!!!
Коли буде готовий модуль, дайте знати.
Куплю
13  Главная категория / Модули NodenyPlus / Re: Интересует модуль быстрого пополнения : 23 Февраля 2019, 19:20:01
Добрий вечір.
Цікавить, оплачу.

Поясніть, як воно має працювати?
14  Главная категория / Nodeny Plus / Re: Netflow спалил мне моск. : 15 Января 2019, 12:50:12
Написал в личку, что бы не делать чат из переписки.
думаете остальным не интересно?
Відповім тут:

Систему грузить не IPCAD а модуль який рахує трафік.
Відповідно модулю фіолетово хто в нього наливає данні для обрахунку, тут як казав Cell або нарощувати потужність сервера, або розділяти по різним серверам обрахунок трафіку.
Я робив так:
Модуль обрахунку трафіку працює тільки на одному ядрі процесора, тому щоб загрузити потужний сервер
який має досить потужний процесор, дискова підсистема має запас по швидкодії і надійності
використовував віртуалізацію на esxi, одночасно працювало три сервера на яких був запущений модуль коллекторс.
Коли перестало вистачати потужності сервера, перейшов на радіус аккаунтінг.
netflow у мене працював на debian 8 разом з accel-ppp, проблем з ним не було

to sedo26, я б на окремій тестовій машині запустив netflow, щоб провірити чи нічого ні з чим не конфліктує, і вияснити що саме і від чого падає, можливо впливає навантаження


 
15  Главная категория / Nodeny Plus / Re: Netflow спалил мне моск. : 15 Января 2019, 11:34:31
Проц на биллинге AMD X8 FX-8350 8 ядер по 4,0ГГц (только биллинг + подсчет)
С утра и до вечера средняя загрузка проца до 15-20%, но в час пик (ещё нету подсчёта ~1Гига микрота, так как не работает нетфлоу) ipcad грузит до 50-70% и уже не успевает считать.

А load average с 0,6 поднимается до 2.

До 19-00 считает нормально по 2мин. Потом подглючивает подсчёт у уже не правильно показывает. Иногда вылетает модуль коллекторс.
Как-то так.
можете намалювати схему, як ходить трафік, де він обраховується, де розміщена база даних, де працює модуль коллекторс?
Страниц: [1] 2 3 ... 6
Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!