اردیبهشت, 1398 بدون نظر عمومی

مقدمه : در این مقاله سعی شده است مبحث Load Balance در یک سناریو عملی به صورت کامل تشریح شود.
در این سناریو ما می خواهیم 2 خط اینترنت خود را که از 2 ISP مجزا گرفته ایم در اختیار کاربران شبکه قرار دهیم.

ISP 1 = Sabanet
ISP 2 = Shatel

مزیت استفاه از Load Balance
1- استفاده از پهنای باند هر دو خط برای نمونه اگر ما یک سرویس 8 مگابایت و یک سرویس 12 مگابایت واقعی داشته باشیم با استفاده از این روش ما می توانیم 20 مگابایت اینترنت در اختیار کاربران قرار دهیم.

2- قابلیت بعدی امکان FailOver است که این امکان را در اختیار ما قرار می دهد که اگر یکی از سرویس ها قطع شود خود کار روتر بر روی خط بعدی سوئیچ می کند.

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

مرحله اول- اتصال روتر برد میکروتیک به اینترنت
نکته : برای آشنایی با نحوه اتصال روتربرد به اینترنت می توانید مقاله اتصال روتر برد میکروتیک به اینترنت را پیش از مطالعه بخش های بعدی این مقاله مطالعه نمایید.

مرحله دوم – نوشتن nat
در این مرحله برای هر یک از سرویس های خود یک Nat با اکشن masquerade می نویسیم.

ip firewall nat/
add action=masquerade chain=srcnat out-interface=Shatel
add action=masquerade chain=srcnat out-interface=SabaNet

 

مرحله سوم – نشانه گذاری پکت ها و توزیع پکت های ورودی و خروجی
این بخش مهمترین بخش راه اندازی مبحث Load Balance است در این مرحله تمام پکت ها نشانه گذاری می شود و مشخص می شود از کدام سرویس خارج یا وارد شوند.

Ip – firwall – mangle

add action=mark-connection chain=input in-interface=SabaNet new-connection-mark=SabaNet passthrough=no
add action=mark-connection chain=input in-interface=Shatel new-connection-mark=Shatel passthrough=no
add action=mark-routing chain=output connection-mark=SabaNet new-routing-mark=SabaNet passthrough=no

add action=mark-routing chain=output connection-mark=Shatel new-routing-mark=
Shatel passthrough=no
add action=mark-connection chain=prerouting dst-address-type=!local in-nterface= Ether9 new-connection-mark=SabaNet per-connection-classifier=src-port:2/0
add action=mark-connection chain=prerouting dst-address-type=!local in-nterface= ther9 new-connection-mark= Shatel per-connection-classifier=src-port:2/1

نکته 1 : Ether9 اینترفیس کلاینت های متصل به روتر است.
نکته 2 : per-connection-classifier در قسمت Src- Port عدد اول باید بر اساس فرمول زیر تعریف شود.
بر فرض مثال اگر ما 3 سرویس با سرعت های 512 ، 1024 و 2048 مگابایت داشته باشیم این دسته بندی براساس فرمول زیر انجام می شود.
ابتدا هر یک را بر کمترین سرعت تقسیم میکنیم و مجموع همه این ها میشود عدد اول per-connection-classifier و عدد دوم از صفر شروع می کنیم.

سرویس 1 :

512/512= 1
per-connection-classifier=src-port:7/0

سرویس 2 :

1024/512= 2
per-connection-classifier=src-port:7/1
per-connection-classifier=src-port:7/2

سرویس 3 :

2048/512=4
per-connection-classifier=src-port:7/3
per-connection-classifier=src-port:7/4
per-connection-classifier=src-port:7/5
per-connection-classifier=src-port:7/6

نکته ی مهم : برای هر یک از اینها باید یک prerouting بنویسیم.

 

add action=mark-routing chain=prerouting connection-mark=SabaNet
in-interface=Erher9 new-routing-mark=SabaNet passthrough=no

=\add action=mark-routing chain=prerouting connection-mark=Shatel in-interface
Ether9 new-routing-mark=Shatel passthrough=no

 

مرجله چهارم : تعریفIP Route
add check-gateway=ping distance=1 gateway=SabaNet routing-mark=SabaNet
add check-gateway=ping distance=2 gateway=Shatel routing-mark=Shatel

این نکته را نباید فراموش کنید که حتما قابلیت ping بر روی این Route فعال شود با فعال کردن ping روتر در زمانهای مشخص خودش را چک می کند و به محض اینکه ping این ارتباط قطع شود ارتباط به سرویس با Distance بالاتر منتقل می شود برای مثال اگر ارتباط با ISP صبانت قطع شود سریع همه ترافیک از طریق ISP شاتل تامین می شود.

برچسب ها

ارسال نظر شما

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