Mikrotik. WEB server yordamida SMS orqali boshqarish

Barchangizga xayrli kun!

Bu safar men Internetda unchalik ta'riflanmagan vaziyatni tasvirlashga qaror qildim, garchi bu haqda ba'zi maslahatlar mavjud bo'lsa-da, lekin ularning ko'pchiligi kodni va Mikrotikning o'zi wiki-ni uzoq vaqt metodik qazish edi.

Haqiqiy vazifa: portlarni yoqish va o'chirish misolidan foydalanib, SMS yordamida bir nechta qurilmalarni boshqarishni amalga oshirish.

Mavjud:

  1. Ikkilamchi router CRS317-1G-16S+
  2. Mikrotik NETMETAL 5 kirish nuqtasi
  3. LTE modem R11e-LTE

Keling, ajoyib Netmetal 5 kirish nuqtasi bortida lehimlangan SIM-karta ulagichi va LTE modemini o'rnatish uchun portga ega ekanligidan boshlaylik. Shuning uchun, bu nuqta uchun, asosan, eng yaxshi modem mavjud bo'lgan va nuqtaning operatsion tizimi tomonidan qo'llab-quvvatlanadigan narsadan sotib olindi, ya'ni R11e-LTE. Kirish nuqtasi demontaj qilindi, hamma narsa o'z o'rniga o'rnatildi (garchi siz SIM-karta modem ostida joylashganligini bilishingiz kerak va uni asosiy platani olib tashlamasdan olish mumkin emas), shuning uchun SIM-kartaning ishlashini tekshiring, aks holda siz kirish nuqtasini bir necha marta qismlarga ajratishingiz kerak bo'ladi.

Keyinchalik, biz korpusda bir nechta teshik ochdik, 2 ta pigtail o'rnatdik va uchlarini modemga mahkamladik. Afsuski, jarayonning fotosuratlari saqlanib qolmadi. Boshqa tomondan, cho'chqalarga magnit asosli universal antennalar biriktirilgan.

O'rnatishning asosiy bosqichlari Internetda juda yaxshi tasvirlangan, kichik shovqin bo'shliqlari bundan mustasno. Masalan, ulardan 5 tasi kelganda va ular Inbox-ga osilib qolganda modem SMS-xabarlarni olishni to'xtatadi; xabarlarni o'chirish va modemni qayta ishga tushirish har doim ham muammoni hal qilmaydi. Ammo 6.44.1 versiyasida qabul qilish yanada barqaror ishlaydi. Inbox oxirgi 4 smsni ko'rsatadi, qolganlari avtomatik ravishda o'chiriladi va hayotga xalaqit bermaydi.

Tajribaning asosiy maqsadi bitta jismoniy tarmoqdagi ikkita routerda interfeyslarni o'chirish va yoqishdir. Asosiy qiyinchilik shundaki, Mikrotik SNMP orqali boshqaruvni qo'llab-quvvatlamaydi, faqat qiymatlarni o'qishga ruxsat beradi. Shuning uchun men boshqa yo'nalishda, ya'ni Mikrotik API-da qazishim kerak edi.

Uni qanday nazorat qilish bo'yicha aniq hujjatlar yo'q, shuning uchun men tajriba o'tkazishga majbur bo'ldim va bu ko'rsatma kelajakdagi urinishlar uchun qilingan.

Bir nechta qurilmalarni boshqarish uchun mahalliy tarmoqda foydalanish mumkin bo'lgan va ishlaydigan WEB-server kerak bo'ladi, uni Mikrotik buyruqlari yordamida boshqarish kerak bo'ladi.

1. Netmetal 5-da uni yoqish va o'chirish uchun mos ravishda bir nechta skriptlarni yaratishingiz kerak.

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. Veb-serverda 2 ta skript yarating (albatta, bu holda tizimda php o'rnatilgan bo'lishi kerak):

<?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. Mikrotik forumidan routeros_api.class.php ni yuklab oling va uni serverdagi mavjud katalogga joylashtiring.

Sfp-sfpplus16 o'rniga siz o'chiriladigan/yoqilgan interfeys nomini ko'rsatishingiz kerak.

Endi, shakldagi raqamga xabar yuborayotganda

:cmd Π‘Π•ΠšΠ Π•Π’ΠΠ«Π™ΠšΠžΠ” script enableiface
ΠΈΠ»ΠΈ
:cmd Π‘Π•ΠšΠ Π•Π’ΠΠ«Π™ΠšΠžΠ” script disableiface 

NETMETAL tegishli skriptni ishga tushiradi, u o'z navbatida WEB-serverda buyruqni bajaradi.

SMS qabul qilishda operatsiyalar tezligi soniyaning bir qismini tashkil qiladi. Barqaror ishlaydi.

Bundan tashqari, Zabbix monitoring tizimi orqali telefonlarga SMS yuborish va optika ishlamay qolganda zaxira Internet ulanishini ochish funksiyasi mavjud. Ehtimol, bu ushbu maqola doirasidan tashqaridadir, lekin men darhol aytamanki, SMS yuborishda ularning uzunligi bitta xabarning standart hajmiga to'g'ri kelishi kerak, chunki... Mikrotik ularni qismlarga ajratmaydi va uzoq xabar kelganda uni shunchaki yubormaydi, bundan tashqari, xabarlarda uzatilgan belgilarni filtrlash kerak, aks holda SMS yuborilmaydi.

Manba: www.habr.com

a Izoh qo'shish