کامپیوترها از طریق آدرس IP با همدیگر ارتباط برقرار میکنند. هر کامپیوتری که در یک شبکه (مانند اینترنت) قرار گرفته یک آدرس آیپی منحصربهفرد دارد. اما ما برای ارتباط برقرار کردن با کامپیوترها و سرورهای مختلف در اینترنت نمیتوانیم تمام آیپی آدرسها را به خاطر بسپریم. به همین دلیل بود که DNS خلق شد.
DNS یا Domain Name System ابزاری است که با استفاده از آن میتوان یک نام دامنه را به آدرس آیپی مربوط به آن متصل کرد. برای مثال اگر بدون کمک DNS وارد وبسایت گوگل شویم، نیاز است که آیپی (64.233.165.113
) را وارد کنیم. اما به لطف DNS ما میتوانیم تنها با نام دامنه Google.com وارد وبسایت گوگل شویم و دیگر نیازی به حفظ کردن آدرس آیپی آن نداشته باشیم.
در این مطلب از وبلاگ همروش قصد داریم با چیستی DNS، چگونگی کارکرد آن، انواع و… آشنا شویم.
DNS چیست؟
DNS یا Domain Name System دفترچه تلفن (دیتابیس) دنیای اینترنت به حساب میآید. این دفترچه حاویِ اسامی وبسایتها و IP Address مربوط به آنهاست. زمانی که کاربران قصد ورود به یک وبسایت را دارند اسم آن را وارد کرده و DNS آن را به یک آدرس آیپی تبدیل میکند. در واقع مرورگرهای ما از طریق همین آدرس آیپی به سرور اصلی دسترسی پیدا میکنند.
به همین دلیل DNS ما را از به خاطر سپردن تمام آدرس آیپیها نجات داده و نیازی نیست که ما برای مثال 192.168.1.1
(در IPv4) و یا حتی نمونههای پیچیدهتری مانند 2400:cb00:2048:1::c629:d7a2
(در IPv6) را جفظ کنیم.
DNS چگونه کار میکند؟
پروسه کاری DNS به این صورت است که یک Hostname (مانند www.example.com
) را دریافت کرده و آن را به آدرس آیپی (مانند 192.168.1.1
) تبدیل میکند. تنها بدین صورت است که کامپیوتر از منظور شما یعنی آدرس example.com متوجه میشود.
آیپی آدرس مانند آدرس یک خانه است، که در نهایت شما را به یافتن آن کمک میکند. در نتیجه زمانی که شما قصد دسترسی به یکسری منابع در اینترنت را داشته باشید نیاز است که به آدرس آن مراجعه کنید.فرایند تبدیل «چیزی که کاربر میخواهد» به «چیزی که کامپیوتر متوجه میشود» باید کاملا دقیقا و بدون اشتباه صورت بگیرد. در غیر اینصورت دسترسی به وبسایت مربوطه غیرممکن خواهد بود.
برای اینکار DNS درخواست کاربر را از چهار مرحله عبور میدهد. هر کدام از این مراحل با همدیگر همکاری داشته و در نهایت IP Address مربوطه را پیدا میکنند. در ادامه با این چهار مرحله آشنا خواهید شد.
1.DNS recursor: این تکنولوژی که بهعنوان DNS Resolver نیز شناخته میشود در اولین قدم، کوئری یا آدرس مورد نیاز کاربر را از DNS Client دریافت میکند. در مرحله بعدی، کوئری مربوطه را با DNS سرورهای مختلفی به اشتراک میگذارد تا آیپی آدرس مربوطه پیدا شود. بعد از انجام این کار، خود DNS recursor به یک DNS Client تبدیل میشود که یک درخواست را ارائه کرده است. دیاناس سرورهایی که در این فرایند مشارکت خواهند داشت عبارت از این موارد هستند: Root Nameserver ،TLD و Authoritative Nameserver.
2. Root Nameserver: نیمسرور روت وظیفه دارد تا به درخواستهایی که برای وی ارسال میشود با استفاده از رکوردهای ذخیره شده در Root Zone پاسخ دهد. Root zone را مانند یک پایگاه داده سلسله مراتبی در نظر بگیرید که اطلاعات کامل Domainها را در خود ذخیره کرده است. همچنین این مرحله را میتوان به عنوان یک سیستم ایندکسگذاری برای یافتن سریعتر IP Addressها در نظر گرفت. در نهایت این سرور لیستی از نیمسرورهای محرزشده که به یک Domain معتبر مربوط میشود را برمیگرداند.
3. TLD Nameserver: سرور TLD اطلاعاتی که نامهای دامنه یک پسوند دارند را در خود ذخیره میکند. منظور از پسوند دامنه همان com ،net ،org و… است. هر کدام از این دامنهها نیز شامل دیتابیس منحصر به فردی بوده که اطلاعات تمام وبسایتهای مربوط به این دامنهها را در خود ذخیره میکند. برای مثال دامنه com دارای یک منبع اطلاعاتی گسترده است که آدرس تمام وبسایتها را در خود داشته و همچنین اطلاعات مربوط به IP Address آنها ذخیره شده است.
4. Authoritative Nameservers: نیمسرور معتبر در نهایت وظیفه ارائه پاسخ نهایی را برعهده دارد. خود این nameserver شامل دو سرور میشود: Master Server و Slave Server. سرور اصلی یا همان Master نسخههای اصلی از رکوردهای مربوط به DNS را نزد خود نگهداری میکند. سرور دوم یا Slave نیز چیزی نیست جز یک کپی کامل از اطلاعات داخل سرور اصلی. از این سرور برای به اشتراک گذاری اطلاعات بدست آمده استفاده میشود.
مزایا و معایب DNS چیست؟
هر سرویسی مطابق با کارکردی که دارد مزایا و معایبی داشته که در ادامه راجع به مزایا و معایب DNS صحبت خواهیم کرد.
مزایا
- امکان استفاده ساده از اینترنت و وبسایتهای مختلف بدون نیاز به حفظ کردن IP Addressهای مختلف
- بهبود وضعیت امنیت وبسایت و انتقال داده با ایجاد یک لایه امنیتی جدید
- سرعت بسیار بالا در پیدا کردن منابع مورد نیاز و بدون تاخیر
- پایدار بودن (در صورتی که آیپی آدرس مربوط به یک وبسایت تغییر کند، کاربران در دسترسی به وبسایت تغییری حس نمیکنند)
معایب
- مدیریت متمرکز توسط ICAN
- در کنار یکسری مزیت امنیتی، وجود DNS خود میتواند یک خطر امنیتی برای اینترنت باشد چرا که هکرها میتوانند با نفوذ به آن، آدرسها را تغییر دهند
- با ایجاد تغییر در Master Server اطلاعات Slave Master نیز تغییر کرده که در نهایت باعث میشود تا گرفتن فایل پشتیبانی سختتر شود
سیستم کش در DNS
کش کردن یا Caching به عملیاتی گفته میشود که در آن یکسری از دادهها به صورت موقت جهت دسترسی سریعتر ذخیره میشود. در سیستم DNS نیز عملیات کشینگ اتفاق میافتد. هدف از انجام چنین کاری کم کردن میزان زمان مورد نیاز برای پیدا کردن آیپی یک وبسایت است.
برای مثال اگر قبلا وارد وبسایت گوگل شدهاید، مرورگر، آدرس آیپی آن را برای خود کش کرده و در نتیجه اگر مجددا به گوگل مراجعه کنید، دیگر نیازی ندارد که تمام فرایندهای گفته شده در بالا را طی کند. بهجای آن به اطلاعات کش شده مراجعه کرده و از آنها استفاده میکند.
در پایان
DNS یکی از مهمترین تکنولوژیهایی است که استفاده سادهتر از اینترنت برای عموم کاربران را فراهم کرده است. تصور اینترنت بدون استفاده از DNS بسیار سخت است. هر کدام از ما باید لیست بزرگی از IP Addressهای مختلف را در ذهن داشته باشیم و یا آنها را یادداشت کنیم. مطمئنا در چنین شرایطی کاربری اینترنت بسیار چالشبرانگیز خواهد بود.
در این مطلب از وبلاگ همروش شما را با چیستی DNS آشنا کردیم. برای مطالعه بیشتر این موضوع میتوانید از مجموعه مقاله Cloudflare استفاده کنید.