Користувальницькькі налаштування

Налаштування сайту


mikrotikapi

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
mikrotikapi [2019/07/07 01:20]
mikrotikapi [2023/07/11 12:44] (поточний)
nightfly [Увага]
Рядок 1: Рядок 1:
 +====== Увага ======
 +Ця реалізація є застарілою з релізу 0.9.6 і більше не підтримується та не розвивається.
 +{{:alertold.png? |}}
 +\\
 +Використовуйте [[multigen|КупаГен aka MultiGen]]. Він неймовірно крутий і позбавлений усіх дитячих хвороб штурхання <del>трупа ногами</del> Mikrotik в API.
  
 +====== Налаштування MikroTik як NAS ======
 +У цьому розділі докладно описано процедуру зв'язування пристроїв під управлінням RouterOS з білінгом. Для початку вам потрібно:
 +  - Сервер Ubilling:
 +    - Встановлений за допомогою [[setupubinstaller|UBinstaller]]
 +    - Параметри:
 +      - Зовнішній інтерфейс, //igb0// - 63.163.105.6/29
 +      - Локальний інтерфейс, //igb1// - 10.0.0.0.254/24
 +  - Пристрій MikroTik з ОС RouterOS:
 +    - Скинутий до стандартних конфігурацій
 +    - Налаштовані тільки:
 +      - Інтерфейси (WAN - ether1, LAN - bridge1)
 +      - IP інтерфейсів (ether1 - 63.163.105.2/29, bridge1 - 10.0.0.1/24)
 +      - Маршрути (0.0.0.0/0 63.163.105.1, 10.0.0.0.0/24 bridge1)
 +
 +{{ :mikrotik_network_schema.png?650 |}}
 +===== Розширення функціоналу скриптів On* =====
 +Для того, щоб скрипти On* могли керувати пристроями на базі RouterOS, необхідно замінити їх, послідовно виконавши такі команди в консолі сервера Ubilling:
 +<code>
 +# rm /etc/stargazer/Get* && rm /etc/stargazer/On* && rm /etc/stargazer/fullArp.php && rm /etc/stargazer/config
 +# cd /usr/local/www/apache24/data/billing
 +# cp -r docs/presets/MikroTik/ /etc/stargazer
 +# chmod a+x /etc/stargazer/On*
 +</code>
 +**//Важливо://** Скрипти розроблено для керування NAS під керуванням ОС FreeBSD і RouterOS. Запуск скриптів можливий тільки на ОС FreeBSD.
 +
 +Завершуємо заміну, вказавши параметри підключення до бази даних і шляхи до log-файлу у файлі //<</etc/stargazer/config.ini>> //:
 +<code ini config.ini>
 +[database]                 ; Настройки базы данных:
 +dbdriver = mysql             ; Драйвер (только `mysql`).
 +hostname = localhost         ; Хост сервера БД
 +username = root              ; Логин сервера БД
 +password = password          ; Пароль сервера БД
 +database = stg               ; Назва БД Ubilling
 +     
 +[log]                      ; Налаштування логування:
 +enabled = true               ; Чи ввімкнено логування (`true/false`)
 +method = 'file'              ; Метод логування (тільки `file`)
 +path = '/var/stargazer'      ; Шлях до log-файлу
 +file = 'allconnect.log'      ; Ім'я log-файлу
 +debug = false                ; Режим налагодження (`true/false`)
 +     
 +[rscriptd]                 ; Налаштування для RScriptD:
 +rate_val = 'Kbit/s'          ; У чому вимірюється швидкість
 +arpcmd = '/usr/sbin/arp'     ; Команда "arp"
 +fwcmd = '/sbin/ipfw -q'      ; Команда "ipfw"
 +     
 +[mikrotik]                 ; Налаштування для MikroTik:
 +api_port = 8728              ; Порт API
 +rate_val = 'k'               ; У чому вимірюється швидкість
 +attempts = 3                 ; Кількість спроб підключення
 +timeout = 2                  ; Тайм-аут спроби підключення
 +delay = 1                    ; Кількість спроб підключитися
 +</code>
 +
 +===== Модуль "Розширене налаштування MikroTik" =====
 +Починаючи з версії 0.4.3 для кожного сервера доступу MikroTik у модулі "Сервера доступу (NAS)" доступна кнопавка розширеного налаштування, яке, водночас, є мінімальним. Після переходу в модуль і введення у відповідні поля правильних логіна і пароля від сервера доступу побачимо, приблизно, таку картину:
 +
 +{{ :mikrotikextconf1.png?400|}}
 +
 +Тут ми бачимо 2 селектори з інтерфейсами:
 +  * //Інтерфейс користувачів// - ARP і DHCP записи будуть створені з прив'язкою до цього порту пристрою
 +  * //Інтерфейс графіка// - графіки цього інтерфейсу будуть відображені для поточного NAS у модулі "Звіт по трафіку".
 +
 +Далі йде розділ "__//Встановлення поведінки скриптів OnConnect/OnDisconnect для NAS//__". Тут ми ставимо галочки там, де це необхідно. Відповідно скрипти виконуватимуть ті чи інші дії, які ви вказали. Враховуйте, що перед встановленням галочки "//Керувати DHCP//" необхідна попередня [[mikrotikapi#налаштування_mikrotik_dhcp|налаштування MikroTik DHCP]] на інтерфейсі користувачів. Управління PPP - у розробці.
 +
 +Наступний розділ "__//Загальна інформація про стан MikroTik`a//__", який показує uptime, відсоток використання CPU, RAM та іншу інформацію про стан пристрою MikroTik.
 +
 +===== Увімкнення MikroTik API =====
 +Для того, щоб увімкнути підтримку керування пристроєм під управлінням RouterOS через API, виконаємо в терміналі останнього таку команду:
 +<code>
 +/ip service set api port=8728 address=10.0.0.254 disabled=no
 +</code>
 +__//Опис параметрів://__
 +  * //port// - номер API-порту, за яким будемо підключатися до пристрою
 +  * //address// - адреса, з якої дозволено підключення, тобто адреса сервера Ubilling
 +
 +===== Експорт статистики по трафіку =====
 +Для того, щоб споглядати статистику по трафіку в Ubilling, треба увімкнути NetFlow-сенсор (у MikroTik його іменують як Traffic Flow) і налаштувати експорт на сервер Ubilling. Для цього послідовно виконуємо в консолі пристрою з RouterOS такі команди:
 +<code>
 +/ip traffic-flow set enable=yes interfaces=all cache-entries=256k active-flow-timeout=30m inactive-flow-timeout=15s
 +/ip traffic-flow target add address=10.0.0.254:42111 version=5
 +</code>
 +__//Опис параметрів://__
 +  * //cache-entries// - максимальна кількість netflow-потоків, яку одночасно обробляє пристрій
 +  * //address// - адреса:порт, на який буде експортуватись статистика, тобто адреса сервера Ubilling, порт - 42111
 +
 +===== Налаштування фаєрвола MikroTik =====
 +  * Додаємо правило NAT. У нього потраплятимуть усі мережі зі списку адрес, з назвою //"NAT"//:
 +<code>
 +/ip firewall nat add chain=srcnat out-interface="ether1" src-address-list="NAT" action=masquerade
 +</code>
 +
 +  * Додамо мережу, яку будемо NATити, у список //"NAT"//:
 +<code>
 +/ip firewall address-list add address=10.0.0.0/24 list="NAT"
 +</code>
 +
 +* Додамо правила, що дозволяють адресам зі списку //"ALLOW"// ходити з локальної мережі в Інтернет (1) і назад (2), а також забороняють проходження всього трафіку, що не потрапив під вищезазначені правила (3):
 +<code>
 +/ip firewall filter \ 
 +add chain=forward action=accept in-interface="bridge1" out-interface="ether1" src-address-list="ALLOW"
 +add chain=forward action=accept in-interface="ether1" out-interface="bridge1" dst-address-list="ALLOW"
 +add chain=forward action=drop
 +</code>
 +
 +===== Налаштування MikroTik DHCP =====
 +У разі, якщо сервер Ubilling і пристрій MikroTik розташовані в різних широкомовних сегментах, ви можете використовувати DHCP-сервер MikroTik. Для цього потрібно:
 +  * Встановити параметри, що видаються користувачам мережі. А саме: адресу основного шлюзу (gateway), маску підмережі (netmask) і адресу сервера імен (dns):
 +<code>
 +/ip dhcp-server network add address=10.0.0.0/24 gateway=10.0.0.1 netmask=24 dns=10.0.0.1
 +</code>
 +
 +  * Додати DHCP-сервер на інтерфейсі користувачів:
 +<code>
 +/ip dhcp-server add interface="bridge1" address-pool=static-only authoritative=yes
 +</code>
 +
 +  * У модулі "Розширене налаштування MikroTik" для мережі, що налаштовується, поставити галочку навпроти //"Керувати DHCP"//.
 +
 +===== Налаштування MikroTik PPPoE =====
 +У разі, якщо сервер Ubilling повинен створювати користувачів PPP:
 +  * Додати PPPoE-сервер на інтерфейсі користувачів:
 +<code>
 +/interface pppoe-server server  \
 +add service-name="service1" interface="bridge1" default-profile="default" one-session-per-host="yes" disabled="no"
 +</code>
 +
 +  * У модулі "Розширене налаштування MikroTik" для мережі, що налаштовується, поставити галочку навпроти //"Керувати PPP"//.
 +
 +
 +===== Налаштування MikroTik Queue Tree =====
 +З версії 0.7.7 скрипти ініціалізації вміють керувати деревами черг. З версії 0.7.7 ця функція йде з коробки, для всіх попередніх налаштувань, необхідно в консолі білінгу прописати такі команди:
 +<code>
 +cp -r /etc/stargazer/system /etc/stargazer/system.bak
 +rm -r /etc/stargazer/system
 +cd /usr/local/www/apache24/data/billing
 +cp -r ./docs/presets/MikroTik/system /etc/stargazer/system
 +</code>
 +
 +
 +===== Додатково =====
 +* У разі, якщо ви раптом таки вирішили випробувати долю і спробувати використовувати Mikrotik NAS під Linux - можна спробувати звернути свій погляд на [[http://local.com.ua/forum/topic/55756-релизы-ubilling-2014/?p=576378|ось цей пост на форумі]].
 +  * Можете також почитати, [[https://nixrecords.wordpress.com/2015/07/20/%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-remote-mikrotik-nas-%D0%B8%D0%B7-ubilling/|цікаву статтю]] про тонкощі управління MikroTik з космосу за авторством [[http://local.com.ua/forum/user/15601-mac/|mac]].
 +  * У разі труднощів з використанням DHCP на ROS6 можна скористатися [[http://local.com.ua/forum/topic/74680-ubiling-mikrotik-v6291/?p=786526|порадою за посиланням]].
 +  * з ROS 6.29 у конфіг мікротика за замовчуванням увімкнене правило "fasttrack-connection", яке дає змогу пускати пакети повз CPU, тобто шлях проходження пакетів змінюється таким чином, що пакети проходять повз "mangle" і "queue". У разі, якщо ви використовуєте "управління чергами" вам необхідно вимкнути правило 'fasttrack-connection".
 +* Починаючи з релізу 0.8.3 до пресетів додано firewall_off.ini, що дає змогу використовувати різні аддрес-листи для авторизованих і неавторизованих користувачів. Докладніше [[https://github.com/nightflyza/Ubilling/pull/80|тут]].
 +* Оскільки в RouterOS 6.43 і вище змінено метод авторизації під час підключення до RouterOS API, починаючи з релізу 0.9.0 додано можливість вказувати, який метод підключення використовувати для кожного конкретного NAS.
 +* Починаючи з релізу 0.9.2 модуль тепер може використовувати телепатію для визначення версії RouterOS і <del>усвідомлення</del> методу підключення до Mikrotik API. Регулюється опцією ROUTEROS_VERSION_TELEPATHY і супутніми опціями ROUTEROS_VERSION_GET_WEB_PORT і ROUTEROS_VERSION_GET_SNMP_COMMUNITY в alter.ini.\\ __Логіка роботи фічі така:__ 
 +    - намагаємося визначити версію NAS, до якого підключаємося через SNMP або, якщо через SNMP не вдалося - шляхом парсингу стандартної login web page
 +    - якщо версію визначити вдалося:
 +      * відключаємо "мануальне" керування методами підключення
 +      * виводимо замість чекбокса відповідне повідомлення
 +    - якщо версію визначити **НЕ** вдалося:
 +    * вмикаємо "мануальне" керування методами підключення, даючи можливість адміністратору самостійно вказати метод підключення для конкретного NAS
 +    * __**після оновлення RouterOS до 6.45.хх остаточно випиляно можливість **__ використовувати "старий" метод авторизації за API. Тому, якщо ви використовуєте телепатію для визначення версії RouterOS і ваші мікротікоNASи до цього моменту були сконфігуровані з опцією **Не використовувати новий метод авторизації** - вам __ БУДЕ НЕОБХІДНО__ пройтися по всім наявним мікротікоNASам у модулі "Сервера доступу (NAS)", натиснути для кожного з них кнопку з "магічною шестернею" та, переконавшись, що дані щодо NASу підтягнулися коректно та в методі авторизації тепер зазначено використання нового методу підключення, - натиснути кнопку "Зберегти".
 +* Починаючи з релізу 1.0.4, кастомний API-порт тепер використовується не тільки [[mikrotikapi#модуль_розширене_налаштування_mikrotik|розширеним конфігуратором мікротікоНАСів]], але й [[dnswitchmtik|динамічним шейпером для Mikrotik]] та і самим Старгейзером (під час роботи з Mikrotik через API, звісно ж).
 +
 +===== Біль =====
 +У разі, якщо ви все ж таки використовуєте цей функціонал, замість крутого і модного [[multigen|КучаГен-а]] та періодично відчуваєте біль, під час використання функціоналу кредитування вашими клієнтами, можете придивитися до опції **SC_MTAPI_FIX**, яка в теорії, може відтермінувати ваш перехід на КучаГен, але це не точно.
mikrotikapi.txt · Востаннє змінено: 2023/07/11 12:44 повз nightfly