Jump to content
Local
mgo

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

Recommended Posts

може база покоцана 

і бекапу свіжого немаю :facepalm:

Share this post


Link to post
Share on other sites

 

і бекапу свіжого немаю :facepalm:

Тут дуже тематичною була б всім відома картинка про бегемота, але не буду ;)

 

Use the Force, Luke!

Share this post


Link to post
Share on other sites

хоч бери і звільни себе з роботи за халатність :).

Share this post


Link to post
Share on other sites

 

хоч бери і звільни себе з роботи за халатність :).

О да, це має бути прикрим самогубством :)

 

halat.jpg

Share this post


Link to post
Share on other sites
О да, це має бути прикрим самогубством

 

все самогубство відміняється, інет до юзерів полетів B)

на швидку руку прикрутив НАСом мікротік, юзерів туда перекинув.

маю час розібратися чому локальний загнувся.

Share this post


Link to post
Share on other sites

як може працювати заворот на себе коли в фаєрі немає жодного активного правила на  заворот? :blink:

Share this post


Link to post
Share on other sites

 

як може працювати заворот на себе коли в фаєрі немає жодного активного правила на  заворот? :blink:

досвід підказує, що - ніяк.

Share this post


Link to post
Share on other sites

проїхався до Коломиї, провітрився  і згадав, що у мене через EoIP зє'днані усі НАСи, а там заворотів хватає! напевно тамже глюк сховався)

Share this post


Link to post
Share on other sites

Нарешті руки дойшли до білінга.

чому зламалось незнаю, а було все так

1-го  серпня (в проміжку 00:00-01:00год, в цей момент знімалась АП)   обновився на новий реліз (0.4.3 rev 2739) все працювало ніби добре.

2-го               міняв згорівший мікротік NAS,  зробив killall stargazer, запустив старгейзер, локальний NAS помер.

при запуску старгейзера спостерігав  як на замінений NAS  Mikrotik заливаються юзери, хто без грошей зразу був відключений  в аксес листі (спостерігав як відключались неактивні на двох мікротіках, а  може у мене був глюк :wacko: )

зробив ребут серверу.

3-го помічаю, що на усіх мікротіках усі юзери пущені в інтернет (неактивні теж).

пробував масовий ресет + пробував руками аксес лист вирубати всім в надії, що включить тільки активних (логіка така, що неактивних сіпати небуде і включати теж небуде.)

всерівно усх включило.

 

якщо юзера роблю активним баланс = кредит і потім назад в мінус, його вирубає на мікротіку.

 

підкажіть з чого почати ремонт зламаного NAS local.

далі по ходу

Edited by mgo

Share this post


Link to post
Share on other sites

 

(логіка така, що неактивних сіпати небуде і включати теж небуде.)

логіка - вірна

 

 

всерівно усх включило.

нереально ж

 

 

підкажіть з чого почати ремонт зламаного NAS local.

шо нам розповідає /var/stargazer/allconnect.log і як виглядає ipfw show?

Share this post


Link to post
Share on other sites

# ipfw show
00025 813187 231576791 allow ip from me to any via bridge0
00026 7067 670162 allow tcp from any to me dst-port 80 via bridge0
00027 4910885 347860585 allow udp from any to any dst-port 53
00060 112 5200 deny ip from any to me dst-port 22,3306,5555,199,4211 1,953 via bce0
06000 54298 7650321 nat 1 ip from table(2) to not table(9) via bce0
06001 2576078 1131725342 nat 1 ip from any to 91.230.25.187 via bce0
12000 162679 12590107 pipe tablearg ip from table(3) to any via bridge0 in
12001 183006 29260561 pipe tablearg ip from any to table(4) via bridge0 out
65535 58736052 15892432738 allow ip from any to any

cat /var/stargazer/allconnect.log

останный ресет для користувача з NAS local



2013-08-09 16:12:31 - [Ubilling] - OnDisconnect started for user `l1ap2_cy8w`:
2013-08-09 16:12:31 - [Executer] - SUCCESS: Removing of IPFW rules done...
2013-08-09 16:12:31 - [Ubilling] - Elapsed time: 0.022 sec.

2013-08-09 16:12:31 - [Ubilling] - OnConnect started for user `l1ap2_cy8w`:
2013-08-09 16:12:31 - [Executer] - SUCCESS: Creation of IPFW rules done...
2013-08-09 16:12:31 - [Ubilling] - Elapsed time: 0.029 sec.

 

 

