Mikrotik. Kawalan melalui SMS menggunakan pelayan WEB

Selamat hari kepada semua!

Kali ini saya memutuskan untuk menerangkan situasi yang nampaknya tidak diterangkan secara khusus di Internet, walaupun terdapat beberapa petunjuk mengenainya, tetapi kebanyakannya hanyalah penggalian kaedah yang panjang bagi kod dan wiki Mikrotik itu sendiri.

Tugas sebenar: untuk melaksanakan kawalan beberapa peranti menggunakan SMS, menggunakan contoh menghidupkan dan mematikan port.

Tersedia:

  1. Penghala kedua CRS317-1G-16S+
  2. Titik capaian Mikrotik NETMETAL 5
  3. Modem LTE R11e-LTE

Mari kita mulakan dengan fakta bahawa titik akses Netmetal 5 yang indah mempunyai penyambung kad SIM yang dipateri dan port untuk memasang modem LTE. Oleh itu, untuk titik ini, pada asasnya modem terbaik dibeli daripada apa yang tersedia dan disokong oleh sistem pengendalian titik itu sendiri, iaitu R11e-LTE. Titik akses telah dibongkar, semuanya dipasang di tempatnya (walaupun anda perlu tahu bahawa kad SIM terletak di bawah modem dan tidak mungkin untuk mendapatkannya tanpa mengeluarkan papan utama), jadi semak kad SIM untuk kefungsian, jika tidak, anda perlu membuka pusat akses beberapa kali.

Seterusnya, kami menggerudi beberapa lubang dalam kes itu, memasang 2 kuncir dan mengikat hujung ke modem. Malangnya, tiada gambar proses itu disimpan. Sebaliknya, antena sejagat dengan asas magnet dipasang pada kuncir.

Langkah persediaan utama diterangkan dengan baik di Internet, kecuali untuk jurang interaksi kecil. Sebagai contoh, modem berhenti menerima mesej SMS apabila 5 daripadanya tiba dan mereka tergantung dalam Peti Masuk; mengosongkan mesej dan memulakan semula modem tidak selalu menyelesaikan masalah. Tetapi dalam versi 6.44.1 penerimaan berfungsi lebih stabil. Inbox memaparkan 4 sms terakhir, selebihnya secara automatik terpadam dan tidak mengganggu kehidupan.

Matlamat utama percubaan adalah untuk mematikan dan menghidupkan antara muka pada dua penghala pada rangkaian fizikal yang sama. Kesukaran utama ialah Mikrotik tidak menyokong pengurusan melalui SNMP, tetapi hanya membenarkan nilai bacaan. Oleh itu, saya terpaksa mengorek ke arah lain, iaitu API Mikrotik.

Tiada dokumentasi yang jelas tentang cara mengawalnya, jadi saya terpaksa mencuba dan arahan ini dibuat untuk percubaan masa hadapan.

Untuk mengurus berbilang peranti, anda memerlukan pelayan WEB yang boleh diakses dan berfungsi pada rangkaian tempatan; ia perlu dikawal menggunakan arahan Mikrotik.

1. Pada Netmetal 5 anda perlu membuat beberapa skrip untuk menghidupkan dan mematikannya, masing-masing

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. Buat 2 skrip pada pelayan web (sudah tentu, php mesti dipasang pada sistem dalam kes ini):

<?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. Muat turun routeros_api.class.php dari forum Mikrotik dan letakkannya dalam direktori yang boleh diakses pada pelayan.

Daripada sfp-sfpplus16 anda perlu menentukan nama antara muka untuk dilumpuhkan/didayakan.

Sekarang, apabila menghantar mesej kepada nombor dalam borang

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

NETMETAL akan melancarkan skrip yang sepadan, yang seterusnya akan melaksanakan arahan pada pelayan WEB.

Kelajuan operasi apabila menerima SMS adalah pecahan sesaat. Berfungsi dengan stabil.

Di samping itu, terdapat fungsi untuk menghantar SMS ke telefon oleh sistem pemantauan Zabbix dan membuka sambungan Internet sandaran jika optik gagal. Mungkin ini di luar skop artikel ini, tetapi saya akan segera mengatakan bahawa apabila menghantar SMS, panjangnya harus sesuai dengan saiz standard satu mesej, kerana... Mikrotik tidak membahagikannya kepada beberapa bahagian, dan apabila mesej panjang tiba, ia tidak menghantarnya, sebagai tambahan, anda perlu menapis aksara yang dihantar dalam mesej, jika tidak, SMS tidak akan dihantar.

Sumber: www.habr.com

Tambah komen