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

روش متعادل کردن بار (تقسیم بار) با هدف گسترش ترافیک در لینک های متعدد (برای مثال : چند خط اینترنت) برای بالا بردن کارایی شبکه را Load Balancing می گویند . متعادل سازی را می تواند براساس Packet یا Connection انجام داد.
توزیع بار یا Load Balancing موجب عملکرد بهتر و بالا بردن کارایی در شبکه می شود برای مثال یک شبکه با ۲۰ کلاینت دارید که می خواهید با دو خط اینترنت به آن ها اینترنت سرویس دهی کنید با استفاده از روش توزیع بار می توانید طوری شبکه را پیاده سازی کنید که بدون این که کلاینت ها متوجه شوند از خط اینترنت که آزاد تر است استفاده کنند و به کارایی بهتری دسترسی یابد و یا ممکن است شما بخواهید یک ترافیک خاص از خط اینترنت ۱ عبور کند و بقیه ترافیک ها از خط ۲ عبور کنند. برخی روش های توزیع بار باعث افزایش سرعت نیز می گردد مانند bonding که بین ۲ دستگاه میکروتیکی صورت می گیرد و دو لینک ۱۰۰ مگابیت بر ثانیه را باهم تجمیع می کند.
انواع روش های متعادل سازی بار یا Load Balancing در میکروتیک به شرح زیر است :

در جدول بالا مشخص شده که هر کدام از روش ها براساس چه فاکتوری (packet , connection) توزیع بار را انجام می دهند. شما با توجه به نیاز در شبکه سازمانتان می توانید یکی از روش های فوق را بررسی و استفاده نمایید که به شکل زیر عمل می کنند:
۱- Overflow balancing  : در این روش اگر یکی از لینکهاFull  شد از لینک دیگر استفاده میکند.
۲-  ECMP : در این روش به اندازه ای که از لینک اولی استفاده میشود از لینک دومی هم استفاده میشود.
۳-  Per Traffic : در این روش Http  از لینک اولی استفاده می کند وdownload  و باقی موارد از لینک دومی استفاده می کنند.
۴- Policy Routing, LBoMG  : در این روش یوزرها به ۲ دسته تقسیم می شوند دسته اول از لینک اولی و دسته دوم از لینک دومی استفاده میکنند.

ترکیب دو خط اینترنتLoad Balancing  با روش  PCCدر میکروتیک

شاید برای شما پیش آمده باشد که در شرکت چند خط اینترنت داشته باشید و قصد داشته باشید ترافیک هر دو خط را با هم ترکیب کنید. برای مثال دو خط با پهنای باند ۲M داریم که می خواهیم از تمام این پهنای باند یعنی ۴M استفاده کنیم.

pcc  مخففper-connection-classifier  می باشد یعنی بر اساس کانکشن دسته بندی میکند و تصمیم میگیرد که یک کانکشن را از کدوم مسیر برقرار کند. نمی توند ترافیک یک کانکشن را از دو میسر به صورت همزمان بفرستد.

فرض شود سناریوی به شرح ذیل را داریم و قصد تجمیع دو لینک اینترنت و دادن آن به کامپیوتر های محلی را داربم:

Local Computers: 172.16.10.0/24

Internet Gateways: 10.0.1.1 /24, 10.0.2.1/24

RouterOs IP Addresses: 10.0.1.2/24, 10.0.2.2/24

گام نخست : تعریف ip های مورد نظر در روتر 

برای این کار ابتدا آدرس IP ها را از مسیر Ip / Addresses در میکروتیک تعریف می کنیم.

تعریف آدرس برای شبکه لوکال:

تعریف آدرس برای:Wan1

تعریف آدرس برای:Wan2

گام دوم : تعریف NATبرای Wan های موجود (IP /Firewall /NAT)

تعریف NAT برای :Wan1

تعریف NAT برایWan2 :

گام سوم: ایجاد رول های مورد نیاز در Mangle  (IP / Firewall / Mangle)

نکته) : chain input  برای پردازش بسته هایی که از طریق یکی از اینترفیس ها به روتر وارد می شود، مورد استفاده قرار می گیرد.

نکته) : mark connection  برای قرار دادن علامت مشخص در کل ارتباطات موجود در یک رول مورد استفاده قرار می گیرد.

در ابتدا برای ارتباطات ورودیWan1، یک mark connection ایجاد می کنیم.

برای Wan2 هم مانند Wan1 یک mark connection ایجاد می کنیم.

نکته)  : chain output برای پردازش بسته هایی که توسط روتر ایجاد شده است، مورد استفاده قرار می گیرد.

نکته)  : mark routing برای قرار دادن یک علامت مشخص بر روی یک بسته فقط برای اهداف مسیریابی، مورد استفاده قرار می گیرد.

در مرحله بعد بسته های خروجی Wan ها که توسط میکروتیک ایجاد شد را با استفاده از رول های مرحله قبل mark routing می کنیم.

 Wan1 :

Wan2:

