Настройка 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 inerface="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 позволяющий использовать разные аддресс-листы для авторизованных и отсоединенных пользователей. Подробнее тут.
mikrotikapi.txt · Последние изменения: 2017/07/03 17:23 — nightfly
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki