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

  • امکان اضافه شدن یا حذف سرورها در هر لحظه را فراهم می کند که باعث می شود همیشه سروری برای پاسخ گویی به درخواست ها وجود داشته باشد.
  • ماشین توازن بار باید همواره در دسترس بودن سرور ها را بررسی کرده و فهرستی از سرور های قابل دسترسی و پاسخ گویی به کلایت ها را داشته باشد.
  • سرور هایی را که قادر به پاسخ گویی نیستند را شناسایی کرده و از چرخه فرایند توزیع بار خارج کند و هرگاه که سرور قادر به پاسخ گویی بود، آنرا مجدد به فرایند توزیع بار وارد نماید.

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

اجزای توازن بار

درون شبکه، محیط توازن بار از سه سطح کلاینت ها، ماشین هایی در نقش توزیع کننده بار و سرور هایی که سرویس مورپ نظر مانند وب سرور، سرویس دهنده پست الکترونیکی، سرویس FTP و غیره را میزبانی می کنند، تشکیل شده است. ماشین توازن بار میان ترافیک کلاینت ها و سرور ها قرار گرفته و کلاینت ها به جای ارسال مستقیم درخواست به سرور ها، درخواست خود را به توزیع کننده بار ارسال کرده و توزیع کننده بار با انتخاب سروری از میان سرور ها، درخواست کلاینت را به آن ارسال می کند.

Source NAT

این روش را SNAT می گویند چونکه در این حالت تنها آدرس های مبدا ترجمه می شوند. در این حالت یک یا چند آدرس خصوصی را به یک یا چند آدرس عمومی ترجمه می شود تا به اینترنت دستیابی پیدا کنند، اما اگر درخواستی از اینترنت به NAT برسد، این درخواست ها توسط NAT، از بین خواهند رفت. اینگونه تصور کنید که ماشینی با آدرس 192.168.1.3 می خواهد صفحه وبی را از اینترنت ببیند، پس درخواست خود را ( یک بسته IP شامل آدرس های مبدا و مقصد، پورت های مبدا و مقصد) را به NAT می فرستد، NAT درخواست را به اینترنت می دهد (توسط اینترفیس خودش که توسط آدرس عمومی 1.1.1.1 دارد به اینترنت می دهد) و اطلاعات را نگه می دارد.

پس از اینکه پاسخ از اینترنت به Linux Router آمد، NAT اطلاعات را نگاه می کند و آنرا با Header بسته آمده مطابقت می دهد و می فهمد که بسته پاسخ آمده متعلق به آدرس 192.168.1.3 است.اگر یک یا چند Host پشت NAT تنها به یک آدرس عمومی ترجمه شوند، این فرایند را Static SNAT گویند و اگر آنها به چندین (محدوده ای از) آدرس های عمومی ترجمه شوند، اینر فرایند را Dynamic SNAT گویند.

Destination NAT

DNAT عکس SNAT است، یعنی آدرس عمومی را به یک آدرس خصوصی ترجمه می کند. یعنی اجازه ایجاد درخواست از روی اینترنت را بر روی ماشین های شبکه داخلی (آدرس های خصوصی) می دهد.

Full NAT

بنابراین اگر SNAT یک آدرس خصوصی را به یک آدرس عمومی و DNAT همان آدرس عمومی را به همان آدرس خوصی همزمان ترجمه کند، به این حالت Full NAT گویند. روش دیگر DSR است. در مسیربابی بسته توسط NAT سرور ها قاعدتا درخواست را از ماشین متوازن کننده بار دریافت می کنند و سپس پاسخ را مستقیما به کلاینت ارسال نمی کنند، بلکه پاسخ را به واسطه ماشین متوازن کننده بار که نقش NAT را ایفا می کند، به کلاینت می رساند.

اما با استفاده از DSR سرور خود مستقیما پاسخ کلاینت را می دهد. با استفاده از این روش مسیریابی کارایی شبکه و ماشین متوازن کننده بار بالا خواهد رفت. وظیفه ماشین متوازن کننده بار دریافت درخواست کلاینت و استفاده از الگوریتم های توزیع با برای انتخاب یک سرور و ارسال درخواست کلاینت به آن است. حال با استفاده از این روش مسیریابی، دیگر ماشین متوازن کننده بار مسئول ارسال پاسخ سرور به کلاینت نیست.

سرور ها و کلاینت ها

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

کلاینت ها ماشین هایی هستند که درخواست دسترسی به یک سرویس بر روی سرور ها را دارند. سرور های مربوط به یک سرویس باید سرویس و محتوای یکسانی را ارائه دهند، اما می توان بر روی یک سرور بیش از دو سرویس را ارائه کرد. به طور مثال می توان سه سرور داشت که هر سه وب سایت و وب سرور را میزبانی و دو سرور، سرویس پست الکترونیکی را ارائه دهند. به هر حال سه سرور یک باید محتوای یکسانی از وب سایت را ارائه دهند.

آدرس های مجازی

آدرس IP مجازی (Virtual IP)، آدرسی است که به چندین برنامه کاربردی بر روی یک سرور یا به چندین سرور درون یک شبکه اختصاص داده می شود. در پیاده سازی توازن با درون شبکه، یک آدرس مجازی را به چندین ماشین متوازن کننده بار (Load Balancer Server) اختصاص داده می شود.