Mikrotik. Administration via SMS ved hjælp af WEB-server

God dag alle sammen!

Denne gang besluttede jeg at beskrive en situation, der ikke ser ud til at være særlig beskrevet på internettet, selvom der er nogle hints om det, men det meste af det var bare en lang metodisk gravning af koden og selve Mikrotiks wiki.

Den egentlige opgave: at implementere kontrol af flere enheder ved hjælp af SMS, ved at bruge eksemplet med at slå porte til og fra.

Ledig:

  1. Sekundær router CRS317-1G-16S+
  2. Mikrotik NETMETAL 5 adgangspunkt
  3. LTE-modem R11e-LTE

Lad os starte med, at det vidunderlige Netmetal 5-adgangspunkt ombord har et loddet SIM-kortstik og en port til installation af et LTE-modem. Derfor blev i det væsentlige købt det bedste modem til dette punkt fra det, der var tilgængeligt og understøttet af selve punktets operativsystem, nemlig R11e-LTE. Adgangspunktet blev adskilt, alt blev installeret på dets plads (selvom du skal vide, at SIM-kortet er placeret under modemmet, og det er ikke muligt at få det uden at fjerne hovedkortet), så tjek SIM-kortet for funktionalitet, ellers bliver du nødt til at adskille adgangspunktet flere gange.

Dernæst borede vi et par huller i kabinettet, installerede 2 pigtails og fastgjorde enderne til modemmet. Desværre overlevede ingen billeder af processen. På den anden side var universalantenner med en magnetisk base fastgjort til pigtails.

De vigtigste opsætningstrinn er beskrevet ganske godt på internettet, bortset fra mindre interaktionshuller. For eksempel holder modemmet op med at modtage SMS-beskeder, når 5 af dem ankommer, og de hænger i indbakken; sletning af beskeder og genstart af modemmet løser ikke altid problemet. Men i version 6.44.1 fungerer modtagelsen mere stabil. Indbakke viser de sidste 4 sms, resten slettes automatisk og forstyrrer ikke livet.

Hovedmålet med eksperimentet er at slukke og tænde for grænseflader på to routere på det samme fysiske netværk. Den største vanskelighed var, at Mikrotik ikke understøtter styring via SNMP, men kun tillader aflæsning af værdier. Derfor måtte jeg grave i den anden retning, nemlig Mikrotik API.

Der er ingen klar dokumentation for, hvordan man kontrollerer det, så jeg var nødt til at eksperimentere, og denne instruktion blev lavet til fremtidige forsøg.

For at administrere flere enheder skal du bruge en tilgængelig og fungerende WEB-server på det lokale netværk; den skal styres ved hjælp af Mikrotik-kommandoer.

1. På Netmetal 5 skal du lave et par scripts for at tænde og slukke hhv.

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. Opret 2 scripts på webserveren (naturligvis skal php være installeret på systemet i dette tilfælde):

<?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. Download routeros_api.class.php fra Mikrotik-forummet og placer det i en tilgængelig mappe på serveren.

I stedet for sfp-sfpplus16 skal du angive navnet på den grænseflade, der skal deaktiveres/aktiveres.

Nu, når du sender en besked til et nummer i formularen

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

NETMETAL vil starte det tilsvarende script, som igen vil udføre kommandoen på WEB-serveren.

Hastigheden af ​​operationer, når du modtager SMS, er en brøkdel af et sekund. Fungerer stabilt.

Derudover er der funktionalitet til at sende SMS til telefoner med Zabbix overvågningssystemet og åbne en backup internetforbindelse, hvis optikken svigter. Måske er dette uden for rammerne af denne artikel, men jeg vil med det samme sige, at når du sender SMS, skal deres længde passe ind i standardstørrelsen af ​​en besked, fordi... Mikrotik opdeler dem ikke i dele, og når der kommer en lang besked, sender den den simpelthen ikke, derudover skal du filtrere de tegn, der sendes i beskederne, ellers sendes SMS'en ikke.

Kilde: www.habr.com

Tilføj en kommentar