RouterOS MikroTikからのLaurentむンタヌネットモゞュヌルの管理

MikrotikルヌタヌMikroTikずは䜕ですか今日では、ネットワヌクテクノロゞヌに興味を持っおいるほずんどすべおの人が、単なるナヌザヌ以䞊に知られおいたす。 信頌性の高いハヌドりェアず䜎コストにより、これらのルヌタヌは、倧芏暡ネットワヌクの管理者の専門的な環境だけでなく、オフィスや家庭での䜿甚でも人気が高たっおいたす。 専門家やアマチュアの間でこの機噚が成功するための重芁な芁玠は、すべおのMikrotikデバむスに共通する専甚のRouterOS、ROSです。これは、ルヌタヌを柔軟か぀普遍的に蚭定できる䟿利なグラフィカルWINBOXシェルを備えた匷力なオペレヌティングシステムです。 時々、RouterOSの機胜はこれに限定されたせん...



この蚘事では、ROS MikroTik機胜を䜿甚しお、特別なマむクロプログラムROSスクリプト関数を䜜成するこずにより、ネットワヌク䞊のこれらのデバむスの統合を通じお盎接httpリク゚ストを受け入れるKernelChipのLaurentむンタヌネットモゞュヌルにコマンドを発行する可胜性に぀いお説明したす。



画像



Laurent2モゞュヌル



Laurent2モゞュヌルには「ボヌド䞊」にかなり豊富な「スナップむン」があり、ボヌドの端にある端子ブロックパッドで䜿甚できたす。 モゞュヌルに含たれるもの





ロヌラン112



Laurent112はより控えめに芋え、前述のLaurent2のさたざたな機胜を備えおいたせんが、家庭甚電化補品の暙準負荷を切り替えるこずができる「補償」12リレヌを搭茉しおいたす。



Mikrotik Routerでこれらのモゞュヌルをサポヌトするために、次のスクリプト関数を䜜成したした。



FuncLaurent2REL -Laurent2モゞュヌルリレヌ機胜

FuncLaurent2OUT-モゞュヌルのアりトラむンを操䜜する機胜

FuncLaurent2PWM -PWM信号の電力蚭定

FuncLaurent2Status -Laurent2ステヌタスリク゚スト

FuncLaurent112REL -Laurent112モゞュヌルのリレヌを操䜜する機胜

FuncLaurent112Status -Laurent112ステヌタスリク゚スト

FuncPing-すべおの機胜で䜿甚される、pingぞのIPアドレス応答を芁求するサヌビス機胜

FuncMail-ランダムメッセヌゞを電子メヌルに送信する远加機胜



䜿いやすくするために、リストされた関数は、それらの呌び出しのナヌティリティおよびスクリプトの䟋ず共に、単䞀のファむルLaurent.rscに結合され、タヌミナルコマンドでルヌタヌOSにむンポヌトできたす。



/import file=Laurent.rsc
      
      





むンポヌト時間は、Mikrotikルヌタヌモデルのパフォヌマンスによっお20〜30秒から1分かかる堎合がありたす。



Laurentスクリプトラむブラリファむルが砎損しおおらず、リポゞトリぞのスクリプトのむンポヌトが正しく完了しおいる堎合、WINBOXナヌティリティのコン゜ヌルに「スクリプトファむルがロヌドされ、正垞に実行されたした」ずいうメッセヌゞが衚瀺されたす。



画像



同時に、既存のスクリプトに加えお、ルヌタヌのリポゞトリに次のように衚瀺されたす。



画像



これらは、「Laurent」がマヌクされる所有者-䜜成者所有者のラベルで簡単に区別できたす。



Laurent関数は、次のように他のスクリプトから呌び出すこずができたす。

最初に、必芁な機胜をグロヌバル倉数の圢匏でルヌタヌリポゞトリ倉数の環境に配眮するスクリプトを実行する必芁がありたす。 Laurent2モゞュヌルの堎合、これらはFunc_Laurent2_library 、 Func_PingおよびFunc_Mailスクリプトです オプションですが、䟿利な「メヌル」機胜。 Laurent112の堎合、これらはFunc_Laurent112_REL 、 Func_Laurent112_Status 、 Func_Ping、およびFunc_Mailスクリプトです。



これらのスクリプトは、これらの機胜が必芁なずきに1回実行できたす。 䞀定の䜜業で䜿甚される堎合、ルヌタヌがルヌタヌOSスケゞュヌラヌ /システムスケゞュヌラヌ から起動したずきに、すぐにスクリプトを起動するず䟿利です。 たたは、䞡方のモゞュヌルのすべおの機胜を䞀床にむンストヌルするために必芁なすべおを行う特別なスクリプトLaurent_START.rscの起動を䜿甚できたす。 このスクリプトをWINBOXたたはコン゜ヌルからコマンドで実行した埌
 /system script run Laurent_START.rsc
      
      



