DNS یکی از پرکاربردترین پروتکلهای مورد استفاده در شبکه اینترنت است که در سال ۱۹۸۴ معرفی شد. همانطور که اشاره شد، به منظور ساده کردن فرآیند دسترسی به اطلاعات هر سایت، برای هر یک از آنها یک نام دامنه (Domain Name) در نظر گرفته شد. هر وب سایت در اینترنت دامنه منحصر به فرد خود را دارد و از طریق آن شناخته میشود.
البته در یک شبکه ارتباط میان کلاینتها و سرورها از طریق IP برقرار میشود. بنابراین از DNSها برای تبدیل نام دامنهها به IP استفاده شد. DNS پایگاه داده توزیع شده ای است که نام دامنهها و IPهای سایتها در آن ذخیره میشوند. نحوه عملکرد DNS مانند یک دفترچه تلفن است. در دفترچههای تلفن نام هر شخص و شماره تلفن مربوط به آن ذکر شده است. در DNSها نام دامنهها حکم نام اشخاص در دفترچه تلفن دارند و شمارههای تلفن به منزله IPهای سایتها هستند. اگر از این پروتکل در اینترنت برای ترجمه دامنهها استفاده نمیشد، باید برای هر بار دسترسی به سایتهای مختلف IP آنها وارد میشد.
DNS چگونه کار میکند؟
همانگونه که اشاره شد، اسامی نمادین در شبکه اینترنت که خود در قالب حوزهها و زیر حوزهها سازماندهی شدهاند، در یک فایل متمرکز ذخیره نمیشوند بلکه روی کل شبکه اینترنت توزیع شدهاند، به همین دلیل برای ترجمه یک نام به نشانی آیپی ممکن است چندین مرحله «پرس و جو» صورت بگیرد تا یک نشانی پیدا شود.
طبیعی است که یک پرس و جو برای تبدیل یک نام حوزه همیشه موفقیتآمیز نباشد و ممکن است به پرس و جوهای بیشتری نیاز شود یا حتی ممکن است یک نشانی نمادین اشتباه باشد و هیچ معادل نشانی آیپی نداشته باشد.
سه روش برای پرس و جوی نام در DNS وجود دارد:
- پرس و جوی تکراری (به انگلیسی: Iterative Query)
- پرس و جوی بازگشتی (به انگلیسی: Recursive Query)
- پرس و جوی معکوس (به انگلیسی: Reverse Query)
شاید این سوال در ذهن شما شکل گیرد که DNS دامنهها را چگونه ساماندهی و شناسایی میکند؟
ساختار این پروتکل به صورتی طراحی شده است که ضرورتی به آگاهی از تمامی دامنههای ثبت شده نداشته باشد. به عبارتی ساده تر، این پروتکل دامنه را الزاما حفظ نمیکند بلکه آنها را پردازش و در نهایت شناسایی میکند. به این منظور دامنههای وب سایتها از یک ساختار سلسله مراتبی پیروی میکنند. در این پروتکل به صورت مرحله به مرحله از راست به چپ دامنه سایتها بررسی و در نهایت شناسایی میشوند.
ساختار هر دامنه شامل ۵ بخش اصلی است که عبارتند از :
- Root Domain
- Top Level Domain
- Second Level Domain
- Subdomain
- Host Name
DNS recursor
DNS recursor، اولین سروری است که جهت دریافت درخواست ها از سیستم های کاربران، از طریق برنامه هایی مانند مرورگرهای وب، برنامه ریزی شده است. به طور معمول، recursor مسئول راضی نگه داشتن کاربران می باشد و این کار را با پاسخ دادن به درخواست های کاربران انجام می دهد. این سرور را dns resolver هم می گویند.
در واقع این سرور را می توان به عنوان مسئول کتابخانه در نظر گرفت که از او درخواست می شود کتاب خاصی را در جایی از کتابخانه پیدا کند.
Root nameserver
این سرور به اولین قدم در ترجمه نام دامنه قابل خواندن توسط انسان به آدرس آی پی می باشد. البته زمانی که IP مورد نظر در DNS recursor پیدا نشود. کار این سرور ارجاع درخواست به سرور مروبط به پسوند مرتبط با دامنه (.com, .ir, .org و….) است. این سرور را می توان به عنوان فهرست در کتابخانه در نظر گرفت که به قفسه های مختلف کتاب ها اشاره دارد.
TLD nameserver
TLD nameserver مخفف Top Level Domain Server می باشد. این سرور مسئول ترجمه پسوند دامنه و ارجاع باقی نام دامنه به سرور مربوط به ادامه نام دامنه است. این سرور را می توان به عنوان یک قفسه خاص از کتاب ها را در کتابخانه در نظر گرفت.
SLD(Second Level Domain)
معمولا نام شرکت یا سازمان است که پس از ثبت آن مدیر شبکه میتواند آدرس های زیر مجموعه خود را ثبت کند.
میزبانها Hosts
درون یک دامنه، مالک دامنه میتواند میزبانهای مختلفی تعریف کند که به رایانهها یا سرویسهای مختلف از طریق دامنه اصلی (example.com) اشاره میکند. همچنین این بخشهای مختلف از طریق تعریف میزبان مثلاً به صورت «www» قابل دسترسی هستند (www.example.com).
تعاریف دیگری از میزبان نیز تحت دامنه عمومی وجود دارد. برای مثال میتوانید از طریق میزبان api امکان دسترسی به api خاصی را فراهم سازید (api.example.com) همچنین میتوانید یک میزبان به نام ftp یا files تعریف کنید (ftp.example.com یا files.examples.com). نامهای میزبان تا زمانی که برای هر دامنه منحصر به فرد هستند، میتوانند با هر طولی تعریف شوند.
زیردامنه Subdomain
زیردامنهها نیز اصطلاحی در ارتباط با میزبان (host) هستند. DNS به صورت سلسله مراتبی عمل میکند. یک TLD میتواند دامنههای زیادی زیر خودش داشته باشد. برای مثال هر دو دامنه google.com و Ubuntu.com زیر TLD به صورت com هستند. یک زیردامنه به دامنهای اشاره دارد که بخشی از دامنه بزرگتر است. در این مورد میتوان گفت که Ubuntu.com زیردامنه com است. البته این بخش معمولاً صرفاً دامنه (SLD) یعنی دامنه سطح دوم (Second Layer Domain) نامیده میشود.
به طور مشابه هر دامنهای میتواند زیردامنههایی زیر خودش داشته باشد. این معنی دوم در مورد زیردامنه متداولتر است. برای نمونه دانشگاه شما میتواند برای هر بخش از دانشگاه، یک زیردامنه داشته باشد. برای نمونه دانشکده تاریخ میتواند زیردامنهای به صورت «www.history.school.edu» داشته باشد.
تفاوت بین یک نام میزبان و یک زیردامنه آن است که میزبان یک رایانه یا منبع را تعریف میکند در حالی که زیردامنه بخش خاصی از دامنه را بسط میدهد. این یکی از روشهای تقسیم دامنه به اجزای خردتر است.
چه این بخشها را زیردامنه بنامیم و چه میزبان، در هر صورت میبینید که سمت چپترین بخشهای یک دامنه به ترتیب بخشهای مشخصتر آن هستند. این طرز کار DNS است یعنی با حرکت از سمت راست به چپ بخشهای نام دامنه مشخصتر میشوند.
Authoritative nameserver
Authoritative nameserver آخرین مرحله جستجو را انجام می دهد. در صورتی که authoritative nameserver به سابقه ی درخواستی دسترسی پیدا کند، آدرس آی پی را برای hostname درخواستی، به DNS Recursor (مسئول کتابخانه) که درخواست اولیه را صادر کرده، بر می گرداند. این سرور را می توان به عنوان یک فرهنگ لغت در یک قفسه کتاب در نظر گرفت که یک نام خاص را می تواند به یک تعریف (definition) ترجمه کند.
دامنههای عمومی که سه حرفی هستند، عبارتند از:
- com. سایت هایی که از این دامنه استفاده میکنند به عنوان موسسات اقتصادی و تجاری شناسایی میشوند.
- edu. صاحبان این دامنه موسسات علمی یا دانشگاهی در نظر گرفته میشوند.
- gov. این مجموعه از دامنهها برای آژانسهای دولتی آمریکا اختصاص داده شده است.
- int. صاحب این دامنه یکی از سازمانهای بین المللی (مثل یونسکو، فائو، …) است.
- mil. این دامنه برای سازمانهای نظامی دنیا استفاده میشود.
- net. سایتهای که از این دامنه استفاده میکنند، یکی از ارائه دهندگان خدمات شبکه به شمار می روند.
- org. صاحب این دامنه جزو یکی از سازمان های غیرانتفاعی محسوب می شود.
- هر دامنه می تواند به زیر شاخههای کوچکتری تقسیم شود، که به آن دامنه سطح دوم نیز گفته می شود. به عنوان مثال، دامنههای مربوط به کشور ایران، با مخفف ir. از سایر دامنههای دیگر متمایز میشوند.
به عنوان مثال، نامهای مربوط به حوزه ایران، که با مخفف ir. مشخص میشود، به ۷ زیرحوزه، به شرح زیر تقسیم میشود:
- ac.ir. : فقط برای دانشگاهها یا موسسههای آموزشی
- co.ir. : فقط برای شرکتهای سهامی خاص، سهامی عام، مسوولیت محدود و تضامنی
- gov.ir. : فقط برای مؤسسهها یا سازمانهای دولتی
- id.ir. : فقط برای افراد دارای ملیت ایرانی
- net.ir. : فقط برای سرویس دهندگان رسمی اینترنت
- org.ir. : فقط برای مؤسسهها و سازمانهای خصوصی
- sch.ir. : فقط برای مدارس
بعنوان مثال: http://eng.ut.ac.ir
- کشور: ایران
- هویت: دانشگاه
- نام دانشگاه: ut مخففی برای نام دانشگاه تهران
- نام دانشکده: eng مخففی برای بخش فنی مهندسی
حوزهها با دامنهها یکسان نبوده و یک حوزه میتواند شامل مقادیری در رابطه با چندین دامنه باشد.
ساختار دامنه
نام دامنه از ارقام و حروفی تشکیل شدهاست. یکی قسمت نام کارساز است، دیگری نام دامنه و دیگری زیر دامنه است.
مثلاً http://www.google.com را در نظر بگیرید.
http پروتکل انتقال اطلاعات در وب است. نشانههای //: جهت جداسازی پروتکل از دامنه استفاده میشود. //:http جزء سامانه نام دامنه قرار نمیگیرد. قسمت www نام زیر دامنهاست. قسمت google نام دامنه و قسمت .com کارساز میباشد. هر زیردامنه میتواند آدرس IP متفاوتی با نام دامنه داشته باشد.
نام دامنه و زیر دامنه را صاحب دامنه انتخاب و ثبت میکند.
این قسمتها شامل حروف و اعداد انگلیسی و علامت منفی (-) نیز میتواند در میان اعداد و حروف (و نُه در ابتدا و انتها) قرار گیرد.
کارسازهای مختلف، توسط آیکان (به انگلیسی: Icann) تصویب و در دسترس قرار میگیرد و شامل ۲ تا ۶ حرف انگلیسی میباشد.
ثبت دامنه در بسیاری از کارسازها نیاز به مجوزهای مخصوص دارد.
کارسازهای ۲ حرفی، در اختیار کشورهای صاحب آنها قرار میگیرد و قوانین ثبت در این کارسازها، توسط حکومتها تعیین میگردد.
مثلاً us در اختیار کشور آمریکا، .ir در اختیار کشور ایران و .fr در اختیار کشور فرانسه میباشد.
آیکان پروژهای را در دست دارد تا ثبت نامهای دامنه را به زبانهای مختلف بینالمللی امکانپذیر نماید. این پروژه هماکنون در حالت آزمایش و بررسی قرار دارد.
مزایا و معایب دی ان اس
مزایای DNS چیست؟
با توجه به مثال دفترچه تلفن که بالاتر ذکر شده اگر قرار بود برای بازدید از سایت های مورد نظر تمام آدرس IP های لازم را حفظ کنیم، کار جستجوی صفحات وب بسیار سنگین و دشوار می شد. پس شاید اولین و اصلی ترین مزیت DNS تسهیل استفاده از اینترنت است.
همانطور که گفته شد، اگر بخواهید به یک وبسایت دسترسی پیدا کنید، باید آدرس IP آن را بدانید. اگر آدرس آی پی تغییر کند چه؟ یکی دیگر از مزایای DNS به روز شدن و ثبات است. سیستم DNS وظیفه دارد تا آدرس های IP را به روشی بسیار سریع و ثابت، به روز کرده و دسترسی ما به وب سایت ها را آسان کند.
معایب DNS چیست؟
در واقع نمی توان عیب مشخصی را برای dns در نظر گرفت. اما اگر بخواهیم در مورد برخی مشکلات دی ان اس صحبت کنیم، می توان به موارد زیر اشاره کرد.
یکی از این موارد DNS Attacks است . در این حالت مهاجم آدرس واقعی سایت را با یک آدرس جعلی به منظور کلاه برداری و یا سئو استفاده های سئوی جایگزین میکند و با فریبکاری کاربران سایت مورد هجوم را بدون اطلاع به آدرسهای مخرب و یا مد نظر هدایت می کند. معمولا هدف از این کار گرفتن اطلاعات بانکی یا سایر دادههای مهم و حساس کاربران و اقدامات سئو کلاه سیاه و سئو کلاه خاکستری است.
رکورد چیست؟
رکوردهای DNS دربرداندهی اطلاعاتی ضروری دربارهی نام دامنه هستند. به کمک این رکوردها، DNS میتواند دسترسی به یک وبسایت یا یک وبسرویس را فراهم کند.
انواع رکورد های DNS
dns ها در پایگاه داده یا همان دیتابیس خود دارای رکورد هایی با کاربردهای متفاوت هستید که در ادمه صرفا به معرفی آنها خواهیم پرداخت.
- A Record
- AAAA Record
- CNAME Record
- TXT Record
- NS Record
- SOA Record
- MX Record
اگر در خصوص dns ، سوال یا تجربه ای دارید، میتوانید در بخش نظرات با ما به اشتراک بگذارید.