Mikrotik. Upravljanje putem SMS-a koristeći WEB server

Dobar dan svima!

Ovog puta sam odlučio da opišem situaciju koja izgleda nije posebno opisana na Internetu, iako ima nekih naznaka o tome, ali većina je bila samo dugo metodično kopanje koda i samog wikija Mikrotika.

Stvarni zadatak: implementirati kontrolu nekoliko uređaja pomoću SMS-a, na primjeru uključivanja i isključivanja portova.

Dostupan:

  1. Sekundarni ruter CRS317-1G-16S+
  2. Mikrotik NETMETAL 5 pristupna tačka
  3. LTE modem R11e-LTE

Počnimo s činjenicom da predivna Netmetal 5 pristupna točka ima na ploči zalemljeni konektor za SIM karticu i priključak za instaliranje LTE modema. Stoga je za ovu tačku kupljen u suštini najbolji modem od onoga što je bilo dostupno i podržano od strane samog operativnog sistema tačke, odnosno R11e-LTE. Pristupna tačka je rastavljena, sve je postavljeno na svoje mjesto (mada morate znati da se SIM kartica nalazi ispod modema i da je nije moguće dobiti bez uklanjanja matične ploče), pa provjerite funkcionalnost SIM kartice, inače ćete morati nekoliko puta rastaviti pristupnu tačku.

Zatim smo izbušili nekoliko rupa u kućištu, postavili 2 pigtaila i pričvrstili krajeve na modem. Nažalost, nijedna fotografija procesa nije sačuvana. S druge strane, univerzalne antene s magnetskom bazom bile su pričvršćene na pigtails.

Glavni koraci podešavanja su prilično dobro opisani na Internetu, osim manjih nedostataka u interakciji. Na primjer, modem prestaje da prima SMS poruke kada ih stigne 5 i one zakače u prijemnom sandučetu; brisanje poruka i ponovno pokretanje modema ne rješavaju uvijek problem. Ali u verziji 6.44.1 prijem radi stabilnije. Inbox prikazuje zadnja 4 sms-a, ostali se automatski brišu i ne ometaju život.

Glavni cilj eksperimenta je isključiti i uključiti interfejse na dva rutera na istoj fizičkoj mreži. Glavna poteškoća je bila u tome što Mikrotik ne podržava upravljanje putem SNMP-a, već samo dozvoljava čitanje vrijednosti. Stoga sam morao kopati u drugom smjeru, odnosno Mikrotik API-ju.

Ne postoji jasna dokumentacija kako to kontrolirati, pa sam morao eksperimentirati i ovo uputstvo je napravljeno za buduće pokušaje.

Da biste upravljali više uređaja, trebat će vam dostupan i funkcionalan WEB server na lokalnoj mreži; morat će se kontrolirati pomoću Mikrotik komandi.

1. Na Netmetalu 5 morate napraviti par skripti da ga uključite i isključite, respektivno

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. Kreirajte 2 skripte na web serveru (naravno, php mora biti instaliran na sistemu u ovom slučaju):

<?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. Preuzmite routeros_api.class.php sa Mikrotik foruma i postavite ga u pristupačan direktorij na serveru.

Umjesto sfp-sfpplus16 potrebno je navesti ime sučelja koje treba onemogućiti/omogućiti.

Sada, kada šaljete poruku na broj u obrascu

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

NETMETAL će pokrenuti odgovarajuću skriptu, koja će zauzvrat izvršiti naredbu na WEB serveru.

Brzina operacija prilikom primanja SMS-a je djelić sekunde. Radi stabilno.

Osim toga, postoji i funkcionalnost za slanje SMS-a na telefone putem Zabbix nadzornog sistema i otvaranje rezervne internetske veze u slučaju kvara optike. Možda je ovo izvan okvira ovog članka, ali odmah ću reći da prilikom slanja SMS-a njihova dužina treba da stane u standardnu ​​veličinu jedne poruke, jer... Mikrotik ih ne dijeli na dijelove, a kada stigne duga poruka, jednostavno je ne šalje, osim toga, potrebno je filtrirati znakove koji se prenose u porukama, inače SMS neće biti poslan.

izvor: www.habr.com

Dodajte komentar