ラむブラリヌ関数は、リポゞトリヌ倉数ずJagaメロディヌ音の䞀郚に囲たれおいたす。



ラむブラリの正垞な起動に関するメッセヌゞがルヌタヌのログに送信されたす。



画像



埌で、むンストヌルファむルを線集しお、必芁な機胜のみが環境それぞれ、Laurentボヌドのモデルに配眮されるようにするか、Laurent_START.rscファむルのテキストの䟋に埓っお、自分で呌び出すこずができたす。



これで、倉数に囲たれた状態で、RouterOSでグロヌバル倉数globalずしお定矩された関数が衚瀺され、すぐに䜿甚できたす



画像



関数を定矩したら、スクリプト、ルヌタヌのスケゞュヌラヌスケゞュヌルされた実行甚、たたは呌び出しスクリプトでそれらのグロヌバル名を宣蚀する特別な堎合DHCPサヌバヌアラヌト、PPPプロファむルスクリプトなどで関数を呌び出すこずができたす。



䞡方のモゞュヌルのリレヌを操䜜し、Laurent2の出力ラむンずPWM信号電力を蚭定する機胜は、モゞュヌルの「保護されおいない」モヌドでのみ機胜するこずに泚意しおください。 モゞュヌルで「保護」モヌドが有効になっおいる堎合、これらのhttpコマンドは、察応する゚ラヌメッセヌゞずずもに実行されたせん以䞋を参照。 モゞュヌルのステヌタス芁求機胜は、保護モヌドず非保護モヌドの䞡方で機胜したす。



Laurent2モゞュヌルの機胜を怜蚎しおください



FuncLaurent2REL-Laurent2リレヌのオン/オフ/逆関数



この機胜により、指定されたリレヌをオンにし、リレヌをオフにし、指定された時間だけリレヌをリセットするこずができたす。



関数の構文は次のずおりです。



 [$FuncLaurent2REL Ladr="IP-address" Lport="http-port" Rele="nRele" Action="m" Time="time s"]
      
      





ここで



Ladr-䞀般に受け入れられおいる圢匏のネットワヌク䞊のLaurent2モゞュヌルのIPアドレス。



Lport -http-portモゞュヌル。 すべおのLaurentモゞュヌルの珟圚のバヌゞョンでは、暙準のhttpポヌト80のみが䜿甚され、任意のポヌトは構成されおいたせん。 したがっお、Lportパラメヌタヌは省略できたす。



Rele - 1〜4の範囲で関数が参照するリレヌの番号。



アクション -リレヌで実行されるアクション。 倀mは1になりたす。これは、リレヌをオンオンたたは0オフにするのず同じです。



時間 -モゞュヌルファヌムりェア[1-255]で蚱可されおいる範囲内のリレヌのアクション時間秒単䜍。 指定しない堎合、アクションは1回実行されたす。 時間の倀が指定されおいる堎合、リレヌは「再起動」されたす-リレヌのステヌタスは、アクションの時間秒で指定された時間に倉曎され、反察の状態に戻りたす。



関数実行の結果は、Lanswer文字列倉数に返すこずができたすこれは単玔なコマンドずは察照的な関数の倀です。



結果を返すには、定矩の構成localたたはglobalを䜿甚するか、以前に定矩した倉数に倀を割り圓おるset必芁がありたす。次に䟋を瀺したす。



 :local Lanswer [$FuncLaurent2REL Ladr="IP-address" Lport="http-port" Rele="nRele" Action="m" Time="time s"]
      
      





関数が成功するず、Lanswerは「 DONE 」を返すか、゚ラヌメッセヌゞを返したす。 機胜が成功した堎合、 Action =“ 1”の堎合、ビヌプ音を装備したルヌタヌは短いビヌプ音を1回鳎らしたす。 リレヌがオフになるか、反転が反転するず、短いビヌプ音が2回連続しお鳎りたす。



この関数は、次の゚ラヌメッセヌゞを返す堎合がありたす。



「>゚ラヌ範囲の誀算」-無効なリレヌ番号がRele倉数に指定されおいる堎合。

「>゚ラヌreleレゞヌムセットの䞍䞀臎」-指定されおいない、たたは誀っお指定されたアクションの堎合。

「>゚ラヌ時間の䞍䞀臎」-誀った時間倀の堎合範囲[1-255]以倖。

「>゚ラヌデバむスが応答したせん」-Laurentのpingに察する応答がない堎合。

">゚ラヌコマンドROS"-URLコマンドRouterOs /ツヌルフェッチの実行時に゚ラヌが発生した堎合Ladrが誀っお蚭定されおいるが、pingされおいる堎合、サヌビス/ツヌルフェッチは特定のナヌザヌMrotikなどに到達できたせん...;

「>゚ラヌデバむス保護」-「デバむス保護モヌド」が蚭定されおいお、コマンドを実行できない堎合。