Share this post


Link to post
Share on other sites

 

# ipfw show

де фінальний deny на table(2)?

 

 

останный ресет для користувача з NAS local

Це для користувача з неактивним рахунком? :blink:

 

Давайно спробуєм для початку увімкнути debug = TRUE в /etc/stargazer/config.ini а також уважно подивитись на ipfw table 4 list та ipfw pipe show

Share this post


Link to post
Share on other sites

UPD: Там доречі ше самі OnConnect/OnDisconnect скрипти обновились суттєво наскільки я памятаю станом на 0.4.3-0.4.4.  Точніше вкурсі jcomm шо він там наворотив. Як варіант я б ше обновився до 0.4.4 current та розгорнув нові заготовки скриптів OnConnect/OnDisconnect оттако, попередньо потушивши stargazer:

# rm /etc/stargazer/Get* && rm /etc/stargazer/On* && rm /etc/stargazer/fullArp.php && rm /etc/stargazer/config
# cd /usr/local/www/apache22/data/billing
# cp -r docs/presets/MikroTik/ /etc/stargazer
# chmod a+x /etc/stargazer/On*

Share this post


Link to post
Share on other sites

 

Це для користувача з неактивним рахунком?

рахунок активний

NAS local  його в інет не пускає.

де фінальний deny на table(2)?

 

відключив після смерті NAS local на всякий, може пустить і юзери перестанут виносити мозок))

зараз усіх перекинув на NAS mikrotik, тут пара тестових юзерів лишилося.

ipfw table 4 list
172.16.0.2/32 8165
172.16.0.3/32 8150
172.16.0.4/32 8186
172.16.0.5/32 8154
ipfw pipe show
08165: 10.000 Kbit/s 0 ms burst 0
q139237 32 KB 0 flows (1 buckets) sched 73701 weight 0 lmax 0 pri 0 droptail
sched 73701 type FIFO flags 0x0 0 buckets 0 active
00154: 2.048 Kbit/s 0 ms burst 0
q131226 32 KB 0 flows (1 buckets) sched 65690 weight 0 lmax 0 pri 0 droptail
sched 65690 type FIFO flags 0x0 0 buckets 0 active
08186: 10.000 Kbit/s 0 ms burst 0
q139258 32 KB 0 flows (1 buckets) sched 73722 weight 0 lmax 0 pri 0 droptail
sched 73722 type FIFO flags 0x0 0 buckets 0 active
00165: 10.000 Kbit/s 0 ms burst 0
q131237 32 KB 0 flows (1 buckets) sched 65701 weight 0 lmax 0 pri 0 droptail
sched 65701 type FIFO flags 0x0 0 buckets 0 active
00186: 10.000 Kbit/s 0 ms burst 0
q131258 32 KB 0 flows (1 buckets) sched 65722 weight 0 lmax 0 pri 0 droptail
sched 65722 type FIFO flags 0x0 0 buckets 0 active
08154: 4.086 Kbit/s 0 ms burst 0
q139226 32 KB 0 flows (1 buckets) sched 73690 weight 0 lmax 0 pri 0 droptail
sched 73690 type FIFO flags 0x0 0 buckets 0 active

cat /var/stargazer/allconnect.log з debug = TRUE

2013-08-09 17:46:13 - [ubilling] - OnDisconnect started for user `l1ap2_cy8w`:

2013-08-09 17:46:13 - [Database] - DEBUG INFO: MySQL Class loaded.

2013-08-09 17:46:13 - [Database] - DEBUG INFO: Connection with database is established...

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER NETWORK ID - `2`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: NAS IP - `172.16.0.1/24`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: NAS TYPE - `local`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: No `nas`.`options` were setted for NAS - 172.16.0.1/24!

2013-08-09 17:46:13 - [Executer] - DEBUG INFO: RScriptD Executer loaded.

2013-08-09 17:46:13 - [Executer] - SUCCESS: Removing of IPFW rules done...

2013-08-09 17:46:13 - [ubilling] - Elapsed time: 0.03 sec.

 

2013-08-09 17:46:13 - [ubilling] - OnConnect started for user `l1ap2_cy8w`:

2013-08-09 17:46:13 - [Database] - DEBUG INFO: MySQL Class loaded.

