Mikrotik. Manajemen melalui SMS menggunakan server WEB

Selamat siang semuanya!

Kali ini saya memutuskan untuk menggambarkan situasi yang sepertinya tidak terlalu dijelaskan di Internet, meskipun ada beberapa petunjuk tentang hal itu, tetapi sebagian besar hanyalah penggalian metodis yang panjang terhadap kode dan wiki Mikrotik itu sendiri.

Tugas sebenarnya: mengimplementasikan kontrol beberapa perangkat menggunakan SMS, menggunakan contoh menghidupkan dan mematikan port.

Tersedia:

  1. Router sekunder CRS317-1G-16S+
  2. Titik akses Mikrotik NETMETAL 5
  3. Modem LTE R11e-LTE

Mari kita mulai dengan fakta bahwa titik akses Netmetal 5 yang luar biasa memiliki konektor kartu SIM yang disolder dan port untuk memasang modem LTE. Oleh karena itu untuk poin ini intinya dibeli modem terbaik dari yang tersedia dan didukung oleh sistem operasi poin itu sendiri yaitu R11e-LTE. Jalur akses dibongkar, semuanya dipasang pada tempatnya (walaupun perlu Anda ketahui bahwa kartu SIM terletak di bawah modem dan tidak mungkin mendapatkannya tanpa melepas papan utama), jadi periksa fungsionalitas kartu SIM, jika tidak, Anda harus membongkar titik akses beberapa kali.

Selanjutnya, kami mengebor beberapa lubang di casing, memasang 2 kuncir dan mengamankan ujungnya ke modem. Sayangnya, tidak ada foto proses tersebut yang bertahan. Di sisi lain, antena universal dengan dasar magnet dipasang pada kuncirnya.

Langkah-langkah penyiapan utama dijelaskan dengan cukup baik di Internet, kecuali untuk kesenjangan interaksi kecil. Misalnya, modem berhenti menerima pesan SMS ketika 5 pesan masuk dan pesan tersebut hang di Kotak Masuk; menghapus pesan dan memulai ulang modem tidak selalu menyelesaikan masalah. Namun pada versi 6.44.1 penerimaan bekerja lebih stabil. Inbox menampilkan 4 sms terakhir, selebihnya otomatis terhapus dan tidak mengganggu kehidupan.

Tujuan utama dari percobaan ini adalah untuk mematikan dan menghidupkan antarmuka pada dua router di jaringan fisik yang sama. Kesulitan utamanya adalah Mikrotik tidak mendukung manajemen melalui SNMP, tetapi hanya mengizinkan pembacaan nilai. Oleh karena itu saya harus menggali ke arah lain yaitu Mikrotik API.

Tidak ada dokumentasi yang jelas tentang cara mengendalikannya, jadi saya harus bereksperimen dan instruksi ini dibuat untuk upaya di masa depan.

Untuk mengelola beberapa perangkat, Anda memerlukan server WEB yang dapat diakses dan berfungsi di jaringan lokal; itu perlu dikontrol menggunakan perintah Mikrotik.

1. Di 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 script di web server (tentunya php harus terinstal di sistem dalam hal 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. Download routeros_api.class.php dari forum Mikrotik dan letakkan pada direktori yang dapat diakses di server.

Daripada sfp-sfpplus16 Anda perlu menentukan nama antarmuka yang akan dinonaktifkan/diaktifkan.

Sekarang, saat mengirim pesan ke nomor di formulir

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

NETMETAL akan meluncurkan skrip yang sesuai, yang selanjutnya akan menjalankan perintah di server WEB.

Kecepatan operasi saat menerima SMS hanya sepersekian detik. Bekerja secara stabil.

Selain itu, terdapat fungsi untuk mengirim SMS ke ponsel melalui sistem pemantauan Zabbix dan membuka koneksi Internet cadangan jika optik gagal. Mungkin ini di luar cakupan artikel ini, tetapi saya akan langsung mengatakan bahwa saat mengirim SMS, panjangnya harus sesuai dengan ukuran standar satu pesan, karena... Mikrotik tidak membaginya menjadi beberapa bagian, dan ketika pesan panjang tiba, ia tidak mengirimkannya, selain itu, Anda perlu memfilter karakter yang dikirimkan dalam pesan, jika tidak, SMS tidak akan terkirim.

Sumber: www.habr.com

Tambah komentar