برای شناخت بهتر روش های لودبالانسینگ در میکروتیک نظرتون را به جدول زیر جلب می کنممیکروتیک برای لود بالانسینگ ، روش های مختلف برای سلوشن های مختلف ارائه کرده، که در ادامه به آنها اشاره خواهم کرد

 

 

Method Per-connection Per-packet
Firewall marking Yes Yes
ECMP Yes No
PCC Yes No
Nth Yes Yes
Bonding No Yes
OSPF Yes No
BGP Yes No

 

متد اول

 

Firewall marking

Per-Traffic load Balancing

Load Balancing over multiple Gateways

Manual:Load Balancing

Improved Load Balancing over Multiple Gateways

Improved Load Balancing over Multiple Gateways failover Script

متد دوم

 

ECMP (Equal Cost Multi-Path)

ECMP load balancing with masqurade

ECMP Failover Script

Manual:IP/Route#Multipath (ECMP) Route

 

 

در این قسمت روش اول از متد اول را برایتان شرح میدهم

 

Per-Traffic load Balancing

مدیریت پهنای باند یک بخش ضروری برای تمامی شبکه های اینترنتی اعم از خانگی و یا اداری می باشد.

انواع مختلفی از ابزار مدیریتی برای این کار وجود دارد

از جمله QOS ، محدودیت در سرعت و محدودیت دیتا و…

من شخصا به یک اینترنت وایرلس دسترسی دارم و هیچ راه دیگری برای اتصال به اینترنت (اینترنت کابلی پر سرعت و یا فیبر)ندارم و فقط به یک Backbone  دسترسی دارم و نمیتوانم پهنای باند مورد نیاز خودم را فقط از یک کانکشن، تامین کنم.

از این محدودیت می توان به اهمیت لود بالانسیگ برای چندین backbone پی برد.

در گذشته من از ECMP استفاده می کردم، که تقریبا از روشهای دیگر بهتر بود ولی با این حال در قسمت دانلود فایل های بزرک از سایت هایی که دارای HTTPS بودند به مشکل خوردم.

بعد از آن روش های مختلفی برای انجام این کار را بررسی کردم و در نهایت به روشی برای کم کردن هرچه بیشتر مشکلات بلقوه در این راه، رسیدم  (Per-Traffic load Balancing)

که در ادامه نحوه پیاده سازی آنرا برای شما شرح خواهم داد.

Functions of RouterOS used

Firewall mangle rules

Firewall address-lists

Routing

قدم اول :

قبل از اینکه به این مرحله وارد شوید باید بدانید که چه چیزی می خواهید و چگونه میخواهید ترافیک خود را تقسیم کنید و چه ترافیکی میتواند خراب شود و کدام ترافیک نیمتواند !!

HTTP traffic (port 80)

SSL traffic (port 443)

POP3 traffic (port 110)

SMTP traffic (port 25)

P2P traffic (various port)

Unknown traffic (various port)

 

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

 

نتیجه ای که از لیست بالا به عنوان نمونه به دست آوردم به صورت زیر است:

HTTP traffic : تا الان بدون مشکل

SSL traffic : به مقدار کمی مشکل دارد. برای سایتهایی با SSL  نرمال و 90% نرم افزار ها مشکلی پیش نمی آید .مشکلات ایجاد شده را در مقاله ای دیگر توضیح خواهم داد

POP3 traffic : تا الان بدون مشکل

SMTP traffic: تا الان بدون مشکل

P2P traffic: باید از مسیر اینترنت خروجی به صورت ترافیک ناشناس خارج گردد که توضیح خواهم داد

Unknown traffic: باید از همان مسیر اینترنت به صورت ترافیک ناشناس خارج گردد مانند P2P  ترافیک که آن را هم توضیح خواهم داد

 به صورت خلاصه اگر بخواهم مشلات ایجاد شده را توضیح بدهم ، بعضی از برنامه ها و سایت ها به در خواستهایی که یک نفر از چند IP  مختلف می فرستند پاسخ نمی دهند به همین دلیل است که ECMP  مشکلات فراوانی دارد.

