Միկրոտիկ. Կառավարում SMS-ի միջոցով WEB սերվերի միջոցով

Բարի օր բոլորին!

Այս անգամ ես որոշեցի նկարագրել մի իրավիճակ, որը կարծես թե առանձնապես չի նկարագրվում ինտերնետում, թեև դրա մասին կան որոշ ակնարկներ, բայց դրա մեծ մասը պարզապես կոդի և հենց Mikrotik-ի վիքիի երկար մեթոդական փորում էր:

Իրական խնդիրը. մի քանի սարքերի կառավարում իրականացնել SMS-ի միջոցով՝ օգտագործելով պորտերը միացնելու և անջատելու օրինակը:

Հասանելի է:

  1. Երկրորդական երթուղիչ CRS317-1G-16S+
  2. Mikrotik NETMETAL 5 մուտքի կետ
  3. LTE մոդեմ R11e-LTE

Սկսենք նրանից, որ հրաշալի Netmetal 5 մուտքի կետն ունի զոդված SIM քարտի միակցիչ և LTE մոդեմ տեղադրելու պորտ: Հետևաբար, այս կետի համար, ըստ էության, լավագույն մոդեմը ձեռք է բերվել այն ամենից, ինչ հասանելի և աջակցվում է հենց կետի օպերացիոն համակարգով, այն է՝ R11e-LTE: Մուտքի կետը ապամոնտաժվեց, ամեն ինչ տեղադրվեց իր տեղում (չնայած դուք պետք է իմանաք, որ SIM քարտը գտնվում է մոդեմի տակ, և այն հնարավոր չէ ստանալ առանց հիմնական տախտակը հանելու), այնպես որ ստուգեք SIM քարտը ֆունկցիոնալության համար, հակառակ դեպքում ստիպված կլինեք մի քանի անգամ ապամոնտաժել մուտքի կետը:

Այնուհետև մենք մի քանի անցք բացեցինք պատյանում, տեղադրեցինք 2 խոզուկ և ամրացրեցինք ծայրերը մոդեմին: Ցավոք, գործընթացից ոչ մի լուսանկար չի պահպանվել: Մյուս կողմից, մագնիսական հիմքով ունիվերսալ ալեհավաքներ ամրացված էին խոզուկներին։

Կարգավորման հիմնական քայլերը բավականին լավ նկարագրված են ինտերնետում, բացառությամբ փոխազդեցության փոքր բացերի: Օրինակ, մոդեմը դադարում է ստանալ SMS հաղորդագրություններ, երբ դրանցից 5-ը գալիս են, և դրանք կախված են Inbox-ում, հաղորդագրությունները մաքրելը և մոդեմը վերագործարկելը միշտ չէ, որ լուծում են խնդիրը: Բայց 6.44.1 տարբերակում ընդունելությունն ավելի կայուն է աշխատում։ Inbox-ը ցուցադրում է վերջին 4 sms-ը, մնացածը ավտոմատ կերպով ջնջվում են և չեն խանգարում կյանքին:

Փորձի հիմնական նպատակն է անջատել և միացնել ինտերֆեյսները նույն ֆիզիկական ցանցի երկու երթուղիչների վրա: Հիմնական դժվարությունն այն էր, որ 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 ստանալու ժամանակ գործողությունների արագությունը վայրկյանի մասն է: Աշխատում է կայուն։

Բացի այդ, կա Zabbix մոնիտորինգի համակարգի միջոցով հեռախոսներին SMS ուղարկելու և օպտիկայի ձախողման դեպքում պահեստային ինտերնետ կապ բացելու գործառույթ: Թերևս սա այս հոդվածի շրջանակներից դուրս է, բայց ես անմիջապես կասեմ, որ SMS ուղարկելիս դրանց երկարությունը պետք է տեղավորվի մեկ հաղորդագրության ստանդարտ չափի մեջ, քանի որ... Mikrotik-ը դրանք մասերի չի բաժանում, իսկ երբ հասնում է երկար հաղորդագրություն, այն պարզապես չի ուղարկում, բացի այդ, պետք է զտել հաղորդագրություններում փոխանցված նիշերը, հակառակ դեպքում SMS-ը չի ուղարկվի։

Source: www.habr.com

Добавить комментарий