ขอให้เป็นวันที่ดีทุกคน!
ครั้งนี้ฉันตัดสินใจที่จะอธิบายสถานการณ์ที่ดูเหมือนจะไม่ได้รับการอธิบายเป็นพิเศษบนอินเทอร์เน็ต แม้ว่าจะมีคำแนะนำอยู่บ้าง แต่ส่วนใหญ่เป็นเพียงการขุดโค้ดและวิกิของ Mikrotik อย่างมีระเบียบวิธี
งานจริง: ดำเนินการควบคุมอุปกรณ์ต่าง ๆ โดยใช้ SMS โดยใช้ตัวอย่างการเปิดและปิดพอร์ต
มีอยู่:
- เราเตอร์สำรอง CRS317-1G-16S+
- จุดเข้าใช้งาน Mikrotik NETMETAL 5
- โมเด็ม LTE R11e-LTE
เริ่มต้นด้วยความจริงที่ว่าจุดเชื่อมต่อ Netmetal 5 ที่ยอดเยี่ยมมีขั้วต่อซิมการ์ดแบบบัดกรีและพอร์ตสำหรับติดตั้งโมเด็ม LTE บนบอร์ด ดังนั้น ณ จุดนี้ โมเด็มที่ดีที่สุดจึงถูกซื้อจากสิ่งที่มีอยู่และรองรับโดยระบบปฏิบัติการของจุดนั้นเอง นั่นคือ R11e-LTE จุดเชื่อมต่อถูกถอดประกอบทุกอย่างถูกติดตั้งเข้าที่ (แม้ว่าคุณจำเป็นต้องรู้ว่าซิมการ์ดอยู่ใต้โมเด็มและไม่สามารถรับได้โดยไม่ต้องถอดเมนบอร์ดออก) ดังนั้นให้ตรวจสอบการทำงานของซิมการ์ด มิฉะนั้นคุณจะต้องถอดแยกชิ้นส่วนจุดเข้าใช้งานหลายครั้ง
ต่อไป เราเจาะรูสองสามรูในกรณีนี้ ติดตั้งผมเปีย 2 เส้น และยึดปลายด้านเข้ากับโมเด็ม น่าเสียดายที่ไม่มีรูปถ่ายของกระบวนการนี้รอดมาได้ ในทางกลับกันเสาอากาศสากลที่มีฐานแม่เหล็กติดอยู่กับผมเปีย
ขั้นตอนการตั้งค่าหลักมีการอธิบายไว้ค่อนข้างดีบนอินเทอร์เน็ต ยกเว้นช่องว่างการโต้ตอบเล็กน้อย ตัวอย่างเช่น โมเด็มหยุดรับข้อความ SMS เมื่อมี 5 ข้อความมาถึงและค้างอยู่ในกล่องจดหมาย การล้างข้อความและการรีสตาร์ทโมเด็มอาจไม่ได้แก้ปัญหาเสมอไป แต่ในเวอร์ชัน 6.44.1 การรับสัญญาณจะมีเสถียรภาพมากขึ้น กล่องจดหมายจะแสดง 4 SMS สุดท้าย ส่วนที่เหลือจะถูกลบโดยอัตโนมัติและไม่รบกวนชีวิต
เป้าหมายหลักของการทดลองคือการปิดและเปิดอินเทอร์เฟซบนเราเตอร์สองตัวบนเครือข่ายกายภาพเดียวกัน ปัญหาหลักคือ Mikrotik ไม่รองรับการจัดการผ่าน SNMP แต่อนุญาตเฉพาะการอ่านค่าเท่านั้น เลยต้องขุดไปอีกทางคือ Mikrotik API
ไม่มีเอกสารที่ชัดเจนเกี่ยวกับวิธีการควบคุม ดังนั้นฉันจึงต้องทดลองและคำแนะนำนี้จัดทำขึ้นสำหรับความพยายามในอนาคต
ในการจัดการอุปกรณ์หลายเครื่อง คุณจะต้องมีเว็บเซิร์ฟเวอร์ที่สามารถเข้าถึงได้และใช้งานได้บนเครือข่ายท้องถิ่น โดยจะต้องควบคุมโดยใช้คำสั่ง Mikrotik
1. บน Netmetal 5 คุณต้องสร้างสคริปต์สองสามตัวเพื่อเปิดและปิดตามลำดับ
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. สร้าง 2 สคริปต์บนเว็บเซิร์ฟเวอร์ (แน่นอนว่าต้องติดตั้ง php บนระบบในกรณีนี้):
<?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. ดาวน์โหลด routeros_api.class.php จากฟอรัม Mikrotik และวางไว้ในไดเร็กทอรีที่สามารถเข้าถึงได้บนเซิร์ฟเวอร์
แทนที่จะเป็น sfp-sfpplus16 คุณต้องระบุชื่อของอินเทอร์เฟซที่จะปิดใช้งาน/เปิดใช้งาน
ตอนนี้เมื่อส่งข้อความถึงเบอร์ในแบบฟอร์ม
:cmd СЕКРЕТНЫЙКОД script enableiface
или
:cmd СЕКРЕТНЫЙКОД script disableiface
NETMETAL จะเปิดตัวสคริปต์ที่เกี่ยวข้อง ซึ่งจะรันคำสั่งบนเว็บเซิร์ฟเวอร์
ความเร็วในการทำงานเมื่อรับ SMS คือเสี้ยววินาที ทำงานได้เสถียร
นอกจากนี้ยังมีฟังก์ชันสำหรับส่ง SMS ไปยังโทรศัพท์โดยระบบตรวจสอบ Zabbix และเปิดการเชื่อมต่ออินเทอร์เน็ตสำรองหากเลนส์ล้มเหลว บางทีนี่อาจอยู่นอกเหนือขอบเขตของบทความนี้ แต่ฉันจะบอกทันทีว่าเมื่อส่ง SMS ความยาวควรพอดีกับขนาดมาตรฐานของข้อความเดียวเพราะ... Mikrotik ไม่ได้แบ่งพวกมันออกเป็นส่วน ๆ และเมื่อมีข้อความยาว ๆ มาถึง มันก็จะไม่ส่งไป นอกจากนี้คุณต้องกรองอักขระที่ส่งในข้อความ มิฉะนั้น SMS จะไม่ถูกส่ง
ที่มา: will.com