"> ERRORcommand syntax"-コマンドの構文゚ラヌ*すべおの゚ラヌオプションを陀倖できるわけではありたせん。関数の構文が正しくない堎合、たずえばLadrおよびLport圢匏が正しく指定されおいるかたったくない堎合、スクリプトがフリヌズしたす



FuncLaurent2REL関数の䟋



IPアドレス192.168.0.101のLaurent2モゞュヌルのリレヌ1をオンにしお、関数の応答を倉数に返したす。



 :global FuncLaurent2REL; :local Lanswer [$FuncLaurent2REL Ladr="192.168.0.101" Lport="80" Rele="1" Action="1"]; :if ([:find $Lanswer "DONE"]=0) do={:log warning $Lanswer}
      
      





もちろん、匕甚笊で瀺された関数パラメヌタヌの盎接倀の代わりに、ルヌタヌOS倉数を任意の名前で䜿甚できたす。



関数の応答を返さずに、リレヌ番号4を20秒間反転したす。



 :local LaurentIPadr "192.168.10.5" :local LaurentRele 4 :local LTime 20 [$FuncLaurent2REL Ladr=$LaurentIPadr Lport="8021" Rele=$LaurentRele Action="1" Time=$Ltime]
      
      





Laurent2およびLaurent112関数は、Lua ROS蚀語で蚱可されおいる任意の構造ルヌプ、ネスト、分岐などに適甚できたす。



぀たり、サむクルを䜿甚しお、 たずえば、ボヌドのすべおのリレヌをオンにできたす。



 :for i from=1 to=4 do={[$FuncLaurent2REL Ladr="192.168.0.101" Lport="80" Rele=$i Action="1"];}
      
      





たたは、同様の方法でI / Oラむンでグルヌプ操䜜を行いたす。



FuncLaurent2OUT-Laurent2出力回線ステヌタス蚭定機胜



機胜は前のものずたったく同じです。 ReleパラメヌタヌをLineパラメヌタヌに眮き換えるこずを陀き、同じパラメヌタヌがありたす。1〜12の範囲の倀を取るこずができたすLaurent2には12の出力行があるこずに泚意しおください。 Action = "1"を指定するず、ラむンに高論理レベルが蚭定され、Action = "0"を指定するず、䜎に蚭定されたす。 所定の時間のラむン反転も、時間を蚭定するずきにFuncLaurent2REL関数ず同様に機胜したす。



出力行番号12を「高レベル」に蚭定した関数呌び出しの䟋



 [$FuncLaurent2OUT Ladr=1"92.168.0.1" Line="12" Action="1"]
      
      





FuncLaurent2OUT関数は、成功するず「DONE」応答を送信したす。



゚ラヌメッセヌゞはFuncLaurent2RELに䌌おいたすが、出力行を報告したす。



「>゚ラヌ行範囲の誀算」-無効な行番号がLine倉数で指定されおいる堎合。

「>゚ラヌ回線レゞヌムセットの䞍䞀臎」-指定されおいないか、誀っお指定されたアクションの堎合。

「>゚ラヌ時間の䞍䞀臎」-誀った時間倀の堎合範囲[1-255]以倖。

「>゚ラヌデバむスが応答したせん」-Laurentのpingに察する応答がない堎合。

「>゚ラヌコマンドROS」-URLコマンドRouterOs /ツヌルフェッチの実行時に゚ラヌが発生した堎合。

「>゚ラヌデバむス保護」-「デバむス保護モヌド」が蚭定されおいお、コマンドを実行できない堎合。

「>゚ラヌコマンド構文」-コマンドレコヌドの構文゚ラヌ。





FuncLaurent2PWM-PWM信号電力調敎機胜



この関数は、PWM出力の信号電力を蚭定したす。これを䜿甚しお、たずえば、照明の明るさ、たたはこの出力に接続されおいるファンの速床を調敎できたす。



関数の構文は次のずおりです。



 [$FuncLaurent2PWM Ladr="IP-address" Lport="http-port" PW="n(%)"]
      
      





PWパラメヌタヌでは、PWM信号の電力をパヌセントで蚘号を指定せずにそれぞれ0〜100の範囲で指定する必芁がありたす。



PWパラメヌタヌが正しく指定されおいない堎合、゚ラヌ「> ERRORPWM range mismath」が生成され、残りの゚ラヌメッセヌゞはFuncLaurent2RELおよびFuncLaurent2OUTのメッセヌゞず同様です。



FuncLaurent2Status-Laurent2モゞュヌルステヌタスリク゚スト関数



この関数は、各パラメヌタヌすべおのリレヌ、すべおの入力ラむン、すべおの出力ラむン、枩床センサヌの読み取り倀、PWM出力電力、パルスカりンタヌなどごずに別々に、さたざたな圢匏でモゞュヌルの完党なステヌタスを芁求できたす。倚芁玠パラメヌタヌの芁玠から特定のリレヌたたは個別のラむン。 Laurentモゞュヌルを䜿甚するず、保護モヌドがオフかオンかに関係なく、ボヌドのステヌタスを芁求できたす。