نکته)  : chain preroutingبرای پردازش بسته ها قبل از عمل routing مورد استفاده قرار می گیرد.

در این قسمت بسته هایی که از داخل شبکه مقصدشان اینترنت می باشد را مورد پذیرش قرار می دهیم.

Wan1:

Wan2:

در این قسمت ترافیک هایی که از سمت شبکه ارسال می شوند را به جریان های برابر تقسیم کرده و با استفاده از mark connection به آدرس مقصد یعنی Wan مورد نظر در مرحله routing می فرستیم.

 Wan1:

نکته)  : per connection classifier اجازه می دهد ترافیک به جریان های برابر تقسیم شوند.اگر ۳ ترافیک داشته باشیم پارامتر های ما ۳/۰ و ۳/۱ و ۳/۲ و اگر ۲ ترافیک داشته باشیم پارامتر های ما ۲/۰ و ۲/۱ خواهد شد.

نکته)  : Dst.Address Type

  1. Local :آدرس مقصد به یکی از اینترفیس های روتر اختصاص داده می شود.
  2. Unicast : بسته به یک دستگاه خاص ارسال می شود.
  3. Broadcast : بسته به همه دستگاه ها ارسال می شود.
  4. Multicast :بسته به یک گروه تعریف شده ارسال می گردد.

Wan2 :

در این قسمت برای mark connection مرحله قبل یک mark routing ایجاد تا در routing استفاده شود.

نکته) لازم به ذکر است نام این routing mark هم نام routing mark قسمت output می باشد.

Wan1:

 Wan2:

گام چهارم : نوشتن Route

در این مرحله Default Route های خود را اضافه میکنیم بطوریکه همواره وضعیت برقراری ارتباط با Gateway به وسیله ping چک شود.

Wan1:

Wan2:

در این قسمت برای Gateway های Wan ها به وسیله Distance اولویت ایجاد می کنیم بطوریکه Wan1 اولویت اول ما و Wan2 اولویت دوم ماباشد.

 Wan1:

Wan2:

در پایان ماهم یک اینترنت با مجموع پهنای باند ۴M خواهیم داشت و همچنین Failover را اجرا نموده ایم.

البته میکروتیک نمیتواند تجمیع را به صورت ۱۰۰% انجام دهد. برای این امر لود بالانسرهای سخت افزاری و نرم افزاری وجود دارند. بهترین لود بالانسر سخت افزاری حال حاضر peplink و cybroam می باشند و برای لود بالانسینگ حرفه ای نرم افزاری نرم افزارهایی مانند ISA یا همان Fore Front،TMG و Dispatch proxy پیشنهاد می شوند.

Failover :

Failover اینترنت، به این معناست که ما برای اینکه ارتباط همیشه پایداری داشته باشیم نیازمند دو یا چند لینک اینترنت هستیم به این صورت که یک یا چند لینک اینترنت را به صورت Standby نگه داشته تا زمانی که لینک اصلی دچار مشکل شد این لینک ها جایگزین لینک اصلی شوند.

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

حالا به قسمت System / Scripts  میرویم، درآنجا یک اسکریپت جدید به وسیله ADD ایجاد میکنیم. یک نام برای اسکریپت انتخاب می کنیم. و در قسمت source  این اسکریپت را وارد میکنیم .

نوشتن اسکریپت برای Failover:

:global host1 4.2.2.4;

:global s;

:global gw1ping [ping $host1 count=15];

:globalgw [/ip route get [find comment=A] gateway ];

/interface pppoe-client monitor “Shatel” once do={:set s $status}if ($s = “connected” ) do={ if ( $gw1ping >10) do={ if ($gw!=”Shatel”) do={/ip route set [find dst-address=”۰.۰.۰.۰/۰″] gateway=Shatel}}} else={/ip route set [find dst-address=”۰.۰.۰.۰/۰″] gateway=Parsonline};

توجه شود که در این مثال، لینک اصلیshatel است که در صورت بروز مشکل به لینک دوم کهparsonline  میباشد سوییچ کرده و در صورت رفع مشکل،مجدد بهshatelباز میگردد.

بعد از ایجاد اسکریپت، باید این اسکریپت را به scheduler بدهیم تا در بازه های زمانی مشخص آن را اجرا کند برای انجام این کار به قسمت  system / schedule رفته و یک schedule  جدید اضافه میکنیم.

در قسمت Name یک نام به دلخواه برای schedule اختصاص می دهیم. در قسمت  Start date تاریخی که برای شروع آن در نظر گرفته ایم و در قسمت start time زمان اجرا شدن اسکریپت را مشخص میکنیم و در قسمت interval حد فاصل زمان اجرای اسکریپت می باشد مثلاً اگر در اینجا ۱ دقیقه می باشد یعنی اسکریپت هر ۱ دقیقه اجرا خواهد شد و در آخر در قسمت on event  نام اسکریپت ایجاد شده در مرحله قبل را وارد میکنیم.

ارسال دیدگاه