Mikrotik. Kontrolin sa pamamagitan ng SMS gamit ang WEB server

Magandang araw sa lahat!

Sa pagkakataong ito ay nagpasya akong ilarawan ang isang sitwasyon na tila hindi partikular na inilarawan sa Internet, kahit na may ilang mga pahiwatig tungkol dito, ngunit karamihan sa mga ito ay isang mahabang pamamaraan ng paghuhukay ng code at ang wiki ng Mikrotik mismo.

Ang aktwal na gawain: upang ipatupad ang kontrol ng ilang mga aparato gamit ang SMS, gamit ang halimbawa ng pag-on at off ng mga port.

Available:

  1. Pangalawang router CRS317-1G-16S+
  2. Mikrotik NETMETAL 5 access point
  3. LTE modem R11e-LTE

Magsimula tayo sa katotohanan na ang kahanga-hangang Netmetal 5 access point ay may nakasakay na soldered SIM card connector at isang port para sa pag-install ng LTE modem. Samakatuwid, para sa puntong ito, mahalagang ang pinakamahusay na modem ay binili mula sa kung ano ang magagamit at suportado ng operating system ng punto mismo, katulad ng R11e-LTE. Ang access point ay na-disassembled, ang lahat ay na-install sa lugar nito (bagaman kailangan mong malaman na ang SIM card ay matatagpuan sa ilalim ng modem at hindi posible na makuha ito nang hindi inaalis ang pangunahing board), kaya suriin ang SIM card para sa pag-andar, kung hindi, kakailanganin mong i-disassemble ang access point nang maraming beses.

Susunod, nag-drill kami ng ilang mga butas sa kaso, nag-install ng 2 pigtails at sinigurado ang mga dulo sa modem. Sa kasamaang palad, walang mga larawan ng proseso ang nakaligtas. Sa kabilang banda, ang mga unibersal na antenna na may magnetic base ay nakakabit sa mga pigtail.

Ang mga pangunahing hakbang sa pag-setup ay inilarawan nang maayos sa Internet, maliban sa mga maliliit na puwang sa pakikipag-ugnayan. Halimbawa, huminto ang modem sa pagtanggap ng mga mensaheng SMS kapag dumating ang 5 sa kanila at nag-hang ang mga ito sa Inbox; hindi palaging malulutas ang problema sa pag-clear ng mga mensahe at pag-restart ng modem. Ngunit sa bersyon 6.44.1 ang pagtanggap ay gumagana nang mas matatag. Ipinapakita ng Inbox ang huling 4 na sms, ang natitira ay awtomatikong mabubura at hindi makagambala sa buhay.

Ang pangunahing layunin ng eksperimento ay i-off at i-on ang mga interface sa dalawang router sa parehong pisikal na network. Ang pangunahing kahirapan ay hindi sinusuportahan ng Mikrotik ang pamamahala sa pamamagitan ng SNMP, ngunit pinapayagan lamang ang mga halaga ng pagbabasa. Samakatuwid, kailangan kong maghukay sa kabilang direksyon, lalo na ang Mikrotik API.

Walang malinaw na dokumentasyon kung paano ito kontrolin, kaya kinailangan kong mag-eksperimento at ang pagtuturo na ito ay ginawa para sa mga pagsubok sa hinaharap.

Upang pamahalaan ang maramihang mga aparato, kakailanganin mo ng isang naa-access at gumaganang WEB server sa lokal na network; kakailanganin itong kontrolin gamit ang mga utos ng Mikrotik.

1. Sa Netmetal 5 kailangan mong gumawa ng ilang mga script upang i-on at i-off ito, ayon sa pagkakabanggit

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. Lumikha ng 2 script sa web server (siyempre, dapat na naka-install ang php sa system sa kasong ito):

<?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. I-download ang routeros_api.class.php mula sa forum ng Mikrotik at ilagay ito sa isang naa-access na direktoryo sa server.

Sa halip na sfp-sfpplus16 kailangan mong tukuyin ang pangalan ng interface na idi-disable/i-enable.

Ngayon, kapag nagpapadala ng mensahe sa isang numero sa form

:cmd Π‘Π•ΠšΠ Π•Π’ΠΠ«Π™ΠšΠžΠ” script enableiface
ΠΈΠ»ΠΈ
:cmd Π‘Π•ΠšΠ Π•Π’ΠΠ«Π™ΠšΠžΠ” script disableiface 

Ilulunsad ng NETMETAL ang kaukulang script, na isasagawa naman ang command sa WEB server.

Ang bilis ng mga operasyon kapag tumatanggap ng SMS ay isang fraction ng isang segundo. Gumagana nang matatag.

Bilang karagdagan, mayroong pag-andar para sa pagpapadala ng SMS sa mga telepono sa pamamagitan ng sistema ng pagsubaybay ng Zabbix at pagbubukas ng backup na koneksyon sa Internet kung nabigo ang optika. Marahil ito ay lampas sa saklaw ng artikulong ito, ngunit sasabihin ko kaagad na kapag nagpapadala ng SMS, ang kanilang haba ay dapat magkasya sa karaniwang sukat ng isang mensahe, dahil... Hindi hinahati ng Mikrotik ang mga ito sa mga bahagi, at kapag dumating ang isang mahabang mensahe, hindi ito ipinapadala, bilang karagdagan, kailangan mong i-filter ang mga character na ipinadala sa mga mensahe, kung hindi man ay hindi ipapadala ang SMS.

Pinagmulan: www.habr.com

Magdagdag ng komento