Pekný deň všetkým!
Tentoraz som sa rozhodol opísať situáciu, ktorá sa zdá, že nie je veľmi zdokumentovaná na internete, aj keď niektoré náznaky sú, ale väčšinu som získal dlhým metodickým skúmaním kódu a wiki samotného Mikrotiku.
V podstate úloha: realizovať ovládanie viacerých zariadení pomocou SMS na príklade zapínania a vypínania portov.
Máme:
- Sekundárny router CRS317-1G-16S+
- Prístupový bod Mikrotik NETMETAL 5
- LTE modem R11e-LTE
Začneme tým, že úžasný prístupový bod Netmetal 5 má na palube spájkovaný konektor pre SIM kartu a port na inštaláciu LTE modemu. Preto bol pre tento prístupový bod zakúpený v podstate najlepší modem, ktorý bol dostupný a podporovaný operačným systémom samotného bodu, a to R11e-LTE. Bod bol rozobraný, všetko nainštalované na svoje miesto (aj keď treba vedieť, že SIM karta sa nachádza pod modemom a bez odstránenia hlavnej dosky sa nedá dostať), preto skontrolujte funkčnosť SIM karty, inak bude potrebné niekoľkokrát rozobrať prístupový bod.
Potom sme vyvŕtali pár otvorov v kryte, nainštalovali 2 pigtaily a konektory upevnili na modeme. Bohužiaľ sa nezachovali žiadne fotografie z procesu. Na pigtaily sa z druhej strany pripevnili univerzálne antény s magnetickým základom.
Hlavné etapy nastavenia sú na internete pomerne dobre zdokumentované, okrem drobných chýb v interakcii. Napríklad modem prestáva prijímať SMS správy, keď ich príde 5 a visia v Inboxe, vymazanie správ, reštart modemu nie vždy vyrieši problém. Ale vo verzii 6.44.1 prijímanie funguje stabilnejšie. V Inboxe sa zobrazujú posledné 4 sms, ostatné sa automaticky vymažú a nezavadzajú.
Hlavným cieľom experimentu je vypínať a zapínať rozhrania na dvoch routeroch v jednej fyzickej sieti. Hlavná ťažkosť spočívala v tom, že Mikrotik nepodporuje ovládanie cez SNMP, ale umožňuje len čítať hodnoty. Preto som musel skúmať inú cestu, a to Mikrotik API.
Neexistuje žiadna presná dokumentácia o tom, ako ovládať, preto som musel experimentovať a pre budúce pokusy som vytvoril tento návod.
Na riadenie viacerých zariadení je potrebný dostupný a funkčný WEB server v lokálnej sieti, ktorý bude zodpovedný za riadenie príkazov Mikrotik.
1. Na Netmetal 5 je potrebné vytvoriť niekoľko skriptov na zapínanie a vypínanie príslušne.
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 webe. serveri (Samozrejme, na systéme by mala byť v tomto prípade nainštalovaná PHP):
debug=true;
if ($API->connect('IP spravovaného Mikrotik', 'admin login', 'admin heslo')) {
$API->comm("\/interface\/ethernet\/enable", array(
"numbers"=>"sfp-sfpplus16",));
}
$API->disconnect();
?>
debug=true;
if ($API->connect('IP spravovaného Mikrotik', 'admin login', 'admin heslo')) {
$API->comm("\/interface\/ethernet\/disable", array(
"numbers"=>"sfp-sfpplus16",));
}
$API->disconnect();
?>
3. Stiahnite súbor routeros_api.class.php z fóra Mikrotik a umiestnite ho do dostupného adresára. serveri.
Namiesto sfp-sfpplus16 je potrebné uviesť názov vypínaného/zapínaného rozhrania.
Teraz pri zasielaní správy na číslo vo forme
:cmd TAJNÝKÓD script enableiface
alebo
:cmd TAJNÝKÓD script disableiface
NETMETAL spustí zodpovedajúci skript, a ten vyvolá vykonanie príkazu na WEB serveri.
Rýchlosť vykonávania operácií pri prijímaní SMS je v zlomkoch sekundy. Funguje stabilne.
Okrem toho existuje funkcia zasielania SMS na telefóny monitorovacím systémom Zabbix a otvorenie záložného pripojenia na internet pri výpadku optiky. Povedzme, že to presahuje rámec tohto článku, ale poviem hneď, že pri posielaní SMS by ich dĺžka mala byť v štandardnej veľkosti jednej správy, pretože Mikrotik ich nedeľí na časti, a pri prijatí dlhého odkazu ho jednoducho nepošle, navyše je potrebné filtrovať znaky posielané v správach, inak sa SMS neodošle.
Zdroj: habr.com
