מיקרוטיק. ניהול באמצעות SMS באמצעות שרת WEB

יום טוב לכולם!

הפעם החלטתי לתאר מצב שלא נראה מתואר במיוחד באינטרנט, למרות שיש כמה רמזים לגביו, אבל רובו היה רק ​​חפירה מתודית ארוכה של הקוד והוויקי של מיקרוטיק עצמו.

המשימה בפועל: ליישם שליטה במספר מכשירים באמצעות SMS, באמצעות הדוגמה של הפעלה וכיבוי של יציאות.

זמין:

  1. נתב משני CRS317-1G-16S+
  2. נקודת גישה של Mikrotik NETMETAL 5
  3. מודם LTE R11e-LTE

נתחיל מזה שלנקודת הגישה הנפלאה Netmetal 5 יש על הסיפון מחבר כרטיס SIM מולחם ויציאה להתקנת מודם LTE. לכן, לנקודה זו, בעצם, המודם הטוב ביותר נרכש ממה שהיה זמין ונתמך על ידי מערכת ההפעלה של הנקודה עצמה, כלומר R11e-LTE. נקודת הגישה פורקה, הכל הותקן במקומו (אם כי צריך לדעת שכרטיס ה-SIM ממוקם מתחת למודם ואי אפשר להשיג אותו מבלי להסיר את הלוח הראשי), אז בדוק את פונקציונליות כרטיס ה-SIM, אחרת תצטרך לפרק את נקודת הגישה מספר פעמים.

לאחר מכן, קדחנו כמה חורים במארז, התקנו 2 צמות ואבטחנו את הקצוות למודם. למרבה הצער, שום תמונות של התהליך לא שרדו. מצד שני, אנטנות אוניברסליות בעלות בסיס מגנטי הוצמדו לצמות.

שלבי ההגדרה העיקריים מתוארים היטב באינטרנט, למעט פערי אינטראקציה קלים. לדוגמה, המודם מפסיק לקבל הודעות SMS כאשר 5 מהן מגיעות והן נתקעות בתיבת הדואר הנכנס; ניקוי הודעות והפעלה מחדש של המודם לא תמיד פותרים את הבעיה. אבל בגרסה 6.44.1 הקליטה עובדת יציבה יותר. Inbox מציג את 4 הסמסים האחרונים, השאר נמחקים אוטומטית ואינם מפריעים לחיים.

המטרה העיקרית של הניסוי היא לכבות ולהפעיל ממשקים בשני נתבים באותה רשת פיזית. הקושי העיקרי היה ש-Mikrotik אינו תומך בניהול באמצעות SNMP, אלא מאפשר רק קריאת ערכים. לכן, נאלצתי לחפור בכיוון השני, כלומר ל-Mikrotik API.

אין תיעוד ברור כיצד לשלוט בו, אז הייתי צריך להתנסות והוראה זו נעשתה עבור ניסיונות עתידיים.

כדי לנהל התקנים מרובים, תזדקק לשרת WEB נגיש ועובד ברשת המקומית; יהיה צורך לשלוט בו באמצעות פקודות 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 תפעיל את הסקריפט המתאים, שבתורו יבצע את הפקודה בשרת WEB.

מהירות הפעולות בעת קבלת SMS היא שבריר שנייה. עובד ביציבות.

בנוסף, ישנה פונקציונליות לשליחת SMS לטלפונים על ידי מערכת הניטור Zabbix ופתיחת חיבור אינטרנט גיבוי אם האופטיקה נכשלת. אולי זה מעבר לתחום המאמר הזה, אבל אני אגיד מיד שכאשר שולחים SMS, האורך שלהם צריך להתאים לגודל הסטנדרטי של הודעה אחת, כי... מיקרוטיק לא מחלק אותם לחלקים, וכשמגיעה הודעה ארוכה היא פשוט לא שולחת אותה, בנוסף צריך לסנן את התווים המועברים בהודעות, אחרת ה-SMS לא יישלח.

מקור: www.habr.com

הוספת תגובה