2013-08-09 17:46:13 - [Database] - DEBUG INFO: Connection with database is established...

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER NETWORK ID - `2`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: NAS IP - `172.16.0.1/24`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: NAS TYPE - `local`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: No `nas`.`options` were setted for NAS - 172.16.0.1/24!

2013-08-09 17:46:13 - [Executer] - DEBUG INFO: RScriptD Executer loaded.

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER REASSIGNED RATE - `NULL`!

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER TARIFF - `ADMINS`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER TARIFF TX RATE - `10000`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER TARIFF RX RATE - `10000`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER MAC - `00:1f:16:17:49:30`;

2013-08-09 17:46:13 - [Executer] - SUCCESS: Creation of IPFW rules done...

2013-08-09 17:46:13 - [ubilling] - Elapsed time: 0.029 sec.

 

Share this post


Link to post
Share on other sites

 

UPD: Там доречі ше самі OnConnect/OnDisconnect скрипти обновились суттєво наскільки я памятаю станом на 0.4.3-0.4.4.

 

то надіюсь вирішить проблеми з  NAS mikrotik, покищо треба підняти  NAS loсal  і  переконатись що білінг нормально фунциклірує

Share this post


Link to post
Share on other sites

 

NAS local  його в інет не пускає.

ну дик чудес не буває - якшо юзера є в табличках і пайпи на них постворювані, значить одне з двох:

1. їм видано лівий дефолтраут

2. вимкнено якогось біса one.pass

 

 

то надіюсь вирішить проблеми з  NAS mikrotik, покищо треба підняти  NAS loсal  і  переконатись що білінг нормально фунциклірує

таки обновитись би - гірше точно не буде

 

 

2013-08-09 17:46:13 - [Database] - DEBUG INFO: No `nas`.`options` were setted for NAS - 172.16.0.1/24!

не впевнений чи так має бути - це точно тре питати в jcomm

 

PS зловісні однако тарифи в 10Кбіт/с =)

Edited by nightfly

Share this post


Link to post
Share on other sites
2. вимкнено якогось біса one.pass

Чому не тримати в списку правил фаєрвола щось типу

ipfw enable one_pass

Share this post


Link to post
Share on other sites

 

2013-08-09 17:46:13 - [Database] - DEBUG INFO: No `nas`.`options` were setted for NAS - 172.16.0.1/24!

 

не впевнений чи так має бути - це точно тре питати в jcomm

так то лог локального NAS-у, на BSD, jcomm  майстер по мікротіках вроді, хоча Вам видніше.

 

1. їм видано лівий дефолтраут

 

 

перевірив - той, що треба 172.16.0.1

 

2. вимкнено якогось біса one.pass

 

його включати так  з консолі? 

ipfw enable one_pass

 

${FwCMD}  enable one_pass // з фаєра

 

якщо так ні одне ні інше не допомогло

 

PS зловісні однако тарифи в 10Кбіт/с =)

 

10 Мбіт/с в білінгу писав  :blink:  (10000/10000)

Edited by mgo

Share this post


Link to post
Share on other sites

2 major12

 

Чому не тримати в списку правил фаєрвола щось типу

За замовчуванням net.inet.ip.fw.one_pass=1. Якщо хтось з якихось міркувань його вимикає з якихось конкретних міркувань - він мав би знати навіщо це треба.

 

2 mgo

 

 

так то лог локального NAS-у, на BSD, jcomm  майстер по мікротіках вроді, хоча Вам видніше.

Ну так то всьо шо лежить в docs/presets/mikrotik - його творчість. Я в ній слабо розбираюсь.

 

 

його включати так  з консолі?

sysctl -a | grep "one.pass"

 

 

10 Мбіт/с в білінгу писав  :blink:  (10000/10000)

Точно якась фігня в вас панове відбувається.

Давайте якось швиденько обновляємось до 0.4.4, тушим старгейзер і обновляємо по дорозі скрипти ініціалізації.

Share this post


Link to post
Share on other sites

Всьо. Знайшов баг.

 

Хотфікс:

 

Файл /stc/stargazer/system/executer/rscriptd.drv

 

Оцево:

shell_exec($this->config['fwcmd'] . " pipe " . (ID + 101) . " config bw " . $rate['TX'] . " queue 32Kbytes");
shell_exec($this->config['fwcmd'] . " pipe " . (ID + 8101) . " config bw " . $rate['RX'] . " queue 32Kbytes");

слід замінити на таке:

