Мікротик. Управління через SMS за допомогою WEB-сервера

Доброго всім дня!

На цей раз вирішив описати ситуацію, яка начебто і не особливо описана в інтернеті, хоча деякі натяки на неї є, але більшість дісталася просто довгим методичним копанням коду та вікі Mikrotik.

Власне завдання: реалізувати за допомогою SMS керування кількома пристроями, на прикладі включення та вимкнення портів.

Є:

  1. Другий маршрутизатор CRS317-1G-16S+
  2. Точка доступу Mikrotik NETMETAL 5
  3. LTE модем R11e-LTE

Почнемо з того що чудова точка доступу Netmetal 5 має на борту розпаяний роз'єм для сім карти і порт для встановлення LTE модему. Тому для цієї точки був куплений насправді найкращий модем з того, що було доступно і підтримувалося операційною системою самої точки, а саме R11e-LTE. Крапка була розібрана, все встановлено на свої місця (хоча треба знати, що ця карта розташована під модемом і без зняття основної плати її неможливо дістати), тому перевірте цим мапу на працездатність, інакше доведеться кілька разів розбирати точку доступу.

Далі просвердлили пару отворів у корпусі, встановили 2 пігтейли і кінці закріпили на модемі. На жаль, фото процесу не збереглося. З іншого боку на пігтейли закріпили універсальні антени з магнітною основою.

Основні етапи налаштування описані в інтернеті досить добре, крім дрібних косяків взаємодії. Наприклад модем перестає приймати повідомлення SMS, коли надходить 5 штук і вони висять в Inbox, очищення повідомлень, перезапуск модему не завжди вирішують проблему. Але у версії 6.44.1 прийом працює стабільніше. В Inbox відображається 4 останні sms, решта автоматично стирається і життя не заважає.

Основна мета експерименту гасити та піднімати інтерфейси на двох маршрутизаторах в одній фізичній мережі. Основна складність полягала в тому, що Mikrotik не підтримує керування через SNMP, а дозволяє лише зчитувати значення. Тому довелося копати в інший бік, зокрема Mikrotik API.

Чіткої документації про те, як керувати немає, тому довелося експериментувати і для майбутніх спроб зроблено цю інструкцію.

Для керування кількома пристроями потрібно доступний і робочий WEB сервер у локальній мережі, на нього покладається необхідність керування командами Mikrotik.

1. На Netmetal 5 потрібно зробити пару скриптів для включення та вимкнення відповідно

system script
add dont-require-permissions=no name=disableiface owner=admin policy=
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=
    "/tool fetch http://WEB_SERVER_IP/di.php "
add dont-require-permissions=no name=enableiface owner=admin policy=
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=
    "/tool fetch http://WEB_SERVER_IP/en.php "

2. Створити 2 скрипти на веб-сервері (звичайно на системі в даному випадку повинен бути встановлений php):

<?php
# file en.php enable interfaces    
require('/usr/lib/zabbix/alertscripts/routeros_api.class.php');

    $API = new RouterosAPI();
    $API->debug=true;

if ($API->connect('IP управляемого Mikrotik', 'логин администратора', 'пароль администратора')) {
    $API->comm("/interface/ethernet/enable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

<?php
#file di.php disable interfaces
    require('/usr/lib/zabbix/alertscripts/routeros_api.class.php');

    $API = new RouterosAPI();
    $API->debug=true;

if ($API->connect('IP управляемого Mikrotik', 'логин администратор', 'пароль администратора')) {
    $API->comm("/interface/ethernet/disable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

3. Завантажити з форуму Mikrotik routeros_api.class.php та розташувати його в доступному каталозі на сервері.

замість sfp-sfpplus16 потрібно вказати ім'я інтерфейсу, що вмикається/включається.

Тепер при надсиланні повідомлення на номер у вигляді

:cmd СЕКРЕТНЫЙКОД script enableiface
или
:cmd СЕКРЕТНЫЙКОД script disableiface 

NETMETAL запускатиме відповідний скрипт, а той у свою чергу виконання команди на WEB сервері.

Швидкість виконання операцій при отриманні смс частки секунди. Працює стабільно.

Крім цього, є функціонал відправки СМС на телефони системою моніторингу Zabbix і відкриття резервного виходу в інтернет при падінні оптики. Мабуть це виходь за рамки цієї статті, але скажу відразу, при відправці смс їхня довжина повинна вкладатися в стандартний розмір одного повідомлення, т.к. Mikrotik не ділить їх на частини, а при надходженні довгого повідомлення просто його не відправляє, крім того потрібно фільтрувати знаки, що передаються в повідомлення, інакше СМС не відправиться.

Джерело: habr.com

Додати коментар або відгук