понедельник, 29 августа 2016 г.

Interface (Bridge) List - нововведение в RouterOS.

В версии RouterOS 6.36 среди прочих новых фишек есть такое:
What's new in 6.36 (2016-Jul-20 14:09):
*)firewall - added "/interface list" menu which allows to create list of interfaces which can be used as in/out-interface-list matcher in firewall and use as a filter in traffic-flow; 
  Как мы видим в firewall добавили функционал оперирования с листами интерфейсов. Это типа адрес-листов, но группируются интерфейсы, для указания их в правилах. Как мы знаем, чем меньше правил в фаервооле - тем меньше нагрузка на процессор. Раньше, для того что бы замаскарадить например несколько wan-интерфейсов нужно было обязательно делать несколько правил. Сейчас можно ограничится одним, просто указав группу интерфейсов для которых действует это правило.
  Итак, рассмотрим как ими пользоваться.

 

суббота, 27 августа 2016 г.

L2TP\PPTP\SSTP\OVPN\PPPoE Server Binding в Mikrotik.

  Для настройки VPN-сервера в Mikrotik достаточно открыть доступ по порту для прохождения пакетов на роутер, включить галочку в сервере VPN, завести аккаунты выбрав и настроив нужный профиль.

  После этого будут создавать динамические интерфейсы при подключении клиента впн.
  

Удаляем, переименовываем записи в address-list в Mikrotik.

  Удалить все записи в адрес-листах (удаляет ВСЕ адрес-листы):
/ip firewal address-list remove [find]
  Удалить списки в адрес-листах которые содержат в названии листа "la":
/ip firewal address-list remove [find list~"la"]
  Удалить списки в адрес-листах название которых начинается на "la":
/ip firewal address-list remove [find where list~"^la"]

вторник, 23 августа 2016 г.

Умный скриптовый аналог Netwatch Mikrotik.

  Есть небольшая "домашняя" сеть, в ней несколько клиентов подключено по WiFi методом точка-точка. Расстояния каждого линка небольшие (до 1 км.), эти линки нужно мониторить. Следить мы будет за ответными точками 4 клиентов, если точка отпала - оповещать в чат Telegram операторов. Родной Netwatch нам не подходит, так как не учитывает кратковременные пропадания, которые допустимы (например точку перегрузили). А значит будет куча ложных срабатываний. При написании скрипта нужно учитывать, что он выполняется по регламенту, а значит при пропадании одной из точек сообщения будут отправляться каждый раз при выполнении скрипта (через промежуток времени, который задан в шедуллере). Что-бы этого измежать нам нужно вводить глобальную переменную статуса точек. Однако, глобальные переменные при перезагрузке пропадают, но это тоже учтено в скрипте.

Выводим значение переменной в название/значение другой переменной.

  Выведем значение переменной в название другой переменной:

способ 1:
#есть переменная A c значением 123
:global A 123;
#создадим переменную, взяв в название значение переменной А:
:execute ":global $A";
#создадим переменную, взяв в название значение переменной А, и просвоим ей значение 321:
:execute ":global $A 321";
способ 2(автор vqd):
{
:local tmp "str"
[:parse ":global $tmp"]
}

воскресенье, 21 августа 2016 г.

Подключаем CDMA ИНТЕРТЕЛЕКОМ к Mikrotik.

  В наличии имеется модем, который куплен в отделении оператора ИНТЕРТЕЛЕКОМ. Модем Novatel Wireless 551L.
  К нашему Mikrotik подключена флешка, дабы обеспечить загрузку тонкого клиента PONIX. При подключении через пассивный хаб флешки и модема, связь работала нестабильно. Периодически пропадал модем, или связь прерывалась, поэтому пал выбор на активный хаб: USB 2.0 4-х портовый Хаб с блоком питания ST Lab (U-181 Black), который отлично работает с Микротик.
 

понедельник, 15 августа 2016 г.

Сохраняем глобальные переменные после перезагрузки.

  При перезагрузке роутера глобальные переменные удаляются. Иногда их нужно сохранить, для этого можно использовать, к примеру, комментарии к интерфейсам и т.д. Нужно к вашему скрипту добавить следующий код:
:global save;
:set save 6;
# после введения переменной сохраняем ее в коммент и создаем задание на выполнение при загрузке маршрутизатора
/interface ethernet set ether5 comment=$save;
/system scheduler add name=global_save on-event=":delay 3; :global save [/interface ethernet get ether5 comment]" start-time=startup;
  Глобальную переменную "save" мы вносим в коммент к интерфейсу ether5. Далее ставим задание, которое выполняется при загрузке роутера и извлекает нашу переменную из комментария интерфейса.