برای این مشکلات نادری که در لود بالانسینگ ایجاد می شود راه حلهایی ارائه خواهم داد.

 مشکل به وجود آمده در ترافیک SSL  به این صورت است که درخواستهایی که از آدرس های مختلف برای دریافت دیتا به سایت می رسند در سرورهای سایت به صورت، از پیش تعیین شده توضیع میگردند در نتیجه اگر وبسایتی داشته باشیم که از هر دو ترافیک HTTP  و SSL  استفاده کند در بیشتر مواقع سایت بدون بررسی IP  درخواست کننده به آن پاسخ می دهد ولی اگر وبسایت پیش از پاسخگویی IP  درخواست کننده را بررسی کند و اختلافی در آن ببیند معمولا در پاسخ به مشکل برخورد میکنیم.

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

در مورد ترافیک P2P   ترافیک ناشناخته: من این دو ترافیک را باهم آدرس دهی کردم زیرا مشکل در هر دوی آنها به یک شکل بود.

سیستم عامل میکروتیک RouterOS  ترافیک P2P  را تشخیص نمی دهد اما هر packet  را می تواند بررسی کند بدین معنی که سیستم عامل میکروتیک برای تشخیص اینکه این دیتا از نوع P2P  است به زمان بیشتری احتیاج دارد.

به طور خلاصه : سیستم عمال میکروتیک بعد از زمانی که یک کانکشن از نوع P2P  ایجاد شد می تواند ماهیت P2P  راتشخیص دهد.

این مسئله مهمی است زیرا برای ارسال دیتا در مسیر مشخص اینترنت شما باید ماهیت آن را قبل از ایجاد اتصال بدانید.

بنابراین ترافیک P2P  و ترافیک ناشناخته برای ما در گروه ترافیک ناشناخته قرار میگیرند.با نشان دار کردن ترافیک ناشناخته شما می توانید تصمیم بگیرید کدام اینترنت برای هدایتP2P  و بقیه ترافیک ناشناخته مناسب هستند، که به شکل خوبی هم درروتر کار میکند!

قدم دوم:  تنظیمات شبکه

 

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

client computers (172.18.1.0/24)

Internet Gateways (10.0.1.1/24, 10.0.2.1/24)

