Перейти до

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


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

  • Відповіді 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

Опубліковано: (відредаговано)

 

А зачем тогда нужен bridge0?
 
 






ifconfig bridge0 addm ngeth0 addm rl0 up
 

у брідж на BSD я  зливаю усі EoIP і  інтерфейс користвувачів, і даю йому адресу 172.16.0.1      172.16.0.0/16 сеть

на брідж  ставлю DHCP сервер.

 

локальний  НАС має  мережу 172.16.0.0/24 (172.16.0.1-172.16.0.254)

 

на мікротіку теж брідж EoIP з  юзер інтерфейсом 

і тут я бріджу даю 172.16.1.1  172.16.1.0/24 сеть

наступний нас мікротік буде 

                            172.16.2.1  172.16.2.0/24 сеть  і т. д.

 

тобто  мережа на бріджі BSD  включає усі мережі на усіх НАСах

мережа на конкретному НАСі зєднана з  BSD і логічно  розділена від усіх решту НАСів.

 

фаєром на BSD можна рулити кому куда можна.

 

  :blink: аж сам поняв, що написав))

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

 

  :blink:  аж сам поняв, що написав))

теперь всё понятно... Я себе делал несколько vlan'ов на сервере биллинга и на каждом поднимал dhcp (dhcpd_ifaces="vlan2 vlan3 и т.д" ), для каждого прописывал IP 10.0.x.254/24 и связывал с несколькими.. но, с такой схемкой не возможно было поднять UHW, т.к алиасы с глушилкой поднимать на каждый vlan, что было не очень "прикольно"..

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

да.. теоретически вполне может, но на практике я так не реализовывал, поэтому попробуйте... если получиться то себе по такой же схеме всё реализую...

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

уже зліпив майже все, UHW, намед, віртуал хости, на БСД  і фаєр на мікротіку залишилися налаштувати.

по фаэру на мікротіку

 

1.  пускати в інет усіх з адрес листа

2. усіх решту перенаправляти на заглушку білінга,  там уже дивитись чи то UHW чи абон заморожений, чи без грошей.(UHW сторінка перевіряє)

може є готовий  :rolleyes:

хоча самому нагуглити теж цікаво)

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

нет. ip/firewall/filter по умолчанию никого не пускать, пускать только из "ALLOW". ip/firewall/nat создаём правило dst-nat всех из подсети-заглушки на страницу заглушки...

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

 

нет. ip/firewall/filter по умолчанию никого не пускать, пускать только из "ALLOW". ip/firewall/nat создаём правило dst-nat всех из подсети-заглушки на страницу заглушки...
ок.
 а коли гроші у абона закінчилися, його в кабінет тоді відправити добре, щоб він подивився, що баланс менше нуля і догадався заплатити, а не наярював на телефон чо нема інтернету.
тому
 

 

1. пускати в інет усіх з адрес листа ("ALLOW")

 

2. усіх решту перенаправляти на заглушку білінга, там уже дивитись чи то невідомий мак,  чи відомий але  абон заморожений, чи без грошей.(UHW сторінка перевіряє)

якщо мак невідомий абонент побачить сторінку UHW, якщож мак відомий  то відбувається перенаправлення на "вашу" сторінку показати "ВО активували  уже, є інет"

а на місце "вашої" сторінки я ставлю кабінет користувача.

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

 

 

Quote

якщо мак невідомий абонент побачить сторінку UHW, якщож мак відомий  то відбувається перенаправлення на "вашу" сторінку показати "ВО активували  уже, є інет"

 

1. пускати в інет усіх з адрес листа ("ALLOW")

 

2. усіх решту перенаправляти на заглушку білінга, там уже дивитись чи то невідомий мак,  чи відомий але  абон заморожений, чи без грошей.(UHW сторінка перевіряє)

а на місце "вашої" сторінки я ставлю кабінет користувача.

В таком случае правильнее создать 2 dst-nat правла: 1. для сети-заглушки, где src-address: заглушка/CIDR, 2. для сети 172.16.1.0/24, где src-address-list = !ALLOW. А в фаер всё равно поставить drop forward для всего что движется...

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

наси  зєдную на сервер через PPTP - так  нас можна з будьякого місця і адреси підключити. + шифрування з'єднання (EoIP не шифруэться)

уже через PPTP прокидаю EoIP.

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

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

 

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

уже напилено под DHCP и PPPoE, только доку написать осталось + код подчистить  :)

ну а еще багфиксы и т.п...

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

наперед перепрошую за тупість, але, що малювати в налаштування наса "Посилання на Bandwidthd" коли тип насу мікротік?

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

 

Доречі, це ж можна прочитати в контекстній справці
 
я всю доку вздовж і в поперек перелистав - ані слова, а воно під носом))
 
