برنامه نویسی

DNS چیست و نحوه کارش؟

DNS چیست و چگونه کار می‌کند؟

Domain Name System یا به اختصار DNS یکی از پایه‌های اینترنت است، با این وجود اکثر افراد که در شبکه تخصصی ندارند احتمالا نمی‌دانند که آن‌ها هر روز برای انجام کارهای خود، چک کردن ایمیل خود، یا وقت گذراندن در تلفن های هوشمندشان از آن استفاده می‌کنند.

در ابتدایی ترین حالت، DNS فهرستی از اسامی است که با اعداد مطابقت دارند. اعداد در این حالت، آدرس‌های IP هستند که کامپیوترها از آن‌ها برای برقراری ارتباط استفاده می‌کنند. در بیشتر توصیف‌های DNS از تشبیه دفترچه تلفن استفاده می شود، یا همانند لیست مخاطبان تلفن همراه خود، که نام افراد با شماره تلفن و آدرس ایمیل آن‌ها مطابقت دارد. سپس این لیست مخاطبان را در سایر افراد موجود در این سیاره ضرب کنید.

نحوه کار DNS servers

فهرست DNS که نام را با اعداد مطابقت می‌دهد، همه در یک مکان در گوشه تاریک اینترنت قرار ندارند. با وجود 332 میلیون نام دامنه در پایان سال 2017، این فهرست بسیار بزرگ خواهد بود. مانند خود اینترنت این فهرست در سراسر جهان توزیع شده و در سرورهای DNS ذخیره شده است که همگی به طور منظم با یکدیگر ارتباط برقرار می‌کنند تا آپدیت‌ها را ارائه دهند.

Authoritative DNS servers در مقایسه با Recursive DNS servers

وقتی کامپیوتر شما می خواهد آدرس IP مرتبط با نام دامنه را پیدا کند، ابتدا درخواست خود را به Recursive DNS servers می‌دهد، (همچنین به عنوان recursive resolver هم شناخته می‌شود). recursive resolver به سروری گفته می‌شود که معمولا توسط ISP یا یک provider دیگر کار می‌کند و می‌داند برای قرار دادن نام یک سایت با آدرس IP آن باید درخواست را از کدام DNS server های دیگر بخواهد. سرورهایی که در واقع اطلاعات لازم را دارند Authoritative DNS servers نامیده می‌‌شوند.

سرورهای DNS و آدرس های IP

هر دامنه می‌تواند با بیش از یک آدرس IP مطابقت داشته باشد. در واقع برخی از سایت‌ها صدها یا بیشتر آدرس IP دارند که با تنها یک نام دامنه مطابقت دارند. مثلا سروری که کامپیوتر شما برای www.google.com به آن دسترسی پیدا می‌کند کاملا متفاوت از سروری است که شخصی در کشور دیگر با تایپ کردن همان نام سایت در مرورگر خود به آن دسترسی دارد.

دلیل دیگر ماهیت توزیع شده این فهرست، مدت زمانی است که از شما گرفته می‌شود تا پاسخ را هنگام جستجوی یک سایت دریافت کنید، اگر فقط یک مکان برای این فهرست وجود داشته باشد، در میان میلیون‌ها، و حتی احتمالا میلیاردها نفر مشترک است، که همچنین به طور همزمان در حال جستجو هستند. که در این صورت، یک خط طولانی برای استفاده از دفترچه تلفن می‌شود.

DNS caching چیست؟

برای حل این مشکل، اطلاعات DNS در میان سرورهای بسیاری به اشتراک گذاشته شده است. اما اطلاعات سایت‌هایی که اخیرا بازدید شده اند نیز به صورت لوکال در کامپیوترهای کلاینت ذخیره می‌شوند. این احتمال وجود دارد که شما در روز چندین بار از گوگل استفاده کنید. به جای اینکه کامپیوتر شما هر بار به سرور نام DNS کوئری بزند تا آدرس IP گوگل را به دست آورد، این اطلاعات را در کامپیوتر شما ذخیره می‌کند، بنابراین برای تبدیل نام به آدرس IP لازم نیست به DNS server دسترسی داشته باشد. علاوه بر این، کش شدن می‌تواند در روترهای مورد استفاده برای اتصال کلاینت‌ها به اینترنت، و همچنین در سرورهای ارائه دهنده خدمات اینترنت (ISP) رخ دهد. با انجام کشینگ های زیاد، تعداد کوئری‌هایی که برای DNS name servers ساخته می‌شوند بسیار کمتر از آن است که به نظر می‌رسد.

چطور DNS server خود را پیدا کنیم؟

به طور کلی،‌ وقتی شما به اینترنت متصل می‌شوید، DNS server ای که استفاده می‌کنید توسط ارائه دهنده شبکه (network provider) به طور خودکار ایجاد می‌شود. اگر می‌خواهید ببینید کدام سرورها nameserver  های اصلی شما هستند (به طور کلی recursive resolver، همانطور که در بالا توضیح دادیم) کاربردهای وبی وجود دارند که می‌توانند هاستی از اطلاعات مربوط به کانکشن شبکه فعلی شما را ارائه دهند. Browserleaks.com یک مورد خوب است، و اطلاعات زیادی از جمله DNS server های فعلی شما را ارائه می‌دهد.

چگونه DNS باعث افزایش کارایی می‌شود

DNS در سلسله مراتبی سازماندهی شده است که به اجرای سریع و هموار کمک می‌کند. برای نشان دادن این موضوع، بیاید فرض کنیم که می‌خواهیم از toplearn.com دیدن کنیم.

همانطور که در بالا گفتیم، درخواست اولیه برای آدرس IP برای recursive resolver ساخته می‌شود، recursive resolver می‌داند برای تعیین نام سایت با آدرس IP آن باید به کدام DNS server دیگری درخواست دهد. این جستجو به سرور روت هدایت می‌شود که تمام اطلاعات مربوط به دامنه های سطح بالا، مانند com.، net.، org. و تمام دامنه های کشورهایی مانند cn. (China) و uk. (United Kingdom) را می‌داند. سرورهای روت در سراسر جهان واقع شده‌اند، بنابراین سیستم معمولا شما را از نظر جغرافیایی به نزدیک‌ترین مورد هدایت می‌کند.

هنگامی که درخواست به سرور روت صحیح رسید، به یک name server دامنه با سطح بالا (TLD) می‌رود، که اطلاعات مربوط به دامنه سطح دوم را ذخیره می‌کند، کلمات مورد استفاده قبل از اینکه به com.، org.، net. برسید (مثلا اطلاعات برای toplearn.com می‌شود “toplearn”). سپس این درخواست به Domain Name Server می‌رود، که اطلاعات مربوط به سایت و آدرس IP آن را نگه دارد. بعد از به دست آوردن آدرس IP، به کلاینت برمی‌گردد، که اکنون می‌تواند از آن برای بازدید از وب‌سایت استفاده کند. همه این کارها فقط در چند میلی ثانیه انجام می‌شود.

جمع بندی

برای هر کسی که با کامپیوتر سر و کار دارد خوب است که بداند در دنیای شگفت انگیز شبکه جهانی اینترنت چه می‌گذرد. یکی از پایه های اصلی اینترنت DNS است. در اینجا سعی کردیم تا مفاهیم اصلی DNS را بیان کرده و شما را با نحوه کار آن آشنا کنیم. امیدواریم که این مقاله برای شما مفید بوده باشد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نوشته های مشابه

دکمه بازگشت به بالا