RouterOS IPs (10.0.1.2/24, 10.0.2.2/24

با فرض اینکه با تنظیمات کامل IP ها و DNS و default routes کاربر به اینترنت دست رسی دارد

لیستی برای دسترسی به اینترنت می سازیم

/ ip firewall address-list

add list=”Allowed-Internet” address=172.18.1.0/24 comment=”” disabled=no

لیستی برای مسیر های لود بالانسینگ می سازیم

/ ip firewall address-list
add list="WAN-01" address=172.18.1.24/32 comment="" disabled=no
add list="WAN-02" address=172.18.1.76/32 comment="" disabled=no

 اعمال Masquerading برای خروج ترافیک از WAN

/ ip firewall nat
add chain=srcnat action=masquerade out-interface="WAN - 01" src-address-list="Allowed-Internet" comment="Gateway 10.0.1.1/24" disabled=no
add chain=srcnat action=masquerade out-interface="WAN - 02" src-address-list="Allowed-Internet" comment="Gateway 10.0.2.1/24" disabled=no

 در اینجا تمام کلاینت ها باید به اینترنت  دسترسی داشته باشند، منتها با یک اینترنت و آن هم مسیر پیش فرضی که در defualt Routes روتر موجود است.

قدم سوم: استفده از ابزار منگل سیستم عامل میکروتیک برای نشان دار کردن انواع ترافیک

 

در ادامه دستوراتی که برای نشان دار کردن ترافیک لازم است رو میبینید.

بعد از نشان دار کردن ترافیک از آن برای نوع خاصی از Route  استفاده می کنیم

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

HTTP-SSL-POP3-SMTP-P2P-Unknown

/ ip firewall mangle
add chain=prerouting action=mark-routing new-routing-mark="WAN-01" src-address-list="WAN-01" passthrough=no comment="" disabled=no
add chain=prerouting action=mark-routing new-routing-mark="WAN-02" src-address-list="WAN-02" passthrough=no comment="" disabled=no
add chain=prerouting action=mark-routing new-routing-mark="HTTP traffic" passthrough=no dst-port=80 protocol=tcp comment="" disabled=no
add chain=prerouting action=mark-routing new-routing-mark="SSL traffic" passthrough=no dst-port=443 protocol=tcp comment="" disabled=no
add chain=prerouting action=mark-routing new-routing-mark="POP3 traffic" passthrough=no dst-port=110 protocol=tcp comment="" disabled=no
add chain=prerouting action=mark-routing new-routing-mark="SMTP traffic" passthrough=no dst-port=25 protocol=tcp comment="" disabled=no
add chain=prerouting action=mark-routing new-routing-mark="P2P traffic" passthrough=no p2p=all-p2p comment="" disabled=no
add chain=prerouting action=mark-routing new-routing-mark="Unknown traffic" passthrough=no comment="" disabled=no 

 

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

خط بعدی ترافیک رو بر اساس dst-port  (پورت خروجی) علامت دار می کند.

توجه کنید  فقط داریم ترافیک رو علامت گذاری می کنیم حتی اگر ترافیک ناشناخته باشه .

قبلا هم گفته شد که همیشه یک اینترنت کانکشن مخصوص برای ترافیک ناشناخته و P2P  تعیین شده تا از defaut route  روتر استفاده نشه.

من حتی ترافیک P2P  رو هم به صورت جداگانه علامت گذاری می کنم اگرچه ترافیک مربوط به اون هم باید از همون اینترنت کانکشنی خارج بشه که ترافیک ناشناخته قراره خارج بشه.

 

این کار را به دلایل زیادی انجام میدم یکی به این خاطر که هر وقت خواستم عبور تمام ترافیک رو با غیر فعال کردن یک Route  غیر فعال کنم

دلیل دیگر به این خاطر هست که من در روتر مقدارزیادی تنظیمات QoS  دارم و ممکن است تنظیمات QoS  تاثیراتی در لود بالانسیگ داشته باشد.

خوب در این مرحله ترافیک رو علامت دار کردیم و در مرحله بعد باید برای آن Route  نوشته شود.

 

قدم چهارم: استفاده از قابلیت Route  سیستم عامل میکروتیک برای هدایت ترافیک علامت دار شده به اینترنت کانکشن دلخواه.

 

در جدول زیر دستورات لازم برای ایجاد Route  در جهت هدایت ترافیک علامت گذاری شده قرار داده شده

ترافیک شامل HTTP-SSL-POP3_SMTP-P2P و ترافیک ناشناخته

/ ip route
add dst-address=0.0.0.0/0 gateway=10.0.1.1 scope=255 target-scope=10 routing-mark="WAN - 01" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.2.1 scope=255 target-scope=10 routing-mark="WAN - 02" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.2.1 scope=255 target-scope=10 routing-mark="HTTP traffic" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.2.1 scope=255 target-scope=10 routing-mark="SSL traffic" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.2.1 scope=255 target-scope=10 routing-mark="POP3 traffic" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.1.1 scope=255 target-scope=10 routing-mark="SMTP traffic" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.1.1 scope=255 target-scope=10 routing-mark="P2P traffic" comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=10.0.1.1 scope=255 target-scope=10 routing-mark="Unknown traffic" comment="" disabled=no

 

 

دو خط اول برای کاربرانی است که قرار نیست ترافیک آنها از لود بالانسیتگ عبور کند

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

 

قدم پنجم – مروری بر اقدامات انجام شده

 

در قسمت های قبل ترافیک اینترنت را به قسمت های مختلف تقسیم کردیم (شکستیم) و ترافیک تقسیم شده را با استفاده از تکنولوژی mangle  سیستم عامل میکروتیک نشان دار کردیم.

یک لیست میان بر یجاد کردیم که اجازه عبور آی پی های اصلی در لود بالانسینگ رو می داد

فرمان route  های مخصوصی بر اساس ترافیکی که mnagle  کردیم نیز ایجاد کردیم

نتیجه گیری

کانفیگی که انجام دادیم بسیار قدرمتند است . انواع ترافیکی که در این آموزش لیست شد تنها بخش کوچکی از ترافیک اینترنت هستند که شما می تونستید لیست کید.(DNS-Terminal service-ICMPو غیره)

5/5 - (2 امتیاز)

2 دیدگاه در “آموزش کامل لود بالانسینگ در میکروتیک

  1. بهزاد می گوید :

    دو مورد رو میخام بدونم ؛
    اول اینکه اومدی دوتا آدرس لیست ساختی برای wan.خوب یه لیست میساختی با دو آیپی wan که اینجوری بابت table ساخته شده مموری و پراسس اضافه نگیره.
    دوم اینکه شما mark connection نساخته نزده چجوری براش mark routing نوشتی؟؟؟ الان آون رولها رو چه حسابی دارن mark routing میشن؟؟

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