روشی جالب برای Fail over کردن دو لینک اینترنت (بروزرسانی شد!!!)

مشکل

(سناریو اول) : فرض کنید شما یک کمپانی یا مرکز تجاری آموزشی خیلی مهم هستید که نیاز به اینترنتی کاملا Stable و بدون قطعی دارید و از طرفی بخاطر حجم ترافیک مصرفی بالایی که دارید از سرویسهای جشنواره ایی و یا نامحدود یک پروایدر مثل صبانت استفاده میکنید، اما از آنجایی که بستر لینکهایی که این شرکت از آن استفاده میکند، ممکن است بواسطه ارتقا و یا …. دستخوش اختلال موقتی شود، شما یک اینترنت Backup مثلا آسیاتک یا حتی ۴G رو برای روز مبادا تهیه میکنید.

حال میخواهید کاری کنید که در شرایط عادی کلیه ترافیکها از بستر صبانت بگذرد و در صورت بروز اختلال بدون آنکه کاربران متوجه شوند ترافیک اتوماتیک از بستر مثلا آسیاتک یا ۴G شما بگذرد و به محض رفع مشکل صبانت، مجددا ترافیکها از مسیر این پرووایدر  عبورکند….

و یا

(سناریو دوم) : شاید شما به این مشکل برخورده باشید که حجم ترافیک اینترنت شما به پایان رسیده باشد و اینترنت شما قطع شده باشد و شما به خواهید از اینترنت دومی که به روتر شما متصل است استفاده نمایید….

مشکل اینجا آغاز میشود که روش های Fail Over معمولی اتمام حجم اینترنت را تشخیص نمیدهند (چون در این حالت PPPoE شما قطع نمیشود بلکه فقط IP اختصاص داده شده به شما به یک آیپی  Invalid تغییر پیدا میکند ) مانند تصویر زیر:

Snapshot_2016-08-26_021717

پس باید از روشی دیگر  استفاده کرد که از طریق ping به یک آدرس مشخص بتواند تشخیص بدهد که آیا اتصال برقرار است یا نه.

در اینجا ما از دو اینترنت صبانت (اصلی) و آسیاتک (پشتیبان) استفاده میکنیم.

راه حل

ما در این روش با استفاده از قابلیت Netwatch بدون نیاز به هیچ اسکریپتی این کار را انجام میدهیم.

مراحل کار به این صورت میباشد که ابتدا کانکشن PPPoE اینترنت دوم را (آسیاتک را) غیر فعال میکنیم و سپس به Routing Table رفته و دیفالت گیت وی (Default Gateway) را برای هردو اینترنت اضافه میکنیم با این تفاوت که Distance اینترنت اول (صبانت) را ۲ قرار داده و برای اینترنت دوم (آسیاتک) ۱ میگذاریم .

/ip route
add distance=1 gateway="pppoe-out->AsiaTech 0"
add distance=2 gateway="pppoe-out->SabaNet 1"

در این حالت به علت غیر فعال بودن اینترنت دوم (آسیاتک) اینترنت به ناچار از طریق اینترنت اول (صبانت) برقرار میشود و ما با استفاده از Netwatch کاری انجام میدهیم که درصورتی که اینترنت اول قطع شد اینترنت دوم فعال شود و به خاطر آنکه در Routing Table  اولویت با اینترنت دوم (آسیاتک) می باشد اینترنت از راه اینترنت دوم  یعنی همان آسیاتک برقرار خواهد شد.

مرحله اول اینترنت دوم را غیر فعال میکنیم.

مرحله دوم به قسمت Bridge رفته و یک اینترفیس خالی مثلا بنام Null ایجاد میکنیم.

Snapshot_2016-08-26_023526

مرحله سوم به Routing Table  رفته و گیت وی را برای یک آیپی خاص ( در اینجا ۴.۲.۲.۱ ) را به اینترنت اول و همچنین اینترفیس bridge ساخته شده با Distance های بترتیب یک و دو تغییر میدهیم.

/ip route
add distance=1 dst-address=4.2.2.1/32 gateway="pppoe-out->SabaNet 1"
add distance=2 dst-address=4.2.2.1/32 gateway=Null

تا فقط ترافیکهای ۴.۲.۲.۲ را از طریق لینک صبانت عبور دهد.

 

نکته : تعریف روت به مقصد Null  به این خاطر می باشد که در صورتی که Route اول به هر دلیلی غیر فعال شود اگر Null وجود نداشته باشد درخواست به Default route ارسال میشود و خوب دسترسی برقرار می شود، پس ما از  Null Route استفاده میکنیم که  dst آن ۲ است ، حال اگر به هر دلیلی route  اول غیر فعال شود روت به روی Null رفته  و عملا کلیه بسته ها به درب بسته میخورند، این امر تا زمانی که اینترنت اول دوباره وصل شود ادامه پیدا خواهد کرد.

مرحله آخر به NetWatch  میرویم

/tool netwatch
add down-script="interface pppoe-client enable 0" host=4.2.2.1 interval=5s \
timeout=8s up-script="interface pppoe-client disable 0"

