سرور DNS چیست؟ آشنایی با فرایند تحلیل نام دامنه و انواع DNS سرور
سامانه نام دامنه یا DNS یکی از بنیادیترین مفاهیم اینترنت است و میلیونها کاربر هر روز از این سامانه استفاده میکنند. طبق جدیدترین آمار در سال ۲۰۲۳ میلادی در هر ثانیه بهطور میانگین یک میلیون درخواست دی ان اس در اینترنت رد و بدل میشود اما اکثر آنها نمیدانند که DNS چیست و چطور کار میکند. اگر به فناوریهای بنیادی دنیای وب و اینترنت علاقه دارید این مطلب برای شما نوشته شده است.
سرور DNS چیست؟
سامانه نام دامنه (DNS یا Domain Name System) یکی از سامانههای زیرساختی اینترنت است که نام دامنه وبسایتها را به آدرس IP آنها تبدیل میکند. نام دامنه، عبارتی است که کاربران برای دسترسی به یک وبسایت در نوار آدرس مرورگر خود وارد میکنند. بهعنوان مثال www.xaas.ir نام دامنه ابر زس است. سامانه نام دامنه یا دی ان اس این نام را به آدرس IP متناظر با آن ترجمه میکند تا تجهیزات شبکه بتوانند با کمک آدرس آیپی، اطلاعات را بهدرستی بین مبدأ و مقصد جابجا کنند. تا اینجا از دو مفهوم بنیادی دیگر یعنی نام دامنه و آدرس IP صحبت کردهایم. اگر با این دو مفهوم آشنایی ندارید پیشنهاد میکنیم مطالب «نام دامنه چیست» و «آدرس IP چیست» را در بلاگ ابر زس مطالعه کنید.
بخش قابل توجهی از کاربران اینترنت از نام دامنه وبسایتها برای دسترسی به آنها استفاده میکنند اما امکان دسترسی از طریق آدرس IP همچنان برای بسیاری از سایتها ممکن است. با این حال نمیتوان آدرس IP تمام سایتها را به خاطر سپرد. برای مقایسه، همه ما شماره تلفن افراد را با نام آنها در لیست مخاطبین خود ذخیره میکنیم، چون حفظ کردن دهها و صدها شماره تلفن کار سختی است. با انتخاب یکی از مخاطبین و برقراری تماس، نام آنها به شماره تلفن تبدیل شده و گوشی موبایل با شماره ذخیره شده تحت این نام تماس میگیرد. سرور دی ان اس نیز در سادهترین شکل، همین فرایند را برای وبسایتها انجام میدهد؛ یعنی نام دامنهای که به خاطر سپردهاید را به آدرس آیپی مرتبط با آن تبدیل میکند تا از طریق آدرس آیپی امکان دسترسی به وبسایت مورد نظرتان فراهم شود.
ساختار دی ان اس بهشکل سلسلهمراتبی و غیرمتمرکز است، یعنی از لایههای مختلفی تشکیل شده و توسط چند نهاد مختلف مدیریت میشود. با این حال در روزهای نخست اینترنت، اوضاع به این پیچیدگی نبوده است. بنابراین بهتر است مرور کوتاهی بر تاریخچه سامانه نام دامنه داشته باشیم.
تاریخچه DNS
تاریخچه سامانه نام دامنه را باید در سال ۱۹۶۶ میلادی جستجو کرد، زمانی که «باب تیلور» دانشمند آمریکایی و از پیشگامان حوزه اینترنت، شبکه سازمان پروژههای تحقیقاتی پیشرفته یا همان آرپانت (ARPANET) را راهاندازی کرد. آرپانت را میتوان اولین سنگبنای اینترنت امروزی در نظر گرفت. سه سال بعد یعنی در سال ۱۹۶۹ میلادی، اولین کامپیوترها در این شبکه آنلاین شدند و نرمافزاری بهنام «برنامه کنترل شبکه» (NCP یا Network Control Program) توسعه یافت تا پروتکلی به همین نام را روی کامپیوترهای متصل به این شبکه اجرا کند.
آرپانت در آغاز، نام سایتها و آدرس عددی متناظر آنها را به سادهترین شکل ممکن یعنی یک جدول به نام HOSTS و فرمت متنی TXT ذخیره میکرد. این راهکار توسط «الیزابت فینلر» دانشمند آمریکایی ارائه شده بود و در آن زمان بهخوبی کار میکرد اما با رشد فزاینده دنیای آنلاین، همه متوجه شدند که یک جدول ساده جوابگوی نیاز اینترنت نخواهد بود.
با افزایش کامپیوترهای متصل به اینترنت در دهه ۱۹۸۰ میلادی، افراد مسئول مستندسازی نامها و آدرسهای آیپی با دانشمندی بهنام «پاول موکاپتریس» تماس گرفتند تا راهکار جدیدی پیدا کنند. در نهایت موکاپتریس پایگاه دادهای توزیع شده و پویا را برای رفع این مشکل پیشنهاد کرد؛ یعنی همان چیزی که ما امروز به نام دی ان اس میشناسیم. بدین ترتیب سامانه نام دامنه در سال ۱۹۸۳ و به همت موکاپتریس متولد شد.
دی ان اس چطور کار میکند؟
همانطور که تا اینجای مطلب «سرور DNS چیست» گفتیم، کارکرد اصلی سامانه نام دامنه، تبدیل نام دامنه به آدرس IP است و برای این کار از فرایندی بهنام «تحلیل نام» (Name Resolution) استفاده میشود. در این فرایند، چند نوع سرور دخیل هستند که فهرست آنها را در ادامه میبینید:
- سرور DNS بازگشتی (Recursive DNS Server)
- سرور DNS ریشه (Root DNS Server)
- سرور DNS دامنه سطح بالا (TLD DNS Server)
- سرور DNS معتبر (Authoritative DNS Server)
تمام این چهار مورد دست به دست هم میدهند تا به یک نتیجه مشخص برسند و این نتیجه، هدایت کاربر به وبسایت موردنظر است. اگر میخواهید در مورد «سرور» بیشتر بدانید، پیشنهاد میکنیم مقاله «سرور چیست؟» را مطالعه نمایید.
انواع سرور DNS چیست؟
در ادامه مطلب «سرور دی ان اس چیست؟» کارکرد چهار موردی که در بالا اشاره کردیم را مرور میکنیم.
۱. سرور DNS بازگشتی
سرور دی ان اس بازگشتی یا ریکرسر (DNS Recursor) اولین سروری است که در فرایند جستجو فعال میشود، یعنی درست همان زمانی که شما آدرس وبسایت موردنظر را در نوار آدرس مرورگر خود وارد میکنید. هدف DNS سرور بازگشتی، دریافت کوئری (درخواست) از کلاینت و متصل کردن آن به رکورد دی ان اس مربوط به آن کوئری است. سرور DNS بازگشتی را میتوان بهمنزله یک کتابدار در اینترنت در نظر گرفت که طبق درخواست شما، یک کتاب را در کتابخانه جستجو میکند.
این سرور معمولا چندین درخواست را در لحظه به چند سرور مختلف ارسال میکند. این فرایند با سرعت بالا و در زمان بسیار کوتاه در پسزمینه انجام میشود و کاربر نهایی چیز زیادی از آن متوجه نمیشود. یکی از دلایل سرعت بالای فرایند جستجوی رکورد، ذخیره موقت اطلاعات مرتبط با رکوردهای دی ان اس یا کش کردن (caching) است. این ویژگی به سرور DNS بازگشتی کمک میکند تا با سرعت بالا به کوئریهای کاربران پاسخ دهد.
۲. سرور DNS ریشه
فرایند جستجوی دی ان اس در سرور نام ریشه (Root Nameserver) ادامه مییابد. این سرور اولین ابزاری است که نام دامنه عادی را به آدرس IP عددی تبدیل میکند تا برای تجهیزات شبکه قابل درک باشند. البته سرور ریشه، آدرس دقیقی را مشخص نمیکند و تنها مجموعهای از آدرسهای IP را نشان میدهد که مقصد مورد نظر را میتوان در آنجا پیدا کرد.
سرور دی ان اس ریشه را میتوان به بخشی از کتابخانه تشبیه کرد که مجموعه کتابهای خاصی از یک دسته را در خود جای دادهاند. شما میدانید که کتاب مورد نظر در این مجموعه قفسهها قرار دارد اما موقعیت دقیق کتاب را نمیدانید. با این حال بخش زیادی از فرایند جستجوی کتاب را طی کردهاید.
۳. سرور DNS دامنه سطح بالا
قدم بعدی در شناسایی آدرس IP وبسایت مقصد، در سرور DNS دامنه سطح بالا (TLD Nameserver) رخ میدهد. دامنه سطح بالا (TLD یا Top-Level Domain) به پسوند نام دامنه گفته میشود که انواع مختلفی دارد اما از معروفترین و پرکاربردترین نمونهها میتوان به com یا org یا net اشاره کرد. در ادامه مثال کتابخانه، دامنه سطح بالا را میتوان یک قفسه کتاب در نظر گرفت که کتاب مورد نظر شما در آن قفسه جای گرفته است.
۴. سرور DNS معتبر
در نهایت، سرور نام دامنه معتبر (Authoritative Nameserver) فرایند جستجوی نام دامنه را تکمیل میکند. این سرور، رکوردهای دی ان اس را ذخیره میکند و تبدیل نام دامنه به آدرس IP دقیقا همینجا صورت میگیرد. سرور دی ان اس معتبر را میتوان فرهنگ لغت دنیای اینترنت در نظر گرفت که نام دامنه را دریافت کرده و آدرس IP را دریافت میکند. خروجی این سرور مستقیما به سرور DNS بازگشتی یا ریکرسر برمیگردد که کوئری اولیه را از کاربر یا کلاینت دریافت کرده بود.
خلاصه فرایند تحلیل نام دامنه در ۱۰ گام
حال که دریافتیم سرور DNS چیست و چگونه عمل میکند بیایید فرایند تحلیل نام دامنه را مرور کنیم. در واقع هر زمان که شما آدرس یک وبسایت را در نوار آدرس مرورگر خود وارد میکنید این گامها به ترتیب اجرا خواهند شد تا نتیجه نهایی یعنی باز شدن آن سایت در مرورگر اتفاق بیفند.
۱. کاربر نام دامنه xaas.ir را در نوار آدرس مرورگر خود وارد میکند.
۲. کوئری یا درخواست کاربر توسط سرور DNS بازگشتی دریافت میشود.
۳. سرور DNS بازگشتی، کوئری را به سرور DNS ریشه میفرستد.
۴. سرور ریشه، آدرس یک دامنه سطح بالا (در این مثال، ir) را به سرور بازگشتی برمیگرداند.
۵. سرور بازگشتی، نام دامنه سطح بالا (xaas.ir) را از سرور DNS دامنه سطح بالا پرسوجو میکند.
۶. سرور نام دامنه سطح بالا، آدرس IP سرور دی ان اس معتبر را به سرور بازگشتی برمیگرداند.
۷. سرور بازگشتی، کوئری را به سرور نام دامنه معتبر ارسال میکند.
۸. سرور نام دامنه معتبر، آدرس IP دامنه مورد نظر را به سرور بازگشتی برمیگرداند.
۹. سرور بازگشتی، آدرس IP وبسایت مورد نظر را به مرورگر یا کلاینت میدهد.
۱۰. کاربر، اطلاعات وبسایت درخواستی خود را با کمک آدرس آیپی دریافت میکند و در نهایت این اطلاعات در مرورگر کاربر نمایش داده میشوند.
میبینید که با وارد کردن نام دامنه یک وبسایت در مرورگر، اتفاقات زیادی میافتد و سرورهای زیادی در این فرایند دخیل هستند، اما از نگاه کاربر تمام این مراحل در لحظه و بهشکل آنی اتفاق میافتند. بهخاطر ساختار سلسله مراتبی و غیر متمرکز DNS و قابلیت مهمی بهنام ذخیرهسازی موقت (Caching)، جستجوی نام دامنه در شرایط عادی حتی یک ثانیه هم طول نمیکشد.
قابلیت کش سرور DNS چیست؟
همانطور که در بخش قبلی مقاله «سرور DNS چیست» گفتیم، یکی از راهکارهای مهم برای سرعت بخشیدن به فرایند جستجوی نام دامنه، ذخیرهسازی موقت دی ان اس یا کش دی ان اس است. در این فرایند، کلاینتها تعدادی از رکوردهای DNS را بهطور موقت و روی حافظهای که در اختیارشان قرار دارد ذخیره میکنند. این کلاینت معمولا سیستمعامل یا نرمافزار مرورگر است. اگر اطلاعات دی ان اس بهصورت موقت ذخیره شده باشد، عملیات تبدیل نام دامنه به آدرس IP بدون نیاز به ارسال کوئری صورت میگیرد. به عبارتی میتوان گفت در ۱۰ گامی که در بالا اشاره کردیم، تنها گام اول طی میشود و پاسخ کوئری از سمت حافظه موقت داده میشود.
از آنجا که ممکن است اطلاعات سامانه نام دامنه بهمرور تغییر کند، تمامی رکوردهای DNS بخشی به نام «زمان اعتبار» (TTL یا Time-To-Live) دارند. این بخش مشخص میکند که هر رکورد دی ان اس تا چه مدت زمانی اعتبار دارد. هرگاه زمان اعتبار یک رکورد دی ان اس به پایان برسد، به طور خودکار از کش دی ان اس حذف خواهد شد. در این صورت، اگر کاربر در نوار آدرس مرورگر، همان نام دامنه را وارد نماید، مجددا باید فرایند تحلیل نام دامنه طی شود، تا آدرس آیپی متناظر با آن دریافت شده و به سیستم کاربر تحویل داده شود.
آیا DNS امن است؟
تبهکاران سایبری در تمام سیستمهای دنیای کامپیوتر و اینترنت به دنبال آسیبپذیری میگردند و سامانه نام دامنه یا دی ان اس نیز یکی از اهداف اصلی آنها محسوب میشود. گزارش IDC نشان میدهد در سال ۲۰۲۱ میلادی بیش از ۸۷ درصد شرکتها در تمام مناطق جهان، حمله به سامانه دی ان اس را تجربه کردهاند. هر حمله به سامانه دی ان اس بهطور میانگین ۱ میلیون دلار هزینه در پی خواهد داشت. روشهای مختلفی برای حمله به سامانه دی ان اس وجود دارد که بین آنها میتوان به DNS amplification و DNS spoofing و DNS hijacking اشاره کرد. برای مقابله با این حملات، پروتکلی بهنام DNS امن یا DNSSec راهاندازی شده است.
ارتباط امن DNS چیست؟
پروتکل امنیتی DNS یا DNSSec یکی از راهکارهای آیکان (ICANN) برای برقراری ارتباط امن بین سرورهای دخیل در فرایند جستجوی نام دامنه است. این پروتکل ضعفهای موجود در ارتباط بین سرورهای سطح بالا، سطح دوم و سطح سوم در فرایند جستجوی دامنه را تقویت میکند تا مهاجمین نتوانند در آن مداخله کنند. هکرها با استفاده از روش DNS Hijacking میتوانند درخواستهای جستجوی نام دامنه را تغییر داده و بهجای سایت اصلی، شما را به سایتهای حاوی بدافزار هدایت کنند.
امنیت فرایند دی ان اس با امضای دیجیتال هر سرور دی ان اس صورت میگیرد. هر سرور، درخواست خود را از سرور بعدی با امضای دیجیتال همراه میکند تا سرور بعدی بتواند اعتبار آن را تشخیص دهد. این زنجیره اعتماد در تمامی سطوح ادامه پیدا میکند و در نهایت کاربر به درستی به وبسایت مورد نظر خود هدایت میشود.
پروتکل DNS روی HTTPS چیست؟
اگرچه پروتکل DNSSec امنیت انتقال اطلاعات بین سرورهای توزیع شده DNS را تضمین میکند اما مهاجمین سایبری همچنان میتوانند کدهای مخرب خود را به بستههای کوئری DNS اضافه کنند. به همین خاطر در یکی از مهمترین تغییرات تاریخ DNS، شرکتهای بزرگ این حوزه از جمله گوگل و موزیلا تصمیم به استفاده از پروتکل DNS روی HTTPS گرفتند که به اختصار DoH گفته میشود. در این پروتکل، تمام درخواستها یا کوئریهای DNS نیز طبق پروتکل HTTPS رمزنگاری میشوند تا کسی نتواند محتوای آنها را تشخیص دهد.
البته استفاده از پروتکل DNS روی HTTPS با مشکلاتی نیز همراه است. به عنوان مثال مدیران بخش IT سازمانها نمیتوانند فعالیت کارمندان در اینترنت را ردیابی کنند، یا والدین نمیتوانند روی فعالیتهای اینترنتی کودکان خود نظارت داشته باشند. به خاطر همین مشکلات، استفاده از DoH هنوز چندان فراگیر نشده است.
چگونه سرور DNS خود را پیدا کنیم؟
در حالت کلی، سرور دی ان اس بهطور خودکار از سوی شرکت ارائه دهنده خدمات اینترنتی یا ISP تنظیم میشود و کاربران معمولا نقشی در این فرایند ندارند. اگر میخواهید بدانید کامپیوتر شما از کدام سرور دی ان اس استفاده میکند، کافیست به ابزارهای ساده موجود در اینترنت یا بخش تنظیمات شبکه در منوی تنظیمات سیستمعامل سر بزنید.
البته استفاده از سرور دی ان اس تعیین شده توسط ISP ضروری نیست و کاربران به دلایل مختلف میتوانند سرور DNS خود را تغییر دهند. یکی از این دلایل میتواند سرعت پایین پاسخگویی، محدودیت روی برخی درخواستها یا حتی جایگزینی آدرسها با آدرس مرتبط با سایتهای تبلیغاتی باشد. در چنین شرایطی میتوانید از سرورهای DNS جایگزین و اکثرا رایگان مانند سرورهای گوگل استفاده کنید.
جمعبندی
مرور اینترنت بدون سامانه نام دامنه یا دی ان اس ممکن نیست. تمام کاربران دنیای وب و اینترنت بهطور روزانه از سرور دی ان اس استفاده میکنند، حتی اگر اطلاعی در مورد آن نداشته باشند. سیستم دی ان اس بهعنوان دفترچه تلفن دنیای اینترنت به ما اجازه میدهد تا با تایپ کردن یک عبارت معمولا معنادار به وبسایت موردنظر خود برسیم. ماهیت غیر متمرکز و سلسله مراتبی دی ان اس نیز امکان پردازش میلیاردها درخواست دی ان اس در هر روز را ممکن ساخته است.