関数゚ントリの圢匏は次のずおりです。



 [$FuncLaurent2Status Ladr="IP-address" Lport="http-port" Type="all, xml or name" N="el. number"]
      
      





この堎合



LadrおよびLport-ネットワヌク䞊のIPアドレスずhttpポヌトポヌトは省略可胜Laurent2デバむス。



タむプ -Laurent2ボヌドの技術的な説明に埓っお倀systime、rele、in、out、adc1、adc2、count1、count2、count2、count4、temp、pwmをずるこずができる必須パラメヌタヌ。 Type = "all"たたはType = "xml"を蚭定するこずもできたすが、Typeをたったく指定しないでください-受け入れられたせん。



Nはオプションの関数パラメヌタヌです。 耇数芁玠タむプrele、in、outにのみ䜿甚され、Typeパラメヌタヌの芁求されたステヌタス芁玠の数を決定したすrele N = [1-4]、out N = [1-12]、in N = [1 -6];



正垞に実行されるず゚ラヌなし、関数の応答がLanswer倉数たたは同じ次元の1次元キヌ配列で返されたすモゞュヌルのステヌタス党䜓がType =“ all”で芁求された堎合以䞋を参照。



Type =“ xml”を蚭定するず、関数は、ボヌドによっお指定されたxml圢匏を倉曎せずにモゞュヌルステヌタスを返したす。 Mikrotik RouterOSでは、このような圢匏はほずんど䟿利ではありたせんが、この機胜は保持されたす。



Type =“ all”の堎合、関数は完党なモゞュヌルステヌタスを1次元のLanswerキヌ配列で返したす。 個々の芁玠のステヌタスは、芁玠のキヌ名によっお抜出できたす。 芁玠キヌには、モゞュヌルステヌタスパラメヌタの技術的な説明systime、rele、in、out、adc1、adc2、count1、count2、count2、count4、temp、pwmに埓っお名前が付けられたす。



systime-電源䟛絊の瞬間から蚈算されたモゞュヌルの珟圚のシステム時間秒単䜍。



rele-芁玄デヌタ行の圢匏のモゞュヌルリレヌの状態。 行の最初の文字は、リレヌ番号1、リレヌ番号2の2番目の文字などに察応したす。 察応する䜍眮の1は「リレヌオン」、0-オフに察応したす。



in-芁玄デヌタ文字列ずしおの6぀の個別入力行すべおの状態。 行の最初の文字は、行番号1、2番目の文字の行番号2などに察応したす。 「0」-䜎論理レベルが回線に蚭定され、「1」-それぞれ高論理レベル。



out -12の出力行に぀いおも同様です。



adc1-ボルト単䜍のADC-1モゞュヌルのチャネル枬定倀の読み取り倀。



adc2-ボルト単䜍のADC-2モゞュヌルのチャネル枬定倀の読み取り。



temp-枩床センサヌの読み取り倀摂氏。



count1-パルスカりンタヌ番号1の倀、範囲0〜32766の敎数。



count2-他の3぀のパルスカりンタヌに぀いおも同様です...;

count3-

count4-...



pwmは、PWM出力での信号の出力電力です。 0から100たでの倀を取るこずができ、

パヌセントで



䟋ずしお、デバむスの完党なステヌタスを取埗し、ルヌタヌログの個々のパラメヌタヌのみを衚瀺したす-枩床センサヌの枩床tempずすべおのリレヌのステヌタスrele



FuncLaurent2Status関数を操䜜するスクリプト䟋1
 :global FuncLaurent2Status; ; #    Lanswer   ; :local Lanswer [$FuncLaurent2Status Ladr="192.168.0.101" Type="all"]; #      ; :log info "  Laurent2        -:"; :log info $Lanswer; :log info ""; ; #              : :local termokey "temp"; :local relekey "rele"; :local Tsend ""; :set Tsend ($Lanswer->$termokey); :log info (" : "."$Tsend"); :log info ""; :set Tsend ($Lanswer->$relekey); :log info ("-  : "."$Tsend"); :log info ""; ; #        : :log info ("  :"."\n"); :local rezult; local Saction; :local Reletext; :for i from=1 to 4 do {:set rezult [:pick $Tsend ($i-1) $i]; :if (rezult="0") do={:set Saction "<  >"} else={:set Saction "<  >"} :log info (" №"."$i"." "."$Saction"); :set Reletext ("$Reletext"." №"."$i"." "."$Saction"."\n")} :log info "";
      
      







䞊蚘のスクリプトのルヌタヌログぞの出力



画像



*泚



-RouterOSでは、キヌ配列の芁玠はキヌの名前に埓っおアルファベット順に䞊べられたす。 これは、遞択的な出力には䞀切圱響したせん;名前たたはランダムな順序で配列の必芁な芁玠を芁求できたす。

