Einen guten Tag allerseits!
Diesmal habe ich beschlossen, eine Situation zu beschreiben, die im Internet anscheinend nicht besonders gut dokumentiert ist, obwohl es einige Hinweise darauf gibt; der Großteil stammt jedoch einfach von einer langwierigen, systematischen Durchforstung des Codes und der Wiki von Mikrotik.
Die Aufgabe besteht darin, mehrere Geräte mithilfe von SMS zu steuern, am Beispiel des Ein- und Ausschaltens von Ports.
Verfügbar:
- Sekundär-Router CRS317-1G-16S+
- Zugangspunkt Mikrotik NETMETAL 5
- LTE-Modem R11e-LTE
Fangen wir damit an, dass der wunderbare Zugangspunkt Netmetal 5 über einen eingelöteten SIM-Karten-Sockel und einen Port zur Installation des LTE-Modems verfügt. Daher wurde für diesen Punkt praktisch das beste Modem gekauft, das verfügbar war und von dem Betriebssystem des Punktes unterstützt wurde, nämlich R11e-LTE. Der Zugangspunkt wurde auseinandergebaut, alles an seinen Platz installiert (obwohl man wissen sollte, dass die SIM-Karte unter dem Modem liegt und ohne Abnahme des Hauptplatine nicht herausgenommen werden kann), also prüfen Sie die SIM-Karte auf Funktionalität, sonst müssen Sie den Zugangspunkt mehrmals auseinanderbauen.
Dann haben wir ein paar Löcher in das Gehäuse gebohrt, zwei Pigtails installiert und die Enden am Modem befestigt. Leider gibt es keine Fotos von diesem Prozess. Auf der anderen Seite haben wir universelle Antennen mit magnetischem Fuß an die Pigtails angebracht.
Die Hauptphasen der Einrichtung sind im Internet ziemlich gut dokumentiert, abgesehen von kleinen Fehlern bei der Interaktion. Zum Beispiel hört das Modem auf, SMS-Nachrichten zu empfangen, wenn 5 Stück eingehen und sie im Posteingang hängen; das Löschen von Nachrichten oder das Neustarten des Modems löst das Problem nicht immer. Aber in Version 6.44.1 funktioniert der Empfang stabiler. Im Posteingang werden die letzten 4 SMS angezeigt, die übrigen werden automatisch gelöscht und stören nicht.
Das Hauptziel des Experiments ist es, die Schnittstellen an zwei Routern im selben physischen Netzwerk ein- und auszuschalten. Die größte Schwierigkeit bestand darin, dass Mikrotik kein Management über SNMP unterstützt und nur die Werte ablesen kann. Daher musste ich in eine andere Richtung suchen, nämlich die Mikrotik API.
Es gibt keine klare Dokumentation darüber, wie man sie steuert, also blieb mir nichts anderes übrig, als zu experimentieren, und für zukünftige Versuche wurde diese Anleitung erstellt.
Um mehrere Geräte zu steuern, wird ein verfügbarer und funktionierender Webserver im lokalen Netzwerk benötigt, der für die Steuerung über Mikrotik-Befehle verantwortlich ist.
1. Auf Netmetal 5 müssen ein paar Skripte zum Aktivieren und Deaktivieren erstellt werden.
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. Zwei Skripte müssen für das Web erstellt werden. Server (Natürlich muss in diesem Fall PHP auf dem System installiert sein):
debug=true;
if ($API->connect('IP der verwalteten Mikrotik', 'Admin-Login', 'Admin-Passwort')) {
$API->comm("/interface/ethernet/enable", array(
"numbers"=>"sfp-sfpplus16",));
}
$API->disconnect();
?>
debug=true;
if ($API->connect('IP der verwalteten Mikrotik', 'Admin-Login', 'Admin-Passwort')) {
$API->comm("/interface/ethernet/disable", array(
"numbers"=>"sfp-sfpplus16",));
}
$API->disconnect();
?>
3. Laden Sie die Mikrotik routeros_api.class.php vom Forum herunter und speichern Sie sie an einem zugänglichen Ort. Server.
Statt sfp-sfpplus16 muss der Name der zu deaktivierenden/aktivierenden Schnittstelle angegeben werden.
Jetzt, wenn Sie eine Nachricht an die Nummer im Format senden von
:cmd GEHEIMCODE script enableiface
oder
:cmd GEHEIMCODE script disableiface
NETMETAL wird das entsprechende Skript ausführen, welches wiederum den Befehl auf dem WEB-Server ausführt.
Die Geschwindigkeit der Operationen bei Erhalt von SMS beträgt Bruchteile einer Sekunde. Funktioniert stabil.
Darüber hinaus gibt es die Möglichkeit, SMS an Telefone durch das Überwachungssystem Zabbix zu senden und einen Backup-Internetzugang bei einem Ausfall der Fiberoptik zu aktivieren. Dies geht wohl über den Rahmen dieses Artikels hinaus, aber ich kann sagen, dass die Länge der gesendeten SMS im Standardumfang einer Nachricht liegen muss, da Mikrotik sie nicht in Teile aufteilt und bei Erhalt einer langen Nachricht einfach nicht sendet. Zudem sollten Zeichen, die in den Nachrichten übertragen werden, gefiltert werden, da sonst die SMS nicht gesendet wird.
Quelle: habr.com
