Jump to content

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


Recommended Posts

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

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

 

 

 

 

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

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

Edited by nightfly
Link to post
Share on other sites
  • Replies 1.8k
  • Created
  • Last Reply

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 в башевом скрипте, но ничего... вечер загадок же.

Edited by nightfly
Link to post
Share on other sites
ну не має ваш юзер права зєднуватись відкись там. Відповідно - нема чим отримувати швидкостя та маки.

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

 

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

sockstat -4 -l

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

sockstat -l

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

 

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

Edited by mgo
Link to post
Share on other sites

що за ...

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

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

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

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

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

Edited by mgo
Link to post
Share on other sites
Хотя глубинный смысл конструкции для меня остается все равно за кадром.

 

 

Ну как Вы и советовали, висим и читаем с 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";
 
И вот если эту запись не потереть, то перетыкая шнурок на ПК - адрес уже не получишь.
Edited by loki
Link to post
Share on other sites
зранку на цьому тазіку, що з шейпером не відкриває локал

 

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

 

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

Edited by mgo
Link to post
Share on other sites
netstat -m

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

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

sysctl kern.ipc.nmbclusters=100000
Edited by L1ght
Link to post
Share on other sites
Гугл мабуть краще знає

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

 

 

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

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

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

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

Edited by mgo
Link to post
Share on other sites

 

 

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

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

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

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

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

Link to post
Share on other sites

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

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

 

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

 

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

 

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

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

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

 

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

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

 

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

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

Link to post
Share on other sites
дивіться другу табличку у фаєрі, по дефолту натяться ті хто є у другїй таблиці.

 

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

клієнт 172.16.7.2

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

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

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

 

 

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

 

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

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

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

все.

 

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

 

 

що я наблюдаю

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

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

 

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

 

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

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

Edited by mgo
Link to post
Share on other sites

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

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

 

/etc/stargazer/dn/*

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

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

1     1024:8102

2     1024:8103

3     2048:8104

.....

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

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

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

 

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

Link to post
Share on other sites

 

 

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

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

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

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

з 8 до 12 вниз 2

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

Link to post
Share on other sites

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

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

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

 

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

Edited by L1ght
Link to post
Share on other sites

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

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

 

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

 

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

Link to post
Share on other sites







:/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

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

Edited by mgo
Link to post
Share on other sites

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

 

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

 

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

 

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

SPEED-$SPEED;UPSPEED-$UPSPEED

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

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

 

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

Edited by L1ght
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By nightfly
      Ubilling 1.5.9 rev 9525 The Perfect Lock
       
      Зміни в структурі БД. alter.ini: нова опція GENERATORS_ENABLED, що вмикає модуль моніторингу генераторів. alter.ini: нова опція TB_GENERATORS_NOTIFY, що вмикає нотифікацію про запущені генератори в області сповіщень. alter.ini: нова опція PON_ONU_UNI_STATUS_COMPACT, що вмикає компактне відображення стану мідних портів на ONU. alter.ini: нова опція PONBOXES_MINIMAP, що дозволяє вмикати та вимикати міні-мапу, при редагування ПОН коробки. Новий модуль Єдинорожий телепорт: дозволяє просто та зручно переносити ваш робочий білінг на новий сервер. Модуль “Реєстрація користувачів”: виправлено проблеми сумісності з PHP 8.5. Модуль “Останні події”: викинуто дубову статку на мороз. Askozia PBX: інтеграція була давно непідтримуваною, викинуто на мороз, разом зі всіма опціями. Модуль Mapon: тепер використовує OmaeURL для взаємодії з API. Модуль “Мапа ONU”: в черговий раз покращення навігації між мапою та іншими модулями системи. Новий модуль Генератори: дозволяє моніторити стан генераторів, базово облікувати мотогодини, пальне та планувати ТО. Модуль ПОНізатор: тепер причини останньої дереєстрації ONU можуть визначатись також по серійнику ONU а не тільки за MAC. Модуль “ПОН Коробки”: покращено продуктивність відмальовки зв'язків коробок на мапах. Глобально: проведено чергову спробу зробити логування подій, що відбуваються навколо користувачів, якимось трішки більш притомним. RemoteAPI: новий виклик generators, що запускає скрипти обробки станів генераторів з автоматичним запуском. RemoteAPI: новий виклик gencontrol, для примусового запуску/зупинки генераторів за допомогою зовнішнього ПЗ. Бібліотека UbillingCache: виправлено проблеми сумісності з PHP 8.5. Бібліотека OmaeURL: виправлено проблеми сумісності з PHP 8.5. Бібліотека UbillingTelegram: вся робота з CURL перенесена до одного методу, покращено сумісність з PHP 8.5. Кабінет користувача: виправлено проблеми сумісності з PHP 8.5. UBinstaller: тепер при встановленні попередньо розгортає та конфігурує SphinxSearch. UBinstaller: Зібрано бінарні пакунки для FreeBSD 14.3 amd64 + PHP 8.5. UBinstaller: Зібрано бінарні пакунки для FreeBSD 15.0 amd64 + PHP 8.5.  
      Повний чейнджлог
      Оновлена демка
       
       

    • By maxkorn
      Доброго дня!
      На Mikrotik NAS, створив нову підмережу для клієнтів, все наче порядок, тільки помітив, що не створюються шейпери в Queues для клієнтів цієї підмережі.
      В логах Stargazer наступне:
      2025-12-29 09:05:57 - [Ubilling] - OnConnect started for user `xxasdb5rzm`:
      2025-12-29 09:05:57 - [Executer] - Success: Firewall entry was updated/created
      2025-12-29 09:05:57 - [Executer] - Error: Queue entry can't be updated, missing
      2025-12-29 09:05:57 - [Executer] - Success: Queue_tree entry was updated/created
      2025-12-29 09:05:57 - [Executer] - Success: DHCP entry was updated/created
      2025-12-29 09:05:57 - [Executer] - Success: ARP entry was updated/created
      2025-12-29 09:05:57 - [Ubilling] - QC: 6, elapsed time: 0.064 sec.
       
      При чому, на тому ж мікротіку є ще кілька підмереж, в яких все проходить нормально:
       
      2025-12-29 08:30:17 - [Ubilling] - OnConnect started for user `22zxp7u58x`:
      2025-12-29 08:30:17 - [Executer] - Success: Firewall entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: Queue entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: Queue_tree entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: DHCP entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: ARP entry was updated/created
      2025-12-29 08:30:17 - [Ubilling] - QC: 6, elapsed time: 0.602 sec.
       
      Налаштування аналогічні, в чому може бути причина?
    • By ProstoName
      Змінювали мережеву карту. Здається все поправив. Працює. Але є невелика проблема - після внесення коштів (коли абонент був відключений), інет в нього не з'являється. Тільки після заміни тарифу на інший (і потім вернувши тариф) в абонента з'являється інет. 
    • By ppv
      Собака-посилака перестала відправляти повідомлення. Підкажіть де шукати.
      Можливо таке після пропадання світла, сервер ребутнувся, але я не впевнений. Візуально все працює, крон працює, а повідомлення висять в черзі, смс така ж картина.

    • By camchatix
      Привіт!
       
      Є багато запитів, щоб інтернет не виключався у північ, а скажімо в день (сигналізації, камери під охороною і тд)
      При щоденній абонплаті - як знімати гроші не у 12:00 у північ, а наприклад у 11 годин дня ?

×
×
  • Create New...