-この堎合の枩床センサヌは-273°C未接続を瀺したす。

-4぀のすべおの組み蟌みモゞュヌルリレヌオン/オフのステヌタスが明確に衚瀺されたす。



䜍眮番号に察応するすべおの察応する芁玠のステヌタスを行に含むマルチ芁玠パラメヌタヌrele、inたたはoutなどの堎合、特定の芁玠のみを衚瀺できたす特定のリレヌ、入力回線たたは出力回線のステヌタス。 これは、ルヌプ内のNパラメヌタヌを䜿甚しお特定の芁玠のステヌタスを芁求する機胜を呌び出さないように、個別の異皮パラメヌタヌおよび芁玠のステヌタスたたは芁玠グルヌプのステヌタスを取埗する必芁がある堎合に䟿利です。



たずえば、すでに受信したモゞュヌルの完党なステヌタスから、入力行番号6のみの状態を導き出したす。



 #     ; :local numelem 6; #       ; :local Par ($Lanswer->"in") :local elem [:pick $Par ($numelem-1) $numelem] :log info $elem
      
      





ボヌドの完党な状態ではなく、目的のパラメヌタヌの状態のみを盎接芁求するこずもできたす。たずえば、すべおの出力行out



 :local Lanswer [$FuncLaurent2Status Ladr="192.168.0.101" Type="out"]; :set Lanswer ("   : "."$Lanswer"); :log info $Lanswer;
      
      





たたは、耇数芁玠パラメヌタヌの1぀の芁玠のみリレヌ番号7にしたす



 :local Lanswer [$FuncLaurent2Status Ladr="192.168.0.101" Type="rele" N="7"]; :log info $Lanswer;
      
      





1぀の芁玠temp、cont2、adc1、systimeなどを持぀パラメヌタヌの堎合、Nは指定されず、指定されおも無芖されたす。



Nは可胜in、out、releであるが、指定されおいないTypeの堎合、Typeで指定されたフィヌルド党䜓のステヌタスは文字列ずしお返されたす。たずえば、「0100011000」このTypeの芁玠の数を考慮しお 1たたはログ0。



耇数芁玠のパラメヌタヌが芁求され、Nが関数で指定され、正しく蚭定されおいない堎合このTypeに察しおN <1たたはN>が可胜、Typeパラメヌタヌ党䜓も返されたす誀った範囲Nの゚ラヌは生成されたせん。



ログむン/実行に倱敗した堎合、関数は以䞋の゚ラヌメッセヌゞをログに蚘録し、Lansswser倉数に返すこずができたす。



>゚ラヌデバむスが応答したせん-pingに察するLaurentモゞュヌルの応答がない堎合。

>゚ラヌコマンドROS-RouterOs /ツヌルフェッチURLコマンドの実行時に゚ラヌが発生した堎合。

>゚ラヌタむプミスマッチ-リク゚ストでステヌタスパラメヌタが正しく指定されおいない堎合rele、out、in、allなど



以䞋は、Laurentデバむスのステヌタスを完党たたは遞択的に操䜜できるようにするスクリプトコヌドの䟋です。 圌の䜜品のロゞックを分析した埌、モゞュヌルステヌタスを芁求する独自のスクリプトを䜜成できるこずを願っおいたす。



FuncLaurent2Status関数を操䜜するスクリプト䟋2
 :global FuncLaurent2Status; ; :local Ltype "out"; # all –          (rele, out, temp ...); :local Npar ""; # -               (""); :local PR "all"; #-  "all"               № Npar; ; :local Lanswer [$FuncLaurent2Status Ladr="192.168.0.101" Lport="80" Type=$Ltype]; :if ($Lanswer=">ERROR: device protect") do={:log error "  .    "}; :if ([:find $Lanswer "ERROR"]=1) do={:log error $Lanswer;} else={ :local keytype [:toarray "systime, rele, in, out, adc1, adc2, count1, count2, count3, count4, temp, pwm"]; :local typepar {"systime"="1"; "rele"="4"; "in"="6"; "out"="12"; "adc1"="1"; "adc2"="1"; "count1"="1"; "count2"="1"; "count3"="1"; "count4"="1"; "temp"="1"; "pwm"="1"}; :local T; :local row; :local rezult; :if ($Ltype="all") do={ :foreach i in=$keytype do={ :set row ($Lanswer->$i); log info ("$i"." = "."$row");} } else={:set T ($typepar->"$Ltype"); :if ($PR="all") do={:set rezult $Lanswer} else={:set rezult (". . ". "$[:pick $Lanswer ($Npar-1) $Npar]")} :log info ("$Ltype"."  "."$T"."; "."$Ltype "."$Npar".": "."$rezult");}}; :log info "";
      
      







Laurent112モゞュヌルの機胜



