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

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


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації до оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Допомога проекту
Люди
Трохи про безпеку

FAQ



Редагувати сайдбар

mikrotikapi

Це стара версія документу!


Увага

Ця реалізація є застарілою з релізу 0.9.6 і більше не підтримується та не розвивається.
Використовуйте КучаГен aka MultiGen. Він неймовірно крутий і позбавлений усіх дитячих хвороб штурхання трупа ногами Mikrotik в API.

Налаштування MikroTik як NAS

У цьому розділі докладно описано процедуру зв'язування пристроїв під управлінням RouterOS з білінгом. Для початку вам потрібно:

  1. Сервер Ubilling:
    1. Встановлений за допомогою UBinstaller
    2. Параметри:
      1. Зовнішній інтерфейс, igb0 - 63.163.105.6/29
      2. Локальний інтерфейс, igb1 - 10.0.0.0.254/24
  2. Пристрій MikroTik з ОС RouterOS:
    1. Скинутий до стандартних конфігурацій
    2. Налаштовані тільки:
      1. Інтерфейси (WAN - ether1, LAN - bridge1)
      2. IP інтерфейсів (ether1 - 63.163.105.2/29, bridge1 - 10.0.0.1/24)
      3. Маршрути (0.0.0.0/0 63.163.105.1, 10.0.0.0.0/24 bridge1)

Розширення функціоналу скриптів 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-файлу у файлі «/etc/stargazer/config.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                    ; Количество попыток подключится

Модуль "Расширенная настройка MikroTik"

Начиная с версии 0.4.3 для каждого сервера доступа MikroTik в модуле “Сервера доступа (NAS)” доступна кнопочка расширенной настройки, которая, в то же время, является минимальной. После перехода в модуль и ввода в соответствующие поля правильных логина и пароля от сервера доступа увидим, приблизительно, следующую картину:

Здесь мы видим 2 селектора с интерфейсами:

  • Интерфейс пользователей - ARP и DHCP записи будут созданы с привязкой к этому порту устройства
  • Интерфейс графика - графики этого интерфейса будут отображены для текущего NAS в модуле “Отчет по трафику”.

Далее идет раздел “Установка поведения скриптов OnConnect/OnDisconnect для NAS”. Здесь мы ставим галочки там, где это необходимо. Соответственно скрипты будут выполнять те или иные действия, которые вы указали. Учтите, что перед установкой галочки “Управлять 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 - можно попробовать обратить свой взор на вот этот пост на форуме.
  • Можете также почитать, интересную статью о тонкостях управления MikroTik из космоса за авторством mac.
  • В случае затруднений с использованием DHCP на ROS6 можно воспользоваться советом по ссылке.
  • с ROS 6.29 в конфиг микротика по умолчанию включено правило “fasttrack-connection”, которое позволяет пускать пакеты мимо CPU, т.е. путь прохождения пакетов меняется таким образом, что пакеты проходят мимо “mangle” и “queue”. В случае, если вы используете “управление очередями” вам необходимо выключить правило 'fasttrack-connection“.
  • Начиная с релиза 0.8.3 в пресеты добавлен firewall_off.ini позволяющий использовать разные аддресс-листы для авторизованных и отсоединенных пользователей. Подробнее тут.
  • Поскольку в 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.
    Логика работы фичи следующая:
    1. пытаемся определить версию NAS, к которому подключаемся по SNMP или, если по SNMP не удалось - путем парсинга стандартной login web page
    2. если версию определить удалось:
      • отключаем “мануальное” управление методами подключения
      • выводим вместо чекбокса соответствующее сообщение
    3. если версию определить НЕ удалось:
      • включаем “мануальное” управление методами подключения, давая возможность администратору самостоятельно указать метод подключения для конкртеного NAS
    • после обновления RouterOS до 6.45.хх окончательно выпилена возможность использовать “старый” метод авторизации по API. Потому, если вы используете телепатию для определения версии RouterOS и ваши микротикоNASы до этого момента были сконфигурированы с опцией НЕ использовать новый метод авотризации - вам БУДЕТ НЕОБХОДИМО пройтись по всем имеющимся микротикоNASам в модуле “Сервера доступа (NAS)”, понажимать для каждого из них кнопку с “магической шестеренкой” и, убедившись, что данные по NASу подтянулись корректно и в методе авторизации теперь указано использование нового метода подключения - нажать кнопку “Сохранить”.
  • Начиная с релиза 1.0.4 кастомный API порт теперь используется не только расширенным конфигуратором микротикоНАСов, но динамическим шейпером для Mikrotik, и самим Старгейзером(при работе с Mikrotik через API, естественно).

Боль

В случае, если вы все же используете этот функционал, вместо крутого и модного КучаГен-а и периодически испытываете боль, при использовании функционала кредитования вашими клиентами, можете присмотреться к опции SC_MTAPI_FIX которая в теории может отсрочить ваш переход на КучаГен, но это не точно.

mikrotikapi.1688772593.txt.gz · Востаннє змінено: 2023/07/08 02:29 повз bobr