Mikrotik:バックアップとバックへの自動チャンネル切り替え

インターネットチャネルの1つを切断して、この投稿を書くように求められました。

インターネット自体には、この質問に対する多くの答えがありますが、全員が働いているわけではありません。



インターネットのメインチャネルが切断された場合に私がしたいこと:

1.バックアップチャネルに切り替えます(「表示」の後、もちろんメインチャネルに戻ります)。

2.状態変更の事実に関する通知を電子メールで送信します。



猫の下で誰が気にしてください。



私たちは与えられます:

-ファームウェア5.19バージョンのMikrotik RB450G。

-2つのインターネットポート。1つはPPPoE接続を使用して接続します。



最初に2つのスクリプトを追加します。1つはバックアップチャネルに切り替え、2つ目は接続を最初のチャネルに戻します。



画像



バックアップチャネルをアクティブにし、「 change-to-reserv 」と呼ぶコードを含む最初のスクリプトを作成します。

/ip route set gateway=1.1.1.1 [find dst-address=0.0.0.0/0];
      
      





(注:例としてIPアドレス1.1.1.1が選択されており、バックアップチャネルを象徴しています)

つまり、サーバーへのpingが不足している場合(後で詳しく説明します)、「 pppoe-main 」を指すゲートウェイでルートをオフにします。

PS: erazelによるコメントの後このスキームは改善されました。つまり、以前のスクリプトが失敗した2つのルート間で切り替わりました。つまり、コンピューターからping google.ru -tを実行すると、pingは古い方になりますブロードキャストは更新されていないためです。 ゲートウェイのみを変更する提案された方法では、翻訳のクリーニングは必要ありません。



同じスクリプトの次の行を示します。



 /tool e-mail send server=192.168.1.1 port=25 user=robot@mysite.ru password=1PaSsW0rD1 tls=no to=admin@mysite.ru from="ROBOT<robot@mysite.ru>" \ subject="MikroTik: $[/system clock get date], $[/system clock get time]" \ body="   \n: $[/system clock get date]\nA: $[/system clock get time]";
      
      





ここで:

/ツールのメール送信 -ステータスの変更について管理者のメールに通知を送信します

server = 192.168.1.1 -SMTPサーバー。 私たちは独自のものを使用しているので、それを示します。

port = 25 -RouterOS 5.xバージョンでは、ポートは個別に指定されます。 この場合、デフォルトは25です。

user=robot@mysite.ru-SMTPサーバーでの承認のためのユーザーログイン(必要な場合);

password = 1PaSsW0rD1-パスワードを指定します(必要な場合)。

tls = no -TLSトラフィック暗号化。 私たちはそれを持っていません、私は「いいえ」を置き、もしそうなら-「はい」。

to=admin@mysite.ru-通知が受け取るメールアドレス。

from =“ ROBOT <robot@mysite.ru>” -通知の送信元(私の場合、認証ログインと一致します。送信者のアドレスは括弧で示され、受信メールに表示される名前はその前にあります)。

subject = "MikroTik:$ [/システムクロック取得日]、$ [/システムクロック取得時間]" -メッセージのタイトルを示します。 この場合、 「MikroTik:jul / 30/2014、10:52:13」 (メッセージの送信日時)のようになります。

body = "バックアップチャネルへの切り替え\ nDate:$ [/システムクロック取得日] \ nATime:$ [/システムクロック取得時間]"; -したがって、メッセージ本文自体は次のようになります。

回線をバックアップチャネルに切り替える

日付:2014年7月30日

時間:10:52:13


その結果、スクリプトは(RouterOS 5.19)のようになります。

 /ip route set gateway=1.1.1.1 [find dst-address=0.0.0.0/0]; /tool e-mail send server=192.168.1.1 port=25 user=robot@mysite.ru password=1PaSsW0rD1 tls=no to=admin@mysite.ru from="ROBOT<robot@mysite.ru>" \ subject="MikroTik: $[/system clock get date], $[/system clock get time]" \ body="   \n: $[/system clock get date]\nA: $[/system clock get time]";
      
      







