دی ان اس چیست؟ DNS چکار میکند؟
دی ان اس چیست؟ DNS چکار میکند؟
آیا تا به حال فکر کردهاید که وقتی در مرورگر خود آدرس سایتی مانند «google.com» را تایپ میکنید، چگونه کامپیوتر شما میداند که دقیقا باید به کدام سرور در کجای جهان وصل شود؟ اینترنت شبکهای از میلیاردها دستگاه است که هر کدام یک شماره شناسایی منحصر به فرد (آدرس IP) دارند. تصور کنید که برای تماس با یک دوست، به جای اینکه نام او را در گوشی ذخیره کنید، مجبور بودید همیشه شماره تلفن طولانی و پیچیدهی او را حفظ باشید. این دقیقاً کاری است که بدون «دی ان اس» (DNS) باید در اینترنت انجام میدادیم. در این مقاله قصد داریم به زبانی ساده و در عین حال فنی، پاسخ سوال «دی ان اس چیست» را بررسی کنیم و با مفاهیم مهمی مانند سرور دی ان اس، نامگذاری (Name Resolution) و حافظه پنهان (DNS Cache) آشنا شویم.
دی ان اس چیست؟ (DNS چیست؟)
مخفف عبارت **Domain Name System** است که در فارسی به آن «سیستم نام دامنه» میگویند. اما برای درک بهتر، بیایید از یک مثال ساده استفاده کنیم. اینترنت مانند یک دفترچه تلفن عظیم جهانی است. در این دفترچه، نام وبسایتها (دامنهها) در کنار شماره تلفنهای واقعی آنها (آدرسهای IP) قرار دارند.
انسانها برای حفظ کردن کلمات و نامها (مثل example.com) بسیار بهتر از اعداد هستند. اما کامپیوترها و سرورها زبان اعداد را میفهمند. آدرس IP (مانند ۱۹۲.۱۶۸.۱.۱) هویت واقعی یک سایت در اینترنت است. نقش دی ان اس این است که به عنوان یک مترجم عمل کند: نامی که شما تایپ میکنید را میگیرد و آن را به آدرس IP که کامپیوتر درک میکند، ترجمه میکند. بدون این سیستم، استفاده از اینترنت بسیار دشوار میشد زیرا ما مجبور بودیم به جای نام سایتها، رشتههای طولانی از اعداد را به خاطر بسپاریم.
فرآیند Name Resolution (ترجمه نام) چگونه کار میکند؟
حالا که فهمیدیم دی ان اس چیست، بیایید ببینیم این فرآیند چگونه اتفاق میافتد. به این پروسه «Name Resolution» یا «حل نام» میگویند. وقتی شما در مرورگر خود آدرس یک سایت را وارد میکنید و دکمه Enter را میزنید، یک سری مکالمه پنهان بین کامپیوتر شما و سرورهای اینترنت رخ میدهد. این مراحل به صورت زیر است:
۱. **درخواست شما:** شما آدرس `shabof.ir` را وارد میکنید. کامپیوتر شما ابتدا چک میکند که آیا قبلاً این آدرس را دیده است یا خیر (که در بخش Cache توضیح خواهیم داد).
۲. **پرسش از Resolver (حلکننده):** اگر اطلاعات در دسترس نباشد، درخواست شما به سروری به نام DNS Resolver (که معمولاً توسط شرکت ارائهدهنده اینترنت شما یا سرویسهایی مثل گوگل ارائه میشود) ارسال میشود.
۳. **جستجو در ریشهها:** Resolver خودش هم پاسخ را ندارد، بنابراین از سرورهای «Root» (ریشه) میپرسد. سرورهای ریشه مثل یک کتابخانه بزرگ هستند که نمیدانند آدرس دقیق چیست، اما میدانند باید شما را به کدام بخش کتابخانه (مثل بخش .com یا .ir) راهنمایی کنند.
۴. **جستجو در TLD:** سپس Resolver به سرورهای TLD (Top-Level Domain) مراجعه میکند. این سرورها مسئول دامنههای پسوند (مثل ir. یا com.) هستند. آنها میگویند: «اطلاعات مربوط به shabof در دستان سرور X است».
۵. **پاسخ نهایی:** در نهایت Resolver به سرورهای نیمه (Authoritative Nameserver) که صاحب اصلی اطلاعات آن دامنه هستند، وصل میشود و آدرس IP دقیق را دریافت میکند.
۶. **اتصال:** Resolver آدرس IP را به کامپیوتر شما میدهد و مرورگر شما به سرور سایت وصل میشود. تمام این مراحل در کسری از ثانیه اتفاق میافتد.
سرور دی ان اس (DNS Server) چیست؟
در مراحل بالا، بارها کلمه «سرور» به کار رفت. اما سرور دی ان اس دقیقاً چیست؟ سرور دی ان اس کامپیوتری قدرتمند است که ۲۴ ساعته در اینترنت متصل است و وظیفه خاصی دارد: پاسخگویی به سوالات مربوط به دامنهها.
انواع مختلفی از سرورهای دی ان اس وجود دارند که هر کدام نقشی در این زنجیره دارند:
* **Recursive Resolvers:** اینها واسط بین کاربر و اینترنت هستند. وقتی شما درخواستی میدهید، این سرور تمام دوندگی و جستجو در سرورهای دیگر را انجام میدهد تا پاسخ نهایی را برای شما بیاورد. معمولاً مودمهای خانگی یا شرکتهای اینترنت، این سرورها را در اختیار شما میگذارند.
* **Root Nameservers:** اینها در بالاترین سطح سلسله مراتب قرار دارند. در دنیا فقط ۱۳ خوشه از این سرورها وجود دارد که ستون فقرات سیستم دی ان اس هستند.
* **TLD Nameservers:** این سرورها مدیریت پسوندها (مثل .com، .net، .ir) را بر عهده دارند.
* **Authoritative Nameservers:** این سرورها منبع نهایی اطلاعات هستند. وقتی صاحب یک سایت دامنه خود را خریداری میکند، اطلاعات DNS سایت خود را روی این سرورها تنظیم میکند.
مفهوم DNS Cache (حافظه پنهان) و اهمیت آن
اگر هر بار که بخواهیم وارد گوگل شویم، تمام مراحل بالا (از ریشه تا سرور نهایی) طی شود، سرعت اینترنت به شدت کاهش مییابد. اینجاست که مفهوم **DNS Cache** یا «حافظه پنهان دی ان اس» وارد میشود.
کش کردن (Caching) روشی برای ذخیره اطلاعات موقت است تا دسترسی به آنها در آینده سریعتر باشد. در سیستم دی ان اس، این فرآیند در چند سطح اتفاق میافتد:
۱. **کش در مرورگر:** مرورگر شما (کروم، فایرفاکس و…) برای مدت مشخصی آدرس IP سایتهایی که اخیراً بازدید کردهاید را به خاطر میسپارد.
۲. **کش در سیستم عامل:** ویندوز، مک یا لینوکس شما نیز یک حافظه پنهان محلی دارند. اگر مرورگر پاسخ را نداشت، سیستم عامل چک میکند که آیا خودش این آدرس را قبلاً پیدا کرده است یا خیر.
۳. **کش در ISP:** شرکت ارائهدهنده اینترنت شما نیز پاسخهای پرتکرار را در سرورهای خود ذخیره میکند تا کاربران دیگر هم سریعتر به نتیجه برسند.
وجود DNS Cache باعث میشود که بار ترافیکی روی سرورهای اصلی کاهش یابد و سرعت وبگردی شما به شدت بالا برود. گاهی اوقات ممکن است اطلاعات کش قدیمی شوند و شما نتوانید وارد سایتی شوید؛ در این صورت معمولاً با پاک کردن کش (Flush DNS) مشکل حل میشود.
چرا درک دی ان اس برای ما مهم است؟
دانستن اینکه «دی ان اس چیست» و «چگونه کار میکند» فقط برای برنامهنویسان یا مدیران شبکه مفید نیست. گاهی اوقات در استفاده از اینترنت با مشکلاتی روبرو میشویم که ریشه در DNS دارند. برای مثال، اگر اینترنت شما وصل است اما هیچ سایتی باز نمیشود، احتمالا مشکل از تنظیمات DNS است. همچنین با تغییر DNS سرورها (مثلا استفاده از DNS های امن و سریع)، میتوانیم سرعت گشت و گذار و امنیت خود را در برابر حملات فیشینگ افزایش دهیم.
در نهایت، دی ان اس یکی از مهمترین اجزای اینترنت مدرن است که بدون آن، دنیای دیجیتال ما به مجموعهای از اعداد غیرقابل فهم تبدیل میشد. این سیستم به عنوان کتابخانه راهنمای اینترنت، همواره در حال کار است تا با ترجمه نامهای قابل فهم انسان به زبان ماشین، ارتباطات جهانی را برقرار کند.