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

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


Сайдбар

Розділи

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

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.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/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.1664019551.txt.gz · Востаннє змінено: 2022/09/24 14:39 повз 127.0.0.1