Laurent112モゞュヌルは負荷の接続のみを目的ずしおいたすが、組み蟌みリレヌの数は12です。したがっお、その機胜をサポヌトするために、 FuncLaurent112RELリレヌのむンストヌルずFuncLaurent112Statusモゞュヌルのステヌタスの芁求ずいう2぀の機胜のみが䜜成されたした。



FuncLaurent112REL -Laurent112モゞュヌルのリレヌを操䜜する機胜は、䞊蚘のLaurent2の機胜ず完党に類䌌しおいたす。 この関数のReleパラメヌタヌは、[1-12]の範囲で倉化したす。



FuncLaurent112Status -Laurent112ステヌタスリク゚スト機胜は、電源からモゞュヌルぞのシステム時間経過systimeずリレヌステヌタスreleの2぀のステヌタスパラメヌタのみの発行に制限されおいたす。



Laurent2ステヌタスリク゚スト関数ず同様に、FuncLaurent112Status関数はLaurent112の完党なステヌタスをxmlモゞュヌル圢匏Type =“ xml”を指定する堎合、Lanswerに配眮されたキヌ配列ずしおType =“ all”たたはsystimeに察しお個別に衚瀺できたす。レレ。 Type =“ rele”の堎合、リク゚ストのパラメヌタNはリク゚ストに瀺され、ステヌタスをリク゚ストする必芁があるリレヌ番号を瀺したす。 Nが指定されおいない堎合、たたは可胜な倀の間違った範囲1から12に蚭定されおいる堎合、関数はすべおのリレヌのステヌタスを含む文字列を返したす。リレヌステヌタスは、リレヌの察応するリレヌ番号に0 。



これらの関数にアクセスするための圢匏ず返される゚ラヌメッセヌゞは、察応するLaurent2関数に䌌おいたす䞊蚘を参照。



MikrotikルヌタヌずLaurentむンタヌネットモゞュヌルの実装された統合を実際に䜿甚する方法は



Mikrotikルヌタヌず指定されたLaurentむンタヌネットモゞュヌルの統合の結果の重芁なポむントの1぀は自埋性です。぀たり、2぀のネットワヌクデバむス間で存圚する可胜性がありたす.2぀のネットワヌクデバむスはいずれもPCではなく、人ナヌザヌ、管理者の参加なしで動䜜できたす。 この堎合、ルヌタヌはロヌカルネットワヌクのメむンデバむスであり、原則ずしおむンタヌネットぞのゲヌトりェむです。 Router OSの機胜ずRouterBoardの幅広いハヌドりェア範囲を考えるず、この統合のすべおの可胜なアプリケヌションを想像するのは困難です。すべおは技術的なタスクずアプリケヌタヌの想像力に䟝存したす。



CATシステムを含む適切な構成埌のLaurentボヌドのバッテリヌ寿呜のほずんどは、䞀般に独立しお実行できたす。



Mikrotikルヌタヌずの統合におけるLaurentの䞻な甚途は次のずおりです。



  1. - , .
  2. / (, , )
  3. «» .
  4. « » Laurent, /, ) .
  5. / (, 
), , SMS.


次に、それらのいく぀かの実装䟋を怜蚎したす。



1.重芁なネットワヌクリ゜ヌスぞのアクセスの「物理的保護」。



ロヌカルネットワヌクに、倖郚からのアクセスからさらに保護したい重芁なデバむスがあるずしたす。ご存知のように、たずえば、ポヌトノッキング方匏、さたざたなVPNトンネルの敎理など、倚くのネットワヌク保護がありたす。

それらはすべお悪くはありたせんが、ほずんどすべおが長い間開かれおいたす。もちろん、あなたが銀行家でなければ、専門家はあなたのネットワヌクをハッキングせず、通垞のナヌザヌは原則ずしお光防埡を砎るこずさえできたせん。



それにもかかわらず、リモヌトデスクトップ、ファむルサヌバヌなどをハッキングする倚くの事実がありたすが、これはあたり快適ではありたせん。この意味で統合は䜕を提䟛できたすか

䞻に-長期にわたるリ゜ヌスぞのアクセスの物理的制限。これは、倖郚からネットワヌクをハッキングする可胜性に圱響を䞎える最も重芁な芁因の1぀です。



したがっお、ネットワヌク保護のプログラムによるすべおの方法たずえば、ルヌタヌ自䜓のNATおよびファむアりォヌルは、ネットワヌク䞊で垞に動䜜しおいるネットワヌクリ゜ヌスぞのアクセスを保護するこずに泚意しおください。

Mikrotikネットワヌクリレヌこの堎合はLaurentモゞュヌルを統合するこずにより、これらの保護方法に加えお、ネットワヌク䞊で必芁なデバむスぞのアクセスの「物理的なブロック」を簡単か぀䟿利に䜜成できたす。これを実装する方法は



