نمایش نتایج: از شماره 1 تا 3 از مجموع 3
سپاس ها 5سپاس
  • 3 توسط shahani
  • 1 توسط shahani
  • 1 توسط shahani

موضوع: آموزش نحوه کانفیک سیستم Failover در روترهای میکروتیک

  
  1. #1
    نام حقيقي: ali

    عضو عادی
    تاریخ عضویت
    Jun 2010
    محل سکونت
    mashhad
    نوشته
    605
    سپاسگزاری شده
    481
    سپاسگزاری کرده
    57

    آموزش نحوه کانفیک سیستم Failover در روترهای میکروتیک

    درود دوستان

    برای پیاده سازی سیستم 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



    موضوعات مشابه:
    rokta، AH64-D و atoush سپاسگزاری کرده‌اند.

  2. #2
    نام حقيقي: ali

    عضو عادی
    تاریخ عضویت
    Jun 2010
    محل سکونت
    mashhad
    نوشته
    605
    سپاسگزاری شده
    481
    سپاسگزاری کرده
    57
    همچنین اگر تصمیم به ارسال پیام تلگرام برای افراد استفاده کننده در شبکه، در زمان قطعی و وصلی دارید.
    بجای استفاده از Delay در اسکرپیت که منجر به صبر کردن در یک مدت زمان مشخص شده و بعد از اون شروع به ارسال وضعیت جدید میکنه
    میتونید از این تکه کد بجای Delay استفاده کنید تا وصل شدن تونل VPN را در یک حلقه چک کند و بلافاصله بعد از اتصال پیام ها را ارسال کند.
    بعد از این حلقه می بایست دستور های ارسال پیام به تلگرام قرار گیرد.

    کد:
    # Loop For Wait VPN Connecting
    :local LOOPcontinue true;
    :local LOOPcounter 0;
    :while ($LOOPcontinue) do={
       :delay 5 ;
       :set LOOPcounter ($LOOPcounter + 1);
    
        :if ([/ping 149.154.167.220 count=5] = 5) do={
         :set LOOPcontinue false;
         /log info ((5*$LOOPcounter)." Sec Wait For VPN Connect. LOOP Counter=$LOOPcounter");
        }
    
    }
    نکته قابل ذکر دیگه در مورد ارسال پیام های تلگرام :
    درصورتی که یکی از کاربران شما Bot را استارت کند و بعد از آن بات شبکه را در بلک لیست خودش قرار دهد.
    با توجه به اینکه ارسال پیام به آن کاربر امکان پذیر نیست، اسکریپت با خطا مواجه شده و از آن خط به بعدش اجرا نمی گردد.


    rokta سپاسگزاری کرده است.

  3. #3
    نام حقيقي: ali

    عضو عادی
    تاریخ عضویت
    Jun 2010
    محل سکونت
    mashhad
    نوشته
    605
    سپاسگزاری شده
    481
    سپاسگزاری کرده
    57
    منبع این آموزش خودم هستم.


    rokta سپاسگزاری کرده است.

کلمات کلیدی در جستجوها:

هیچ کلمه ای ثبت نشده است.

برچسب برای این موضوع

مجوز های ارسال و ویرایش

  • شما نمی توانید موضوع جدید ارسال کنید
  • شما نمی توانید به پست ها پاسخ دهید
  • شما نمی توانید فایل پیوست ضمیمه کنید
  • شما نمی توانید پست های خود را ویرایش کنید
  •