Pozdrav svima!
Ovaj put sam odlučio opisati situaciju koja očigledno nije mnogo obrađena na internetu, iako ima nekih nagoveštaja, ali je veći deo došao iz dugotrajnog metodičnog kopanja koda i wiki stranice samog Mikrotika.
Dakle, zadatak je: realizovati upravljanje više uređaja putem SMS-a, koristeći primer uključivanja i isključivanja portova.
Imamo:
- Sekundarni ruter CRS317-1G-16S+
- Pristupna tačka Mikrotik NETMETAL 5
- LTE modem R11e-LTE
Počnimo od toga da divna pristupna tačka Netmetal 5 ima lemi konektor za SIM karticu i port za instalaciju LTE modema. Zato je za ovu tačku kupljen suštinski najbolji modem koji je bio dostupan i koji podržava operativni sistem same tačke, a to je R11e-LTE. Tačka je demontirana, sve je instalirano na svoja mesta (iako treba znati da je SIM kartica smeštena ispod modema i da je bez skidanja glavne ploče ne moguće izvaditi), pa proverite SIM karticu na funkcionalnost, inače ćete morati nekoliko puta da demontirate pristupnu tačku.
Zatim smo izbušili par rupa u kućištu, instalirali dva pigtail kabla i učvrstili krajeve na modem. Nažalost, fotografije procesa nisu sačuvane. S druge strane, na pigtail kablove su postavljene univerzalne antene sa magnetnom bazom.
Glavni koraci podešavanja su na internetu prilično dobro opisani, osim nekih sitnih grešaka u interakciji. Na primer, modem prestaje da prima SMS poruke kada ih stigne 5 i one ostanu u Inboxu; brisanje poruka ili ponovno pokretanje modema ne rešavaju uvek problem. Međutim, u verziji 6.44.1 prijem radi stabilnije. U Inboxu se prikazuje poslednjih 4 SMS-a, svi ostali se automatski brišu i ne ometaju život.
Osnovna svrha eksperimenta je gašenje i uključivanje interfejsa na dva rutera unutar iste fizičke mreže. Glavna poteškoća je bila u tome što Mikrotik ne podržava upravljanje putem SNMP-a, a omogućava samo očitavanje vrednosti. Zato je bilo potrebno kopati u drugom pravcu, a to je Mikrotik API.
Nema jasne dokumentacije o tome kako upravljati, pa je bilo potrebno eksperimentisati, a za buduće pokušaje napravljena je ova instrukcija.
Za upravljanje više uređaja biće potreban dostupan i funkcionalan WEB server u lokalnoj mreži, na kojem će se vršiti upravljanje putem komandi Mikrotik.
1. На Netmetal 5 нужно написать несколько скриптов для включения и отключения соответственно
системный скрипт
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. Создать 2 скрипта на веб strežnikom (конечно, на системе в данном случае должен быть установлен php):
debug=true;
if ($API->connect('IP управляемого Mikrotik', 'логин администратора', 'пароль администратора')) {
$API->comm("\/interface\/ethernet\/enable", array(
"numbers"=>"sfp-sfpplus16",));
}
$API->disconnect();
?>
debug=true;
if ($API->connect('IP управляемого Mikrotik', 'логин администратор', 'пароль администратора')) {
$API->comm("\/interface\/ethernet\/disable", array(
"numbers"=>"sfp-sfpplus16",));
}
$API->disconnect();
?>
3. Скачать с форума Mikrotik routeros_api.class.php и разместить его в доступном каталоге на strežnikom.
вместо sfp-sfpplus16 нужно указать имя отключаемого\/включаемого интерфейса.
Теперь при отправке сообщения на номер в виде
:cmd СЕКРЕТНЫЙКОД script enableiface
или
:cmd СЕКРЕТНЫЙКОД script disableiface
NETMETAL будет запускать соответствующий скрипт, который выполнит команду на WEB сервере.
Скорость выполнения операций при получении SMS — доли секунды. Работает стабильно.
Кроме того, есть функционал отправки СМС на телефоны через систему мониторинга Zabbix и открытия резервного выхода в интернет при падении оптики. Это выходит за рамки этой статьи, но сразу скажу, что при отправке SMS их длина должна укладываться в стандартный размер одного сообщения, так как Mikrotik не делит их на части, и при поступлении длинного сообщения просто его не отправляет. Также нужно фильтровать символы, передаваемые в сообщениях, в противном случае СМС не будет отправлено.
Izvor: habr.com
