چگونه در میکروتیک Failover ایجاد کنیم؟ failover در میکروتیک به چند روش قابل پیاده سازی است. استفاده از netwatch و script ، استفاده از فایروال و mangle در میکروتیک ، و استفاده از route distance در این مقاله قصد داریم failover پیشرفته با route و scope را بررسی کنیم. تصویر زیر را مشاهده کنید:
در این تصویر روتر میکروتیک به وسیله link1 و link2 به دو سرویس دهنده اینترنت ISP1 و ISP2 متصل است و سرویس دهنده ISP1 به وسیله link3 و سرویس دهنده ISP2 به وسیله link4 به اینترنت متصل هستند.
روش اول: (ساده) حال اگر بخواهیم یک failover ساده بنویسیم به شکل زیر عمل میکنیم:
/ip route add dst-address=0.0.0.0/0 gateway=10.10.10.1 distance=1 check-gateway=ping add dst-address=0.0.0.0/0 gateway=20.20.20.1 distance=2
در اینصورت اگر ارتباط روتر با ISP1 قطع شود، route اول با گیتوی ISP1 که اولویت بالاتری دارد بعد از چند ثانیه unreachable می شود و route دوم با گیتوی ISP2 فعال می شود.دلیل unreachable شدن route اول ویژگی check-gateway=ping است. وقتی این ویژگی فعال باشد، روتر هر چند ثانیه gateway مربوطه یعنی 10.10.10.1 را با ping چک میکند و وقتی ارتباط با گیتوی برقرار نبود ، route را unreachable میکند.
برای یادگیری میکروتیک بصورت حرفه ای می توانید به دوره های آموزش میکروتیک مجموعه توسینسو یا بصورت ویژه به دوره آموزش MTCNA میکروتیک در این لینک مراجعه کند.
همچنین اگر مجدد ارتباط با ISP1 برقرار شود route اول فعال و بدلیل اولویت بالاتر بعنوان default route انتخاب می شود.حال فرض کنید ارتباط روتر با ISP1 برقرار باشد، اما ISP1 به هر دلیل با اینترنت ارتباط نداشته باشد. در اینصورت چون روتر ping آدرس 10.10.10.1 را دارد، route فعال می ماند و ارتباط اینترنت روتر قطع می شود.بنابراین نیاز به failover پیشرفته داریم.
روش دوم: (پیشرفته) در این روش دو آدرس ip عمومی که همیشه در دسترس هستند را تعیین میکنیم. یکی را از طریق ISP1 چک میکنیم و دیگری را از طریق ISP2 و سپس از این دو آدرس عمومی بعنوان gateway روتر استفاده میکند.اما در حالت پیشفرض تنها آدرس هایی قابل استفاده شدن بعنوان gateway هستند که nexthop روتر باشند. برای رفع این مشکل از scope و target scope در میکروتیک استفاده می کنیم.یک route تنها درصورتی می تواند گیتوی را از route دیگری پیدا کنید (resolve کند)، که scope آن route ، برابر target scope و یا کوچکتر از آن باشد.ابتدا دو route برای چک کردن دو آدرس عمومی اینترنت می نویسیم یکی با گیتوی ISP1 و دیگری با گیتوی ISP2 :
/ip route add dst-address=217.218.155.155 gateway=10.10.10.1 scope=10 add dst-address=217.218.127.127 gateway=20.20.20.1 scope=10
دو آدرس 217.218.155.155 و 217.218.127.127 دو آدرس DNS سرور های زیرساخت ایران هستند که همیشه در دسترس هستند.همانطور که در دستورات مشخص است ، 217.218.155.155 با گیتوی ISP1 و 217.218.127.127 با گیتوی ISP2 ست شده است.دو route هم برای default gateway روتر مینویسیم :
/ip route add dst-address=0.0.0.0/0 gateway=217.218.155.155 distance=1 check-gateway=ping add dst-address=0.0.0.0/0 gateway=217.218.127.127 distance=2
چون target-scope این دو default route برابر 10 است ، یعنی برابر با scope دو route قبلی، میتواند از آن route ها برای resolve گیتوی استفاده کند.بعد از ایجاد default gateway به شکل بالا، status گیتوی route اول به اینصورت نمایش داده می شود:
217.218.155.155 recursive via 10.10.10.1 ether1
که مفهومش این است که 217.218.155.155 از طریق 10.10.10.1 روی ether1 پیدا می شود و برای route دوم:
217.218.127.127 recursive via 20.20.20.1 ether2
با این روش بعد از اینکه اینترنت ISP1 قطع شد، روتر با وجود اینکه با ISP1 ارتباط دارد یعنی با 10.10.10.1 ، اما 217.218.155.155 را نمی بیند، چون در route های اول تعیین کردیم که 217.218.155.155 فقط از گیتوی ISP1 دیده شود. بنابراین همانند روش اول default route اول unreachable می شود و default route دوم فعال می شود.
سلام وقت بخیر مهندس
بنده در مورد مبحث Failover روی لینک داخلی میکروتیک سوال داشتم یه شرکتی است که دو تا لینک داره یک لینک اصلی هستش و لینک دوم بکاپ که این دو لینک به ترتیب به ehter1 و ether 2 روتر وصل هستند روتر در سمت فرستنده RB1100ahx2
و روتر سمت کلاینت هم CRS125G هستش که ترتیب به ehter1 و ether 2 روتر وصل هستند
1- من برای لینک اصلی و بکاپ با استفاده از دستور netwatch در روتر سمت کلاینت روش netwatch رو اجرا کردم داره کار میکنه و تست هم شده فقط مشکلی که هست در زمان قطعی که دستور نت واچ اجرا میشه در سمت فرستنده روتر تشخیص قطعی نداده و مدام داره دیتا رو ارسال میکنه به سمت روتر کلاینت وقتی این اتفاق میافته پینگ 8.8.8.8 رو که میگیرم 5 تا پینگ میده 3 تا تایم اوت دارم به محض اینکه در روتر فرستنده ether مربوط به لینک بکاپ رو disable میکنم مشکل حل میشه
خواستم بپرسم که script هست که من در روتر سمت فرستنده اجرا کنم که زمانی که روتر سمت کلاینت تشخیص قطعی داد و نت واچ اجرا شد روتر سمت فرستنده ether1 خاموش بشه
سلام و سپاس از روش جالبی که گذاشتید
سناریوی من مثل شکل بالاست با این تفاوت کهISP اول ، TDLTE ایرانسل و ISP2 اینترنت ADSL با IP Public می باشد.
روش دوم (پیشرفته) را پیاده کردم اما فقط قطعی کابل رو ساپورت می کنه و fail over موقع قطعی اینترنت در اثر اتمام حجم ایرنسل، عمل نمی کنه، ایراد از چی می تونه باشه؟
وقتی از check gateway استفاده میکنید باید از ip استفاده کنید.
ممنون از آموزشتون ،
سوال که من داشتم اینه اگه یکی از گتوی ها pppoe باشه چیکار باید کرد ؟
من در روش پیشرفتتون به جای ای پی گتوی اینترفیس pppoe گذاشتم کار نکرد
اما از آی پی مقابل pppoe که گذاشتم اکی شد، البته امکان داره با تغییر تجهیزات مقابل این Fail over از کار بیوفته راه بهتری هست ؟
خوشحالم که برای شما مفید واقع شد.
سعی میکنم آموزش load balancing هم قرار بدم.
درود
مهندس عالی بودش .
لطفا از این اموزش ها بیشتر بزارید.
یک پرسش از شما، ایا امکانش هستش یک اموزش در میکروتیک بزارید بتونیم دو خط اینترنت از دو ISP متفاوت با هم تجمیع کنیم و سرعت بالاتری دریافت کنیم.
لطف می کنید .
سپاسگذارم.
روش جالبی بود متشکرم