مجتبی شمس نجاتی
کارشناس و مشاور شبکه و زیرساخت

آموزش راه اندازی Failover لینک در میکروتیک با Route و Scope

چگونه در میکروتیک 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 میکند.همچنین اگر مجدد ارتباط با 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 دوم فعال می شود.


مجتبی شمس نجاتی
مجتبی شمس نجاتی

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

کارشناس و مشاور شبکه های کامپیوتری ، تخصص در برقراری زیرساخت شبکه های Lan ، Wan ، تخصص در تجهیزات میکروتیک و شبکه های کابلی و وایرلس ، مدیریت فنی چندین پروژه کلان زیرساخت شبکه های بانکی کشور و سازمان های دولتی و خصوصی ، برنامه نویسی تحت وب Asp.Net و php

نظرات