Mikrotik. Správa pomocí SMS pomocí WEB serveru

Dobrý den všem!

Tentokrát jsem se rozhodl popsat situaci, která se na internetu nezdá být nijak zvlášť popsaná, i když nějaké náznaky o ní jsou, ale většinou to bylo jen dlouhé metodické přehrabování kódu a samotné wiki Mikrotiku.

Vlastní úkol: implementovat ovládání několika zařízení pomocí SMS na příkladu zapínání a vypínání portů.

Dostupný:

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

Začněme tím, že nádherný přístupový bod Netmetal 5 má na desce pájený konektor SIM karty a port pro instalaci LTE modemu. Proto byl pro tento bod zakoupen v podstatě nejlepší modem z toho, co bylo dostupné a podporované operačním systémem samotného bodu, konkrétně R11e-LTE. Access point byl rozebrán, vše bylo nainstalováno na své místo (i když je potřeba vědět, že SIM karta je umístěna pod modemem a bez demontáže základní desky ji není možné získat), proto zkontrolujte funkčnost SIM karty, jinak budete muset přístupový bod několikrát rozebrat.

Dále jsme vyvrtali několik děr do pouzdra, nainstalovali 2 pigtaily a zajistili konce k modemu. Bohužel se nedochovaly žádné fotografie postupu. Na druhé straně byly k pigtailům připevněny univerzální antény s magnetickou základnou.

Hlavní kroky nastavení jsou na internetu popsány docela dobře, až na drobné mezery v interakci. Modem například přestane dostávat SMS zprávy, když jich přijde 5 a ty zůstanou ve složce Doručená pošta, vymazání zpráv a restart modemu ne vždy problém vyřeší. Ale ve verzi 6.44.1 funguje příjem stabilněji. Inbox zobrazuje poslední 4 sms, ostatní jsou automaticky vymazány a nezasahují do života.

Hlavním cílem experimentu je vypnout a zapnout rozhraní na dvou routerech ve stejné fyzické síti. Hlavní problém byl v tom, že Mikrotik nepodporuje správu přes SNMP, ale umožňuje pouze čtení hodnot. Proto jsem musel kopat jiným směrem, a to Mikrotik API.

Neexistuje žádná jasná dokumentace, jak to ovládat, takže jsem musel experimentovat a tento návod byl vytvořen pro budoucí pokusy.

Pro správu více zařízení budete potřebovat dostupný a funkční WEB server v lokální síti, který bude nutné ovládat pomocí příkazů Mikrotiku.

1. Na Netmetal 5 je potřeba vytvořit několik skriptů pro jeho zapnutí a vypnutí

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. Vytvořte 2 skripty na webovém serveru (samozřejmě v tomto případě musí být v systému nainstalováno 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. Stáhněte si routeros_api.class.php z fóra Mikrotik a umístěte jej do dostupného adresáře na serveru.

Místo sfp-sfpplus16 musíte zadat název rozhraní, které má být zakázáno/povoleno.

Nyní při odesílání zprávy na číslo ve formuláři

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

NETMETAL spustí odpovídající skript, který zase provede příkaz na WEB serveru.

Rychlost operací při příjmu SMS je zlomek sekundy. Funguje stabilně.

Navíc je zde funkcionalita pro odesílání SMS na telefony monitorovacím systémem Zabbix a otevření záložního připojení k internetu v případě výpadku optiky. Možná je to nad rámec tohoto článku, ale hned řeknu, že při odesílání SMS by se jejich délka měla vejít do standardní velikosti jedné zprávy, protože... Mikrotik je nerozděluje na části a když přijde dlouhá zpráva, tak ji prostě neodešle, navíc je potřeba znaky přenášené ve zprávách filtrovat, jinak se SMS neodešle.

Zdroj: www.habr.com

Přidat komentář