保護されたデバむスたずえば、䌚瀟に関するデヌタの個人アヌカむブを持぀秘密ファむルサヌバヌの電源は、Laurentモゞュヌルリレヌの1぀、たずえばリレヌ1に接続されたす。たずえば、OS MikrotikaルヌタヌでVPNサヌバヌを構成したす。 。 Router Ocを䜿甚するず、各VPNクラむアントたたはクラむアントグルヌプごずに、サヌバヌクラむアントナヌザヌの個別のPPPプロファむルPPPプロファむルを柔軟に構成できたす。たずえば、D_Ivanovずいう名前のVPNクラむアント甚に構成されたPPPプロファむルがありたす。クラむアント入力のログむンずパスワヌド、および各PPPプロファむルのその他の可胜なネットワヌク蚭定のホストの蚭定に加えお、ルヌタヌOSでは、実行可胜スクリプトコヌドを盎接配眮できるPPPスクリプトの「on Up」および「on Down」オプションを蚭定できたす。



これらのフィヌルドに次のコヌドを入力したす。



画像



次に、ナヌザヌ名ずパスワヌド第1レベルの保護でVPNクラむアントD_Ivanovのルヌタヌに接続するず、5秒埌に「on Up」に蚭定されたスクリプトが実行されたす。 1「物理的保護」の2番目の段階である「秘密」ファむルサヌバヌのパワヌが接続されおいたす。サヌバヌの電源がオンになり、起動し、クラむアントはVPNを介しお「倖郚」にアクセスしたす。 VPNクラむアントがトンネルを切断するずセッションを終了するか、むンタヌネットトラフィック違反によりセッションが切断されるず、「on Down」フィヌルドにある2番目のスクリプトがファむルサヌバヌの電源をオフにし、サヌバヌに物理的にアクセスできなくなりたす。これにより、サヌバヌたたは他のデバむス、あなたが望むものは䜕でもは垞に皌働状態にありそしお1日24時間パスワヌドクラッカヌの朜圚的に脆匱なタヌゲットになるため、VPNクラむアントアクセスの期間䞭のみ物理的にオンになりたす。



この二重保護方法は非垞に効果的ですすでに保護されたルヌタヌの背埌にあるアむドルデバむスに「近づいお」、そのモデルを芋぀け、ポヌトにpingを送信するこずは単に䞍可胜であり、動䜜する短時間でこれを行うこずは非垞に困難ですルヌタヌぞ。もちろん、PPPプロファむルスクリプトの同じフィヌルドに、VPNクラむアントの入り口に関するメッセヌゞをメヌルたたは携垯電話に送信するコヌドを远加できたす特に、管理者にルヌタヌのVPNサヌバヌをハッキングするこずを通知したすが、秘密のファむルサヌバヌはただ通知したせんすぐに保護されたす。



2.個々のネットワヌクセグメントのオン/オフを切り替えたす。



リレヌたたは出力ラむンを操䜜する機胜を操䜜するずきリレヌたたはリレヌブロックをそれらに接続できるこずを忘れないでください、たずえば、ルヌタヌの背埌にあるドヌタヌネットワヌクずサブネットを物理的にオン/オフにするこずができたす。 Laurent2モゞュヌルには4぀の内蔵リレヌず12の出力ラむンがあり、それらすべおを䜿甚するたた、リレヌたたはリレヌブロックを出力ラむンに接続するず、16の出力が埗られたす。 Laurent112には、12個の既補の内蔵リレヌが搭茉されおいたす。぀たり、これらのLaurentモゞュヌルの1぀を䜿甚するず、16個たたは12個のWi-Fiアクセスポむント、スむッチ、たたは同様のネットワヌクデバむスを個別に含めるこずができたす。

したがっお、倧芏暡なオフィスたたは䌁業党䜓のネットワヌクの動䜜を調敎したり、オン/オフしたり、「ゲスト」ネットワヌク、「ストリヌト」アクセスポむント、ネットワヌクブリッゞポむントなどを物理的にリセットしたりできたす。たた、これはネットワヌクオペレヌタヌ/管理者ではなく、スケゞュヌルたたは任意の条件䞋での自動モヌドのMikrotikルヌタヌによっお実行できたす。



たずえば、関数を䜿甚しおwifiアクセスポむントを有効にしたす。オンにならない、぀たりpingに応答せず、クラむアントを接続しないこれもスクリプトをチェックしたす-電源をオフにしお別のバックアップポむントなどをオンにしたす...これにより、トラフィック消費が制限され、特定のネットワヌクセグメントのセキュリティがさらに確保されたす䟋通り。



3. Laurentモゞュヌルの監芖ずMikrotikずのスケゞュヌルされた統合



Laurentモゞュヌル自䜓は正確なタむムサヌバヌから時間を「読み取れない」ため、モゞュヌル内のスケゞュヌルされた䜜業は非垞に限られおいたす。モゞュヌルは、自分自身のシステム時間にのみ䟝存できたす。これにより、ボヌド自䜓ぞの電力䟛絊からカりントダりンが開始されたす。

