Micrótica. Xestión vía SMS mediante servidor WEB

Bo día a todos!

Esta vez decidín describir unha situación que non parece estar especialmente descrita en Internet, aínda que hai algunhas suxestións sobre ela, pero a maior parte foi só unha longa escavación metódica do código e da propia wiki de Mikrotik.

A tarefa real: implementar o control de varios dispositivos mediante SMS, usando o exemplo de activar e desactivar portos.

Dispoñible:

  1. Router secundario CRS317-1G-16S+
  2. Punto de acceso Mikrotik NETMETAL 5
  3. Módem LTE R11e-LTE

Comecemos polo feito de que o marabilloso punto de acceso Netmetal 5 ten a bordo un conector de tarxeta SIM soldado e un porto para instalar un módem LTE. Polo tanto, para este punto, adquiriuse esencialmente o mellor módem do que estaba dispoñible e soportado polo sistema operativo do propio punto, é dicir, R11e-LTE. Desmontouse o punto de acceso, instalouse todo no seu lugar (aínda que cómpre saber que a tarxeta SIM está situada debaixo do módem e non é posible obtelo sen retirar a placa principal), así que comprobe a funcionalidade da tarxeta SIM, se non, terás que desmontar o punto de acceso varias veces.

A continuación, perforamos un par de buratos na caixa, instalamos 2 coletas e aseguramos os extremos ao módem. Desafortunadamente, non sobreviviron fotos do proceso. Por outra banda, ás coletas uníronse antenas universais con base magnética.

Os principais pasos de configuración descríbense bastante ben en Internet, agás pequenas lagoas de interacción. Por exemplo, o módem deixa de recibir mensaxes SMS cando chegan 5 deles e colgan na caixa de entrada; borrar mensaxes e reiniciar o módem non sempre solucionan o problema. Pero na versión 6.44.1 a recepción funciona máis estable. A caixa de entrada mostra os últimos 4 sms, o resto bórranse automaticamente e non interfiren coa vida.

O obxectivo principal do experimento é apagar e activar interfaces en dous enrutadores da mesma rede física. A principal dificultade foi que Mikrotik non admite a xestión mediante SNMP, senón que só permite ler valores. Polo tanto, tiven que cavar na outra dirección, a saber, a API Mikrotik.

Non hai documentación clara sobre como controlalo, polo que tiven que experimentar e fixera esta instrución para futuros intentos.

Para xestionar varios dispositivos, necesitará un servidor WEB accesible e que funcione na rede local; terá que ser controlado mediante comandos Mikrotik.

1. En Netmetal 5 cómpre facer un par de scripts para acendelo e apagalo, respectivamente

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 scripts no servidor web (por suposto, php debe estar instalado no sistema neste caso):

<?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. Descarga routeros_api.class.php do foro Mikrotik e colócao nun directorio accesible do servidor.

En lugar de sfp-sfpplus16 cómpre especificar o nome da interface que se quere desactivar/activar.

Agora, ao enviar unha mensaxe a un número do formulario

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

NETMETAL lanzará o script correspondente, que á súa vez executará o comando no servidor WEB.

A velocidade das operacións ao recibir SMS é dunha fracción de segundo. Funciona de forma estable.

Ademais, hai unha funcionalidade para enviar SMS aos teléfonos mediante o sistema de vixilancia Zabbix e abrir unha conexión a Internet de reserva se fallan as ópticas. Quizais isto estea fóra do alcance deste artigo, pero direi de inmediato que ao enviar SMS, a súa lonxitude debería encaixar no tamaño estándar dunha mensaxe, porque... Mikrotik non os divide en partes, e cando chega unha mensaxe longa, simplemente non a envía, ademais, cómpre filtrar os caracteres transmitidos nas mensaxes, se non, o SMS non se enviará.

Fonte: www.habr.com

Engadir un comentario