Microtik. Gestione via SMS tramite WEB server

Buona giornata a tutti!

Questa volta ho deciso di descrivere una situazione che non sembra essere particolarmente descritta su Internet, anche se ci sono alcuni accenni al riguardo, ma la maggior parte è stata solo una lunga e metodica ricerca nel codice e nel wiki di Mikrotik stessa.

Il compito vero e proprio: implementare il controllo di più dispositivi tramite SMS, usando l'esempio dell'attivazione e disattivazione delle porte.

C'è:

  1. Router secondario CRS317-1G-16S+
  2. Punto di accesso Mikrotik NETMETAL 5
  3. Modem LTE R11e-LTE

Partiamo dal fatto che il meraviglioso punto di accesso Netmetal 5 ha a bordo un connettore saldato per scheda SIM e una porta per l'installazione di un modem LTE. Pertanto, per questo punto, è stato acquistato sostanzialmente il miglior modem tra quelli disponibili e supportati dal sistema operativo del punto stesso, ovvero R11e-LTE. Il punto di accesso è stato smontato, tutto è stato installato al suo posto (anche se devi sapere che la scheda SIM si trova sotto il modem e non è possibile ottenerla senza rimuovere la scheda principale), quindi controlla la funzionalità della scheda SIM, altrimenti dovrai smontare più volte il punto di accesso.

Successivamente, abbiamo praticato un paio di fori nel case, installato 2 trecce e fissato le estremità al modem. Sfortunatamente, nessuna foto del processo è sopravvissuta. D'altra parte, ai codini erano fissate antenne universali con base magnetica.

I passaggi principali della configurazione sono descritti abbastanza bene su Internet, ad eccezione di piccole lacune nell'interazione. Ad esempio, il modem smette di ricevere gli SMS quando ne arrivano 5 e rimangono bloccati nella Posta in arrivo; non sempre cancellare i messaggi e riavviare il modem risolve il problema. Ma nella versione 6.44.1 la ricezione funziona in modo più stabile. La posta in arrivo visualizza gli ultimi 4 sms, il resto viene cancellato automaticamente e non interferisce con la vita.

L'obiettivo principale dell'esperimento è disattivare e attivare le interfacce su due router sulla stessa rete fisica. La difficoltà principale era che Mikrotik non supporta la gestione tramite SNMP, ma consente solo la lettura dei valori. Pertanto ho dovuto scavare nella direzione opposta, ovvero nell'API Mikrotik.

Non esiste una documentazione chiara su come controllarlo, quindi ho dovuto sperimentare e queste istruzioni sono state fornite per tentativi futuri.

Per gestire più dispositivi sarà necessario un server WEB accessibile e funzionante sulla rete locale; dovrà essere controllato tramite comandi Mikrotik.

1. Su Netmetal 5 è necessario creare un paio di script rispettivamente per accenderlo e spegnerlo

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. Crea 2 script sul server web (ovviamente, in questo caso php deve essere installato sul sistema):

<?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. Scarica routeros_api.class.php dal forum Mikrotik e posizionalo in una directory accessibile sul server.

Invece di sfp-sfpplus16 è necessario specificare il nome dell'interfaccia da disabilitare/abilitare.

Ora, quando invii un messaggio a un numero nel modulo

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

NETMETAL lancerà lo script corrispondente, che a sua volta eseguirà il comando sul server WEB.

La velocità delle operazioni durante la ricezione di SMS è di una frazione di secondo. Funziona stabilmente.

Inoltre, esiste la funzionalità per l'invio di SMS ai telefoni tramite il sistema di monitoraggio Zabbix e l'apertura di una connessione Internet di backup in caso di guasto dell'ottica. Forse questo va oltre lo scopo di questo articolo, ma dirò subito che quando si inviano SMS, la loro lunghezza dovrebbe rientrare nella dimensione standard di un messaggio, perché... Mikrotik non li divide in parti, e quando arriva un messaggio lungo semplicemente non lo invia, inoltre bisogna filtrare i caratteri trasmessi nei messaggi, altrimenti l'SMS non verrà inviato.

Fonte: habr.com

Aggiungi un commento