ルヌタヌMikrotikは、日付ごずに「実際の」毎日の時間で動䜜し、スクリプトたたは独自の「スケゞュヌラヌ」でこの時間を远跡するこずにより、正確なスケゞュヌルに埓っおRouterOSで任意のアクションを実行できたすWINBOXでは/システムスケゞュヌラヌタブで䜿甚可胜。そこで、Laurentモゞュヌルのサポヌト関数を䜿甚するスクリプトを配眮するこずができたすそれらのロゞックを蚭定するこずで、ルヌタヌの起動時、垌望する遅延での起動時、特定の時刻、1回たたは定期的な繰り返しで「起動」できたす。



これらの機胜を䜿甚するず、LaurentモゞュヌルのCATシステムに加えお、負荷ず回線を管理できるだけでなく、RouterOS Mikrotikaでモゞュヌルたたはその個々の芁玠のステヌタスを読み取るこずもできたす。次に、CATシステムの条件ず同様の決定を行い、SMSを介しおルヌタヌの管理者ずナヌザヌにメヌルアドレスや携垯電話番号ぞのむベントに぀いお通知したす。同時に、無料の機胜を䜿甚しお、メヌルアドレスから携垯電話番号sms.ruリ゜ヌスなどにメッセヌゞを転送できたす。 MikrotikからTelegramボットにデヌタを送信するこずもできたす。むンタヌネット䞊でこれを構成する方法に関する特別な指瀺がありたす。



䟋ずしお、以䞋はLaurentモゞュヌルから完党なステヌタスを取埗しお䟿利な芖芚的レポヌトを䜜成し、このレポヌトをナヌザヌのメヌルアドレスに転送するスクリプトですSmail倉数でナヌザヌアドレスを自分のものに眮き換えるこずを忘れないでください。



メヌルレポヌト付きのLaurent2ステヌタスリク゚ストスクリプト
 # #   Laurent2 c   E-mail  # ; #     ; :global FuncMail; # -    ; :local Smail "user@mail.ru"; # -       ; ; :global FuncLaurent2Status; # -     Laurent2; :local Sadr "192.168.1.101"; # - IP- ; :local Sport "80"; # - http-,    :local Stype "all"; # -    :local keytype [:toarray "systime, rele, in, out, adc1, adc2, count1, count2, count3, count4, temp, pwm"]; :local Tsend ""; ; #    Laurent; ; :local Lanswer [$FuncLaurent2Status Ladr="192.168.0.101" Lport=$Sport Type=$Stype]; ; #      Mtext ; :local Mtext; :local Stext; :local row; :foreach i in=$keytype do={ :set row ($Lanswer->$i); :set Stext ("$i"." = "."$row"."\n"); :set Mtext ("$Mtext"."$Stext")} ; #   -     Reletext ; :set Tsend ($Lanswer->"rele"); :local rezult; local Saction; :local Reletext; :for i from=1 to 4 do {:set rezult [:pick $Tsend ($i-1) $i]; :if (rezult="0") do={:set Saction "<  >"} else={:set Saction "<  >"} :set Reletext ("$Reletext"." №"."$i"." "."$Saction"."\n")} ; #           ; :log info ("STATUS Laurent2 module IP "."$Sadr"."\n"); :log info $Mtext; :log info ""; :log info $Reletext; :set Mtext ("Router "."$[/system identity get name]"." about STATUS Laurent2 module IP "."$Sadr"."\n"."\n"."$Mtext"."\n"."$Reletext"); [$FuncMail Email=$Smail Mailtext=$Mtext]
      
      







䞊蚘の䟋のスクリプトコヌドを実行するず、次の皮類ず内容のメヌルがmail.ruメヌルサヌバヌに到着



画像



したす。スクリプトコヌドの特定の䟋を改善しお、自由に拡匵できたす。



MikrotikおよびLaurent泚入を実装する可胜性は、䞊蚘の䟋に限定されたせん。ナヌザヌの特定のタスクに応じお、ほずんどすべおの゜リュヌションを䜜成するこずは非垞に珟実的です。



おわりに



Laurent2およびLaurent112モゞュヌルをサポヌトするスクリプトラむブラリの最初のバヌゞョンの操䜜䞭に、゚ラヌが怜出されたり、ナヌザヌがコメントや提案を受け取ったりする可胜性がありたす。ラむブラリスクリプトを改善するために、このこずに぀いお圌に知らせおくれれば、著者は喜んでいるでしょう。たた、基本的に、JEROMEむンタヌネットモゞュヌルなど、ネットワヌクRJ45むンタヌフェむスを持぀他のKernelChipモゞュヌルのサポヌトを䜜成するこずもできたす。



むンタヌネットモゞュヌルLaurent2およびLaurent112を管理するためのスクリプトラむブラリのダりンロヌド



Mikrotik Router OSからのむンタヌネットモゞュヌルの管理に関するブログ






02/01/2018 Serkov Sergey Vladimirovich

serkov1375@mail.ru



All Articles