توازن بار (load balancing) عمل توزیع بار ترافیکی بر روی بیش از یک سرور در جهت بهبود عملکرد و در دسترس بودن سرور است. سازمانها از روشهای مختلف توازن بار برای افزایش سرعت وبسایتها و شبکههای خصوصی استفاده میکنند. بدون تعادل بار، اکثر اپلیکیشنهای اینترنتی و وبسایتها نمیتوانند ترافیک را به طور موثری مدیریت کنند و این امر ممکن است باعث عدم عملکرد صحیح آنها شود
آنچه در این مقاله میخوانید:
Round-robin DNS چگونه کار میکند؟
انواع دیگر تعادل بار مبتنی بر DNS چیست؟
DNS اغلب به عنوان دفترچه تلفن اینترنت شناخته میشود، زیرا دامنههای وبسایت مانند google.com را به آدرسهای IP ترجمه میکند. آدرس IP یک برچسب عددی طولانی است که سرورها برای شناسایی وبسایتها و هر دستگاه متصل به اینترنت از آن استفاده میکنند. با ترجمه نام دامنه به آدرسهای IP -فرآیندی با نام وضوح DNS[1] (DNS Resolution) – DNS افراد را از حفظ دنبالههای طولانی اعداد برای دسترسی به وبسایتها و برنامهها نجات میدهد.
در فرآیند وضوح DNS، مرورگر اینترنت کاربر با یک سرور DNS تماس میگیرد تا آدرس IP صحیح وبسایت مقصد را درخواست کند. عمل درخواست آدرس IP یک دامنه، کوئری DNS (DNS query) نامیده میشود. توزیع بار DNS نوع خاصی از توزیع بار است که از DNS برای توزیع ترافیک در چندین سرور استفاده میکند. توزیع بار DNS با ارائه آدرس های IP مختلف در پاسخ به کوئریهای DNS انجام میشود. متعادلکنندههای بار میتوانند از روشها یا قوانین مختلفی برای انتخاب آدرس IP در جهت اشتراکگذاری در پاسخ به درخواست DNS استفاده کنند.
یکی از رایجترین تکنیکهای متعادلسازی بار، round-robin DNS نامیده میشود.
Round-robin DNS چیست؟
Round-robin DNS مانند دیگر روشهای مبتنی بر DNS با توزیع بار DNS به دنبال بهبود عملکرد و قابلیت اطمینان وبسایتهاست. با این حال، برخلاف استفاده از نرمافزارهای تخصصی یا متعادلکننده بار مبتنی بر سختافزار، round-robin DNS تعادل بار را با استفاده از نوعی سرور DNS به نام سرور نام معتبر (authoritative nameserver) انجام میدهد.
سرورهای نام معتبر دارای رکوردهای DNSی به نام رکوردهای A یا رکوردهای AAAA هستند که حاوی نام دامنه و آدرس IP منطبق با آن است. هنگامی که مشتری یک کوئری DNS ارسال میکند، هدف کوئری یافتن رکورد A (یا AAAA) است. یک دامنه دارای یک رکورد A خواهد بود که در یک راهاندازی اولیه به یک آدرس IP متصل است، به این معنی که یک کوئری DNS همیشه همان آدرس IP را برمیگرداند.
با این حال، در round-robin DNS، دامنهها دارای چندین رکورد A هستند که هر کدام به یک آدرس IP متفاوت گره خوردهاند. همانطور که کوئریهای DNS وارد میشوند، آدرسهای IP به صورت دور چرخشی میچرخند و درخواستها را بین سرورهای مرتبط پخش میکنند.
Round-robin DNS چگونه کار میکند؟
اگر پنج آدرس IP در round-robin DNS وجود داشته باشد، یک round-robin DNS فقط آدرس IP شماره 1 را برای هر ششمین درخواست برمیگرداند. از آنجایی که هر آدرس IP مربوط به سرور متفاوتی است، این توزیع بار DNS، بار کاری هر سرور را کاهش میدهد و احتمال غلبه بر درخواستها را کاهش میدهد.
برای درک نحوه عملکرد round-robin DNS، بازدید از یک وبسایت را با ارسال یک نامه به شرکت مقایسه کنید. فرض کنید شرکت از یک صندوق پستی برای دریافت نامههای مشتری استفاده میکند، اما آنها نامههای بیشتری از صندوق پستی منحصر به فرد خود دریافت میکنند. برای کمک به حل این مشکل، این شرکت میتواند صندوقهای پستی بیشتری خریداری کند.
برای اینکه استراتژی صندوق پستی چندگانه کار کند، شرکت باید اطمینان حاصل کند که هیچ صندوقی مملو از نامه نیست. این بدان معناست که آدرس صندوق پستی که وقتی مشتریان آدرس پستی شرکت را جستجو میکنند ظاهر میشود، باید به طور متوالی تغییر کند. مشتری شماره 1 آدرس صندوق پستی شماره 1 را میبیند. سپس، مشتری شماره 2 آدرس صندوق پستی شماره 2 را میبیند. این روش با افزایش ظرفیت کلی به کاهش بار روی جعبههای پستی تکی کمک میکند. بدون صندوقهای پستی اضافی، یک صندوق پستی به راحتی سرریز میشود و ارسال نامههای دریافتی را به تاخیر میاندازد.
مانند مثال جعبه پستی، round-robin DNS از سرورها در برابر غرق شدن توسط تعداد زیاد درخواستها محافظت میکند و از تاخیر در پردازش آنها جلوگیری میکند.
انواع دیگر تعادل بار مبتنی بر DNS چیست؟
در حالی که رویکرد round-robin از محبوبیت خوبی برخوردار است، اما تنها روش برای توزیع بار DNS نیست. بیشتر متعادلکنندههای بار به صاحبان دامنه اجازه میدهند تا یک روش توازن باز را از میان چندین قانون مسیریابی ترافیک انتخاب کنند.
الگوریتم وزنی توزیع بار DNS (weighted algorithm)
یکی از نمونههای پیکرهبندی تعادل بار مبتنی بر DNS، یک الگوریتم وزنی است که در آن سرورهای مختلف بر اساس ظرفیت مدیریت ترافیک، وزنهای نسبی را تعیین میکنند. سپس ترافیک به طور متناسب تعیین میشود. به عنوان مثال، اگر ظرفیت سرور A دو برابر ظرفیت سرور B باشد، آنگاه متعادل کننده بار در مقایسه با سرور B، دو برابر ترافیک را به سرور A میدهد. متعادل کننده بار این کار را با بازگرداندن آدرس IP سرور A در پاسخ به کوئریهای DNS انجام میدهد. اتصال وزندار round-robin یا اتصال کموزن نمونههایی از این نوع الگوریتم متعادلکننده بار هستند.
بسیاری از رویکردهای متعادلسازی بار مبتنی بر DNS پویا هستند؛ به این معنی که متعادلکنندههای بار، سلامت سرور و زمان پاسخ سرور را هنگام تخصیص درخواستها در نظر میگیرند. الگوریتمهای پویا میتوانند اشکال مختلفی داشته باشند. Least connection یکی از انواع الگوریتم تعادل بار پویا است. در پیکرهبندی Least connection نظارت بر روی سرورها تعیین میکند که کدام سرور در حال حاضر کمترین اتصالات باز را دارد و سپس با ارائه آدرس IP آن در پاسخ به درخواستهای DNS، ترافیک ورودی را به آن سرور اختصاص میدهد.
الگوریتم موقعیت جغرافیایی (Geo-location algorithm)
موقعیت جغرافیایی یکی دیگر از الگوریتمهای پویای پرکاربرد توزیع بار DNS است. در این پیکرهبندی، متعادلکننده بار درخواستها را از یک منطقه به یک سرور یا مجموعه سرور تعریف شده اختصاص میدهد. برای مثال، همه درخواستهایی که از فرانسه میآیند ممکن است به سرور F بروند و همه درخواستهایی که از اسپانیا میآیند به سرور S میروند.
الگوریتم مبتنی بر مجاورت (proximity based algorithm)
الگوریتم مبتنی بر مجاورت نیز عملکردی مشابه با الگوریتم موقعیت جغرافیایی برای توزیع بار DNS دارد. در این پیکرهبندی، بار متعادلکنندهها به صورت پویا ترافیک را به سرور نزدیک به کاربر اختصاص میدهند. قوانین الگوریتمهای پویای مختلف کمی با هم متفاوت هستند اما در نهایت هدف همه این الگوریتمها نظارت بر سلامت سرور و بهینهسازی نحوه تخصیص ترافیک بین سرورهای مختلف میباشد.
سوالات متداول
توزیع بار DNS شیوه پیکرهبندی یک دامنه در سیستم نام دامنه (DNS) است، به طوری که درخواستهای کاربران به دامنه در میان گروهی از ماشینهای سرور توزیع میشود.
آیا DNS خدمات توزیع بار DNS بین سرورهای مختلف را انجام میدهد؟
توزیع بار مبتنی بر DNS نوع خاصی از توزیع بار است که از DNS برای توزیع ترافیک در چندین سرور استفاده میکند. این توزیع بار با ارائه آدرسهای IP مختلف در پاسخ به کوئریهای DNS انجام میشود.
الگوریتم توزیع بار DNS موقعیت جغرافیایی چیست؟
در الگوریتم موقعیت جغرافیایی، متعادلکننده بار درخواستها را در جهت حداکثر کارایی و امنیت بین سرورهای مختلف توزیع میکند. در حالی که توزیع بار DNS محلی در یک دیتاسنتر واحد اتفاق میافتد، تعادل بار جغرافیایی از چندین دیتاسنتر در مکانهای جغرافیایی مختلف استفاده میکند.
منابع:
https://www.cloudflare.com/learning/performance/what-is-dns-load-balancing/