با اینکار در هر ۵ ثانیه امکان دسترسی به اینترنت صبانت رو با پینگ کردن ۴.۲.۲.۱ چک میکند و اگر تا ۸ ثانیه جواب نگرفت و Time Out داشت آنگاه به اینترنت آسیاتک سوییچ میکن و باز هم مرتب چک میکند تا لینک صبانت اوکی شود و پینگ ۴.۲.۲.۱ برگردد، هر وقت پینگ ۴.۲.۲.۱ برگشت دوباره ترافیک را با غیرفعال کردن کانکشن اینترنت آسیاتک برروی اینترنت اول یعنی صبانت برمیگرداند.

#### PPPOE AsiaTech is disabled by Default ####
/interface pppoe-client
add ac-name=BRAS3 interface="ether5-Out > Internet" max-mru=1480 \
max-mtu=1480 mrru=1600 name="pppoe-out->AsiaTech 0" password=321 user=\
ALAKI
add ac-name=Manag1 disabled=no interface="ether5-Out > Internet" max-mru=\
۱۴۸۰ max-mtu=1480 mrru=1600 name="pppoe-out->SabaNet 1" password=321 \
user=DOLAKI
/interface bridge
add name=Null
/ip route
add distance=1 gateway="pppoe-out->AsiaTech 0"
add distance=2 gateway="pppoe-out->SabaNet 1"
add distance=1 dst-address=4.2.2.1/32 gateway="pppoe-out->SabaNet 1"
add distance=2 dst-address=4.2.2.1/32 gateway=Null
/tool netwatch
add down-script="interface pppoe-client enable 0" host=4.2.2.1 interval=5s \
timeout=8s up-script="interface pppoe-client disable 0"