shell_exec($this->config['fwcmd'] . " pipe " . (ID + 101) . " config bw " . $rate['TX'] . "Kbit/s queue 32Kbytes");
shell_exec($this->config['fwcmd'] . " pipe " . (ID + 8101) . " config bw " . $rate['RX'] . "Kbit/s queue 32Kbytes");
Edited by nightfly

Share this post


Link to post
Share on other sites




sysctl -a | grep "one.pass"
net.inet.ip.fw.one_pass: 1

2013-08-09 17:46:13 - [Database] - DEBUG INFO: No `nas`.`options` were setted for NAS - 172.16.0.1/24!

оця байда мене не тішить, щось у базі не знайшов каже (

 

поскакав по IP адресах 

172.16.0.4 працює, після багфікса на неї став, зрадів))

172.16.0.2 і 172.16.0.3 ні

Edited by mgo

Share this post


Link to post
Share on other sites

 

оця байда мене не тішить, щось у базі не знайшов каже (

Тимур каже шо подивиться шо то  таке.

 

 

172.16.0.4 працює, після багфікса на неї став, зрадів))

Вже добре

 

 

172.16.0.2 і 172.16.0.3 ні

ipfw table 4 list та ipfw pipe show  шо на це кажуть?

Share this post


Link to post
Share on other sites




ipfw table 4 list
172.16.0.2/32 8186
172.16.0.3/32 8165
172.16.0.4/32 8186
172.16.0.5/32 8154


ipfw pipe show
08165: unlimited 0 ms burst 0
q139237 32 KB 0 flows (1 buckets) sched 73701 weight 0 lmax 0 pri 0 droptail
sched 73701 type FIFO flags 0x0 0 buckets 0 active
00154: unlimited 0 ms burst 0
q131226 32 KB 0 flows (1 buckets) sched 65690 weight 0 lmax 0 pri 0 droptail
sched 65690 type FIFO flags 0x0 0 buckets 0 active
08186: unlimited 0 ms burst 0
q139258 32 KB 0 flows (1 buckets) sched 73722 weight 0 lmax 0 pri 0 droptail
sched 73722 type FIFO flags 0x0 0 buckets 0 active
00165: unlimited 0 ms burst 0
q131237 32 KB 0 flows (1 buckets) sched 65701 weight 0 lmax 0 pri 0 droptail
sched 65701 type FIFO flags 0x0 0 buckets 0 active
00186: unlimited 0 ms burst 0
q131258 32 KB 0 flows (1 buckets) sched 65722 weight 0 lmax 0 pri 0 droptail
sched 65722 type FIFO flags 0x0 0 buckets 0 active
08154: unlimited 0 ms burst 0
q139226 32 KB 0 flows (1 buckets) sched 73690 weight 0 lmax 0 pri 0 droptail
sched 73690 type FIFO flags 0x0 0 buckets 0 active

Share this post


Link to post
Share on other sites

Несподіванний ефект :blink:

Тепер в них швидкість взагалі не ріжеться. Точно нормально rscriptd.drv поправили?

Share this post


Link to post
Share on other sites

мммм ніби так, хоча у мене може бути 2+2=5



 cat rscriptd.drv
