Buona giornata a tutti!
Questa volta ho deciso di descrivere una situazione che apparentemente non è molto trattata su internet, anche se ci sono alcuni accenni a riguardo, ma la maggior parte delle informazioni è stata ottenuta tramite un lungo e metodico esame del codice e della wiki stessa di Mikrotik.
In sostanza, l'obiettivo è: implementare la gestione di più dispositivi tramite SMS, prendendo come esempio l'accensione e lo spegnimento delle porte.
Disponiamo di:
- Router secondario CRS317-1G-16S+
- Punto di accesso Mikrotik NETMETAL 5
- Modem LTE R11e-LTE
Iniziamo con il fatto che il meraviglioso punto di accesso Netmetal 5 ha a bordo un connettore saldato per SIM e una porta per l'installazione del modem LTE. Pertanto, per questo punto è stato acquistato praticamente il miglior modem disponibile e supportato dal sistema operativo del punto stesso, ovvero l'R11e-LTE. Il dispositivo è stato smontato, tutto è stato installato nei propri posti (anche se è importante sapere che la SIM si trova sotto il modem e senza rimuovere la scheda principale non è possibile estrarla), quindi verificate che la SIM funzioni correttamente, altrimenti dovrete smontare il punto di accesso più volte.
Dopo abbiamo forato un paio di aperture nel case, installato 2 pigtail e fissato le estremità al modem. Sfortunatamente, non sono state salvate foto del processo. Dall'altra parte, abbiamo fissato antenne universali con base magnetica ai pigtail.
I principali passaggi di configurazione sono descritti abbastanza bene su internet, tranne per piccoli difetti nell'interazione. Ad esempio, il modem smette di ricevere messaggi SMS quando ne riceve 5 e rimangono nella Posta in arrivo; la pulizia dei messaggi e il riavvio del modem non risolvono sempre il problema. Tuttavia, nella versione 6.44.1, la ricezione funziona in modo più stabile. Nella Posta in arrivo vengono visualizzati gli ultimi 4 sms, gli altri vengono eliminati automaticamente e non creano problemi.
L'obiettivo principale dell'esperimento è spegnere e accendere le interfacce su due router nella stessa rete fisica. La principale difficoltà risiedeva nel fatto che Mikrotik non supporta la gestione tramite SNMP, e consente solo di leggere i valori. Pertanto, è stato necessario scavare in un'altra direzione, ossia l'API di Mikrotik.
Non c'è documentazione chiara su come gestire, quindi è stato necessario sperimentare e per i tentativi futuri è stata redatta questa guida.
Per gestire più dispositivi sarà necessario un server WEB accessibile e funzionante nella rete locale, a cui sarà affidato il compito di gestire i comandi Mikrotik.
1. Su Netmetal 5 è necessario creare un paio di script per attivare e disattivare rispettivamente.
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. Creare 2 script sul web. server (naturalmente su un sistema deve essere installato php):
debug=true;
if ($API->connect('IP del Mikrotik gestito', 'login amministratore', 'password amministratore')) {
$API->comm("\/interface\/ethernet\/enable", array(
"numbers"=>"sfp-sfpplus16",));
}
$API->disconnect();
?>
debug=true;
if ($API->connect('IP del Mikrotik gestito', 'login amministratore', 'password amministratore')) {
$API->comm("\/interface\/ethernet\/disable", array(
"numbers"=>"sfp-sfpplus16",));
}
$API->disconnect();
?>
3. Scaricare da un forum Mikrotik routeros_api.class.php e collocarlo in una cartella accessibile. server.
Invece di sfp-sfpplus16, è necessario indicare il nome dell'interfaccia da attivare/disattivare.
Ora, inviando un messaggio al numero nel formato
:cmd CODICESEGRETO script enableiface
oppure
:cmd CODICESEGRETO script disableiface
NETMETAL eseguirà lo script corrispondente, che a sua volta eseguirà il comando sul SERVER WEB.
La velocità di esecuzione delle operazioni al ricevimento di un SMS è frazione di secondo. Funziona in modo stabile.
Inoltre, c'è la funzionalità di invio SMS ai telefoni tramite il sistema di monitoraggio Zabbix e l'apertura di una connessione Internet di emergenza in caso di interruzione della fibra. Questo va oltre l'ambito di questo articolo, ma dirò subito che, nell'invio di SMS, la loro lunghezza deve rientrare nelle dimensioni standard di un messaggio, poiché Mikrotik non li divide in parti e, alla ricezione di un messaggio lungo, semplicemente non lo invia. Inoltre, è necessario filtrare i caratteri trasmessi nei messaggi, altrimenti l'SMS non verrà inviato.
Fonte: habr.com
