Mikrotik. Valdymas SMS žinute naudojant WEB serverį

Laba diena visiems!

Šį kartą nusprendžiau aprašyti situaciją, kuri, atrodo, nėra itin aprašyta internete, nors ir yra užuominų apie tai, bet didžioji dalis tebuvo ilgas metodinis kodo ir pačios Mikrotik wiki kasimas.

Faktinė užduotis: įgyvendinti kelių įrenginių valdymą SMS žinutėmis, naudojant prievadų įjungimo ir išjungimo pavyzdį.

Galima:

  1. Antrinis maršrutizatorius CRS317-1G-16S+
  2. Mikrotik NETMETAL 5 prieigos taškas
  3. LTE modemas R11e-LTE

Pradėkime nuo to, kad nuostabiame „Netmetal 5“ prieigos taške yra lituota SIM kortelės jungtis ir prievadas LTE modemui įdiegti. Todėl šiam taškui iš esmės buvo įsigytas geriausias modemas iš to, kas buvo prieinama ir palaikoma paties taško operacinės sistemos, būtent R11e-LTE. Prieigos taškas buvo išardytas, viskas įdėta į savo vietas (nors reikia žinoti, kad SIM kortelė yra po modemu ir jos neįmanoma gauti neišėmus pagrindinės plokštės), todėl patikrinkite SIM kortelės funkcionalumą, kitu atveju prieigos tašką teks išardyti kelis kartus.

Toliau korpuse išgręžėme porą skylių, sumontavome 2 košeles ir pritvirtinome galus prie modemo. Deja, proceso nuotraukų neišliko. Kita vertus, prie košelių buvo pritvirtintos universalios antenos su magnetiniu pagrindu.

Pagrindiniai sąrankos žingsniai gana gerai aprašyti internete, išskyrus nedideles sąveikos spragas. Pavyzdžiui, modemas nustoja gauti SMS žinutes, kai atkeliauja 5 ir jos pakimba gautųjų aplanke; pranešimų išvalymas ir modemo paleidimas iš naujo ne visada išsprendžia problemą. Tačiau 6.44.1 versijoje priėmimas veikia stabiliau. Inbox rodomos paskutinės 4 sms, likusios automatiškai ištrinamos ir netrukdo gyventi.

Pagrindinis eksperimento tikslas – išjungti ir įjungti sąsajas dviejuose maršrutizatoriuose tame pačiame fiziniame tinkle. Pagrindinis sunkumas buvo tas, kad Mikrotik nepalaiko valdymo per SNMP, o leidžia tik nuskaityti reikšmes. Todėl turėjau kasti kita kryptimi, būtent Mikrotik API.

Nėra aiškios dokumentacijos, kaip ją valdyti, todėl teko eksperimentuoti ir ši instrukcija buvo skirta būsimiems bandymams.

Norint valdyti kelis įrenginius, jums reikės prieinamo ir veikiančio WEB serverio vietiniame tinkle, kurį reikės valdyti Mikrotik komandomis.

1. Netmetal 5 turite sukurti keletą scenarijų, kad jį atitinkamai įjungtumėte ir išjungtumėte

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. Sukurkite 2 scenarijus žiniatinklio serveryje (žinoma, tokiu atveju sistemoje turi būti įdiegtas 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. Atsisiųskite routeros_api.class.php iš Mikrotik forumo ir įdėkite jį į prieinamą serverio katalogą.

Vietoj sfp-sfpplus16 turite nurodyti sąsajos, kurią norite išjungti / įjungti, pavadinimą.

Dabar, kai siunčiate žinutę formos numeriu

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

NETMETAL paleis atitinkamą scenarijų, kuris savo ruožtu vykdys komandą WEB serveryje.

Operacijų greitis gaunant SMS yra sekundės dalis. Veikia stabiliai.

Be to, yra Zabbix stebėjimo sistemos SMS žinučių siuntimo į telefonus ir atsarginio interneto ryšio atidarymo, jei optika sugenda. Galbūt tai nepatenka į šio straipsnio ribas, bet iš karto pasakysiu, kad siunčiant SMS jų ilgis turėtų tilpti į standartinį vienos žinutės dydį, nes... Mikrotik neskirsto jų į dalis, o kai atkeliauja ilga žinutė, jos tiesiog neišsiunčia, be to, reikia filtruoti žinutėse perduodamus simbolius, antraip SMS nebus išsiųstas.

Šaltinis: www.habr.com

Добавить комментарий