RouterOS 6.17の場合:

 /ip route set gateway=1.1.1.1 [find dst-address=0.0.0.0/0]; /tool e-mail send server=192.168.1.1 port=25 user=robot@mysite.ru password=1PaSsW0rD1 to=admin@mysite.ru from="ROBOT<robot@mysite.ru>" \ subject="MikroTik: $[/system clock get date], $[/system clock get time]" \ body="   \n: $[/system clock get date]\nA: $[/system clock get time]";
      
      







前述のとおり、「 change-to-reserv 」という名前で保存し、2番目のスクリプトの記述に進みます。



 /ip route set gateway=pppoe-main [find dst-address=0.0.0.0/0]; /tool e-mail send server=192.168.1.1 port=25 user=robot@mysite.ru password=1PaSsW0rD1 tls=no to=admin@mysite.ru from="ROBOT<robot@mysite.ru>" \ subject="MikroTik: $[/system clock get date], $[/system clock get time]" \ body="   \n: $[/system clock get date]\nA: $[/system clock get time]";
      
      





最初のスクリプトとは異なり、送信された電子メールメッセージの本文に「メインチャネルへの切り替え」を指定し、以前に無効にしたルートを有効にします。

change-to-main 」という名前でスクリプトを保存します。



Mikrotikのメモリはゴムではないため、タスクを完了するためにスクリプトを最適化します。

これを行うには、トリガーとして機能するNetwatchユーティリティを使用する必要があります。 つまり、接続ステータスが変更されると、必要なスクリプトの実行によってステータスが変更されます。



画像



Netwatchではホスト8.8.8.8とスクリプトの名前をUpタブで指定する新しいルールを追加します-それぞれ「Down」タブの「change-to-main」「change-to-reserv」

ステータスを確認する期間も指定する必要があります。 1分を示しました。



画像



次は最後のステップ-ルート転送です。 これが行われない場合、スクリプトはバックアップチャネルに切り替わり、この位置に留まります。 バックアップチャネルが「落ちた」場合、逆の遷移が可能になります。



一般に、次のデータを示すルートを追加します。

Dst。 アドレス= 8.8.8.8 // Google DNSサーバーにpingを送信することを示します(私にとっては重要ではありませんが、それを示します)。

Gateway = pppoe-main //メインチャネルへの同じPPPoE接続

距離= 1

残りのパラメーターはそのまま残されます。



画像



それだけです!



これ以降、動作原理は次のとおりです。

メインチャネルを介したNetwatchは、Google DNSサーバーへのpingを確認します。 pingが消えるとすぐに、「 Down 」タブで指定された「 change-to-reserv 」スクリプトが実行されます。 このスクリプトはメインルート(PPPoE)を無効にし、すべてのパケットはバックアップチャネルに送られます。 メインチャネルのpingが再開するとすぐに、スクリプトはメインチャネルのルートを再びアクティブにします(もちろん、 Distanceパラメーターは「 1 」で、バックアップパラメーターは「 2 」です)。 これとともに、状態変更の事実に関する通知が電子メールアドレスに送信されます。



利益!



注意!!! RouterOS 6.17を実行するスクリプトが機能するには、電子メールアドレスを送信するためのスクリプトを変更する必要があります。つまり、「 tls = 」パラメーターを削除する必要があります。

つまり、(たとえば、バックアップチャネルに切り替えるための)コードは次のようになります。



 /ip route set gateway=1.1.1.1 [find dst-address=0.0.0.0/0]; /tool e-mail send server=192.168.1.1 port=25 user=robot@mysite.ru password=1PaSsW0rD1 to=admin@mysite.ru from="ROBOT<robot@mysite.ru>" \ subject="MikroTik: $[/system clock get date], $[/system clock get time]" \ body="   \n: $[/system clock get date]\nA: $[/system clock get time]";
      
      







更新:スクリプトのルートを変更

更新2:電子メールアドレス「robot@mysite.ru」が受信メールに表示されないように、「from」パラメーターが変更されました(上記のコードでコメントが修正されました)



All Articles