دیدگاه ها:

  1. یاسر مطیعی گفت:

    سلام . تشکر بابت این تکنیک خوب و کاربردی.
    فقط یه موردی که هست چون pppoe دوم خاموشه مدت زمان سوئیچ شدن pppoe ها به هم تقریبا ۷ یا ۸ ثانیه طول میکشه و تو این مدت اینترنت قطعه و خب برای جایی که حتی قطعی ۱ ثانیه ای هم مهمه کمی مشکله. آیا راه حلی برای این هست که هر دو pppoe فعال باشند تا به محض قطع شدن یکی، اینترنت از pppoe دیگر تامین بشه ؟!

    1. POORIA TAABBODI POORIA TAABBODI گفت:

      سلام
      شما میتوانید مدت زمان سوییچ را کم کنید یا از متدهای لود بالانسینگ که هر دو خط باهم در مدارهستند استفاده نمایید.(با کمی تغییر در PCC میتوانید ترتیبی بدهید که هر دو لینک در مدار باشند و هنگامی که یکی غیرفعال شد کل ترافیک از خط دیگر عبور کند…)

  2. عزیز گفت:

    چنانچه لینک های دریافتی اینترنت به حالتی باشه که کانکشن ppoe نشه روی خود میکروتیک زد و با دیفالت روت به گیت وی های اینترنتمون وصل بشیم به چه صورت باید عمل کنیم؟

    1. POORIA TAABBODI POORIA TAABBODI گفت:

      سلام
      شما می توانید اینترفیسهای اترنت را جایگزین PPPOE هاتان کنید تا آنها غیرفعال و فعال شوند.

  3. محمد مهدی گفت:

    سلام ببخشید روشی هست که در صورت پینگ تایم بالا هم ترافیک رو انتقال بده؟

    1. در ابزار NetWatch قسمتی به اسم Timeout هست که ماکزیمم زمان برای تایم اوت شدن پینگ هست

  4. محمد مهدی گفت:

    من اینترنتی دارم که دست کمی از دیدی کیت نداره ولی متاسفانه گاهی از بیرون که پینگش میکنی سرعتش فوقلعاده کم میشه میخوام در این مواقع اون یکی اینترنتم جایگزین بشه.

  5. ساشا گفت:

    با سلام و خسته نباشید
    میخواستم ببینم توی روترهای میکروتیک امکان تعریف این سناریو بر اساس پهنای باند اشغال شده وجود داره؟
    یعنی اگر لینک اصلی صبانت تا ماکزیمم پهنای باند خودش مورد استفاده باشه،اون زمان روتر لینک backup وارد مدار و به پهنای باند اضافه کنه ؟؟

  6. حمید گفت:

    سلام. روش هوشمندانه و بسیار جالبی رو به کار بردید.
    از این که با دیگران به اشتراک گذاشتیدش بسیار متشکرم.
    براتون آرزوی موفقیت دارم.

  7. علی تمیجی گفت:

    این روش رو خیلی پیچیده ترش کردین .

    فقط کافیه تو routing table یه خط روت ۴.۲.۲.۴ به pppoe-out1 و یه خط ۸.۸.۸.۸ به pppoe-out2 بنویسم و این روش رو هر ۱۰ ثانیه یکبار با netwatch بررسی کنیم . و روی همون خط روت ها هم comment بزاریم و با find خط روت ها رو در صورتی پینگشون رو نداشتیم روت ها رو غیر فعل و فعال کنیم .

    کلا ۴ خط بیشتر نمی شه و خیلی ساده تر و خوبه

    1. شما وقتی یک روت برای ۸.۸.۸.۸ روی اینترفیس pppoe-out1 بزارید درصورت قطع شدن اینترفیس روت روی default route میره و netwatchی که شما ایجاد کردید این رو نمیفهمه و همچنان چون پینگ میده دستوری رو اجرا نمیکنه هدف از ساخت اینترفیس null و ایجاد روت بر روی آن این است که این اینترفیس هیچ وقت قطع نمیشود پس درصورتی PPPoe شما قطع شود روت دوم روی این اینترفیس قرار میگیره و با timeout شدن netwatch متوجه فطع شدن ارتباط میشود

  8. احمد گفت:

    خیلی عالی بود ، ممنون میشم همین روش برای ppoe کانکشن و مودم ۴جی بزارید

  9. سولای گفت:

    سلام
    من از میکروتیک خوابگاه نت میگیرم که هر کسی بر حسب شماره دانشجویی و پسوردش میتونه بهش وصل شه و حدود ۱.۵ گیگ ترافیک در اختیارشه. میخوام بدونم آیا در صورت پایان ترافیک امکان سویچ اتوماتیک به یه یوزر و پسورد دیگ وجود داره؟ برنامه ای وجود داره که به باهاش یوزر و پسورد رو سیو گرد و در صورت اتمام ترافیک به صورت اتوماتیک از ترافیک دیگه استفاده کنه ؟

  10. Hamid Mousavi Hamid Mousavi گفت:

    سلام

    دوست عزیز ممنون از لینک مفیدت بنده ۲ تا سوال دارم

    اول اینکه من ۲ تا اینترنت دارم که هر کدام برای خودش یک مودم داره و اینترنت درون مودم وصل و توسط کابل لن به روتر میکروتیک وصله با توجه به اینکه دیگه ppoe وجود نداره نوع کانفیگی که شما فرمودید چگونه تغییر میکنه ؟

    دوم اینکه از کانفیگیکه شما انجام دادید عکسی فیلی نیست که مرحله به مرحله شو ببنیم ؟

    با تشکر

  11. میثم گفت:

    با تشکر از شما به خاطر این آموزش

    من دو تا اینترنت دارم که یکی برای آسیاتک هست و آپی مودم ۱۹۲.۱۶۸.۳۵.۲ و یک مودم ۴g (بدون usb فقط پورت شبکه دارد ) با آی پی ۱۹۲.۱۶۸.۳۵.۳ و میخوام از این دو کانکشن به صورت failover استفاده کنم روشهایی رو که برای اینکار در نت وجود داشت رو بررسی کردم و در همه موارد باید مودم ها رو روی حالت بریج ست میشد ولی مشکلی که وجود دارد در اینترنت ارائه شده به ما حالت بریج کار نمیکنه و باید مودم آسیاتک رو روی حالت pppoe تنظیم کنیم تا اینترنت وصل بشه حالا از دوستان میخوام اگه امکانش هست راهی رو ارائه بدن تا بتونم failover رو انجام بدم .این رو هم اضافه کنم که میخوام اینترنت خروجی بر روی یکی از پورتهای میکروتیک بیافته (مثلا ۲۴)تا بتونم از اون لینک استفاده کنم
    با تشکر

  12. نسرین عبادی گفت:

    داداشمون ادمین خابش برده بنده خدا ولی پستی که گذاشته احسنت داره ولی اینکه ول میکنه به امون خدا بده

  13. POORIA TAABBODI POORIA TAABBODI گفت:

    درود بر دوستان عزیز لطفا سئوالاتتونو توی گروه های نتورکفا و میکروتیکفا قرار دهید تا سریعتر به پاسخ برسید…

    نکته: آنچه مسلم میباشد این است که برخی سناریوها پروژه محور هستند و چون زمان زیادی رو مطلبه تا به نتیجه برسید و عموما نیازمند دریافت ریموت از مشتری میباشد و افراد متخصص باید برای شما زمان بگذارند، بصورت رایگان و با یک توضیح کوچک مشکل مرتفع نمیشود، فلذا باید موضوع را در گروه مطرح کنید تا هریک از متخصصین که تایم آزاد دارد بتواند شما را رایگان راهنمایی یا با هزینه ایی توافقی مشکلتونو حل کند.

    پیروز و سربلند باشید….

    پوریا تعبدی
    کارشناس ارشد امنیت، مدرس و مشاور رسمی مایکروسافت، میکروتیک و سیسکو

    لینکهای دو گروه میکروتیکفا و نتورکفا
    لطفا با سایر دوستانتان نیز به اشتراک بگذارید😘❤️

    https://chat.whatsapp.com/KXYkfNvYlZF6qWjI29QUKq

    https://t.me/joinchat/Bie6DD-ECUkNt-zRKqVpcA

    https://chat.whatsapp.com/B5ZhCRDR5sxDk8gXqXG3B3

    https://t.me/joinchat/Bie6DEMt4HkEZU_dZ0AP4w

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.