Mikrotik. Ovládanie cez SMS pomocou WEB servera

Dobrý deň všetkým!

Tentokrát som sa rozhodol opísať situáciu, ktorá sa na internete nezdá byť nejako zvlášť popísaná, aj keď sú o nej nejaké náznaky, no väčšinou išlo len o dlhé metodické kopanie kódu a samotnej wiki Mikrotiku.

Vlastná úloha: implementovať ovládanie viacerých zariadení pomocou SMS na príklade zapínania a vypínania portov.

K dispozícii:

  1. Sekundárny router CRS317-1G-16S+
  2. Prístupový bod Mikrotik NETMETAL 5
  3. LTE modem R11e-LTE

Začnime tým, že nádherný prístupový bod Netmetal 5 má na doske spájkovaný konektor SIM karty a port na inštaláciu LTE modemu. Preto bol pre tento bod zakúpený v podstate najlepší modem z toho, čo bolo dostupné a podporované operačným systémom samotného bodu, konkrétne R11e-LTE. Prístupový bod bol demontovaný, všetko bolo nainštalované na svoje miesto (hoci musíte vedieť, že SIM karta je umiestnená pod modemom a nie je možné ju získať bez odstránenia základnej dosky), takže skontrolujte funkčnosť SIM karty, inak budete musieť prístupový bod niekoľkokrát rozobrať.

Ďalej sme do puzdra vyvŕtali niekoľko otvorov, nainštalovali 2 pigtaily a pripevnili konce k modemu. Žiaľ, nezachovali sa žiadne fotografie procesu. Na druhej strane boli k pigtailom pripevnené univerzálne antény s magnetickou základňou.

Hlavné kroky nastavenia sú na internete popísané celkom dobre, s výnimkou menších medzier v interakcii. Modem napríklad prestane dostávať SMS správy, keď ich príde 5 a tie visia v priečinku Doručená pošta; vymazanie správ a reštartovanie modemu nie vždy problém vyrieši. Ale vo verzii 6.44.1 funguje príjem stabilnejšie. Inbox zobrazuje posledné 4 sms, ostatné sa automaticky vymažú a nezasahujú do života.

Hlavným cieľom experimentu je vypnúť a zapnúť rozhrania na dvoch smerovačoch v rovnakej fyzickej sieti. Hlavným problémom bolo, že Mikrotik nepodporuje správu cez SNMP, ale umožňuje iba čítanie hodnôt. Preto som musel kopať iným smerom, a to Mikrotik API.

Neexistuje žiadna jasná dokumentácia o tom, ako to ovládať, takže som musel experimentovať a tento návod bol vytvorený pre budúce pokusy.

Na správu viacerých zariadení budete potrebovať dostupný a funkčný WEB server v lokálnej sieti, ktorý bude potrebné ovládať pomocou príkazov Mikrotik.

1. Na Netmetal 5 musíte urobiť pár skriptov na zapnutie a vypnutie, resp

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. Vytvorte 2 skripty na webovom serveri (v tomto prípade musí byť v systéme samozrejme nainštalované 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. Stiahnite si routeros_api.class.php z fóra Mikrotik a umiestnite ho do dostupného adresára na serveri.

Namiesto sfp-sfpplus16 musíte zadať názov rozhrania, ktoré sa má deaktivovať/povoliť.

Teraz pri odosielaní správy na číslo vo formulári

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

NETMETAL spustí príslušný skript, ktorý následne vykoná príkaz na webovom serveri.

Rýchlosť operácií pri prijímaní SMS je zlomok sekundy. Pracuje stabilne.

Okrem toho je tu funkcionalita posielania SMS na telefóny monitorovacím systémom Zabbix a otvorenie záložného internetového pripojenia v prípade výpadku optiky. Možno je to nad rámec tohto článku, ale hneď poviem, že pri odosielaní SMS by sa ich dĺžka mala zmestiť do štandardnej veľkosti jednej správy, pretože... Mikrotik ich nedelí na časti a keď príde dlhá správa, jednoducho ju neodošle, navyše je potrebné filtrovať znaky prenášané v správach, inak sa SMS neodošle.

Zdroj: hab.com

Pridať komentár