Перейти до

Ubilling + NAS на FreeBSD бортжурнал починаючого адміна


Рекомендованные сообщения

є сенс x86 ставити,

Нема. На сьогодняшній день, i386  з обмеженнями памяті на кернелспейс, на сервері доступу - нонсенс.

 

 

 

 

а так все надав тільки на створення нових користувачів незміг надати права

ну не має ваш юзер права зєднуватись відкись там. Відповідно - нема чим отримувати швидкостя та маки.

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 1,8k
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Вітаю Татко!   

Не так вже й багато   Ход коньом:   # cat /bin/clear_dhcpdlog #!/bin/sh /bin/echo > /var/log/dhcpd.log /usr/local/etc/rc.d/isc-dhcpd restart # chmod a+x /bin/clear_dhcpdlog # crontab -e

http://wiki.ubilling.net.ua/doku.php?id=userstats       Расист? http://wiki.ubilling.net.ua/doku.php?id=userstats

Posted Images

пойдет ?

ну проверьте, че у меня спрашивать :)

 

Хотя глубинный смысл конструкции для меня остается все равно за кадром.

 

cp /var/log/dhcpd.log /opt/dhcpd.log &&

нахeра?

 

 

 

cat /dev/null > /var/log/dhcpd.log

тем более нахeра? (а null не маловато ли будет? возможно стоит попросить еще /dev/zero?) :D

 

Также загадкой остается нужность конструкции && сразу пееред \n в башевом скрипте, но ничего... вечер загадок же.

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
ну не має ваш юзер права зєднуватись відкись там. Відповідно - нема чим отримувати швидкостя та маки.

право має, надав

 

намагаюся  змусити його забіндити собі порт  на білінгу

sockstat -4 -l

тут мускула немає

sockstat -l

тут є але тільки сокет   /tmp/mysql.sock

 

сам намутив, сам розмутив

Відредаговано mgo
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

що за ...

розібрався з базою. 

тепер цікава штука включаю шейпер (розкоментовую в фаєрі)

і на локал не пускає і ще почерез один сайт.

спідтест не відкриває з/без шейпер.

включав нас ще без зєднання до білінга то все летіло, після спідтест пропав зразу :)

Відредаговано mgo
Ссылка на сообщение
Поделиться на других сайтах
Хотя глубинный смысл конструкции для меня остается все равно за кадром.

 

 

Ну как Вы и советовали, висим и читаем с stdin, и когда находим условие, то выполняем  что нужно.И таким способом юзер может  получить айпишку  на любом девайсе при работе opt82+ ICS DHCPD. Работает, и отлично.

На php больше строчек.

 

 

 

нах@ра?

 

ну хватит конечно и mv /var/db/dhcpd/dhcpd* /var/db/dhcpd/trash && /usr/local/etc/rc.d/isc-dhcpd restart

 

На остальное можно не обращать внимание.

Весь глубинный смысл  костыля - это убить dhcpd.leases при поступлении нового запроса из того же порта.

В dhcpd.lease, помимо всего прочего, храниться  client-hostname, уникальный uid dhcp-клиента и mac.

 

Пример записи dhcpd.leases:

 

