DNS Server چیست؟
DNS مخفف Domain Name System است. سیستم نام دامنه یا همان DNS، دفترچه تلفن اینترنت است. هنگامی که کاربران نام دامنه هایی مانند atriya.com یا google.com را در مرورگرهای وب خود تایپ می کنند، DNS مسئول یافتن آدرس IP صحیح برای آن سایت ها است. سپس مرورگرها برای دستیابی به اطلاعات وب سایت از این آدرس IP برای ارتباط با سرورهایی که میزبان این سایت ها هستند، استفاده می کنند. همه این ها به لطف سرورهای DNS اتفاق می افتد.
Server چیست؟
سرور یک سیستم کامپیوتری تقریبا قدرتمند است که خدمات و سرویس هایی را به سرویس گیرنده ها (Client) ارایه می دهد. سرویس گیرندگان DNS، که در اکثر سیستم عامل های کامپیوتری و موبایل ها ساخته شده اند، مرورگرهای وب را قادر می سازند تا با سرورهای DNS ارتباط برقرار کنند.
چگونه DNS Server ها یک پرس و جوی DNS را برطرف می کنند؟
در یک پرس و جو معمولی DNS بدون هیچ حافظه پنهانی (بدون کش شدن اطلاعات از قبل)، چهار سرور وجود دارد که برای ارائه آدرس IP به مشتری کار می کنند: recursive resolvers، root servers، TLD servers، authoritative servers .
DNS recursor یا DNS resolver سروری است که درخواست را از سرویس گیرنده DNS دریافت می کند و سپس برای پیدا کردن آدرس IP صحیح با سرورهای دیگر تعامل می کند. هنگامی که DNS resolver درخواست را از مشتری یا سرویس گیرنده دریافت کرد، خود مانند مشتری عمل می کند و جهت پیدا کردن آدرس IP صحیح، سه نوع دیگر از سرورهای DNS را جستجو می کند. DNS resolver ابتدا root server را جستجو می کند. Root server اولین قدم در ترجمه Domain Name های قابل فهم برای انسان، به آدرس های IP است.
در این مرحله root server آدرس یک Top Level Domain DNS Server (TLD Server) را به عنوان پاسخ به DNS resolver برمی گرداند. TLD Server ها حاوی اطلاعات دامین ها هستند. بنابراین در این مرحله DNS resolver با استفاده از آدرس IP سرور TLD به این سرور متصل و آدرس IP معادل دامین موردنظر را درخواست می کند. TLD Server آدرس IP معتبر مربوط به دامنه را در قالب پاسخ به DNS reslver برمی گرداند. در این زمان DNS resolver این آدرس IP را که آدرس وب سروری است که میزبان فایل ها و محتویات سایت جستجو شده است را به Client برمی گرداند. اکنون Client با داشتن این آدرس IP می تواند مستقیما درخواست خود را به وب سرور ارسال کند و وب سرور نیز در پاسخ، اطلاعات وب سایت درخواستی را که توسط مرورگر وب قابل تفسیر و نمایش است را به مرورگر برمی گرداند. مرورگر اطلاعات دریافتی را تفسیر و به شکل صحیح به کاربر نشان می دهد.
DNS Caching
علاوه بر فرآیند بالا، DNS resolver ها می توانند درخواست های DNS را با استفاده از داده های ذخیره شده در Cache حل کنند. پس از بازیابی آدرس IP وب سایت دریافتی برای اولین بار، DNS resolver این اطلاعات را برای مدت زمان مشخصی در حافظه Cache ذخیره کند. در این بازه زمانی اگر مشتری دیگری درخواستی برای همان دامنه ارسال کند، DNS resolver می تواند از فرآیند جستجوی معمولی DNS صرف نظر کرده و به سادگی با استفاده از آدرس IP ذخیره شده در Cache به مشتری پاسخ دهد.
پس از اتمام مدت زمان انقضای اطلاعات موجود در Cache، DNS resolver مجددا باید آدرس IP را بازیابی و یک ورودی جدید در حافظه Cache ایجاد کند. این زمان محدود که به صراحت در رکوردهای DNS برای هر سایت تنظیم شده است TTL (Time To Live) نامیده می شود. معمولا TTL در محدوده زمانی 24 تا 48 ساعت است. TTL ضروری است زیرا وب سرورها گهگاهی آدرس های IP خود را تغییر می دهند و بنابراین DNS resolver ها نمی توانند همان آدرس های IP را برای همیشه سرویس دهی کنند.
زمانی که سرورهای DNS دچار خرابی و مشکل می شوند چه اتفاقی می افتد؟
سرورهای DNS به دلایل مختلفی مانند قطع برق ، حمله سایبری و نقص سخت افزاری می توانند از کار بیفتند. در اوایل ایجاد اینترنت، قطع شدن سرور DNS می توانست تأثیر نسبتاً بزرگی داشته باشد. اما امروزه افزونگی زیادی در DNS Server ها وجود دارد. به عنوان مثال، تعداد زیادی از root dns server ها و سرورهای TLD وجود دارد که سرویس ارایه می دهند و در صورت خرابی یک سرور، سرورهای دیگر پاسخگوی درخواست ها هستند.