Микротик. Контрола преку СМС со користење на ВЕБ сервер

Добар ден на сите!

Овој пат решив да опишам ситуација која изгледа не е особено опишана на Интернет, иако има некои навестувања за тоа, но повеќето од тоа беа само долго методично копање на кодот и викито на самиот Микротик.

Вистинската задача: да се спроведе контрола на неколку уреди со помош на SMS, користејќи го примерот за вклучување и исклучување на портите.

Достапно:

  1. Секундарен рутер CRS317-1G-16S+
  2. Пристапна точка на Mikrotik NETMETAL 5
  3. LTE модем R11e-LTE

Да почнеме со фактот дека прекрасната пристапна точка Netmetal 5 има на одборот залемен конектор за SIM картичка и порта за инсталирање на LTE модем. Затоа, за оваа точка, во суштина најдобриот модем беше купен од она што беше достапно и поддржано од оперативниот систем на самата точка, имено R11e-LTE. Пристапната точка беше расклопена, сè беше инсталирано на свое место (иако треба да знаете дека SIM картичката се наоѓа под модемот и не е можно да се добие без да се отстрани главната плоча), затоа проверете ја SIM картичката за функционалност, во спротивно ќе мора да ја расклопите пристапната точка неколку пати.

Следно, пробивме неколку дупки во куќиштето, инсталиравме 2 пигтили и ги прицврстивме краевите на модемот. За жал, ниту една фотографија од процесот не преживеа. Од друга страна, на пигтите беа прикачени универзални антени со магнетна основа.

Главните чекори за поставување се опишани доста добро на Интернет, освен малите празнини во интеракцијата. На пример, модемот престанува да прима СМС пораки кога ќе пристигнат 5 од нив и тие висат во сандачето; бришењето пораки и рестартирањето на модемот не секогаш го решаваат проблемот. Но, во верзијата 6.44.1 приемот работи постабилно. Инбокс ги прикажува последните 4 смс, останатите автоматски се бришат и не го попречуваат животот.

Главната цел на експериментот е исклучување и вклучување на интерфејси на два рутери на иста физичка мрежа. Главната тешкотија беше што Микротик не поддржува управување преку 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. Преземете routeros_api.class.php од форумот на Mikrotik и ставете го во пристапен директориум на серверот.

Наместо sfp-sfpplus16, треба да го наведете името на интерфејсот што треба да се оневозможи/овозможи.

Сега, кога испраќате порака до број во формуларот

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

NETMETAL ќе ја стартува соодветната скрипта, која пак ќе ја изврши командата на WEB серверот.

Брзината на операции при примање СМС е дел од секундата. Работи стабилно.

Дополнително, постои функционалност за испраќање СМС на телефони преку системот за следење Zabbix и отворање резервна интернет конекција доколку оптиката не успее. Можеби ова е надвор од опсегот на овој напис, но веднаш ќе кажам дека при испраќање СМС нивната должина треба да се вклопи во стандардната големина на една порака, бидејќи ... Микротик не ги дели на делови, а кога ќе пристигне долга порака, едноставно не ја испраќа, освен тоа, треба да ги филтрирате знаците што се пренесуваат во пораките, во спротивно СМС-пораката нема да биде испратена.

Извор: www.habr.com

Додадете коментар