інвалід ІД вивалюється замість графіка(
Відредаговано mgo
Ссылка на сообщение
Поделиться на других сайтах

Ubilling такого не вміє писати взагалі.

Переконайтесь, що за посиланням http://nas/graphs/queue/логінюзера/daily.gif у вас лежать графіки його черги.

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

 

Ubilling такого не вміє писати взагалі.

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

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

Ой, я грешным делом подумал о графике в статистике по трафику, простите...  :facepalm:

 

По поводу отображения могу посоветовать проверить нет ли " / " в конце строки http://nas/graphs/queue

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

Ой, я грешным делом подумал о графике в статистике по трафику, простите...  :facepalm:

Чисто из интереса зырнул в код - там жуткая жуть, испугался, закрыл.

 

Давай может перепишу с нуля этот чудесный "Отчет по трафику" с учетом твоей микротичной реальности на досуге?

Ссылка на сообщение
Поделиться на других сайтах
function web_TstatsNas() {
        $query="SELECT * from `nas` WHERE `bandw`!='' GROUP by `bandw`";
        $allnas=simple_queryall($query);
        if (!empty ($allnas)) {
            $result='<table width="100%" border="0">';
            foreach ($allnas as $io=>$eachnas){
                $bwd=$eachnas['bandw'];
                // НАЗВАНИЕ ИНТЕРФЕЙСА, ГРАФИК КОТОРОГО ПОКАЗЫВАТЬ
		$iface="1 - WAN";
		$ext='.gif';

                $daily=$bwd . '/../' . 'iface/' . $iface . '/daily' . $ext;
                $weekly=$bwd . '/../' . 'iface/' . $iface . '/weekly' . $ext;
                $monthly=$bwd . '/../' . 'iface/' . $iface . '/monthly' . $ext;
                $yearly=$bwd . '/../' . 'iface/' . $iface . '/yearly' . $ext;

                $daygraph=wf_img($daily);
                $weekgraph=wf_img($weekly);
                $monthgraph=wf_img($monthly);
                $yeargraph= wf_img($yearly);
                
                $gday=   wf_modal(__('Graph by day'), __('Graph by day'), $daygraph, '', 530, 230);
                $gweek=  wf_modal(__('Graph by week'), __('Graph by week'), $weekgraph, '', 530, 230);
                $gmonth= wf_modal(__('Graph by month'), __('Graph by month'), $monthgraph, '', 530, 230);
                $gyear=  wf_modal(__('Graph by year'), __('Graph by year'), $yeargraph, '', 530, 230);
                
                $result.='
                    <tr class="row3">
                    <td class="row2">'.$eachnas['nasname'].'</td>
                    <td>'.$gday.'</td>
                    <td>'.$gweek.'</td>
                    <td>'.$gmonth.'</td>
                    <td>'.$gyear.'</td>
                    </tr>
                    ';
            }
            $result.='</table>';
            show_window(__('Network Access Servers'), $result);
        }
    }

Вот моя кривая микротичная реальность... Здесь нужно куда-то всунуть имя интерфейса в мордашку...

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

 

Переконайтесь, що за посиланням http://nas/graphs/queue/логінюзера/daily.gif у вас лежать графіки його черги. 

на мікротіку було виключені графічки зразу, після включення  помилка  лишилася.

 

 

 
По поводу отображения могу посоветовать проверить нет ли " / " в конце строки http://nas/graphs/queue

так усе малюється. Дякую!

 

Ще питання.

Яким чином можна табличку 47 в фаєрі після ребуту оновити. (після ребуту вона порожня)

 

або із синтаксисом допоможіть,  як правильно написати правило :unsure:.

 

${FwCMD} add 30 fwd 127.0.0.1,80 ip from T47*  to not me dst-port 80 via bridge0

 

T47* може  бути  table\(47\)   // тільки якщо після ребуту її оновлювати (проблеми з електрикою = необхідність ребуту)

Т47* або   table\(2\) and (not table\(3\))  // підкажіть який тут синтаксис.

 

 

 

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

 

 

Eсли станете использовать 2 НАСа - то проще будет поднять EoIP, без всяких хитростей..
так НАСсів планується багацько
тому догриз оту байду!
вийшло у мене щось таке

 

створив /etc/rc.local і там при загрузці системи піднімаю EoIP і ліплю його до бріджа.




cat /etc/rc.local
sleep 10  # затримка ато невстигає BSD завантажится і ніфіга не піднімається EoIP

#EOIP id- 0
ngctl mkpeer eiface t ether
ngctl rmhook t
ngctl mkpeer ngeth0: mikrotik_eoip ether 0
ngctl mkpeer ngeth0:ether ksocket out inet/raw/gre
ngctl msg ngeth0:ether.out connect inet/192.168.1.31
ifconfig ngeth0 up
ifconfig ngeth0 ether 00:11:00:22:00:01



ifconfig rl0 up
ifconfig bridge0 addm ngeth0 addm rl0 up

 

cat /etc/rc.conf

defaultrouter="192.168.1.1"
gateway_enable="YES"
hostname="Lan.net"

cloned_interfaces="bridge0"

ifconfig_bce0="inet 192.168.1.22  netmask 255.255.255.0"
ifconfig_bridge0="inet 172.16.0.1  netmask 255.255.255.0"

keymap="ua.koi8-u"
sshd_enable="YES"
# ====== added by UBinstaller ====

#all needed services
mysql_enable="YES"
apache22_enable="YES"
dhcpd_enable="YES"
dhcpd_flags="-q"
dhcpd_conf="/usr/local/etc/multinet/dhcpd.conf"
#dhcpd_ifaces="rl0"
dhcpd_ifaces="bridge0"


# ==========
#access/shape/nat
firewall_enable="YES"
firewall_nat_enable="YES"
dummynet_enable="YES"
firewall_script="/etc/firewall.conf"




на мікротіку юзер інтерфейси  і EoIP теж зліпив у брідж і тепер без  всяких relay  клієнт на мікротіку получає адресу.
 
 

/etc/rc.conf

/etc/firewall.conf

/etc/rc.d/billing

/usr/local/bandwidthd/etc/bandwidthd.conf

/usr/local/www/apache22/data/billing/config/alter.ini

замінив rl0 на  bridge0

 

 

/etc/rc.local - запинается на строке скрипта 

ngctl mkpeer ngeth0: mikrotik_eoip ether 0

ngctl: send msg: No such file or directory

# ifconfig bridge0 && ifconfig ngeth0
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 02:25:92:9a:a1:00
        inet 172.31.0.1 netmask 0xffffff00 broadcast 172.31.0.255
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: ngeth0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 7 priority 128 path cost 55
ngeth0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=28<VLAN_MTU,JUMBO_MTU>
        ether 00:11:00:22:00:01
        media: Ethernet autoselect
        status: no carrier

Как поднять EoIP туннель к Mikrotik'у? 

 

p.s. думаю будет полезно для идентификации баги..

[root@wbilling /boot/kernel]# kldstat
Id Refs Address            Size     Name
 1   48 0xffffffff80100000 e56d68   kernel
 2    3 0xffffffff80f57000 1a3e0    ipfw.ko
 3    2 0xffffffff80f72000 14320    libalias.ko
 4    1 0xffffffff80f87000 4088     ipfw_nat.ko
 5    1 0xffffffff80f8c000 17168    dummynet.ko
 6    1 0xffffffff81012000 5861     if_bridge.ko
 7    1 0xffffffff81018000 3540     bridgestp.ko
 8    1 0xffffffff8101c000 2bdbb    pf.ko
 9    1 0xffffffff81048000 1e2c     ng_socket.ko
10   12 0xffffffff8104a000 8d38     netgraph.ko
11    1 0xffffffff81053000 186a     ng_mppc.ko
12    1 0xffffffff81055000 28c      rc4.ko
13    1 0xffffffff81056000 aa8      ng_tee.ko
14    1 0xffffffff81057000 f54      ng_eiface.ko
15    1 0xffffffff81058000 1b2c     ng_pptpgre.ko
16    1 0xffffffff8105a000 2080     ng_ksocket.ko
17    1 0xffffffff8105d000 13b0     ng_iface.ko
18    1 0xffffffff8105f000 45e8     ng_ppp.ko
19    1 0xffffffff81064000 a2c      ng_tcpmss.ko
20    1 0xffffffff81065000 157c     ng_ether.ko
21    1 0xffffffff81067000 2674     ng_netflow.ko
22    1 0xffffffff8106a000 1b4c     ng_bridge.ko

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

 

 

Как поднять EoIP туннель к Mikrotik'у? 

 

1. Source EoIP Mikrotik,   /usr/ports/net/ng_mikrotik_eoip/

2. Compile and Install ports,   make install clean

3. Refresh after Compile and Install,   rehash (enter), su (enter)

4. Now Configure EoIP on rc.local (startup freebsd) :

 

# EOIP id-xxx

ngctl mkpeer eiface t ether

ngctl rmhook t

ngctl mkpeer ngeth0: mikrotik_eoip ether xxx   > id EoIP

ngctl mkpeer ngeth0:ether ksocket out inet/raw/gre

ngctl msg ngeth0:ether.out connect inet/xxx.xxx.xxx.xxx  > remote address

ifconfig ngeth0 up   > set interface up or active

ifconfig ngeth0 ether xx:xx:xx:xx:xx:xx   > set mac-address

 

Вы делали это?  :)

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

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

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

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

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

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

Вхід

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

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

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

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

    • Від 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, торг
       

    • Від Dilan
      Собственно ищу кто сделает такую связку с нуля под ключ. Тз высылаю в личку. Заранее спасибо.

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