Mikrotik. Kontrole ar SMS, izmantojot WEB serveri

Laba diena visiem!

Šoreiz nolēmu aprakstīt situāciju, kas, šķiet, nav īpaši aprakstīta internetā, lai gan ir daži mājieni par to, bet lielākā daļa no tā bija tikai ilgstoša koda un paša Mikrotik wiki metodiskā rakšana.

Faktiskais uzdevums: ieviest vairāku ierīču vadību, izmantojot SMS, izmantojot portu ieslēgšanas un izslēgšanas piemēru.

Pieejams:

  1. Sekundārais maršrutētājs CRS317-1G-16S+
  2. Mikrotik NETMETAL 5 piekļuves punkts
  3. LTE modems R11e-LTE

Sāksim ar to, ka brīnišķīgajā Netmetal 5 piekļuves punktā ir pielodēts SIM kartes savienotājs un ports LTE modema uzstādīšanai. Tāpēc šim punktam būtībā labākais modems tika iegādāts no tā, kas bija pieejams un ko atbalstīja paša punkta operētājsistēma, proti, R11e-LTE. Piekļuves punkts tika izjaukts, viss uzstādīts savā vietā (lai gan jāzina, ka SIM karte atrodas zem modema un to nav iespējams dabūt, nenoņemot galveno plati), tāpēc pārbaudiet SIM kartes funkcionalitāti, pretējā gadījumā jums būs vairākas reizes jāizjauc piekļuves punkts.

Tālāk mēs korpusā izurbām pāris caurumus, uzstādījām 2 bizes un piestiprinājām galus pie modema. Diemžēl neviena procesa fotogrāfija nav saglabājusies. Savukārt bizēm tika piestiprinātas universālas antenas ar magnētisku pamatni.

Galvenās iestatīšanas darbības ir diezgan labi aprakstītas internetā, izņemot nelielas mijiedarbības nepilnības. Piemēram, modems pārstāj saņemt īsziņas, kad pienāk 5 no tām un tās paliek iesūtnē; ziņojumu dzēšana un modema restartēšana ne vienmēr atrisina problēmu. Bet versijā 6.44.1 uztveršana darbojas stabilāk. Inbox parāda pēdējās 4 sms, pārējās tiek automātiski izdzēstas un netraucē dzīvot.

Eksperimenta galvenais mērķis ir izslēgt un ieslēgt saskarnes diviem maršrutētājiem vienā fiziskajā tīklā. Galvenā grūtība bija tāda, ka Mikrotik neatbalsta pārvaldību, izmantojot SNMP, bet ļauj tikai nolasīt vērtības. Tāpēc man bija jārok otrā virzienā, proti, Mikrotik API.

Nav skaidras dokumentācijas, kā to kontrolēt, tāpēc man nācās eksperimentēt, un šī instrukcija tika izstrādāta turpmākiem mēģinājumiem.

Lai pārvaldītu vairākas ierīces, lokālajā tīklā būs nepieciešams pieejams un strādājošs WEB serveris, kas jāvada, izmantojot Mikrotik komandas.

1. Netmetal 5 jums ir jāizveido pāris skripti, lai to attiecīgi ieslēgtu un izslēgtu

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. Izveidojiet 2 skriptus tīmekļa serverī (protams, šajā gadījumā sistēmā jābūt instalētam 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. Lejupielādējiet routeros_api.class.php no Mikrotik foruma un ievietojiet to pieejamā servera direktorijā.

Sfp-sfpplus16 vietā ir jānorāda atspējojamā/iespējojamā interfeisa nosaukums.

Tagad, sūtot ziņojumu uz numuru formā

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

NETMETAL palaidīs atbilstošo skriptu, kas savukārt izpildīs komandu WEB serverī.

Operāciju ātrums, saņemot SMS, ir sekundes daļa. Strādā stabili.

Turklāt ir funkcionalitāte Zabbix uzraudzības sistēmas īsziņu nosūtīšanai uz tālruņiem un rezerves interneta savienojuma atvēršanai, ja optika neizdodas. Iespējams, tas ir ārpus šī raksta tvēriena, taču uzreiz teikšu, ka, sūtot SMS, to garumam ir jāiekļaujas vienas ziņas standarta izmērā, jo... Mikrotik tos nesadala daļās, un, pienākot garai ziņai, tā vienkārši to nenosūta, turklāt ir jāfiltrē ziņojumos pārsūtītās rakstzīmes, pretējā gadījumā SMS netiks nosūtīta.

Avots: www.habr.com

Pievieno komentāru