DNS، مخفف Domain Name System، یکی از پایههای اینترنت است و بیشتر ما در طول روز بدون آنکه بدانیم از DNS استفاده میکنیم. در این مقاله سعی کردیم به بررسی مفهوم و کارایی DNS بپردازیم و از آن به عنوان لود بالانسر استفاده کینم . ما در بسیاری از کارهای روزمره خود مانند کار با تلفن همراه، چککردن ایمیل و گشتوگذار در اینترنت، از DNS استفاده میکنیم.
DNS چیست؟
DNS مانند یک دفترچه تلفن برای اینترنت است. همانطور که شما برای تماس با دیگران بهجای بهخاطر سپردن شمارهٔ آنها، از دفترچه تلفن استفاده میکنید، DNS نیز مانند یک دفترچه تلفن عمل میکند و نیازی به حفظکردن آدرس IPها نیست. همانطور که میدانید، کامپیوترها برای اتصال به یکدیگر از اعداد یا همان IP آدرسها استفاده میکنند.
Domain Name System فهرست توزیع شدهای است که نام دامنه قابل خواندن توسط انسانمانند www.test.com را به اعداد خوانا برای کامپیوترها یعنی IP آدرس تبدیل میکند. برعکس این نیز در مورد DNS صدق میکند، یعنی DNS سیستمی است که نام دامنه وب را سازماندهی میکند و آنها را برای همه کسانی که میخواهند به شبکه وصل شوند، قابلفهمتر میکند.
تا اینجا گفتیم که از DNS می توان برای تبدیل URL به آدرس IP و به عبارت دقیق تر نام دامنه ما به آدرس IP استفاده کرد. حالا بیایید ببینیم که آیا می توانیم از DNS برای چیزهای بیشتری استفاده کنیم یا خیر.
A record چیست؟
A record dns باعث ارتباط و پیوند نام دامنه به یک IP آدرس خاص می شود. به کمک این رکورد، اسم مورد نظر، اشاره به IP آدرس سایت شما دارد و IP آدرس سایت شما به عنوان پاسخ برگردانده می شود. پس دامنه و سایت شما هم با خود IP آدرسش، هم چنین با نام تعیین شده در دسترس خواهد بود.
بنابراین اگر به پیکربندی DNS را مشاهده کردید، دارای رکوردهای A است که سوابق آدرس هستند و آنها مشخص میکنند که برای یک نام دامنه مشخص، آدرسهای IP که به آن نام دامنه سرویس میدهند کدامند.
بنابراین می تواند چندین رکورد A وجود داشته باشد، به این معنی که می تواند چندین آدرس IP وجود داشته باشد که یک نام دامنه را ارائه می دهد.
اکنون این فرصتی را به ما می دهد تا نوعی load balancer را انجام دهیم.
بنابراین بیایید بگوییم که اینها سه سرور مختلف هستند که یک برنامه خاص را ارائه می دهند.
و اگر DNS را صدا کنیم و DNS به صورت تصادفی یا به صورت round robin یک آدرس IP از هر یک از اینها را به ما می دهد، سپس این منجر به لود بالانسر می شود.
زیرا در حال حاضر ما همیشه فقط به یک برنامه نمی رویم. ما می توانیم به هر یک از آنها، هر نمونه ای از آن برنامه برویم. بنابراین این تعادل بار است. حتی اگر بتوانیم لیستی از آدرس IP دریافت کنیم، میتوانیم تعادل بار را خودمان انجام دهیم. این یک مرورگر است، این کار را نمی کند. و مناسب ترین چیز برای یک مرورگر این است که ما فقط می توانیم یک IP دریافت کنیم. اما برای یک کلاینت فناوری که در آن منطقی وجود دارد، اگر بتوانیم لیستی از IP را دریافت کنیم، حتی میتوانیم تعادل بار را انجام دهیم. بنابراین می بینیم که از طریق DNS امکان انجام مقداری تعادل بار وجود دارد. کار دیگری که DNS می تواند انجام دهد این است که می توانند برای بررسی سلامت پیکربندی شوند، به این معنی که DNS می تواند یک نمونه پشتیبان را پینگ کند و از سلامت آن مطلع شود که آیا آن نمونه پاسخ می دهد یا نه. اگر پاسخ نمی دهد، به این معنی است که زنده نیست و سپس IP خود را در پاسخ خود بر نمی گرداند. بنابراین مشتری از ارسال درخواست به نمونه ای که زنده نیست یا مرده است نجات می یابد. بنابراین این یک ویژگی جالب در مورد DNS است و این ویژگی قطعاً در Cloud DNS مانند آمازون، گوگل در دسترس است. DNS های دیگری نیز وجود دارند که ممکن است این ویژگی را ارائه دهند. اگرچه DNS ها می توانند همه این ویژگی های جالب را داشته باشند، اما هنوز به عنوان متعادل کننده بار استفاده نمی شوند. و دلیل آن این است که متعادل کننده بار یک قطعه سخت افزار یا نرم افزار بسیار فعال است که به طور فعال مواردی را که از کار افتاده اند ردیابی می کند. و به محض اینکه متوجه شد که نمونه از کار افتاده است، ارسال ترافیک به آن نمونه را متوقف می کند. اکنون این چیزی نیست که بتوانیم از DNS انتظار داشته باشیم. DNS برای ایجاد این نوع سوئیچ، مدتی زمان لازم را در بین خواهد داشت. و دلیل آن این است که DNS، به دلایل مقیاس پذیری، بسیار به ذخیره سازی متکی است. بنابراین میتوان نتایج حافظه پنهان یک نام دامنه خاص را که این نام دامنه به این مجموعه آدرسها نگاشت میکند، ذخیره کرد. و ممکن است یک پاسخ ذخیره شده در حافظه پنهان دریافت کنید، که ممکن است در زمینه تعادل بار کهنه شده باشد و ممکن است در نهایت به یک نمونه غیر سالم درخواست ارسال کنید. ما می توانیم با تنظیم مقادیر TTL برای یک پاسخ، آن را تا حدی کنترل کنیم. مقادیر TTL مقادیر Time to Live هستند که می گوید این پاسخ خاص فقط برای یک ساعت بعد، یک روز بعد یا یک دقیقه یا 30 ثانیه معتبر است. می تواند هر چیزی باشد. بنابراین برای حالت متعادل کننده بار ما می خواهیم مقادیر TTL واقعاً پایینی داشته باشیم. اکنون، مقادیر کم TTL مانند صفر به این معنی است که ما نمیتوانیم به طور مؤثری پاسخها را در حافظه پنهان ذخیره کنیم یا نمیتوانیم پاسخها را در هیچ کجا ذخیره کنیم و DNS ها بیش از حد بارگذاری میشوند. بنابراین برای جلوگیری از آن، ما برخی از TTL های قطعی را تنظیم می کنیم. و بسته به میزان بار قابل تحمل، DNS های مختلف از شما می خواهند TTL های مختلفی را تنظیم کنید و این TTL ها می توانند مقادیر بالایی داشته باشند و ممکن است برای استفاده به عنوان متعادل کننده بار عملی نباشند. همانطور که گفته شد، هنوز برخی از برنامه های کاربردی برای DNS وجود دارد که به Load Balancer نزدیک می شود، اما دقیقاً Load balancing نیست، زیرا نمی تواند کار متعادل کننده بار فعال را انجام دهد. و همه اینها را در اسلاید بعدی خواهیم دید.
برای توزیع تصادفی ترافیک در چندین سرور، چندین رکورد DNS A یا AAAA را برای یک hostname تنظیم کنید.
سناریو لود بالانسر
مثال زیر نحوه توزیع ترافیک در نظر گرفته شده برای www.example.com را نشان می دهد. اگرچه مثال از رکوردهای A استفاده می کند، می توانید از رکوردهای AAAA نیز استفاده کنید.
Type | Name | IPv4 address |
---|---|---|
A | www | 192.0.1.1 |
A | www | 192.0.1.2 |
A | www | 192.0.1.3 |
رفتار دقیق مسیریابی DNS شما به وضعیت پروکسی هر رکورد بستگی دارد.
این مقاله در حال بروز رسانی می باشد