درود دوستان
برای پیاده سازی سیستم Failover نیاز است که دو مودم اینترنت دار را به روتر خود متصل کنیم.
که یک مودم مورد استفاده عمومی قرار می گیرد و درصورت قطع ارتباط، مودم دوم اینترنت شبکه ما را در حالت اضطراری تامین می نماید تا زمانی که اینترنت مودم اول، مجددا برقرار گردد.
در مرحله اول باید دو Route پیشفرض در دستگاه خود بنویسیم .
Route ای که برای مودم اصلی استفاده می شود باید Distance بالاتری داشته باشد (ip مودم اصلی در مثال: 192.168.1.1)
اما Route مودم دوم می بایست با Distance پایین تر نوشته شود و در حالت غیر فعال باشد. (ip مودم اضطراری در مثال: 192.168.10.1)
در چنین حالتی، هر زمان روتر متوجه، قطع اینترنت از لینک مودم اول شود، Route مودم دوم را فعال میکند که در نتیجه اینترنت از مودم دوم در دسترس شبکه قرار خواهد گرفت.
مرحله یک، اضافه کردن دو Route پیشفرض :
کد:
/ip route add dst-address=0.0.0.0/0 gateway=192.168.1.1 distance=2 comment="Modem ADSL"
/ip route add dst-address=0.0.0.0/0 gateway=192.168.10.1 distance=1 disabled=yes comment="Modem 4G+"
بعد از اضافه کردن این دو روت، نیاز است، یک آدرس اینترنتی خاص را مشخص کنید تا ملاک برقراری ارتباط با اینترنت قرار گیرد.
در این مثال من آدرس 1.1.1.1 را در نظر گرفته ام، باید با اضافه کردن یک خط روت دیگر، مشخص کنید که در هر صورتی اتصال به این آی پی تنها و تنها می بایست از طرق مودم اول و اصلی برقرار گردد:
کد:
/ip route add dst-address=1.1.1.1 gateway=192.168.1.1
در مرحله دوم می بایست با استفاده از ابزار Netwatch دو خط Netwatch Host ایجاد کنیم تا بصورت مداوم آدرس آی پی اینترنتی مورد نظر ما و مودم اصلی ما مورد پینگ قرارگیرد، روتر به وسیله این بخش متوجه خواهد شد که لینک اینترنت از مودم اول برقرار است و یا خیر.
مرحله دو، اضافه کردن Netwatch Host :
کد:
/tool netwatch add host=1.1.1.1 interval=00:05:00 down-script="/system script run \"Link-down\"" up-script="/system script run \"LinkUp\""
/tool netwatch add host=192.168.1.1 interval=00:02:00 down-script="/system script run \"Link-down\"" up-script="/system script run \"Link-Up\""
در مرحله سوم نیاز به ایجاد دو اسکریپت از بخش System/Scripts است
یکی برای زمانی که قرار است خط اضطراری فعال شود و درواقع لینک اصلی Down شده است
و دیگری برای زمانی که اینترنت خط اصلی برقرار شده است و مجددا می بایست ترافیک از خط اول برقرار شود.
مرحله سوم، ایجاد اسکرپیت های Link-Down و Link-Up
اسکرپیت Link-Down
کد:
:local dateM [/system clock get date] ;
:local timeM [/system clock get time] ;
:local TimeH [:tonum [:pick $timeM 0 2]] ;
# SMS
:local dateM [/system clock get date]
:local timeM [/system clock get time]
:local MyUser "{UserName}"
:local MyPass "{Password}"
:local FromNum "50002210004082"
:local ToNum "09351000000"
:local TextMsg ""
# Email
:local MailTo "Mikrotik.Router2020@Gmail.com"
:local NetPing [:tonum [/ping 1.1.1.1 count=100]] ;
/log error message="DownRun-internet Ping alive Count= $NetPing of 100" ;
:if ([:len [/ip route find where comment="Modem 4G+" and disabled]] > 0) do={
:if ( $NetPing = 0 ) do={
/ip route enable [find comment="Modem 4G+"] ;
:if (( $TimeH >= 07 ) || ( $TimeH <= 00 )) do={
:set TextMsg value="Adsl%20Link%20Down%20in%20$timeM%20-%20$dateM"
/tool fetch url="https://raygansms.com/SendMessageWithUrl.ashx?Username=$MyUser&Password=$MyPass&PhoneNumber=$FromNum&MessageBody=$TextMsg&RecNumber=$ToNum&Smsclass=1" mode=https keep-result=no ;
# tool fetch ....
} ;
#Delay For Telegram
# delay 300
/log error message="ADSL Down => $timeM - $dateM" ;
# Email
/tool e-mail send to=$MailTo subject=" ADSL - Link Down " body="%D8%AE%D8%B7%20%D8%A7%D9%8A%D9%86%D8%AA%D8%B1%D9%86%D8%AA%20ADSL%20%D9%82%D8%B7%D8%B9%20%D8%B4%D8%AF%D8%8C%20%D9%84%D8%B7%D9%81%D8%A7%20%D8%AA%D8%A7%20%D8%B2%D9%85%D8%A7%D9%86%20%D8%A7%D8%AA%D8%B5%D8%A7%D9%84%20%D9%85%D8%AC%D8%AF%D8%AF%D8%8C%20%D8%A7%D8%B2%20%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87%20%D8%B2%DB%8C%D8%A7%D8%AF%20%D9%88%20%D8%AA%D9%85%D8%A7%D8%B4%D8%A7%DB%8C%20%D9%88%DB%8C%D8%AF%DB%8C%D9%88%20%D8%AE%D9%88%D8%AF%D8%AF%D8%A7%D8%B1%DB%8C%20%D9%86%D9%85%D8%A7%DB%8C%DB%8C%D8%AF.%20%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE%20%D9%88%20%D8%B2%D9%85%D8%A7%D9%86:%20$timeM%20-%20$dateM"
} ;
} ;
اسکریپت Link-Up
کد:
:local dateM [/system clock get date] ;
:local timeM [/system clock get time] ;
:local TimeH [:tonum [:pick $timeM 0 2]] ;
:local NetPing [:tonum [/ping 1.1.1.1 count=3]] ;
:local ModemPing [:tonum [/ping 192.168.1.1 count=2]] ;
# SMS
:local dateM [/system clock get date]
:local timeM [/system clock get time]
:local MyUser "{UserName}"
:local MyPass "{Password}"
:local FromNum "50002210004082"
:local ToNum "09351000000"
:local TextMsg ""
# Email
:local MailTo "Mikrotik.Router2020@Gmail.com"
/log error message="UpRun-internet Ping alive Count= $NetPing of 3" ;
/log error message="UpRun-Modem Ping alive Count= $ModemPing of 2" ;
:if ([:len [/ip route find where comment="Modem 4G+" and !disabled]] > 0) do={
:if (($NetPing > 0) && ($ModemPing > 0)) do={
/ip route disable [find comment="Modem 4G+"] ;
:if (( $TimeH >= 07 ) || ( $TimeH <= 00 )) do={
:set TextMsg value="%D8%AE%D8%B7%20ADSL%20%D9%85%D8%AA%D8%B5%D9%84%20%D8%B4%D8%AF.%20%D8%B2%D9%85%D8%A7%D9%86:%20$timeM%20-%20$dateM"
/tool fetch url="https://raygansms.com/SendMessageWithUrl.ashx?Username=$MyUser&Password=$MyPass&PhoneNumber=$FromNum&MessageBody=$TextMsg&RecNumber=$ToNum&Smsclass=1" mode=https keep-result=no ;
# tool fetch ....
} ;
# delay 300
/log error message="ADSL UP => $timeM - $dateM" ;
# Email
/tool e-mail send to=$MailTo subject=" ADSL - Link UP " body="%D8%AE%D8%B7%20ADSL%20%D9%85%D8%AA%D8%B5%D9%84%20%D8%B4%D8%AF.%20%D8%B2%D9%85%D8%A7%D9%86:%20$timeM%20-%20$dateM" ;
} ;
} ;
این دو اسکریپت در جدول روت ، دنبال خط روتی میگردند که کامنت آن Modem 4G+ است
سپس هر یک وابسته به شرایط، آن روت را فعال یا غیر فعال می کنند. (این روت مربوط به تامین اینترنت از مودم دوم می باشد)
همچنین در بخش های دیگر این اسکریپت، پیام های اطلاع رسانی از وضعیت رخ داده وجود دارد که در صورت متوجه نشدن آنها، می توانید به تاپیک های قبلی من، در ارتباط با پیام های اطلاع رسانی روتر، مراجعه نمایید.
ارسال Notification به وسیله روتر با :
ایمیل
آموزش تنظیم ایمیل در میکروتیک و ارسال بک آپ های دوره ای دیواس به ایمیل
SMS
آموزش ارسال SMS اطلاع رسانی به وسیله میکروتیک
Telegram
آموزش ارسال پیام تلگرام توسط روتر میکروتیک
با انجام این سه مرحله می توانید به سادگی سیستم Failover خود را پیاده سازی کنید.
البته توجه داشته باشید که روش های Failover متفاوتی وجود دارد، این یک روش پیشنهادی از طرف من است.
دانلود ویدیو آموزشی نحوه پیاده سازی سناریو Failover بصورت مرحله به مرحله، از صفر تا صد:
https://www.mediafire.com/file/f8zmm...lover.rar/file
موضوعات مشابه: