در این درس، به سرعت درباره یکی از دستگاههای رایج شبکه که در لایه ۷ مدل OSI فعالیت میکند و لودبالانسر نامیده میشود، بحث خواهیم کرد.
در زیرساختهای مدرن، عملکرد و مقیاسپذیری برنامه (Application Performance and Scalability) بسیار مهم است. دستگاههای شبکه استاندارد مانند سوئیچها و مسیریابها ترافیک را جابجا میکنند، اما عملکرد یک برنامه را ردیابی نمیکنند. اینجاست که دستگاههای شبکه تخصصی وارد میشوند.
لینک آموزش قسمت نهم: https://vrgl.ir/Vxkpc
برای درک اینکه چرا به دستگاههای شبکه تخصصی مانند لودبالانسر نیاز داریم، بیایید مثال زیر را بررسی کنیم. تصور کنید که یک شرکت یک برنامه وب (فروشگاه آنلاین) دارد. آدرس وب فروشگاه www.xyz.com است.
حالا، تصور کنید که برنامه وب بر روی یک سرور واحد، بسیار بزرگ و قدرتمند، اجرا میشود، همانطور که در نمودار زیر نشان داده شده است.
بدیهی است که این طراحی چندین نقطه ضعف قابل توجه دارد - قابلیت دسترسی بالا (High Availability) ندارد و فاقد مقیاسپذیری (Scalability) است. به عنوان مثال، اگر سرور با مشکل سختافزاری مواجه شده و از کار بیفتد، فروشگاه آنلاین آفلاین میشود و شرکت ضرر میکند (که همیشه چیز بدی است).
علاوه بر این، حتی اگر سرور کاملاً سالم باشد، در نهایت اگر بیش از حد بار روی سرور بیاید، ظرفیت CPU، RAM و شبکه محدودی دارد. هنگامی که تعداد زیادی کاربر همزمان متصل میشوند، کند یا از دسترس خارج میشود. بنابراین فکر میکنید راهحل این مشکل زیرساختی چیست؟
اولین چیزی که به ذهن میرسد، اجرای برنامه وب بر روی چندین سرور است. به این ترتیب، قادر خواهد بود تعداد بسیار بیشتری از کاربران را مدیریت کند. اما یک مشکل وجود دارد:
کاربران از طریق نام دامنه فروشگاه آنلاین یعنی xyz.com به آن دسترسی پیدا میکنند.
قبل از اینکه یک کاربر برنامه وب را باز کند، کامپیوتر او ابتدا نام دامنه را با استفاده از DNS به یک آدرس IP تبدیل میکند.
با این حال، DNS میتواند یک نام دامنه را تنها به یک آدرس IP واحد تبدیل کند. آدرس xyz.com به 37.3.2.1 تبدیل میشود.
بنابراین اگر ۱۰۰ سرور دارید، آدرس IP 37.3.2.1 که نام دامنه فروشگاه به آن تبدیل میشود را کجا قرار میدهید؟ اگر آن را روی هر یک از سرورها بگذارید، تمام کاربران همچنان فقط به یک سرور هدایت میشوند.
لودبالانسر یک دستگاه شبکه است که برای حل این مشکل طراحی شده است، همانطور که در نمودار زیر نشان داده شده است.