lease 172.16.32.87 {
  starts 4 2014/10/02 06:42:21;
  ends 5 2014/10/03 06:42:21;
  cltt 4 2014/10/02 06:42:21;
  binding state active;
  next binding state free;
  hardware ethernet e0:cb:4e:95:b5:0f;
  uid "\001\340\313N\225\265\017";
  option agent.circuit-id 0:4:1:38:0:1;
  option agent.remote-id 0:6:78:1d:ba:84:ab:28;
  client-hostname "WR340G";
 
И вот если эту запись не потереть, то перетыкая шнурок на ПК - адрес уже не получишь.
Відредаговано loki
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
зранку на цьому тазіку, що з шейпером не відкриває локал

 

PING 8.8.8.8 (8.8.8.8): 56 data bytes

ping: sendto: No buffer space available

ping: sendto: No buffer space available

ping: sendto: No buffer space available

ping: sendto: No buffer space available

 

ребут, без нарізки поїхали далі.

 

щось криво поставилося?

 

в тазік входить ppoe з 80 мегами

4 гіга оперативи, система 9.2 х64

 

гугл каже реалтек глючить, пробую міняти

Відредаговано mgo
Ссылка на сообщение
Поделиться на других сайтах
netstat -m

Схоже, що мбуф переповнився.

Додати мбуф системі можна командою

sysctl kern.ipc.nmbclusters=100000
Відредаговано L1ght
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
Гугл мабуть краще знає

ну краще не краще але такої чепухи ще не було, флай мовчить, висновок - зробіть порядок з своїм залізом і по інструкції -  буде вам щастя.

 

 

З ріалтеками буває усе Але мбув перевірити не так вже й важко

звичайно перевірив, але уже після ребуту, тому , що до ребуту нет не їхав.

а після нічого  далеко не переповнено.

Зняв наса з бойового чергування і на стенд, поспішився на бойове ставити.

Відредаговано mgo
Ссылка на сообщение
Поделиться на других сайтах

 

 

Флай вам усе скаже з приводу ріалтеків, він їх взагалі за мережеві карти не вважає!

я не про ріалтеки, а взагалі 

два інтела 1000/pro збацав нефонтан але краще отого огризка.

короч весело в  кума як заколдовано все, нічого з одного пінка не їде(

все танці з бубном :facepalm:

Ссылка на сообщение
Поделиться на других сайтах

пробую NAS налаштувати.

зібрав конфіг, усе гут, тикнув ноут -  взлетіли, усе відкриваєм.

 

прикручую білінга, получаю нарізку, табличку 3 і 4.

 

але ппц запити від клієнта не попадають у правила нат.

 

тобто по 12001, 12000 пакети ходять (нарізка)

65535  allow ip from any to any  теж бігають пакети

по 6000, 6001 по нулях.

 

тай правило 6001  from any to (external IP) - тобто від усіх  до зовнішньої адреси

по любасу попадати маєм

 

куди пре пакет? 

як його відловити і пустити на шлях істинний?

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
дивіться другу табличку у фаєрі, по дефолту натяться ті хто є у другїй таблиці.

 

друга табличка то є 172.16.0.0/16

клієнт 172.16.7.2

попадає по любе  під правило.

то перше правило 6000

а 6001 усіх натить хто пре в світ (nat ip from any to ext ip).

 

 

давайте розкажу як я розумію роботу  насу, мене поправите якщо я щось пропускаю.

 

нас стукає на білінг кожен проміжок часу, що є у .юзерь тайм аут

витягує з бази актульні дані по юзерах

рскрипт на основі цих даних засовує адреси і маки юзера по пайпах і табличках

все.

 

а кому ходити в нет кому в кабінет чи ваще наЮх  рулим фаєром.

 

 

що я наблюдаю

юзера адекватно перекидає 47-> 3 i 4 табличках і назад, залежно від стану його рахунку

адекватно ріже швидкість міняє пайпи.

 

що я пропустив?

 

чуйка каже якась дурничка і прямо під носом

але як то водиться муху в оці сусіда бачим за кілометр а у своїм кола невидно  :)

Відредаговано mgo
Ссылка на сообщение
Поделиться на других сайтах

з натом розібрався

тепер незрозуміла  штука

 

/etc/stargazer/dn/*

аналогічно  на білінгу і насі

файл з швидкістю користувача

1     1024:8102

2     1024:8103

3     2048:8104

.....

тобто швидкість вверх попадає не з БД а попадає якийсь лічильник чи тіпа того

як відлагодити?

воно на багу змахує))

 

нас мікротік нарізає адекватно швидкостя.

Ссылка на сообщение
Поделиться на других сайтах

 

 

Схоже на динамічний шейпер.

теж подумав, але динамічний не включав, тай динамічний тут по іншому працює.

тут динамічний вверх не трогає, а по часу міняє вниз

тіпа з 12 ночі до 8 ранку вниз 4

з 8 до 12 вниз 2

запускається перенарізка з крона.

Ссылка на сообщение
Поделиться на других сайтах

Схоже на айді юзера.

Дивіться звіряйте айді та логін юзера з /var/stargazer/allconnect.log

Схоже на те що це саме айді.

 

І покажіть OnConnect, це він передає усе що є у /etc/stargazer/dn*

Відредаговано L1ght
Ссылка на сообщение
Поделиться на других сайтах

звідки айді? userspeeds?

у мене нема 8к юзера))

 

на насі /var/stargazer/allconnect.log  пише сюда з БД швидкість а не оту лобуду.

 

OnConnect з корбки без правок.

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)







:/etc/stargazer # cat OnConnect
#!/usr/local/bin/php
<?php if ( !empty($argv) && $argc == 6 ) {

// Environment:
define('ENVIRONMENT', basename($argv[0]));

// User's login:
if ( isset($argv[1]) ) {
define('LOGIN', $argv[1]);
} else define('LOGIN', NULL);

// User's IP:
if ( isset($argv[2]) ) {
define('IP', $argv[2]);
} else define('IP', NULL);

// User's cash:
if ( isset($argv[3]) ) {
define('CASH', $argv[3]);
} else define('CASH', NULL);

// User's ID:
if ( isset($argv[4]) ) {
define('ID', $argv[4]);
} else define('ID', NULL);

// User's allowed directions:
if ( isset($argv[5]) ) {
define('DIRS', $argv[5]);
} else define('DIRS', NULL);

// Paths:
define('BASEPATH', __DIR__ . '/');
define('SYSTEM', BASEPATH . 'system/');
define('DBPATH', SYSTEM . 'database/');
define('NASPATH', SYSTEM . 'executer/');
define('LOGPATH', SYSTEM . 'log/');

// Driver's extention:
define('EXT', '.drv');

// Turn off PHP error reporting:
error_reporting(0);

// Unset all resived arguments and their amount:
unset($argv, $argc);

// Continue...
include_once(SYSTEM . 'ubilling.cls');
new Ubilling();

} else exit('Only STG can run script!');



/etc/rscriptd # cat OnConnect
#!/bin/sh

LOGIN=$1
IP=$2
CASH=$4
ID=$3


SPEED=`/etc/rscriptd/GetSpeed $LOGIN`
UPSPEED=`/etc/rscriptd/GetUpSpeed $LOGIN`
MAC=`/etc/rscriptd/GetMac $LOGIN`
SCOUNT="Kbit/s"
fwcmd="/sbin/ipfw -q"
arpcmd="/usr/sbin/arp"
cur_date=`date \+\%Y.\%m.\%d`
cur_time=`date \+\%H:\%M:\%S`


# fix user mac to ip
${arpcmd} -S $IP "${MAC}"

#SPEED CONTROL
${fwcmd} pipe `expr $ID + 101` config bw $UPSPEED$SCOUNT queue 32Kbytes
${fwcmd} pipe `expr $ID + 8101` config bw $SPEED$SCOUNT queue 32Kbytes

${fwcmd} table 47 delete $IP

#new shaper
${fwcmd} table 3 add $IP `expr $ID + 101`
${fwcmd} table 4 add $IP `expr $ID + 8101`

# DAY/NIGHT switcher
/bin/echo $SPEED:`expr $ID + 8101` > /etc/stargazer/dn/$LOGIN


# ADD TO LOG
echo "$cur_date $cur_time CONNECT: ID-$ID;LOGIN-$LOGIN;IP-$IP;CASH-$CASH;SPEED-$SPEED;UPSPEED-$UPSPEED,MAC-$MAC" >> /var/stargazer/allconnect.log


другий з НАС

 

 

# ADD TO LOG echo "$cur_date $cur_time CONNECT: ID-$ID;LOGIN-$LOGIN;IP-$IP;CASH-$CASH;SPEED-$SPEED;UPSPEED-$UPSPEED,MAC-$MAC" >> /var/stargazer/allconnect.log

пише в цей лог швидкість з БД

Відредаговано mgo
Ссылка на сообщение
Поделиться на других сайтах

/bin/echo $SPEED:`expr $ID + 8101` > /etc/stargazer/dn/$LOGIN

 

Ось через цей рядок у ОнКоннект записуеться швидкість як ви показали, тобто швидкість:айді юзера.

 

І то є правильно, бо в мене так само

 

В олкоенкт пише правильно тому що туди пишеться 

SPEED-$SPEED;UPSPEED-$UPSPEED

Тобто швидкість завантажування - Speed

Швидкість відправки - Upspeed

 

а в /etc/stargazer/dn/* пишеться тіки Speed:id

Відредаговано L1ght
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

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

  • Схожий контент

    • Від ppv
      Потрібно було витерти одну мережу, всі абоненти з неї були перенесені в іншу. Але світить що 6 IP зайняті, хоча вона повністю вільна.
       
      ID    Мережа/CID           RВсього IP        Використано IP ▾           Вільно IPСервіс
      6      172.16.70.0/23        506                    6                                       500
       
      Підкажіть як правильно це підчистити щоб видалити мережу.
    • Від sanyadnepr
      Приветствую всех.
      Подскажите пожалуйста где копнуть и нет ли проблемы со стороны протокола взаимодействия сити24 или возможно не учтена необходимая проверка в модуле сити24 в Ubilling, пока писал понял что похоже в проверке payID, но это не точно.  
      Недавно обнаружилось с сити24 начали прилетать дубликаты платежей, в целом платежей мало, два одинаковых запроса Pay с одинаковым transactionID и payID в одну секунду одному платежному ID при этом биллинг "думает" примерно чуть больше минуты и отвечает одним ответом <result>0</result>, сити24 утверждает что ответ они не получили и по протоколу дальше повторяет запросы дублем, биллинг ответ и так по кругу, сити24 спрашивает каким образом с одинаковым payID от сити24 билл продолжает обрабатывать запросы и пополнять абоненту счет раз в 5 минут примерно, на одну и туже сумму, ведь этот payID уже был обработан предполагают сити24 согласно протоколу.
      Конечно есть вопрос к сити24 зачем они дублем присылают два запроса, но они отвечают что эта ситуация учтена в протоколе и проблема на стороне биллинга, потому что он пополняет счет по уже обработанному одинаковому payID.
      При этом transactionID в дублях одинаковый, но с каждым новым дублем разный.
      Если зафаерволить запросы от сити24, но оставить возможность отвечать то после блокировки билл отправляет 2-3 минуты 6 ответов <account>0001</account>  <result>0</result>.
      После снятия блокировки, дубли и платежи нескольких проблемных абонентов прилетают так же по кругу, при этом и с некоторыми новыми пополнениями происходит аналогичная ситуация.
      В openpayz в платежах transactionID и не видно payID.
    • Від nightfly
      Ubilling 1.4.3 rev 9058 The Bladewood Grove
       
      Зміни в структурі БД. alter.ini: нові опції OPHANIMFLOW_ENABLED та OPHANIMFLOW_URLS котрі вмикають та керують інтеграцією з OphanimFlow. alter:ini: нова опція PHOTOSTORAGE_POSTPROCESSING, що вмикає післяобробку зображень при завантаженні в Сховище зображень. alter:ini: нова опція PHOTOSTORAGE_WATERMARK, що вмикає розміщення вотермарки на всіх зображеннях, що завантажуються. alter:ini: нова опція PHOTOSTORAGE_RECOMPRESS, що вмикає зміну компрессії завантажених зображень. alter:ini: нова опція PHOTOSTORAGE_AUTORESIZE, що вмикає автоматичне та лагідне масштабування зображень конячих розмірів. alter:ini: нова опція PHOTOSTORAGE_DRAWIMGINFO, що вмикає вдруковування в зображення відлагоджувальної інформації. alter.ini: нова опція ONDEMAND_CHARTS, що вмикає відкладене завантаження графіків завантаження користувацької смуги. userstats.ini: нова опція OPHANIM_ENABLED, що вмикає інтеграцію OphanimFlow в кабінеті користувача. Модуль Заздрість: тепер авторизаційні дані пристроїв, не відображаються в списку пристроїв. Модуль “Заздрість”: при створенні та редагуванні пристроїв, для полів “пароль” та “enable пароль” тепер використовуються інпути паролів. Модуль “Заздрість”: заздрісним пристроям додано нове поле “Порт”. Тепер в скриптах можна використовувати, відповідний макрос {PORT}. Модуль “Статистика трафіку користувача”: проведено радикальний рефакторинг. Модуль “Статистика трафіку користувача”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Статистика трафіку користувача”: виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Модуль “Статистика трафіку користувача”: додано можливість відображення графіків за останню годину з OphanimFlow. Модуль “Користувачі”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Сховище зображень”: тепер додатково перевіряє завантажувані зображення на тему їх валідності. Модуль “Фінансові операції”: виправлено відображення суми платежів користувача. Remote API: новий виклик ophanimtraff, який просто бере і синхронізує локальну БД з віддаленими джерелами OphanimFlow. Remote API: виклик userbynum тепер також опційно містить поле з “Платіжним ID” користувача. Глобально: у всіх полях вводу паролів, окрім форми входу, тепер відображається елемент керування “показати/приховати” пароль. Кабінет користувача: в модулі “Трафік” додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Кабінет користувача: в модулі “Трафік” виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Кабінет користувача: в модулі “Відеоспостереження” для NVR WolfRecorder замінено розділювач попередньо заповнених даних авторизації. OpenPayz: додано frontend portmonemulti, для отримання платежів від різних контрагентів. Інформацію по контрагентам бере з біллінгу, також використовую розширену інформацію контрагента. Платіжна система в контрагенті мусить бути створена, як PORTMONE 1984tech: додано функціонал генерації RPZ для isc-bind, спасибі @misterromanbush  
      Повний чейнджлог
      Оновлена демка
       

    • Від mac
      Здається, після оновлення PHP 7.4 до PHP 8.2 feesharvester припинив працювати:
       
      /usr/local/bin/curl "http://127.0.0.1/billing/?module=remoteapi&key={SERIAL}&action=feesharvester" <br /> <b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: string - string in {UBPATH}/billing/api/libs/api.fundsflow.php:570 Stack trace: #0 {UBPATH}/billing/modules/remoteapi/feesharvester.php(22): FundsFlow-&gt;harvestFees('2024-01') ...  
      Невеличке розслідування врешті з'ясувало, що це через наявність пробілу у деяких логінах абонентів. Як так сталося? Тому що інколи був неуважно додан трейлінг пробіл до номеру будинка і цей пробіл потрапив до логіну абоненту. Логін абоненту неможливо змінити ніяким чином штатними засобами. Я не розглядаю створення нового абонента для усунення помілки.

      Був обран такий шлях вирішення проблеми. Заміну функції php explode() знайшов у мережі. Мабуть це станеться в нагоді:

       
      diff api.fundsflow.php.bak api.fundsflow.php.new 559c559 < $eachfee = explode(' ', $eachline); --- > $eachfee = preg_split("~(?<!\\\\)(?:\\\\{2})*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(*SKIP)(*F)|\s+~s" , $eachline);  
    • Від Zend
      Продам сабж.
      2 контроллера CA07336-C001, в каждом по одном интерфейсном модуле CA07336-C009 (2 x 1Gbps iSCSI)
      HDD: 24 x 900GB SAS 10K
      Исправен.
      С ним могу продать шкафчик того же вендора.
       
      Стоимость - $4000, торг
       


×
×
  • Створити нове...