استفاده همزمان از چندین لینک ارتباطی به اینترنت/آشنایی بیشتر با لودبالانس
لودبالانس در استفاده از خطوط اینترنت به معنی تقسیم بار ترافیک مصرفی کاربران به منظور استفاده بهینه ی آنها از خطوط اینترنت می باشد . load balance در استفاده از خطوط اینترنت به دودستهی کلی per connection و per packet تقسیم میشود . 4 روش کلی در فایروالها و لودبالانس ها به منظور تقسیم بار کاربران وجود دارد .
- Per-Traffic Load Balancing
- Policy Routing based on Client IP Address
- ECMP (Equal Cost Multi-Path)
- ( Per Connection Classifier ) PCC
در این مقاله با نحوهی کار این روشها ، معیار تقسیم بار آنها و معایب و مزایای هرکدام آشنا میشویم.در ادامه با هزارسو همراه باشید.
- مقدمه :
لودبالانس به معنای تقسیم بار هست.این لغت در تمامی زمینههای حوزهی فناوری اطلاعات وجود داردload balance در ارتباطات لایهی دو ، استفاده از سرورها ،استفاده از سخت افزار های ذخیره سازی ، لینک های رادیویی و استفاده از اینترنت به کار رفته و به معنای تقسیم بار و ترافیک کاربران بر روی بیش از دو مدیای ارتباطی به منظور دستیابی به سرعت بالاتر میباشد .
در کنار لودبالانس مفهوم failover وجود دارد.failover به معنای جایگزینی اتوماتیک در صورت اختلال در سیستم ها می باشد .
در این مقاله با انواع روشهای لودبالانس برای استفاده از اینترنت با داشتن بیش از یک مسیر ارتباطی ، معایب و مزایای هر کدام آشنا خواهیم شد .
اشاره به این نکته الزامی است که لودبالانس به معنای ترکیب دو اینترنت ( internet bonding ) نمیباشد.برای مثال شما صاحب یک شرکت با ده کارمند میباشید و دو اینترنت 2 مگابیت در اختیار دارید .با روش های لودبالانس سرعت شما به 4 مگابیت تبدیل نمیشود بلکه به صورت همزمان از دو لینک استفاده شده و بار ترافیکی کارمندان شبکه شما بر روی دو لینک تقسیم میشود .
در تقسیم بار دو حالت وجود دارد :
- Per – Packet : در این حالت فایروال بر اساس پکت های عبوری تقسیم بار بر روی لینکهای خروجی را انجام میدهد.
- Per – Connection : در این حالت فایروال بر اساس ارتباط کانکشن های بر قرار شده تقسیم بار را انجام میدهد.در این حالت source address ، destination address، source port ، destination port موردبررسی قرار میگیرد.
در اینجا باید توجه کرد بهمنظور دستیابی به failover حتماً باید کانکشن مربوط به ارتباط اینترنت بر روی خود فایروال برقرار شود و مودم اصطلاحاً در حالت bridge mode قرار گیرد در غیر این صورت فایروال نمیتواند تشخیص دهد که ارتباط اینترنت مربوطه قطعشده است .
- Firewall marking
در این روش با استفاده از قابلیتهای علامتگذاری بستهها و ارتباطات متصل شده به روتر میتوان تقسیم بار یا عمل لودبالانس را پیادهسازی کرد .این روش به هر دو صورت Per – Packet و Per – connection قابلاجراست.
- Per-Traffic Load Balancing:
همانطور که از عنوان مشخص است اساس این روش بر نوع ترافیک و دادهای که قرار است از روتر عبور کند استوار است . در این روش ابتدا لیستی شامل ترافیک های عبور کننده از روتر بر اساس شماره پورت آنها تهیه میشود . برای مثال :
- HTTP traffic (port 80)
- SSL traffic (port 443)
- POP3 traffic (port 110)
- SMTP traffic (port 25)
سپس این لیست بر اساس اهمیت پاسخگویی به درخواستها اولویتبندی میشود. برای مثال اگر در شرکتی باز کردن صفحات وب به صورت روزانه اهمیت بالاتری نسبت به دیگر کارها داشته باشد در نتیجه پورت 80 و 443 اولیت بالاتری نسبت به دیگر پورت ها خواهند داشت .سپس توسط قابلیت های علامت گذاری بسته ها ( tagging) در فایروال ها بسته ها علامت گذاری میشوند .در مرحله آخر با ختصاص دادن گیتوی های مختلف به علامت ها بر اساس سرعت و پایداری آنها، قبل از انجام عملیات روتینگ عمل تقسیم بار بین لینک های مختلف انجام میشود . همچنین برای اینکه در صورت قطع شدن یک لینک ترافیک آن لینک از خروجی دیگری عبور کند ، تمامی گیتوی ها را با اولیت های مختلف ( distance number ) به تمامی علامت ها اختصاص میدهند .همانطور که اشاره شد در این روش معیار شماره پورت مقصد بسته ها خواهد بود .
در اینجا ذکر این نکته لازم میباشد که در علامت گذاری ها دو دسته ی دیگر هم ساخته میشود .یک دسته مربوط به پورت های مشخص نشده برای ترافیک های ناشناخته و یک دسته برای تونل های نقطهبهنقطه ( tunneling protocol ) .دستهی اول مشخص است اما در رابطه با دسته ی دوم ، در تونل ها قبل از عبور داده ها ابتدا باید ترافیک های مربوط به برقرای خود تونل عبور کند برای همین باید برای عبور این ترافیک ها یک دسته ی خاص مجرا از دسته های ذکر شده در بالا ایجاد شود ..
مزایا:
- مزیت این روش نسبت به روش های دیگر مجزا بودن تقسیم بار از کاربران و تعداد آنها : معیار این روش نوع ترافیک ها بر اساس شماره پورت آنهاست .
- عیب یابی و بررسی صحت عملکرد آسان : توسط یک نرم افزار مانیتورینگ میتوان به صحت عملکرد تقسیم بار پی برده و یا آن را عیب یابی کرد.
معایب:
- انجام عملیات جداسازی به صورت غیر اتوماتیک : در این روش جدا سازی داده ها به صورت دستی انجام شده و اتوماتیک نمیباشد .
- بهینه نبودن : امکان دارد در بعضی از ساعات بار ترافیکی یکی از لینک ها به خاطر نوع ترافیک داده های مورد استفاده ی کاربران بالا رفته اما از لینک های دیگر استفاده ای نشود .
- راه اندازی پیچیده : باید ترافیک های مورد استفاده کاربران به صورت مجزا مشخص شود .
- ضریب خطای بالا و غیر هوشمندانه : امکان دارد لیست ترافیک های مشخص شده به صورت صحیح انتخاب نشده و اولویت بندی نشوند و در نتیجه عملیات تقسیم بار به صورت صحیح انجام نشود .
- برای دسترسی از بیرون به داخل شبکه باید به صورت دستی لینک ورودی از بیرون به داخل را بر اساس اختصاص ان به سرور مربوطه انخاب کرد.
- Policy Routing based on Client IP Address :
این روش از نوع Per – Connection می باشد.
در این روش نیز تقسیم بار توسط علامت گذاری داده ها انجام میشود اما معیار تقسیم بار، کاربران و آدرس IP آنها می باشد .
ابتدا کاربران را به دو یا چند گروه مختلف تقسیم کرده و برای هر گروه یک رنج IP مجزا ( IP subnet ) در نظر میگیرند .سپس هر رنج را با یک تگ مجزا علامت گذاری کرده و در قسمت مسیر یابی به هر رنج بر اساس تگ مربوطه یک گیتوی مجزا میدهند . در این روش نیز به همه ی تگها تمامی گیتوی ها را اختصاص می دهند اما با distance number های مختلف تا در صورت قطع شدن یک لینک ترافیک آن از لینک دیگر عبور کند .
مزایا :
- اجرای ساده : جداسازی کابران به subnet ها مختلف به مراتب ساده تر از جدا سازی ترافیک های مختلف میباشد .
معایب :
- جداسازی دستی : در این روش نیز جدا سازی به صورت دستی انجام شده و اتوماتیک نمیباشد .
- غیر هوشمندانه بودن : امکان دارد در ساعاتی کاربران یک بخش حضور نداشته باشند .در این صورت از لینک اختصاص داده شده به انها استفاده نمیشود.
- بهینه نبودن : امکان دارد در ساعاتی کاربران یک بخش حضور نداشته باشند .در این صورت از لینک اختصاص داده شده به انها استفاده نمیشود.
- ضریب خطای بالا و غیر هوشمندانه : امکان دارد تقسیم بندی کاربران به صورت صحیح انجام نشود و در نتیجه عملیات تقسیم بار به صورت صحیح انجام نشود .
- تقسیم شبکه به چند رنج مختلف : امکان دارد به دلیل کوچک بودن شبکه این امر ضرورتی نداشته باشد
- برای دسترسی از بیرون به داخل شبکه باید به صورت دستی لینک ورودی از بیرون به داخل را بر اساس اختصاص ان به سرور مربوطه انخاب کرد.
- ECMP (Equal Cost Multi-Path) :
در این روش تقسیم بار به صورت کاملا هوشمندانه و بر اساس نوبت دهی کانکشن های برقرار شده با فایروال مربوطه انجام میشود.به همین منظور باید لینک ها از نظر سرعت و پایداری برابر باشند .دلیل نامگذاری این روش نیز همین امر می باشد . در این روش به حای اختصاص دادن یک خروجی در جدول روت ها ) routing table ) تمامی خروجی ها با شماره distance برابر قرار میگیرند .با توجه به اینکه در صورت قطع شدن یک لینک به صورت اتوماتیک روتر ها بالاترین شماره distance را به آن لینک اختصاص می دهند در نتیجه عمل fail over نیز به درستی صورت میگیرد .
مزایا :
- راه اندازی آسان : در این روش نیاز به تهیه لیست و یا دستورات پیچیده نیست و به راحتی با چند خط static rout قابل اجرا می باشد .
- جداسازی به صورت اتوماتیک
- تقسیم بار هوشمندانه : تمامی مراحا تقسیم بار توسط خود فایروال انجام میگیرد در نتیجه با کاهش تعداد کاربران یا کاهش بار مصرفی عدع ای از آنها دستگاه به صورت خودکار بار ترافیکی اضافی لینک بیشتر را به صورت هوشمندانه به روی لینک کم بار تر منتقل می کند .
معایب :
- Lost : با توجه به اینکه معیار تقسیم بار بر اساس کانکشن ها و ارتباطات متصل شده به فایروال میباشد در نتیجه به هنگام تغییر مسیر یک کانکشن از روی یک خروجی بر روی خروجی دیگر ان کانکشن قطع شده و درخواست دوباره ارسال می شود در نتیجه نسبت به روش های پیشین lost بالاتری خواهیم داشت البته این lost بسیار کم خواهد بود .برای مثال به هنگام مشاهده ی صفحات وب در صورت جا به جایی ترافیک یک کاربر از روی یک خروجی به روی خروجی دیگر آن کاربر نیاز به refresh کردن دوباره صفحه دارد.این اتفاق معمولا دو دلیل دارد .
- DNS : امکان دارد به دلیل بعضی تنظیمات ISP ها پاسخ درخواست های DNS شما از یکی از خروجی ها در دسترس نباشد در نیتجه ترافیک آن خروجی با مشکل رو به رو خواهد شد .برای رفع این مشکل بهترین راه استفاده ازDNS SERVER های جهانی است که از تمامی خروجی های شما در دسترس باشند.
- Routing table flushing : ترازکردن جدول روت ها باعث می شود کهtable ECMP CASH که در واقع خروجی هر کانکشن را در خود دارد پاک شده و دوباره خروجی ها به کانکشن ها اختصاص داده شود .حال داده های خروجی کانکشن های بر قرار شده به هنگام پاسخ در صورتی که در شبکه از NAT استفاده شده باشد در مسیر برگشت با مشکل مواجه شده و در نتیجه lost لحظه ای اتفاق می افتد مگر آنکه شبکه شما fully routed network بوده و ادرس های IP شبکه داخلی شما از نوع Public باشد .
تراز کردن در routing table دو دلیل دارد. تغییر به دلیل جا به جایی مسیر ها و چک کردن و تراز کردن جدول برای جلوگیری از DOS Attack
- دسترسی از بیرون به داخل شبکه : در این روش دسترسی از بیرون به داخل شبکه چه به صورت DMZ و چه به صورت Port Forwarding با مشکل رو به رو خواهد شد .برای مثال فرض کنید در خواستی از بیرون به داخل شبکه شما از طریق لینک یک وارد میشود .اما پاسخ این درخواست از لینک دوم شما خارج شود. برای رفع این مشکل باید از طریق تگ گذاری در فایروال تمامی در خواست های داخل شده به شبکه را بر اساس لینک ورودی علامت گذاری کرد و قبل از عمل روت مسیر خروجی این در خواست ها را همان مسیر ورودیشان تعریف کرد.
- همسان بودن سرعت و پایداری لینک ها : همانطور که گفته شد روتر به صورت نوبتی به درخواست ها خروجی اختصاص میدهد پس باید تمامی لینک های ما دارای سرعت و پایداری یکسان باشند .در صورت استفاده از لینک هایی با سرعت های مختلف می توان تعداد روت های خروجی به ان لینک ها را بر اساس سرعت هر لینک بیشتر کرد که البته خود این راه حل نیز باعث میشود که عمل تقسیم بار در این روش نیز از حالت تمام خودکار و هوشمندانه خارج شود .
- قطع شدن دانلود ها حجیم : در صورتی که در میانه ی دانلود یک فایل حجیم عمل routing table flushing صورت بگیرد بر اساس قانونگذاری یک سری از سایت ها ( به منظور محدود کردن سرعت دانلود ها برای جلوگیزی از حملات DOS یا به منظور در آمد زایی ) دانلود شما قطع شده و باید از اول عمل دانلود را انجام دهید .
- ( Per Connection Classifier ) PCC :
این روش از نوع Per – Connection می باشد .
در این روش ترافیک خروجی طبق یک الگوریتم به چند گروه مختلف تقسیم میشود. معیار تقسیم ترافیک می تواند یکی یا تلفیقی از source address ، destination address، source port ، destination port باشد .
روش کار به این صورت است که ابتدا لینک های خروجی را بر اساس اعداد شماره گزاری میشوند. (بدون اولیت دهی و یا قانون خاص).سپس فایروال بسته های ورودی را توسط یک الگوریتم هشینگ ) hashing algorithm ( به ادرس های 32 بیتی تبدیل میکند و آن ادرس ها را بر یک مخرج (Denominator ) تقسیم میکند .نتیجه حاصل از تقسیم دارای باقیمانده (Remainder ( می باشد . در مرحله ی اخر توسط مقایسه ی عدد باقیمانده با شماره ی مسیر های خروجی هر کانکشن را باید به مسیر خروجی متناظرش اتصال دهند . در صورتی که یکی از لینک های خروجی قطع شود در routing table بالاترین distance را میگیرد. در نتیجه همانند دیگر متد ها باید تمامی دسته ها را به تمامی روت ها با distance های مختلف اختصاص داد تا fail over اجرا شود .
مزایا :
- جداسازی به صورت اتوماتیک
- پیاده سازی آسان
- نداشتن lost لحظه ای
معایب:
- بررسی و عیب یابی سخت : به دلیل استفاده از الگوریتم پیچیده برای تقسیم بار تست صحت عملکرد آن دشوار می باشد
- تقسیم بار غیر هوشمندانه : با توجه به اینکه معیار انتخابی ثابت خواهد بود در نتیجه ترافیک یک کلاینت خاص یا یک نوع بسته خاص پس از الگوریتم همیشه از یکی از خروجی ها عبور خواهد کرد در نتیجه در نبود آن فرد یا گروه بار اضافی مسیر های دیگر بر روی این مسیر نخواهد آمد. بدین منظور هرچه در معیار انتخابی از ترکیب ادرس های نام برده در بالا استفاده شود گروه های کوچکتری تولید شده و ضریب خطای این موضوع کاهش میابد اما رفع نخواهد شد .
- در این روش نیز همانند روش های دیگر باید ترافیک های ورودی از بیرون به داخل به مسیری که از آن داخل شده اند اختصاص یابند.
- همسان بودن سرعت و پایداری لینک ها : همانطور که گفته شد فایروال بدون در نظر گرفتن اولویت و به صورت نوبتی به درخواست ها ، خروجی اختصاص میدهد پس باید تمامی لینک های ما دارای سرعت و پایداری یکسان باشند .در صورت استفاده از لینک هایی با سرعت های مختلف می توان تعداد روت های خروجی به ان لینک ها را بر اساس سرعت
- هر لینک بیشتر کرد که البته خود این راه حل نیز باعث میشود که عمل تقسیم بار در این روش نیز از حالت تمام خودکار و هوشمندانه خارج شود .
- جدول مقایسه :
نام | حالت | معیار | مزایا | معایب |
Per-Traffic Load Balancing | Per-Traffic | نوع داده ها | – بررسی و عیب یابی اسان
– وابسته نبودن به کاربران |
– غیر اتوماتیک
– بهینه نبودن – ضزیب خطای بالا – اجرای پیچیده – غیر هوشمندانه |
Policy Routing based on Client IP Address | Per Connection | آدرس آی پی کاربران | – بررسی و عیب یابی اسان
– اجرای آسان |
– غیر اتوماتیک
– بهینه نبودن – ضزیب خطای بالا – غیر هوشمندانه |
ECMP (Equal Cost Multi-Path) | Per Connection | نوبت دهی(صف) | – اجرای آسان
– هوشمندانه |
– داشتنlost لحظه ای
– قطع شدن دانلود های حجیم – همسان بودن سرعت لینک ها |
PCC( Per Connection Classifier ) | Per Connection | آدرس آی پی مبدا ،
آدرس آی پی مقصد پورت مبدا ، پورت مقصد ، |
– جداسازی اتوماتیک
– پیاده سازی اسان |
– بررسی و عیب یابی سخت
– تقسیم بار غیر هوشمندانه – همسان بودن سرعت لینک ها |
- نتیجه گیری :
باید برای انتخاب روش مناسب عمل تقسیم بار از روش های بالا ، شرایط و موجودی های شبکه مورد نظر مانند تعداد کاربران ، تعداد لینک های اینترنت و سرعت آنها نسبت به یکدیگر و … بررسی شود سپس بر اساس اهمیت و نیازمندی آنها بهترین روش انتخاب گردد.با توجه به برایند روش های موجود بهترین روش حالت PCC می باشد که هم به نسبت روش های دیگر هوشمندانه تر بوده همدسته بندی به صورت اتوامتیک انجام شده و lost لحظه ای بسیار کمتری دارد استفاده شود اما بسته به شرایط شبکه گزینه های دیگر نیز میتوانند گزینه های مناسبی باشند .
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.