====== Увага ======
Ця реалізація є застарілою з релізу 0.9.6 і більше не підтримується та не розвивається.
{{:alertold.png? |}}
\\
Використовуйте [[multigen|КупаГен aka MultiGen]]. Він неймовірно крутий і позбавлений усіх дитячих хвороб штурхання трупа ногами 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:
# 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*
**//Важливо://** Скрипти розроблено для керування NAS під керуванням ОС FreeBSD і RouterOS. Запуск скриптів можливий тільки на ОС FreeBSD.
Завершуємо заміну, вказавши параметри підключення до бази даних і шляхи до log-файлу у файлі //<> //:
[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 ; Кількість спроб підключитися
===== Модуль "Розширене налаштування 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, виконаємо в терміналі останнього таку команду:
/ip service set api port=8728 address=10.0.0.254 disabled=no
__//Опис параметрів://__
* //port// - номер API-порту, за яким будемо підключатися до пристрою
* //address// - адреса, з якої дозволено підключення, тобто адреса сервера Ubilling
===== Експорт статистики по трафіку =====
Для того, щоб споглядати статистику по трафіку в Ubilling, треба увімкнути NetFlow-сенсор (у MikroTik його іменують як Traffic Flow) і налаштувати експорт на сервер Ubilling. Для цього послідовно виконуємо в консолі пристрою з RouterOS такі команди:
/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
__//Опис параметрів://__
* //cache-entries// - максимальна кількість netflow-потоків, яку одночасно обробляє пристрій
* //address// - адреса:порт, на який буде експортуватись статистика, тобто адреса сервера Ubilling, порт - 42111
===== Налаштування фаєрвола MikroTik =====
* Додаємо правило NAT. У нього потраплятимуть усі мережі зі списку адрес, з назвою //"NAT"//:
/ip firewall nat add chain=srcnat out-interface="ether1" src-address-list="NAT" action=masquerade
* Додамо мережу, яку будемо NATити, у список //"NAT"//:
/ip firewall address-list add address=10.0.0.0/24 list="NAT"
* Додамо правила, що дозволяють адресам зі списку //"ALLOW"// ходити з локальної мережі в Інтернет (1) і назад (2), а також забороняють проходження всього трафіку, що не потрапив під вищезазначені правила (3):
/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
===== Налаштування MikroTik DHCP =====
У разі, якщо сервер Ubilling і пристрій MikroTik розташовані в різних широкомовних сегментах, ви можете використовувати DHCP-сервер MikroTik. Для цього потрібно:
* Встановити параметри, що видаються користувачам мережі. А саме: адресу основного шлюзу (gateway), маску підмережі (netmask) і адресу сервера імен (dns):
/ip dhcp-server network add address=10.0.0.0/24 gateway=10.0.0.1 netmask=24 dns=10.0.0.1
* Додати DHCP-сервер на інтерфейсі користувачів:
/ip dhcp-server add interface="bridge1" address-pool=static-only authoritative=yes
* У модулі "Розширене налаштування MikroTik" для мережі, що налаштовується, поставити галочку навпроти //"Керувати DHCP"//.
===== Налаштування MikroTik PPPoE =====
У разі, якщо сервер Ubilling повинен створювати користувачів PPP:
* Додати PPPoE-сервер на інтерфейсі користувачів:
/interface pppoe-server server \
add service-name="service1" interface="bridge1" default-profile="default" one-session-per-host="yes" disabled="no"
* У модулі "Розширене налаштування MikroTik" для мережі, що налаштовується, поставити галочку навпроти //"Керувати PPP"//.
===== Налаштування MikroTik Queue Tree =====
З версії 0.7.7 скрипти ініціалізації вміють керувати деревами черг. З версії 0.7.7 ця функція йде з коробки, для всіх попередніх налаштувань, необхідно в консолі білінгу прописати такі команди:
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
===== Додатково =====
* У разі, якщо ви раптом таки вирішили випробувати долю і спробувати використовувати 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 і усвідомлення методу підключення до 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**, яка в теорії, може відтермінувати ваш перехід на КучаГен, але це не точно.