DNS (دی ان اس) چیست؟
برای پاسخ به اینکه DNS چیست، ابتدا باید به معنای لغوی آن اشاره داشته باشیم. DNS مخفف عبارت Domain Name System است و به عنوان سیستمی شناخته میشود که نام دامنه سایتها را به یک آی پی قابل استفاده توسط مرورگرها تبدیل میکند. این آی پی توسط مرورگرها برای بارگذاری صفحات اینترنت استفاده میشود. هر وسیلهای که به اینترنت متصل میشود، یک آدرس آی پی مختص به خود دارد. از گوشیهای موبایل گرفته تا وبسایتهای بزرگ هرکدام این آیپی را دارند و برای ارتباط با یکدیگر از همین آدرس عددی استفاده میکنند.
در واقع هنگامی که شما مرورگر سیستم خود را باز کرده و قصد بازدید از یک وبسایت را دارید، باید همین آدرس آی پی را وارد کنید؛ اما کمتر کسی است که بتواند این همه اعداد را برای همه سایتها به خاطر بسپارد. به جای این کار شما معمولاً آدرس url سایت را به صورت example.com وارد کرده و با استفاده از آن وارد سایت میشوید. در این میان اما آدرس url به صورت خودکار به آدرس آی پی تبدیل شده است؛ DNS سیستمی است که این کار را برای شما انجام میدهد. یعنی آدرسهای قابل خواندن برای کاربران را به آدرس آی پی قابل استفاده برای کامپیوترها تبدیل میکند.
DNS Server چیست؟
DNS Server هم در واقع یک کامپیوتر است که پایگاه دادهای شامل کلیه آیپیهای مرتبط با هر آدرس وبسایت را دارد.DNSسرور را میتوانید به عنوان دفترچه تلفن اینترنت در نظر بگیرید، جایی که به ازای هر آدرس سایت یک آدرس آی پی وجود دارد. وقتی شما آدرس یک وب سایت مثلiedco.ir را در مرورگر سیستم خود وارد میکنید، DNS شروع به جستجو کرده و آدرس آی پی مختص آن را پیدا میکند. این آدرس همان جایی است که سیستم کاربر میتواند به اطلاعات سایت دسترسی داشته باشد. درواقع با پیدا کردن آدرس آی پی، ارتباط کاربر با وبسایت مربوطه برقرار میشود.
کاربرد و دلیل اهمیت DNS چیست؟
بسیاری از کاربران میپرسند اهمیت استفاده از سامانه نام دامنه یا همان DNS چیست؟ از آنجا که سیستمهای کامپیوتری برای پیدا کردن یکدیگر در فضای اینترنت نیاز به آدرس آی پی دارند، وجود سیستم DNS اهمیت زیادی برای برقراری اتصال به اینترنت دارد. تصور کنید برای ورود به هر سایت به جای آدرسیاURL آن باید یک عدد هشت یا نه رقمی را حفظ میکردید؛ اعدادی که خیلی هم شبیه به یکدیگر هستند و شاید هرکدام تنها در یک رقم با دیگری تفاوت داشته باشد. آیا در این وضعیت امکان وبگردی راحت برایتان فراهم میشد؟
DNS مثل یک دفترچه تلفن برای اینترنت است. اگر شما نام شخصی را میدانید و میخواهید شماره تلفن او را بیابید، کافی است که به دفترچه تلفن خود نگاهی بیاندازید.DNS همین خدمات را در اینترنت ارائه میدهد. استفاده از سیستم DNS باعث شده ارتباط انسان با دنیای سایتها بسیار ساده و سریع برقرار شود. علاوهبراین، هر سایت به جای آنکه آدرس خود را یک عدد قرار دهد، میتواند از نام برند خود برای سایت استفاده کرده و از مزایای بازاریابی و برندسازی آن بهرهمند شود.
مزایا و معایب DNS چیست؟
در بررسی مزایا و معایب DNS باید یک بار دیگر اشاره کنیم که DNS باعث شده سرعت مشاهده وبسایتها از آن چیزی که باید باشد، بیشتر شود. منظور از چیزی که باید باشد، حالتی است که باید آدرس آی پی عددی هر سایت را شخصاً پیدا کرده و در مرورگر سیستم وارد میکردید. DNSبسیاری از سختیهای این مسیر را از میان برداشته و همه چیز را به صورت خودکار بر اساس یک سیستم از پیش تعیین شده، انجام میدهد. همچنین در صورت تغییر هاست سایت، میتوانید بدون تغییر دامنه به فعالیت ادامه دهید، زیرا تنها آدرس آی پی متناظر دامنه و هاست تغییر خواهد کرد. در صورتی کهDNS آدرس وجود نداشت، باید برای تغییر هاست نام دامنه را هم تغییر میدادید.
البته با وجود مزیتی که DNS در سادگی و سرعت بخشیدن به فرایند باز کردن سایتها ایجاد کرده، اما میتواند مشکلات امنیتی هم در این مسیر ایجاد کند. مسیری که برای پیدا کردن آی پی یک سایت و مطابقت آن با آدرسسایت باید طی شود، فرصت خوبی برای هکرها فراهم میکند. هکرها میتوانند در این مسیر رخنه کرده و اطلاعاتی تقلبی در اختیار کاربر قرار داده و اطلاعات حساس او را بدست آورند.
DNS چگونه کار میکند؟
به طور معمول هنگامی که کاربر یک URL را در مرورگر خود وارد میکند، از چهار سرور باید عبور کند تا آی پی متناظر آن فراهم شود. این چهار سرور با یکدیگر کار میکنند تا آی پی موردنظر را پیدا کنند. در ادامه عملکرد این چهار سرور را بررسی میکنیم:
گام 1: درخواست اطلاعات
پردازش زمانی آغاز میشود که شما از کامپیوتر خود برای یافتن IP یک دامنه استفاده میکنید. مثلا هنگامی که شما به وب سایت iedco.irمراجعه میکنید، اولین جایی که کامپیوتر شما بدنبال آن میگردد DNS cache local است.Local DNS Cache در کامپیوتر شما آدرس وب سایتهایی که اخیرا وارد آنها شدهاید را برای شما نگهداری میکند. این آدرسها شامل IP آدرس این سایتها نیز است. اگر سرور سایتی قبل از اینکه شما این آدرسها را بروز کنید تغییر کند، شما دیگر قادر به دسترسی به سایت نیستید و باید اطلاعات ثبت شده در Local DNS Cache را توسط فرمان ipconfig/flushdns در نرم افزار Command Prompt پاک کنید.اگر کامپیوتر شما اطلاعات سایت را از قبل ذخیره نکرده باشد، کامپیوتر شما باید از DNS query برای یافتن IP سایت استفاده کند.
شکل 1. ساختار درخواست اطلاعات
گام 2: پرسش از recursive DNS servers
اگر اطلاعات سایت روی سیستم شما ذخیره نشده باشد. کامپیوتر با جستجو در ISP سیستم recursive DNS servers سعی در یافتنIP آدرس میکند. این کار از جمله عملیاتهایی است که به صورت اختصاصی برای یافتن DNS یک سایت انجام میپذیرد. Recursive serversها کش خاص خود را دارند، بنابراین جستجو معمولا همین جا ختم میشود و شما IP سایت را به دست خواهید آورد.
DNS recursor : این نوع سرور که به بازگشتکننده یا سرور حلکننده معروف است، درخواست کاربر را دریافت میکند، سپس با دیگر سرورها ارتباط برقرار میکند تا آی پی موردنظر را پیدا کند. در واقع پس از اینکه این سرور درخواست را از سوی کاربر دریافت کرد، درست مثل یک کاربر عمل میکند. یعنی شروع به ارسال درخواست برای دیگر سرورها میکند تا آی پی موردنظر را بدست آورد.
گام 3: پرسش از root nameservers
اگر سرورهای recursive servers آدرس DNS سایت شما را نداشتند، کامپیوتر شما از root nameservers برای یافتن IP آدرس سایت استفاده میکند.nameserver یک کامپیوتر است که به سؤالات پرسیده شده درباره نام دامنهها مانند IP addressها پاسخ میدهد. سیزده تا root nameservers مانند سیستم سویچنگ تلفن برای DNS عمل میکنند. آنها شاید ندانند که IP سایت مورد نظر شما چیست اما آنها میدانند که پاسخ این سؤال را از کجا بیابند.
Root nameservers: این سرور اساساً برای منطقه اصلی DNS در نظر گرفته شده است. وظیفه آن پاسخگویی به درخواستهایی است که به منطقه اصلی DNS ارسال میشود. این سرور برای پاسخ به درخواستها اقدام به ارسال لیستی از سرورها میکند که با TLD صحیحی مطابقت دارند.
گام 4: پرسش از TLD nameservers
root nameserversها ابتدا به اولین بخش از سؤال ما میپردازند. آنها آدرس سایت را از راست به چپ میخوانند. حالا آنها میتوانند پرسش شما را به Top-Level Domain (TLD) nameservers منتقل کنند. هر TLD مانندcom ،org و ir یک سری nameservers مخصوص به خود دارند. این nameserversها مانند منشی تلفنی TLD عمل میکنند. آنها اطلاعات مدنظر ما را ندارند ولی میتوانند ما را به سروری که این اطلاعات را دارد منتقل کنند.
TLD nameservers : این سرور، آدرسهای آیپی مربوط به مرحله دوم دامنه را که در TLD وجود داشته باشند، نگه میدارد. این سرور آدرس آیپی سایت را منتشر کرده و درخواستی به nameservers ارسال میکند.
گام 5: پرسش از authoritative DNS servers
TLD nameservers بخش دوم از درخواست ما را مورد مطالعه قرار میدهند و ما را برای این دامنه خاص مستقیماً به nameservers responsible مربوطه هدایت میکنند. این authoritative nameserversها مسئول پاسخگویی درباره تمام اطلاعات مربوط به دامنهها هستند. این اطلاعات در DNS recordsها ذخیره شده است. تعداد رکوردهای اطلاعاتی در این قسمت بسیار زیاد است و هر رکورد مسئول نگهداری نوع خاصی از داده است. در این مثال ما به دنبال اطلاعات IP address برای سایت iedco.irمیگردیم. بنابراین از authoritative nameserver برای Address Record (A) یا رکورد آدرس پرس و جو میکنیم.
Authoritative nameservers: این سرور جایی است که پاسخ واقعی را به درخواست DNS شما ارسال میکند. خود این سرورها به دو نوع تقسیم میشوند؛ سرور نام اصلی و سرور نام ثانویه. سرور نام اصلی، به عنوان منبع اصلی پاسخها فعالیت میکند و سرور ثانویه، به عنوان یک پشتیبان برای سرور اصلی فعالیت دارد که یک کپی از آن به شمار میرود. در واقع در صورت از دسترس خارج شدن سرور اصلی، سرور ثانویه وارد عمل میشود.
گام 6: دریافت اطلاعات رکورد
سرورهای recursive در پاسخ به سوال ما رکورد A را برای سایتiedco.ir بازگردانی میکنند. این اطلاعات از سرورهای authoritative nameservers دریافت شده است و رکورد اطلاعات مدنظر ما در کش سیستم سرورهای recursive ذخیره میشود. اگر کاربر دیگری برای سایتiedco درخواست IP Address بدهد، این بار سرورهای recursive این اطلاعات را در خود خواهند داشت و به کاربر پاسخ خواهند داد و نیازی به تکرار تمام مراحل پردازش ذکر شده در بالا نیست. هر رکورد اطلاعات یک مقدار time-to-live یا زمان حیات دارد. درواقع چیزی مانند تاریخ انقضاء، هنگامی که این زمان به اتمام برسد، سرورهای recursive باید اطلاعات رکوردهای خود را از نو درخواست کنند تا مطمئن شوند که اطلاعات ذخیره شده در رکوردها منقضی نشده باشد.
گام 7: دریافت پاسخ
سرورهای recursive رکورد A را به کامپیوتر شما ارجاع خواهند داد. کامپیوتر شما نیز این اطلاعات را در کش خود ذخیره میکنند. سپس از این اطلاعات IP Address خوانده شده و به مرورگر شما انتقال داده میشود. سپس مرورگرها با webserver ارتباط برقرار کرده و اطلاعات سایت را به نمایش میگذارند.
تمام این مراحل از ابتدا تا انتها، تنها چند میلی ثانیه برای پردازش زمان نیاز دارد.
موارد امنیتی DNS
مسیری که سیستم DNS برای پیدا کردن آیپی یک سایت طی میکند، فرصت مناسبی برای هکرها فراهم میکند تا کاربر را تغییر مسیر بدهند. در این حملات هکرها میتوانند کاربر را از مقصد اصلی خود به یک کپی تقلبی از آن هدایت کرده و اطلاعات او را سرقت کنند. برای مثال در این حالت هکرها میتوانند اطلاعات کارت بانکی کاربر را بدست آورده و حساب او را خالی کنند. البته با رعایت موارد امنیتی DNS میتوان از این حملات جلوگیری کرد. اگر میپرسید بهترین راه بالا بردن امنیت DNS چیست، لازم است بدانید یکی از بهترین راهها برای بالا بردن امنیت DNS، استفاده از پروتکل DNSSEC است. این پروتکل میتواند امنیت لازم را حین انتقال اطلاعات بین سرورهای مختلف تأمین کند.
علاوهبراین، اقدامات دیگری هم میتوان برای بالا بردن امنیت سیستم دی ان اس انجام داد. از جمله این اقدامات تأمین زیرساختهای لازم برای DNS است. در صورتی که سرویس DNS توان پاسخگویی به تعداد زیادی درخواست همزمان را داشته باشد، امکان حمله به آن به روش ddos کمتر میشود. در این نوع حمله تعداد زیادی درخواست به سرورها ارسال میشود تا آنها را از کار بیندازد. با بالا بردن ظرفیت پاسخگویی آنها میتوانید بر این حملات غلبه کنید.
Anycast routing هم روشی است که به شما برای غلبه بر حملات ddos کمک میکند. این روش اجازه میدهد چند سرور یک آی پی را به اشتراک بگذارند. در نتیجه اگر یکی از سرورها از کار بیفتد، سرورهای دیگری برای پاسخگویی به درخواستها وجود دارند. اما علاوه بر این روشها میتوانید از فایروال DNS هم برای بالا بردن امنیت آن استفاده کنید.
جمعبندی
در این مقاله سعی کردیم به سؤال DNS چیست، به طور مفصل و کامل پاسخ دهیم. سیستمی که به عنوان یک دفترچه تلفن برای اینترنت کار کرده و برای هر سایت، آدرس آی پی متناظر آن را پیدا میکند. از آنجا که کامپیوترها در اینترنت برای برقراری ارتباط با یکدیگر از آدرس آی پی استفاده میکنند، وجود چنین سیستمی اهمیت زیادی پیدا کرده است، چرا که اگر DNS وجود نداشته باشد برای ورود به هر سایت باید آدرس عددی آی پی آن را در مرورگر سیستم خود وارد کنید.