راهحل این است که آدرس IP برنامه وب را روی لودبالانسر قرار دهیم. DNS به IP لودبالانسر اشاره میکند. تمام اتصالات HTTPS کاربران در لودبالانسر خاتمه مییابند. سپس لودبالانسر هر اتصال ورودی را به یکی از سرورهای پشتیبان (Backend Servers) هدایت میکند. این کار ترافیک را در بین تمام سرورها توزیع میکند و از بارگذاری بیش از حد یک سرور جلوگیری میکند.
به خط سبز ضخیمتر از اینترنت به لودبالانسر توجه کنید. این خط نشاندهنده هزاران اتصال ورودی است. LB (لودبالانسر) این هزاران اتصال را به چندین سرور توزیع میکند. بنابراین تعداد درخواستهای ورودی به هر سرور به طور قابل توجهی کمتر است (از این رو خط سبز نازکتر به هر سرور کشیده شده است).
وظیفه اصلی یک لودبالانسر، توزیع اتصالات ورودی در میان گروهی از سرورها است. از آنجایی که بیشتر ترافیک امروزه رمزنگاری شده با TLS است، لودبالانسر ابتدا با ارائه گواهی SSL سایت به کلاینتها، رمزگشایی HTTPS را مدیریت میکند. پس از آن، با استفاده از یک روش زمانبندی مانند Round Robin یا Least Connections، یک سرور پشتیبان را انتخاب میکند. سپس لودبالانسر میتواند درخواست را بر روی HTTP ساده به سرور انتخاب شده ارسال کند، که این امر با آفلود کردن (Offloading) کار رمزنگاری، بار CPU را روی سرورها کاهش میدهد.
با این حال، امروزه، یک لودبالانسر عملکردهای بسیار بیشتری نسبت به صرف توزیع ترافیک در بین سرورها و انجام خاتمه TLS انجام میدهد. مهمترین آنها به شرح زیر است:
بررسی سلامت (Health checking): وضعیت سرورها را نظارت میکند و فقط ترافیک را به سرورهای سالم ارسال میکند. اگر یک سرور از کار بیفتد، لودبالانسر به طور خودکار آن را از چرخه خارج میکند، همانطور که در نمودار زیر نشان داده شده است.
انتقال به حالت اضطراری (Failover): اگر یک یا چند سرور باید برای نگهداری از دسترس خارج شوند، میتواند ترافیک را به سرورهای پشتیبان یا حتی یک مرکز داده دیگر هدایت کند.
مسیریابی ترافیک (Traffic shaping and routing): میتواند درخواستها را بر اساس قوانین، مانند ارسال انواع خاصی از ترافیک به نزدیکترین موقعیت جغرافیایی، هدایت کند.
فعالیت های امنیتی (Security functions): میتواند ترافیک مشکوک را مسدود کرده و سرورهای پشتیبان را از شبکه عمومی پنهان کند.
مقیاسپذیری افقی (Horizontal Scalability): یک لودبالانسر این امکان را فراهم میکند که سرورها بدون ایجاد اختلال برای کاربران اضافه یا حذف شوند. این یکی از قابل توجهترین مزایای لودبالانسر است.

بنابراین در حالی که وظیفه اصلی آن توزیع اتصالات است، یک لودبالانسر همچنین دسترسیپذیری، عملکرد، امنیت و انعطافپذیری زیرساخت برنامه را بهبود میبخشد.
حالا، بیایید به سرعت پرطرفدارترین فروشندگان لودبالانسر را که ممکن است در طول دوران کاری شبکهتان با آنها مواجه شوید، معرفی کنیم.
در روزهای اولیه، لودبالانسر دستگاههای سختافزاری و ملموسی بودند که در قفسههای رک در مرکز داده نصب میشدند. امروزه، این رایجترین حالت نیست، اما هنوز هم بسیاری از تجهیزات سختافزاری در حال کار هستند.
محبوبترین و گستردهترین فروشنده لودبالانسر سختافزاری F5 است. تجهیزات F5 سالهاست که به طور گسترده در مراکز داده برای مدیریت حجم زیادی از ترافیک و ارائه ویژگیهای پیشرفته مانند آفلود SSL، فایروال برنامه و شکلدهی ترافیک استفاده میشوند.

سایر برندهای شناخته شده شامل Citrix (NetScaler) و A10 Networks هستند، اما F5 به طور کلی شناختهشدهترین و پرکاربردترین است.
بیشتر لودبالانسر مدرن دیگر دستگاههای سختافزاری فیزیکی نیستند. در گذشته، شرکتها از تجهیزات اختصاصی لودبالانسر — جعبههای فیزیکی قرار گرفته در مراکز داده — استفاده میکردند. با این حال، مشکل تجهیزات سختافزاری این است که ظرفیت ثابتی دارند و نیاز به راهاندازی و نگهداری دستی دارند.
امروزه، بیشتر لودبالانسر مجازی هستند. آنها به صورت نرمافزار در ابر (Cloud) یا روی ماشینهای مجازی اجرا میشوند. به عنوان مثال، AWS Elastic Load Balancer (ELB) یک دستگاه فیزیکی نیست — بلکه یک سرویس مدیریتشده است. شما سختافزار را نمیبینید یا لمس نمیکنید. AWS به طور خودکار آن را در پسزمینه ایجاد و مقیاسبندی میکند.

این رویکرد مجازی انعطافپذیرتر، مقیاسپذیری آسانتر و مدیریت ارزانتری نسبت به خرید و نگهداری لودبالانسر فیزیکی دارد.
لودبالانسر ترافیک را در بین چندین سرور توزیع میکنند.
آنها از بارگذاری بیش از حد جلوگیری کرده و دسترسیپذیری بالا را تضمین میکنند.
آنها رمزگشایی TLS را از سرورها آفلود میکنند.
آنها بررسی سلامت را انجام داده و ترافیک را تنها به سرورهای سالم هدایت میکنند.
آنها از انتقال به حالت اضطراری (Failover) و شکلدهی ترافیک پشتیبانی میکنند.
آنها مقیاسپذیری، عملکرد و امنیت را بهبود میبخشند.
فروشندگان محبوب شامل F5، Citrix، A10 و AWS هستند.
حمید رضا اسفندیاری _ کارشناس شبکه و فناوری اطلاعات