====Управление шейпером Mikrotik ==== Шейпер работает по следующему принципу предварительно создаются правила на Mikrotik командой billd, а при авторизации абоненты просто вносятся в нужные таблицы с название CLIENTS_123 где 123 это идентификатор тарифного плана (TP_ID). При использовании разных скоростей в разные промежутки времени нужно через крон вызывать данную команду на границе интервалов для синхронизации скоростей. \\ **Данную команду нужно выполнять для любого типа подключения PPPoE, PPTP или IPoE. **\\ Пример команд синхронизации для тарифа "День/Ночь" со сменой скоростей в 22:01 и 06:01 1 22 * * * root /usr/abills/libexec/billd checkspeed mikrotik NAS_IDS=1,2,3 NAT=1 RECONFIGURE=1 1 6 * * * root /usr/abills/libexec/billd checkspeed mikrotik NAS_IDS=1,2,3 NAT=1 RECONFIGURE=1 ====Инициализация правил шейпера и загрузки их на mikrotik сервера==== # /usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1 [NAS_IDS=2] [NAT=1] Параметры ^NAS_IDS='1,2' | Список серверов доступа. По умолчанию скорость просматривается на всех | ^RECONFIGURE=1 | Переинициализировать правила шейпера | ^NAT=1 | Включение ната | ^SHOW_SPEED=1 | Показать абонентов для которых применён шейпер id, address_list, ip | ^DEBUG=1..7 | Режимы отладки. \\ **1** - Отображать базовые сообщения программы и писать лог команд для Mikrotik. Лог записывается в файл /usr/abills/var/log/mikrotik_cmd.log \\ **2** - Отображать команды для Mikrotik на экран. \\ **5** - Отображать но не выполнять команды \\ **7** - Отображать SQL запросы к базе во время выполнения программы | После инициализации правил шейпера при подключении абонента на Mikrotik передаётся только IP адрес абонента с указанием в какой список его внести. \\ Переинициализацию правил шейпера нужно проводить после каждого изменения скорости в тарифных планах или включить внешний обработчик $conf{SHAPER_RESTART_CMD}='/usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1'; При использовании PPPoE, PPTP адрес передаётся системой через RADIUS пары: Mikrotik-Address-List=CLIENTS_[TP_ID] При использовании IPN используется стандарnный [[abills:docs:modules:ipn:ru#kontrol_dostupa_i_narezka_trafika|IPN механизм $conf{IPN_START_RULES} $conf{IPN_STOP_RULES}]] **Проверка правил шейпера:** \\ Если всё настроено правильно, после выполнения команды "billd RECONFIGURE=1", Вы должны получить приблизительно такие ответы по соответствующих запросах в консоли MikroTik: /ip firewall mangle print 0 chain=forward action=mark-packet new-packet-mark=ALLOW_TRAFFIC_CLASS_2_out passthrough=yes dst-address=0.0.0.0/0 src-address-list=CLIENTS_2 1 chain=forward action=mark-packet new-packet-mark=ALLOW_TRAFFIC_CLASS_2_in passthrough=yes src-address=0.0.0.0/0 dst-address-list=CLIENTS_2 /queue tree print 0 name="TP_2_in_global" parent=global-out packet-mark=ALLOW_TRAFFIC_CLASS_2_in limit-at=0 queue=TP_2_in_global_speed priority=5 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 1 name="TP_2_out_global" parent=global-out packet-mark=ALLOW_TRAFFIC_CLASS_2_out limit-at=0 queue=TP_2_out_global_speed priority=5 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s При использовании выражений или турбо режимов, абонентам создаются simple Queues при подключении ===Старая модель шейпера для PPPoE (QUEUES)==== **$conf{MIKROTIK_QUEUES}=1;** \\ При этом параметре правила шейпера передаются через параметр ''Mikrotik-Rate-Limit'' и создается simple queue для каждого абонента. \\ В новой модели, создаются queue tree для тарифных планов и передается параметр ''Mikrotik-Address-List'' Также эта схема используется в Mac_auth2 при отсутствии параметра **$conf{INTERNET_EXTERNAL_SHAPPER}**; ====Маскарад==== Для включения маскарада нужно добавить в программу инициализации опцию NAT=1 # /usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1 NAT=1 система создаст правила маскарадинга для каждого тарифного плана При включении опции SKIP_NAT_IPS=[список адресов через запятую] система исключает данные адреса из списка маскарадинга ====Использование нескольких внешних IP===== Система разрешает использовать несколько внешних IP для построения правил маскарадинга для этого нужно создать файл правил ** /usr/abills/libexec/mikrotik.nat ** формат файла [номер сервера доступа] [внешний IP] [ внутренняя сетка или адрес лист в формате CLIENTS_XX ]\\ разделитель колонок : пробел.\\ **Пример** 5 33.33.33.33 10.10.1.0/24 5 33.33.32.0/24 CLIENTS_2 1. 5 сервер доступа, внешний IP 33.33.33.33 внутренняя сеть 10.10.1.0/24 \\ 2. 5 сервер доступа, диапазон внешних адресов 33.33.32.0/24, для всех клиентов тарифного плана с ID 2 =====Настройка через скрипт===== Иногда случается так что билинг не имеет непосредственного доступа к Mikrotik, а нужно на микротик записать правила шейпера и ната. На помощь приходит опция EXPORT_FILE= Команда # /usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1 NAT=1 EXPORT_FILE=shaper.rsc Создает список команд в файле **shaper.rsc** Потом их просто загружаете в winbox '' Files -> Upload''