Mikrotik. Hantering via SMS med hjälp av WEB-server

Goddag allihop!

Den här gången bestämde jag mig för att beskriva en situation som inte verkar vara särskilt beskriven på Internet, även om det finns några tips om det, men det mesta var bara en lång metodisk grävning av koden och själva wikin för Mikrotik.

Den faktiska uppgiften: att implementera kontroll av flera enheter med SMS, med exemplet att slå på och stänga av portar.

Tillgängligt:

  1. Sekundär router CRS317-1G-16S+
  2. Mikrotik NETMETAL 5 åtkomstpunkt
  3. LTE-modem R11e-LTE

Låt oss börja med att den underbara Netmetal 5-åtkomstpunkten har ombord en lödd SIM-kortkontakt och en port för installation av ett LTE-modem. Därför, för denna punkt, köptes i princip det bästa modemet från det som var tillgängligt och stöddes av själva punktens operativsystem, nämligen R11e-LTE. Åtkomstpunkten demonterades, allt installerades på sin plats (även om du behöver veta att SIM-kortet ligger under modemet och det är inte möjligt att få det utan att ta bort huvudkortet), så kontrollera SIM-kortet för funktionalitet, annars måste du ta isär åtkomstpunkten flera gånger.

Därefter borrade vi ett par hål i höljet, installerade 2 pigtails och säkrade ändarna på modemet. Tyvärr överlevde inga bilder av processen. Å andra sidan fästes universalantenner med magnetisk bas på pigtails.

De huvudsakliga inställningsstegen beskrivs ganska bra på Internet, med undantag för mindre interaktionsluckor. Modemet slutar till exempel att ta emot SMS när 5 av dem kommer och de hänger i inkorgen, att rensa meddelanden och starta om modemet löser inte alltid problemet. Men i version 6.44.1 fungerar receptionen mer stabil. Inbox visar de senaste 4 sms:en, resten raderas automatiskt och stör inte livet.

Huvudmålet med experimentet är att stänga av och slå på gränssnitt på två routrar på samma fysiska nätverk. Den största svårigheten var att Mikrotik inte stöder hantering via SNMP, utan endast tillåter avläsning av värden. Därför var jag tvungen att gräva åt andra hållet, nämligen Mikrotik API.

Det finns ingen tydlig dokumentation om hur man kontrollerar det, så jag var tvungen att experimentera och denna instruktion gjordes för framtida försök.

För att hantera flera enheter behöver du en tillgänglig och fungerande WEB-server på det lokala nätverket; den måste styras med Mikrotik-kommandon.

1. På Netmetal 5 behöver du göra ett par skript för att slå på respektive stänga av den

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. Skapa 2 skript på webbservern (naturligtvis måste php vara installerat på systemet i detta fall):

<?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. Ladda ner routeros_api.class.php från Mikrotik-forumet och placera den i en tillgänglig katalog på servern.

Istället för sfp-sfpplus16 måste du ange namnet på gränssnittet som ska inaktiveras/aktiveras.

Nu, när du skickar ett meddelande till ett nummer i formuläret

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

NETMETAL kommer att starta motsvarande skript, som i sin tur kommer att utföra kommandot på WEB-servern.

Operationshastigheten när du tar emot SMS är en bråkdel av en sekund. Fungerar stabilt.

Dessutom finns det funktionalitet för att skicka SMS till telefoner med Zabbix övervakningssystem och öppna en backup Internetanslutning om optiken misslyckas. Kanske ligger detta utanför ramen för den här artikeln, men jag kommer genast att säga att när du skickar SMS bör deras längd passa in i standardstorleken för ett meddelande, eftersom... Mikrotik delar inte upp dem i delar, och när ett långt meddelande kommer skickas det helt enkelt inte, dessutom måste du filtrera tecknen som överförs i meddelandena, annars kommer inte SMS:et att skickas.

Källa: will.com

Lägg en kommentar