Mikrotik. Bestuur via SMS met behulp van WEB-bediener

Goeie dag almal!

Hierdie keer het ek besluit om 'n situasie te beskryf wat blykbaar nie besonder beskryf word op die internet nie, alhoewel daar 'n paar wenke daarvan is, maar die meeste daarvan was net 'n lang metodiese grawe van die kode en die wiki van Mikrotik self.

Eintlik die taak: om met behulp van SMS die beheer van verskeie toestelle te implementeer, met die voorbeeld om poorte aan en af ​​te skakel.

Beskikbaar:

  1. Sekondêre router CRS317-1G-16S+
  2. Toegangspunt Mikrotik NETMETAL 5
  3. LTE-modem R11e-LTE

Kom ons begin met die feit dat die wonderlike Netmetal 5-toegangspunt 'n gesoldeerde SIM-kaartgleuf en 'n poort het om 'n LTE-modem aan boord te installeer. Daarom, vir hierdie punt, is eintlik die beste modem gekoop van wat beskikbaar was en ondersteun word deur die bedryfstelsel van die punt self, naamlik R11e-LTE. Die punt is uitmekaar gehaal, alles is op sy plek geïnstalleer (alhoewel jy moet weet dat die SIM-kaart onder die modem geleë is en dit onmoontlik is om dit te kry sonder om die hoofbord te verwyder), so kyk na die SIM-kaart vir werkbaarheid, anders kan jy sal die toegangspunt verskeie kere moet uitmekaar haal.

Vervolgens het ons 'n paar gate in die kas geboor, 2 pigtails geïnstalleer en die punte op die modem vasgemaak. Ongelukkig het die foto van die proses nie behoue ​​gebly nie. Aan die ander kant is universele antennas met 'n magnetiese basis aan die varksterte vasgemaak.

Die hoofopstellingstappe word redelik goed op die internet beskryf, behalwe vir klein interaksie-stappe. Byvoorbeeld, die modem hou op om SMS-boodskappe te ontvang wanneer 5 boodskappe ontvang word en hulle hang in die Inbox, vee boodskappe uit, herbegin die modem los nie altyd die probleem op nie. Maar in weergawe 6.44.1 werk die ontvangs meer stabiel. Die laaste 4 sms'e word in Inbox vertoon, die res word outomaties uitgevee en meng nie met die lewe in nie.

Die hoofdoel van die eksperiment is om koppelvlakke op twee routers in dieselfde fisiese netwerk te blus en te verhoog. Die grootste probleem was dat Mikrotik nie bestuur via SNMP ondersteun nie, maar jou slegs toelaat om waardes te lees. Daarom moes ek in die ander rigting grawe, naamlik die Mikrotik API.

Daar is geen duidelike dokumentasie oor hoe om te bestuur nie, so ek moes eksperimenteer en hierdie instruksie is gemaak vir toekomstige pogings.

Om veelvuldige toestelle te bestuur, benodig jy 'n beskikbare en werkende WEB-bediener op die plaaslike netwerk, dit is verantwoordelik vir die bestuur van Mikrotik-opdragte.

1. Op Netmetal 5 moet jy 'n paar skrifte maak om dit onderskeidelik aan en af ​​te skakel

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. Skep 2 skrifte op die webbediener (natuurlik moet php in hierdie geval op die stelsel geïnstalleer word):

<?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. Laai routeros_api.class.php van die Mikrotik-forum af en plaas dit in 'n toeganklike gids op die bediener.

in plaas van sfp-sfpplus16, moet jy die naam van die koppelvlak spesifiseer wat gedeaktiveer/geaktiveer moet word.

Nou wanneer 'n boodskap na 'n nommer in die vorm gestuur word

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

NETMETAL sal die ooreenstemmende skrip laat loop, wat op sy beurt die opdrag op die WEB-bediener sal uitvoer.

Die spoed van bedrywighede wanneer SMS ontvang word, is 'n breukdeel van 'n sekonde. Werk stabiel.

Daarbenewens is daar die funksionaliteit om SMS'e na fone te stuur deur die Zabbix-moniteringstelsel en om 'n rugsteun-internetverbinding oop te maak wanneer die optika val. Miskien is dit buite die bestek van hierdie artikel, maar ek sal dadelik sê dat wanneer u SMS stuur, hul lengte in die standaardgrootte van een boodskap moet pas, want. Mikrotik verdeel dit nie in dele nie, en as 'n lang boodskap aankom, stuur dit dit eenvoudig nie, boonop is dit nodig om die karakters wat in boodskappe versend word, te filter, anders sal die SMS nie gestuur word nie.

Bron: will.com

Voeg 'n opmerking