[M u+<?php if ( !defined('ENVIRONMENT') ) exit('Only STG can run script!' . "\n");

    class Executer {

        // Recived data from `ubilling.cls`:
        private $log;
        private $config;
        private $database;

        // Constructor:
        public function __construct($data) {
            // Put all recived data to specified vars:
            foreach ($data as $key => $value) {
                $this->$key = $value;
            }
            // Write log message, that class is loaded:
            $this->log->message(__CLASS__, "RScriptD Executer loaded.", "debug");
        }

        // 1. OnConnect:
        public function OnConnect() {
            // User's TX & RX:
            $rate = $this->database->get_user_rate();
            // ARP:
            shell_exec($this->config['arpcmd'] . ' -S ' . IP . ' ' . $this->database->get_user_mac());
            // Speed control:
            shell_exec($this->config['fwcmd'] . " pipe " .  (ID + 101) . " config bw " . $rate['TX'] . "Kbit/s queue 32Kbytes");
            shell_exec($this->config['fwcmd'] . " pipe " . (ID + 8101) . " config bw " . $rate['RX'] . "Kbit/s queue 32Kbytes");
            // Shaper:
            shell_exec($this->config['fwcmd'] . " table 3 add " . IP . " " . (ID + 101));
            shell_exec($this->config['fwcmd'] . " table 4 add " . IP . " " . (ID + 8101));
            shell_exec($this->config['fwcmd'] . " table 47 delete " . IP);
            // Day/Night switcher:
            file_put_contents(BASEPATH . "dn/" . LOGIN, $rate['RX'] . ":" . (ID + 8101), LOCK_EX);
            shell_exec("/bin/chmod 777 " . BASEPATH . "dn/" . LOGIN);
            $this->log->message(__CLASS__, "Creation of IPFW rules done...", "success");
        }

        // 2. OnDisconnect:
        public function OnDisconnect() {
            // Delete old pipes:
            shell_exec($this->config['fwcmd'] . " pipe " .  (ID + 101) . " delete");
            shell_exec($this->config['fwcmd'] . " pipe " . (ID + 8101) . " delete");
            // Delete from shaper:
            shell_exec($this->config['fwcmd'] . " table 3 delete " . IP . " " .  (ID + 101));
            shell_exec($this->config['fwcmd'] . " table 4 delete " . IP . " " . (ID + 8101));
            shell_exec($this->config['fwcmd'] . " table 47 add " . IP);
            // Day/Night switcher:
            shell_exec("/bin/rm " . BASEPATH . "dn/" . LOGIN);
            $this->log->message(__CLASS__, "Removing of IPFW rules done...", "success");
        }
    }
?>

Edited by mgo

Share this post


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 NETOS
      Всем привет. Подскажите пожалуйста, хочу перенести биллинг на другой сервер с другим ip. Что перенести кроме самой базы и конфигов? И ещё как с платежными системами будет установлена связь? На что может повлиять смена ip сервера?
    • By 9at0z
      Подскажите, бекапы делаются уже в 500мб, хотя дет. статистику и т.д не ведем, куда копать?
       
      mlg_postauth  3134948  309.78 Mb - ее можно чистить? скрипт напишите?
    • By garry128
      Помогите, пожалуйста.
      Рухнул биллинг, не раздаёт инет.
      Удалённый доступ есть. Работу оплачу.
      Просто очень срочно  надо восстановить
    • By pLastUn
      Приветствую коллеги.
      Имеется сеть небольшого провайдера в нескольких бизнес-центрах,  NAS и маршрутизация на микротиках. Исключительно юр-лица. 
      От каждого клиента отдельный VLAN по свичам и на  NAS-е в отдельный bridge, т.е. на Микроте у каждого клиента отдельный интерфейс.
      Поставил последний стабильный Ubilling 1.0.7 rev 7462 на FreeBSD 12.1.
      Из биллинга  в микротике для управления используются простые очереди и файрвол листы. 
      Все красиво работает, когда клиенту выдается IP из ./30 подсети, этот же IP попадает в листы на микротике и в Target очередей.
      Но как быть, если клиенту надо отдать /29 или больше, и еще есть клиенты, которым отдаются  серые /24. Есть ли возможность выдать клиенту подсеть, и в микроте в листах и очередях получать эту подсеть а не IP?
      Перечитав оффдоки и форум не нашел никакого решения. Существует модуль юр.лица, может быть он реализует необходимый функционал?
       
      Пару мелких вопросиков: какие еще переменные можно использовать в /etc/stargazer/system/executer/tpls/*.ini кроме IP и LOGIN ?
      В диалоге Расширенная настройка MikroTik  - Users Interface и Graph Interface где используются?  Для ссылки на графики используется имя очереди оно же логин клиента.  Так же клиенту можно добавить произвольные поля. Можно ли данные из Users Interface  и из произвольных полей  использовать в ...tpls/*.ini  ?
       
      Буду благодарен за любые мысли по этому поводу.
       
      З,Ы, В процессе  осваивания наткнулся на баг: если клиенту присвоить порт на свиче, а потом удалить клиента, порт остается занятым и нового клиента на него не повесить и как освободить порт не нашел. Создал клиента с логином как у удаленного, удалил порт со свича, потом удалил клиента.
       
       
       
       
       
       
    • By NETOS
      Здравствуйте! Ребят, подскажите почему периодически отваливается интернет у некоторых абонентов? На графике Queues этого абонента 0 пакетов. Как только нажму ресет, сразу пакеты начинают бегать. NAS настроен по инструкции через API: http://wiki.ubilling.net.ua/doku.php?id=mikrotikapi
       
×