Goedendag iedereen!
Deze keer besloot ik een situatie te beschrijven die nog niet vaak op internet beschreven lijkt te zijn. Er zijn weliswaar wat aanwijzingen, maar het grootste deel ervan heb ik verkregen door simpelweg lang en methodisch door de code en de wiki van Mikrotik zelf te spitten.
De eigenlijke opdracht: het implementeren van de besturing van meerdere apparaten via SMS, met als voorbeeld het aan- en uitzetten van poorten.
Verkrijgbaar:
- Secundaire router CRS317-1G-16S+
- Mikrotik NETMETAL 5 toegangspunt
- LTE-modem R11e-LTE
Laten we beginnen met het feit dat het prachtige Netmetal 5 access point een gesoldeerde simkaartsleuf en een poort voor de installatie van een LTE-modem aan boord heeft. Daarom werd voor dit access point de beste modem gekocht die beschikbaar was en ondersteund werd door het besturingssysteem van het access point zelf, namelijk R11e-LTE. Het access point werd gedemonteerd, alles werd op zijn plaats gezet (hoewel je moet weten dat de simkaart zich onder het modem bevindt en dat het onmogelijk is om deze eruit te halen zonder het moederbord te verwijderen). Controleer dus de simkaart op bruikbaarheid, anders zul je het access point meerdere keren moeten demonteren.
Vervolgens hebben we een paar gaten in de behuizing geboord, twee pigtails geplaatst en de uiteinden aan het modem bevestigd. Helaas is de foto van het proces niet bewaard gebleven. Aan de andere kant zijn universele antennes met een magnetische voet aan de pigtails bevestigd.
De belangrijkste installatiestappen worden redelijk goed beschreven op internet, afgezien van kleine interactieproblemen. Zo stopt de modem met het ontvangen van sms-berichten wanneer er 5 binnenkomen en blijven ze hangen in de inbox. Het wissen van berichten en het opnieuw opstarten van de modem lost het probleem niet altijd op. Maar in versie 6.44.1 werkt de ontvangst stabieler. De inbox toont de laatste 4 sms-berichten, de rest wordt automatisch verwijderd en verstoort het leven niet.
Het hoofddoel van het experiment was het uitschakelen en activeren van interfaces op twee routers in één fysiek netwerk. De grootste uitdaging was dat Mikrotik geen beheer via SNMP ondersteunt, maar alleen het lezen van waarden toestaat. Daarom moesten we de andere kant op, namelijk via de Mikrotik API.
Er is geen duidelijke documentatie over hoe je dit moet regelen, dus moest ik experimenteren. Voor toekomstige pogingen heb ik deze instructie gemaakt.
Om meerdere apparaten te beheren, hebt u een toegankelijke en werkende webserver in het lokale netwerk nodig. Deze is verantwoordelijk voor het beheer van Mikrotik-opdrachten.
1. Op Netmetal 5 moet je een aantal scripts maken om respectievelijk aan en uit te zetten
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. Maak 2 webscripts aan. server (uiteraard moet PHP in dit geval wel op het systeem geïnstalleerd zijn):
<?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 van het Mikrotik-forum en plaats het in een toegankelijke map op server.
in plaats van sfp-sfpplus16 moet u de naam van de interface opgeven die u wilt in- of uitschakelen.
Wanneer u nu een bericht naar een nummer in de vorm van een bericht verzendt
:cmd СЕКРЕТНЫЙКОД script enableiface
или
:cmd СЕКРЕТНЫЙКОД script disableiface
NETMETAL start het bijbehorende script, dat op zijn beurt de opdracht op de WEBserver uitvoert.
De verwerkingssnelheid bij het ontvangen van sms-berichten is een fractie van een seconde. Het werkt stabiel.
Daarnaast is er functionaliteit voor het versturen van sms-berichten naar telefoons met behulp van het Zabbix-monitoringsysteem en het openen van een back-up internetverbinding wanneer de optische schakeling uitvalt. Dit valt misschien buiten het bestek van dit artikel, maar ik wil er meteen bij zeggen dat bij het versturen van sms-berichten de lengte ervan moet passen binnen de standaardgrootte van één bericht. Mikrotik verdeelt ze namelijk niet in delen en wanneer een lang bericht wordt ontvangen, wordt het simpelweg niet verzonden. Bovendien moet u de verzonden tekens in de berichten filteren, anders wordt het sms-bericht niet verzonden.
Bron: www.habr.com
